Skip to main content

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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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(always)]
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 (indexed)"]
9820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_laneq_s32)"]
9821#[inline(always)]
9822#[cfg(target_endian = "little")]
9823#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9824#[target_feature(enable = "neon,dotprod")]
9825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9826#[cfg_attr(
9827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9828    assert_instr(sdot, LANE = 0)
9829)]
9830#[rustc_legacy_const_generics(3)]
9831#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
9832pub fn vdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x16_t) -> int32x2_t {
9833    static_assert_uimm_bits!(LANE, 2);
9834    unsafe {
9835        let c: int32x4_t = transmute(c);
9836        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9837        vdot_s32(a, b, transmute(c))
9838    }
9839}
9840#[doc = "Dot product arithmetic (indexed)"]
9841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_laneq_s32)"]
9842#[inline(always)]
9843#[cfg(target_endian = "big")]
9844#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9845#[target_feature(enable = "neon,dotprod")]
9846#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9847#[cfg_attr(
9848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9849    assert_instr(sdot, LANE = 0)
9850)]
9851#[rustc_legacy_const_generics(3)]
9852#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
9853pub fn vdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x16_t) -> int32x2_t {
9854    static_assert_uimm_bits!(LANE, 2);
9855    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
9856    let b: int8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
9857    let c: int8x16_t =
9858        unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
9859    unsafe {
9860        let c: int32x4_t = transmute(c);
9861        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9862        let ret_val: int32x2_t = vdot_s32(a, b, transmute(c));
9863        simd_shuffle!(ret_val, ret_val, [1, 0])
9864    }
9865}
9866#[doc = "Dot product arithmetic (indexed)"]
9867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_laneq_s32)"]
9868#[inline(always)]
9869#[cfg(target_endian = "little")]
9870#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9871#[target_feature(enable = "neon,dotprod")]
9872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9873#[cfg_attr(
9874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9875    assert_instr(sdot, LANE = 0)
9876)]
9877#[rustc_legacy_const_generics(3)]
9878#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
9879pub fn vdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
9880    static_assert_uimm_bits!(LANE, 2);
9881    unsafe {
9882        let c: int32x4_t = transmute(c);
9883        let c: int32x4_t =
9884            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
9885        vdotq_s32(a, b, transmute(c))
9886    }
9887}
9888#[doc = "Dot product arithmetic (indexed)"]
9889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_laneq_s32)"]
9890#[inline(always)]
9891#[cfg(target_endian = "big")]
9892#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9893#[target_feature(enable = "neon,dotprod")]
9894#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
9895#[cfg_attr(
9896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9897    assert_instr(sdot, LANE = 0)
9898)]
9899#[rustc_legacy_const_generics(3)]
9900#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
9901pub fn vdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
9902    static_assert_uimm_bits!(LANE, 2);
9903    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
9904    let b: int8x16_t =
9905        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
9906    let c: int8x16_t =
9907        unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
9908    unsafe {
9909        let c: int32x4_t = transmute(c);
9910        let c: int32x4_t =
9911            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
9912        let ret_val: int32x4_t = vdotq_s32(a, b, transmute(c));
9913        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
9914    }
9915}
9916#[doc = "Dot product arithmetic (indexed)"]
9917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_laneq_u32)"]
9918#[inline(always)]
9919#[cfg(target_endian = "little")]
9920#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9921#[target_feature(enable = "neon,dotprod")]
9922#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9923#[cfg_attr(
9924    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9925    assert_instr(udot, LANE = 0)
9926)]
9927#[rustc_legacy_const_generics(3)]
9928#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
9929pub fn vdot_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x16_t) -> uint32x2_t {
9930    static_assert_uimm_bits!(LANE, 2);
9931    unsafe {
9932        let c: uint32x4_t = transmute(c);
9933        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9934        vdot_u32(a, b, transmute(c))
9935    }
9936}
9937#[doc = "Dot product arithmetic (indexed)"]
9938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_laneq_u32)"]
9939#[inline(always)]
9940#[cfg(target_endian = "big")]
9941#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9942#[target_feature(enable = "neon,dotprod")]
9943#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9944#[cfg_attr(
9945    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9946    assert_instr(udot, LANE = 0)
9947)]
9948#[rustc_legacy_const_generics(3)]
9949#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
9950pub fn vdot_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x16_t) -> uint32x2_t {
9951    static_assert_uimm_bits!(LANE, 2);
9952    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
9953    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
9954    let c: uint8x16_t =
9955        unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
9956    unsafe {
9957        let c: uint32x4_t = transmute(c);
9958        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
9959        let ret_val: uint32x2_t = vdot_u32(a, b, transmute(c));
9960        simd_shuffle!(ret_val, ret_val, [1, 0])
9961    }
9962}
9963#[doc = "Dot product arithmetic (indexed)"]
9964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_laneq_u32)"]
9965#[inline(always)]
9966#[cfg(target_endian = "little")]
9967#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9968#[target_feature(enable = "neon,dotprod")]
9969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9970#[cfg_attr(
9971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9972    assert_instr(udot, LANE = 0)
9973)]
9974#[rustc_legacy_const_generics(3)]
9975#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
9976pub fn vdotq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
9977    static_assert_uimm_bits!(LANE, 2);
9978    unsafe {
9979        let c: uint32x4_t = transmute(c);
9980        let c: uint32x4_t =
9981            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
9982        vdotq_u32(a, b, transmute(c))
9983    }
9984}
9985#[doc = "Dot product arithmetic (indexed)"]
9986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_laneq_u32)"]
9987#[inline(always)]
9988#[cfg(target_endian = "big")]
9989#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9990#[target_feature(enable = "neon,dotprod")]
9991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
9992#[cfg_attr(
9993    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
9994    assert_instr(udot, LANE = 0)
9995)]
9996#[rustc_legacy_const_generics(3)]
9997#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
9998pub fn vdotq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
9999    static_assert_uimm_bits!(LANE, 2);
10000    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
10001    let b: uint8x16_t =
10002        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
10003    let c: uint8x16_t =
10004        unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
10005    unsafe {
10006        let c: uint32x4_t = transmute(c);
10007        let c: uint32x4_t =
10008            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
10009        let ret_val: uint32x4_t = vdotq_u32(a, b, transmute(c));
10010        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
10011    }
10012}
10013#[doc = "Dot product arithmetic (vector)"]
10014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_s32)"]
10015#[inline(always)]
10016#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
10017#[target_feature(enable = "neon,dotprod")]
10018#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
10019#[cfg_attr(
10020    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10021    assert_instr(sdot)
10022)]
10023#[cfg_attr(
10024    not(target_arch = "arm"),
10025    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
10026)]
10027#[cfg_attr(
10028    target_arch = "arm",
10029    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10030)]
10031pub fn vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
10032    unsafe extern "unadjusted" {
10033        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sdot.v2i32.v8i8")]
10034        #[cfg_attr(
10035            any(target_arch = "aarch64", target_arch = "arm64ec"),
10036            link_name = "llvm.aarch64.neon.sdot.v2i32.v8i8"
10037        )]
10038        fn _vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t;
10039    }
10040    unsafe { _vdot_s32(a, b, c) }
10041}
10042#[doc = "Dot product arithmetic (vector)"]
10043#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_s32)"]
10044#[inline(always)]
10045#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
10046#[target_feature(enable = "neon,dotprod")]
10047#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
10048#[cfg_attr(
10049    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10050    assert_instr(sdot)
10051)]
10052#[cfg_attr(
10053    not(target_arch = "arm"),
10054    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
10055)]
10056#[cfg_attr(
10057    target_arch = "arm",
10058    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10059)]
10060pub fn vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
10061    unsafe extern "unadjusted" {
10062        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sdot.v4i32.v16i8")]
10063        #[cfg_attr(
10064            any(target_arch = "aarch64", target_arch = "arm64ec"),
10065            link_name = "llvm.aarch64.neon.sdot.v4i32.v16i8"
10066        )]
10067        fn _vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t;
10068    }
10069    unsafe { _vdotq_s32(a, b, c) }
10070}
10071#[doc = "Dot product arithmetic (vector)"]
10072#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_u32)"]
10073#[inline(always)]
10074#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
10075#[target_feature(enable = "neon,dotprod")]
10076#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
10077#[cfg_attr(
10078    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10079    assert_instr(udot)
10080)]
10081#[cfg_attr(
10082    not(target_arch = "arm"),
10083    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
10084)]
10085#[cfg_attr(
10086    target_arch = "arm",
10087    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10088)]
10089pub fn vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
10090    unsafe extern "unadjusted" {
10091        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.udot.v2i32.v8i8")]
10092        #[cfg_attr(
10093            any(target_arch = "aarch64", target_arch = "arm64ec"),
10094            link_name = "llvm.aarch64.neon.udot.v2i32.v8i8"
10095        )]
10096        fn _vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t;
10097    }
10098    unsafe { _vdot_u32(a, b, c) }
10099}
10100#[doc = "Dot product arithmetic (vector)"]
10101#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_u32)"]
10102#[inline(always)]
10103#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
10104#[target_feature(enable = "neon,dotprod")]
10105#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
10106#[cfg_attr(
10107    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10108    assert_instr(udot)
10109)]
10110#[cfg_attr(
10111    not(target_arch = "arm"),
10112    unstable(feature = "stdarch_neon_dotprod", issue = "117224")
10113)]
10114#[cfg_attr(
10115    target_arch = "arm",
10116    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10117)]
10118pub fn vdotq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
10119    unsafe extern "unadjusted" {
10120        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.udot.v4i32.v16i8")]
10121        #[cfg_attr(
10122            any(target_arch = "aarch64", target_arch = "arm64ec"),
10123            link_name = "llvm.aarch64.neon.udot.v4i32.v16i8"
10124        )]
10125        fn _vdotq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t;
10126    }
10127    unsafe { _vdotq_u32(a, b, c) }
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_f16)"]
10131#[inline(always)]
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(target_arch = "arm", target_feature(enable = "fp16"))]
10141#[cfg_attr(
10142    not(target_arch = "arm"),
10143    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
10144)]
10145#[cfg_attr(
10146    target_arch = "arm",
10147    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10148)]
10149#[cfg(not(target_arch = "arm64ec"))]
10150pub fn vdup_lane_f16<const N: i32>(a: float16x4_t) -> float16x4_t {
10151    static_assert_uimm_bits!(N, 2);
10152    unsafe { simd_shuffle!(a, a, [N as u32; 4]) }
10153}
10154#[doc = "Set all vector lanes to the same value"]
10155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_f16)"]
10156#[inline(always)]
10157#[target_feature(enable = "neon")]
10158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10159#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10160#[cfg_attr(
10161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10162    assert_instr(dup, N = 2)
10163)]
10164#[rustc_legacy_const_generics(1)]
10165#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
10166#[cfg_attr(
10167    not(target_arch = "arm"),
10168    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
10169)]
10170#[cfg_attr(
10171    target_arch = "arm",
10172    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10173)]
10174#[cfg(not(target_arch = "arm64ec"))]
10175pub fn vdupq_lane_f16<const N: i32>(a: float16x4_t) -> float16x8_t {
10176    static_assert_uimm_bits!(N, 2);
10177    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10178}
10179#[doc = "Set all vector lanes to the same value"]
10180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_f32)"]
10181#[inline(always)]
10182#[target_feature(enable = "neon")]
10183#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10184#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10185#[cfg_attr(
10186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10187    assert_instr(dup, N = 1)
10188)]
10189#[rustc_legacy_const_generics(1)]
10190#[cfg_attr(
10191    not(target_arch = "arm"),
10192    stable(feature = "neon_intrinsics", since = "1.59.0")
10193)]
10194#[cfg_attr(
10195    target_arch = "arm",
10196    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10197)]
10198pub fn vdup_lane_f32<const N: i32>(a: float32x2_t) -> float32x2_t {
10199    static_assert_uimm_bits!(N, 1);
10200    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10201}
10202#[doc = "Set all vector lanes to the same value"]
10203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s32)"]
10204#[inline(always)]
10205#[target_feature(enable = "neon")]
10206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10207#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10208#[cfg_attr(
10209    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10210    assert_instr(dup, N = 1)
10211)]
10212#[rustc_legacy_const_generics(1)]
10213#[cfg_attr(
10214    not(target_arch = "arm"),
10215    stable(feature = "neon_intrinsics", since = "1.59.0")
10216)]
10217#[cfg_attr(
10218    target_arch = "arm",
10219    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10220)]
10221pub fn vdup_lane_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
10222    static_assert_uimm_bits!(N, 1);
10223    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10224}
10225#[doc = "Set all vector lanes to the same value"]
10226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u32)"]
10227#[inline(always)]
10228#[target_feature(enable = "neon")]
10229#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10230#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10231#[cfg_attr(
10232    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10233    assert_instr(dup, N = 1)
10234)]
10235#[rustc_legacy_const_generics(1)]
10236#[cfg_attr(
10237    not(target_arch = "arm"),
10238    stable(feature = "neon_intrinsics", since = "1.59.0")
10239)]
10240#[cfg_attr(
10241    target_arch = "arm",
10242    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10243)]
10244pub fn vdup_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
10245    static_assert_uimm_bits!(N, 1);
10246    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10247}
10248#[doc = "Set all vector lanes to the same value"]
10249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_f32)"]
10250#[inline(always)]
10251#[target_feature(enable = "neon")]
10252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10253#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10254#[cfg_attr(
10255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10256    assert_instr(dup, N = 1)
10257)]
10258#[rustc_legacy_const_generics(1)]
10259#[cfg_attr(
10260    not(target_arch = "arm"),
10261    stable(feature = "neon_intrinsics", since = "1.59.0")
10262)]
10263#[cfg_attr(
10264    target_arch = "arm",
10265    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10266)]
10267pub fn vdupq_lane_f32<const N: i32>(a: float32x2_t) -> float32x4_t {
10268    static_assert_uimm_bits!(N, 1);
10269    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10270}
10271#[doc = "Set all vector lanes to the same value"]
10272#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s32)"]
10273#[inline(always)]
10274#[target_feature(enable = "neon")]
10275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10276#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10277#[cfg_attr(
10278    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10279    assert_instr(dup, N = 1)
10280)]
10281#[rustc_legacy_const_generics(1)]
10282#[cfg_attr(
10283    not(target_arch = "arm"),
10284    stable(feature = "neon_intrinsics", since = "1.59.0")
10285)]
10286#[cfg_attr(
10287    target_arch = "arm",
10288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10289)]
10290pub fn vdupq_lane_s32<const N: i32>(a: int32x2_t) -> int32x4_t {
10291    static_assert_uimm_bits!(N, 1);
10292    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10293}
10294#[doc = "Set all vector lanes to the same value"]
10295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u32)"]
10296#[inline(always)]
10297#[target_feature(enable = "neon")]
10298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10299#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10300#[cfg_attr(
10301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10302    assert_instr(dup, N = 1)
10303)]
10304#[rustc_legacy_const_generics(1)]
10305#[cfg_attr(
10306    not(target_arch = "arm"),
10307    stable(feature = "neon_intrinsics", since = "1.59.0")
10308)]
10309#[cfg_attr(
10310    target_arch = "arm",
10311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10312)]
10313pub fn vdupq_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x4_t {
10314    static_assert_uimm_bits!(N, 1);
10315    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10316}
10317#[doc = "Set all vector lanes to the same value"]
10318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p16)"]
10319#[inline(always)]
10320#[target_feature(enable = "neon")]
10321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10322#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10323#[cfg_attr(
10324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10325    assert_instr(dup, N = 2)
10326)]
10327#[rustc_legacy_const_generics(1)]
10328#[cfg_attr(
10329    not(target_arch = "arm"),
10330    stable(feature = "neon_intrinsics", since = "1.59.0")
10331)]
10332#[cfg_attr(
10333    target_arch = "arm",
10334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10335)]
10336pub fn vdup_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x4_t {
10337    static_assert_uimm_bits!(N, 2);
10338    unsafe { simd_shuffle!(a, a, [N as u32; 4]) }
10339}
10340#[doc = "Set all vector lanes to the same value"]
10341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s16)"]
10342#[inline(always)]
10343#[target_feature(enable = "neon")]
10344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10345#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10346#[cfg_attr(
10347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10348    assert_instr(dup, N = 2)
10349)]
10350#[rustc_legacy_const_generics(1)]
10351#[cfg_attr(
10352    not(target_arch = "arm"),
10353    stable(feature = "neon_intrinsics", since = "1.59.0")
10354)]
10355#[cfg_attr(
10356    target_arch = "arm",
10357    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10358)]
10359pub fn vdup_lane_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
10360    static_assert_uimm_bits!(N, 2);
10361    unsafe { simd_shuffle!(a, a, [N as u32; 4]) }
10362}
10363#[doc = "Set all vector lanes to the same value"]
10364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u16)"]
10365#[inline(always)]
10366#[target_feature(enable = "neon")]
10367#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10368#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10369#[cfg_attr(
10370    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10371    assert_instr(dup, N = 2)
10372)]
10373#[rustc_legacy_const_generics(1)]
10374#[cfg_attr(
10375    not(target_arch = "arm"),
10376    stable(feature = "neon_intrinsics", since = "1.59.0")
10377)]
10378#[cfg_attr(
10379    target_arch = "arm",
10380    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10381)]
10382pub fn vdup_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
10383    static_assert_uimm_bits!(N, 2);
10384    unsafe { simd_shuffle!(a, a, [N as u32; 4]) }
10385}
10386#[doc = "Set all vector lanes to the same value"]
10387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p16)"]
10388#[inline(always)]
10389#[target_feature(enable = "neon")]
10390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10391#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10392#[cfg_attr(
10393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10394    assert_instr(dup, N = 2)
10395)]
10396#[rustc_legacy_const_generics(1)]
10397#[cfg_attr(
10398    not(target_arch = "arm"),
10399    stable(feature = "neon_intrinsics", since = "1.59.0")
10400)]
10401#[cfg_attr(
10402    target_arch = "arm",
10403    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10404)]
10405pub fn vdupq_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x8_t {
10406    static_assert_uimm_bits!(N, 2);
10407    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10408}
10409#[doc = "Set all vector lanes to the same value"]
10410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s16)"]
10411#[inline(always)]
10412#[target_feature(enable = "neon")]
10413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10414#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10415#[cfg_attr(
10416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10417    assert_instr(dup, N = 2)
10418)]
10419#[rustc_legacy_const_generics(1)]
10420#[cfg_attr(
10421    not(target_arch = "arm"),
10422    stable(feature = "neon_intrinsics", since = "1.59.0")
10423)]
10424#[cfg_attr(
10425    target_arch = "arm",
10426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10427)]
10428pub fn vdupq_lane_s16<const N: i32>(a: int16x4_t) -> int16x8_t {
10429    static_assert_uimm_bits!(N, 2);
10430    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10431}
10432#[doc = "Set all vector lanes to the same value"]
10433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u16)"]
10434#[inline(always)]
10435#[target_feature(enable = "neon")]
10436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10437#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10438#[cfg_attr(
10439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10440    assert_instr(dup, N = 2)
10441)]
10442#[rustc_legacy_const_generics(1)]
10443#[cfg_attr(
10444    not(target_arch = "arm"),
10445    stable(feature = "neon_intrinsics", since = "1.59.0")
10446)]
10447#[cfg_attr(
10448    target_arch = "arm",
10449    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10450)]
10451pub fn vdupq_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x8_t {
10452    static_assert_uimm_bits!(N, 2);
10453    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10454}
10455#[doc = "Set all vector lanes to the same value"]
10456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p8)"]
10457#[inline(always)]
10458#[target_feature(enable = "neon")]
10459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10460#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10461#[cfg_attr(
10462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10463    assert_instr(dup, N = 4)
10464)]
10465#[rustc_legacy_const_generics(1)]
10466#[cfg_attr(
10467    not(target_arch = "arm"),
10468    stable(feature = "neon_intrinsics", since = "1.59.0")
10469)]
10470#[cfg_attr(
10471    target_arch = "arm",
10472    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10473)]
10474pub fn vdup_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x8_t {
10475    static_assert_uimm_bits!(N, 3);
10476    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10477}
10478#[doc = "Set all vector lanes to the same value"]
10479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s8)"]
10480#[inline(always)]
10481#[target_feature(enable = "neon")]
10482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10483#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10484#[cfg_attr(
10485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10486    assert_instr(dup, N = 4)
10487)]
10488#[rustc_legacy_const_generics(1)]
10489#[cfg_attr(
10490    not(target_arch = "arm"),
10491    stable(feature = "neon_intrinsics", since = "1.59.0")
10492)]
10493#[cfg_attr(
10494    target_arch = "arm",
10495    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10496)]
10497pub fn vdup_lane_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
10498    static_assert_uimm_bits!(N, 3);
10499    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10500}
10501#[doc = "Set all vector lanes to the same value"]
10502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u8)"]
10503#[inline(always)]
10504#[target_feature(enable = "neon")]
10505#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10506#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10507#[cfg_attr(
10508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10509    assert_instr(dup, N = 4)
10510)]
10511#[rustc_legacy_const_generics(1)]
10512#[cfg_attr(
10513    not(target_arch = "arm"),
10514    stable(feature = "neon_intrinsics", since = "1.59.0")
10515)]
10516#[cfg_attr(
10517    target_arch = "arm",
10518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10519)]
10520pub fn vdup_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
10521    static_assert_uimm_bits!(N, 3);
10522    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10523}
10524#[doc = "Set all vector lanes to the same value"]
10525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p8)"]
10526#[inline(always)]
10527#[target_feature(enable = "neon")]
10528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10529#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10530#[cfg_attr(
10531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10532    assert_instr(dup, N = 4)
10533)]
10534#[rustc_legacy_const_generics(1)]
10535#[cfg_attr(
10536    not(target_arch = "arm"),
10537    stable(feature = "neon_intrinsics", since = "1.59.0")
10538)]
10539#[cfg_attr(
10540    target_arch = "arm",
10541    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10542)]
10543pub fn vdupq_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x16_t {
10544    static_assert_uimm_bits!(N, 3);
10545    unsafe { simd_shuffle!(a, a, [N as u32; 16]) }
10546}
10547#[doc = "Set all vector lanes to the same value"]
10548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s8)"]
10549#[inline(always)]
10550#[target_feature(enable = "neon")]
10551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10552#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10553#[cfg_attr(
10554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10555    assert_instr(dup, N = 4)
10556)]
10557#[rustc_legacy_const_generics(1)]
10558#[cfg_attr(
10559    not(target_arch = "arm"),
10560    stable(feature = "neon_intrinsics", since = "1.59.0")
10561)]
10562#[cfg_attr(
10563    target_arch = "arm",
10564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10565)]
10566pub fn vdupq_lane_s8<const N: i32>(a: int8x8_t) -> int8x16_t {
10567    static_assert_uimm_bits!(N, 3);
10568    unsafe { simd_shuffle!(a, a, [N as u32; 16]) }
10569}
10570#[doc = "Set all vector lanes to the same value"]
10571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u8)"]
10572#[inline(always)]
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.8", N = 4))]
10576#[cfg_attr(
10577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10578    assert_instr(dup, N = 4)
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 vdupq_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x16_t {
10590    static_assert_uimm_bits!(N, 3);
10591    unsafe { simd_shuffle!(a, a, [N as u32; 16]) }
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_lane_s64)"]
10595#[inline(always)]
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(nop, N = 0))]
10599#[cfg_attr(
10600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10601    assert_instr(nop, N = 0)
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_lane_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
10613    static_assert!(N == 0);
10614    a
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_lane_u64)"]
10618#[inline(always)]
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(nop, N = 0))]
10622#[cfg_attr(
10623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10624    assert_instr(nop, N = 0)
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_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
10636    static_assert!(N == 0);
10637    a
10638}
10639#[doc = "Set all vector lanes to the same value"]
10640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_f16)"]
10641#[inline(always)]
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.16", N = 4))]
10645#[cfg_attr(
10646    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10647    assert_instr(dup, N = 4)
10648)]
10649#[rustc_legacy_const_generics(1)]
10650#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
10651#[cfg_attr(
10652    not(target_arch = "arm"),
10653    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
10654)]
10655#[cfg_attr(
10656    target_arch = "arm",
10657    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10658)]
10659#[cfg(not(target_arch = "arm64ec"))]
10660pub fn vdup_laneq_f16<const N: i32>(a: float16x8_t) -> float16x4_t {
10661    static_assert_uimm_bits!(N, 3);
10662    unsafe { simd_shuffle!(a, a, [N as u32; 4]) }
10663}
10664#[doc = "Set all vector lanes to the same value"]
10665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_f16)"]
10666#[inline(always)]
10667#[target_feature(enable = "neon")]
10668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10669#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10670#[cfg_attr(
10671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10672    assert_instr(dup, N = 4)
10673)]
10674#[rustc_legacy_const_generics(1)]
10675#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
10676#[cfg_attr(
10677    not(target_arch = "arm"),
10678    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
10679)]
10680#[cfg_attr(
10681    target_arch = "arm",
10682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10683)]
10684#[cfg(not(target_arch = "arm64ec"))]
10685pub fn vdupq_laneq_f16<const N: i32>(a: float16x8_t) -> float16x8_t {
10686    static_assert_uimm_bits!(N, 3);
10687    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10688}
10689#[doc = "Set all vector lanes to the same value"]
10690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_f32)"]
10691#[inline(always)]
10692#[target_feature(enable = "neon")]
10693#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10694#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10695#[cfg_attr(
10696    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10697    assert_instr(dup, N = 2)
10698)]
10699#[rustc_legacy_const_generics(1)]
10700#[cfg_attr(
10701    not(target_arch = "arm"),
10702    stable(feature = "neon_intrinsics", since = "1.59.0")
10703)]
10704#[cfg_attr(
10705    target_arch = "arm",
10706    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10707)]
10708pub fn vdup_laneq_f32<const N: i32>(a: float32x4_t) -> float32x2_t {
10709    static_assert_uimm_bits!(N, 2);
10710    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10711}
10712#[doc = "Set all vector lanes to the same value"]
10713#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s32)"]
10714#[inline(always)]
10715#[target_feature(enable = "neon")]
10716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10717#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10718#[cfg_attr(
10719    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10720    assert_instr(dup, N = 2)
10721)]
10722#[rustc_legacy_const_generics(1)]
10723#[cfg_attr(
10724    not(target_arch = "arm"),
10725    stable(feature = "neon_intrinsics", since = "1.59.0")
10726)]
10727#[cfg_attr(
10728    target_arch = "arm",
10729    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10730)]
10731pub fn vdup_laneq_s32<const N: i32>(a: int32x4_t) -> int32x2_t {
10732    static_assert_uimm_bits!(N, 2);
10733    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10734}
10735#[doc = "Set all vector lanes to the same value"]
10736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u32)"]
10737#[inline(always)]
10738#[target_feature(enable = "neon")]
10739#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10740#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10741#[cfg_attr(
10742    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10743    assert_instr(dup, N = 2)
10744)]
10745#[rustc_legacy_const_generics(1)]
10746#[cfg_attr(
10747    not(target_arch = "arm"),
10748    stable(feature = "neon_intrinsics", since = "1.59.0")
10749)]
10750#[cfg_attr(
10751    target_arch = "arm",
10752    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10753)]
10754pub fn vdup_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x2_t {
10755    static_assert_uimm_bits!(N, 2);
10756    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10757}
10758#[doc = "Set all vector lanes to the same value"]
10759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_f32)"]
10760#[inline(always)]
10761#[target_feature(enable = "neon")]
10762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10763#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10764#[cfg_attr(
10765    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10766    assert_instr(dup, N = 2)
10767)]
10768#[rustc_legacy_const_generics(1)]
10769#[cfg_attr(
10770    not(target_arch = "arm"),
10771    stable(feature = "neon_intrinsics", since = "1.59.0")
10772)]
10773#[cfg_attr(
10774    target_arch = "arm",
10775    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10776)]
10777pub fn vdupq_laneq_f32<const N: i32>(a: float32x4_t) -> float32x4_t {
10778    static_assert_uimm_bits!(N, 2);
10779    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10780}
10781#[doc = "Set all vector lanes to the same value"]
10782#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s32)"]
10783#[inline(always)]
10784#[target_feature(enable = "neon")]
10785#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10786#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10787#[cfg_attr(
10788    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10789    assert_instr(dup, N = 2)
10790)]
10791#[rustc_legacy_const_generics(1)]
10792#[cfg_attr(
10793    not(target_arch = "arm"),
10794    stable(feature = "neon_intrinsics", since = "1.59.0")
10795)]
10796#[cfg_attr(
10797    target_arch = "arm",
10798    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10799)]
10800pub fn vdupq_laneq_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
10801    static_assert_uimm_bits!(N, 2);
10802    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10803}
10804#[doc = "Set all vector lanes to the same value"]
10805#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u32)"]
10806#[inline(always)]
10807#[target_feature(enable = "neon")]
10808#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10809#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10810#[cfg_attr(
10811    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10812    assert_instr(dup, N = 2)
10813)]
10814#[rustc_legacy_const_generics(1)]
10815#[cfg_attr(
10816    not(target_arch = "arm"),
10817    stable(feature = "neon_intrinsics", since = "1.59.0")
10818)]
10819#[cfg_attr(
10820    target_arch = "arm",
10821    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10822)]
10823pub fn vdupq_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
10824    static_assert_uimm_bits!(N, 2);
10825    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10826}
10827#[doc = "Set all vector lanes to the same value"]
10828#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p16)"]
10829#[inline(always)]
10830#[target_feature(enable = "neon")]
10831#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10832#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10833#[cfg_attr(
10834    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10835    assert_instr(dup, N = 4)
10836)]
10837#[rustc_legacy_const_generics(1)]
10838#[cfg_attr(
10839    not(target_arch = "arm"),
10840    stable(feature = "neon_intrinsics", since = "1.59.0")
10841)]
10842#[cfg_attr(
10843    target_arch = "arm",
10844    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10845)]
10846pub fn vdup_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x4_t {
10847    static_assert_uimm_bits!(N, 3);
10848    unsafe { simd_shuffle!(a, a, [N as u32; 4]) }
10849}
10850#[doc = "Set all vector lanes to the same value"]
10851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s16)"]
10852#[inline(always)]
10853#[target_feature(enable = "neon")]
10854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10855#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10856#[cfg_attr(
10857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10858    assert_instr(dup, N = 4)
10859)]
10860#[rustc_legacy_const_generics(1)]
10861#[cfg_attr(
10862    not(target_arch = "arm"),
10863    stable(feature = "neon_intrinsics", since = "1.59.0")
10864)]
10865#[cfg_attr(
10866    target_arch = "arm",
10867    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10868)]
10869pub fn vdup_laneq_s16<const N: i32>(a: int16x8_t) -> int16x4_t {
10870    static_assert_uimm_bits!(N, 3);
10871    unsafe { simd_shuffle!(a, a, [N as u32; 4]) }
10872}
10873#[doc = "Set all vector lanes to the same value"]
10874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u16)"]
10875#[inline(always)]
10876#[target_feature(enable = "neon")]
10877#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10878#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10879#[cfg_attr(
10880    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10881    assert_instr(dup, N = 4)
10882)]
10883#[rustc_legacy_const_generics(1)]
10884#[cfg_attr(
10885    not(target_arch = "arm"),
10886    stable(feature = "neon_intrinsics", since = "1.59.0")
10887)]
10888#[cfg_attr(
10889    target_arch = "arm",
10890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10891)]
10892pub fn vdup_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x4_t {
10893    static_assert_uimm_bits!(N, 3);
10894    unsafe { simd_shuffle!(a, a, [N as u32; 4]) }
10895}
10896#[doc = "Set all vector lanes to the same value"]
10897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p16)"]
10898#[inline(always)]
10899#[target_feature(enable = "neon")]
10900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10901#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10902#[cfg_attr(
10903    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10904    assert_instr(dup, N = 4)
10905)]
10906#[rustc_legacy_const_generics(1)]
10907#[cfg_attr(
10908    not(target_arch = "arm"),
10909    stable(feature = "neon_intrinsics", since = "1.59.0")
10910)]
10911#[cfg_attr(
10912    target_arch = "arm",
10913    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10914)]
10915pub fn vdupq_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x8_t {
10916    static_assert_uimm_bits!(N, 3);
10917    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10918}
10919#[doc = "Set all vector lanes to the same value"]
10920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s16)"]
10921#[inline(always)]
10922#[target_feature(enable = "neon")]
10923#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10924#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10925#[cfg_attr(
10926    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10927    assert_instr(dup, N = 4)
10928)]
10929#[rustc_legacy_const_generics(1)]
10930#[cfg_attr(
10931    not(target_arch = "arm"),
10932    stable(feature = "neon_intrinsics", since = "1.59.0")
10933)]
10934#[cfg_attr(
10935    target_arch = "arm",
10936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10937)]
10938pub fn vdupq_laneq_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
10939    static_assert_uimm_bits!(N, 3);
10940    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10941}
10942#[doc = "Set all vector lanes to the same value"]
10943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u16)"]
10944#[inline(always)]
10945#[target_feature(enable = "neon")]
10946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10947#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10948#[cfg_attr(
10949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10950    assert_instr(dup, N = 4)
10951)]
10952#[rustc_legacy_const_generics(1)]
10953#[cfg_attr(
10954    not(target_arch = "arm"),
10955    stable(feature = "neon_intrinsics", since = "1.59.0")
10956)]
10957#[cfg_attr(
10958    target_arch = "arm",
10959    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10960)]
10961pub fn vdupq_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
10962    static_assert_uimm_bits!(N, 3);
10963    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10964}
10965#[doc = "Set all vector lanes to the same value"]
10966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p8)"]
10967#[inline(always)]
10968#[target_feature(enable = "neon")]
10969#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10970#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10971#[cfg_attr(
10972    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10973    assert_instr(dup, N = 8)
10974)]
10975#[rustc_legacy_const_generics(1)]
10976#[cfg_attr(
10977    not(target_arch = "arm"),
10978    stable(feature = "neon_intrinsics", since = "1.59.0")
10979)]
10980#[cfg_attr(
10981    target_arch = "arm",
10982    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10983)]
10984pub fn vdup_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x8_t {
10985    static_assert_uimm_bits!(N, 4);
10986    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
10987}
10988#[doc = "Set all vector lanes to the same value"]
10989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s8)"]
10990#[inline(always)]
10991#[target_feature(enable = "neon")]
10992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10993#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
10994#[cfg_attr(
10995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10996    assert_instr(dup, N = 8)
10997)]
10998#[rustc_legacy_const_generics(1)]
10999#[cfg_attr(
11000    not(target_arch = "arm"),
11001    stable(feature = "neon_intrinsics", since = "1.59.0")
11002)]
11003#[cfg_attr(
11004    target_arch = "arm",
11005    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11006)]
11007pub fn vdup_laneq_s8<const N: i32>(a: int8x16_t) -> int8x8_t {
11008    static_assert_uimm_bits!(N, 4);
11009    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
11010}
11011#[doc = "Set all vector lanes to the same value"]
11012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u8)"]
11013#[inline(always)]
11014#[target_feature(enable = "neon")]
11015#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11016#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11017#[cfg_attr(
11018    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11019    assert_instr(dup, N = 8)
11020)]
11021#[rustc_legacy_const_generics(1)]
11022#[cfg_attr(
11023    not(target_arch = "arm"),
11024    stable(feature = "neon_intrinsics", since = "1.59.0")
11025)]
11026#[cfg_attr(
11027    target_arch = "arm",
11028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11029)]
11030pub fn vdup_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x8_t {
11031    static_assert_uimm_bits!(N, 4);
11032    unsafe { simd_shuffle!(a, a, [N as u32; 8]) }
11033}
11034#[doc = "Set all vector lanes to the same value"]
11035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p8)"]
11036#[inline(always)]
11037#[target_feature(enable = "neon")]
11038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11039#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11040#[cfg_attr(
11041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11042    assert_instr(dup, N = 8)
11043)]
11044#[rustc_legacy_const_generics(1)]
11045#[cfg_attr(
11046    not(target_arch = "arm"),
11047    stable(feature = "neon_intrinsics", since = "1.59.0")
11048)]
11049#[cfg_attr(
11050    target_arch = "arm",
11051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11052)]
11053pub fn vdupq_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x16_t {
11054    static_assert_uimm_bits!(N, 4);
11055    unsafe { simd_shuffle!(a, a, [N as u32; 16]) }
11056}
11057#[doc = "Set all vector lanes to the same value"]
11058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s8)"]
11059#[inline(always)]
11060#[target_feature(enable = "neon")]
11061#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11062#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11063#[cfg_attr(
11064    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11065    assert_instr(dup, N = 8)
11066)]
11067#[rustc_legacy_const_generics(1)]
11068#[cfg_attr(
11069    not(target_arch = "arm"),
11070    stable(feature = "neon_intrinsics", since = "1.59.0")
11071)]
11072#[cfg_attr(
11073    target_arch = "arm",
11074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11075)]
11076pub fn vdupq_laneq_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
11077    static_assert_uimm_bits!(N, 4);
11078    unsafe { simd_shuffle!(a, a, [N as u32; 16]) }
11079}
11080#[doc = "Set all vector lanes to the same value"]
11081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u8)"]
11082#[inline(always)]
11083#[target_feature(enable = "neon")]
11084#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11085#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11086#[cfg_attr(
11087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11088    assert_instr(dup, N = 8)
11089)]
11090#[rustc_legacy_const_generics(1)]
11091#[cfg_attr(
11092    not(target_arch = "arm"),
11093    stable(feature = "neon_intrinsics", since = "1.59.0")
11094)]
11095#[cfg_attr(
11096    target_arch = "arm",
11097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11098)]
11099pub fn vdupq_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
11100    static_assert_uimm_bits!(N, 4);
11101    unsafe { simd_shuffle!(a, a, [N as u32; 16]) }
11102}
11103#[doc = "Set all vector lanes to the same value"]
11104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s64)"]
11105#[inline(always)]
11106#[target_feature(enable = "neon")]
11107#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11108#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11109#[cfg_attr(
11110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11111    assert_instr(nop, N = 1)
11112)]
11113#[rustc_legacy_const_generics(1)]
11114#[cfg_attr(
11115    not(target_arch = "arm"),
11116    stable(feature = "neon_intrinsics", since = "1.59.0")
11117)]
11118#[cfg_attr(
11119    target_arch = "arm",
11120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11121)]
11122pub fn vdup_laneq_s64<const N: i32>(a: int64x2_t) -> int64x1_t {
11123    static_assert_uimm_bits!(N, 1);
11124    unsafe { transmute::<i64, _>(simd_extract!(a, N as u32)) }
11125}
11126#[doc = "Set all vector lanes to the same value"]
11127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u64)"]
11128#[inline(always)]
11129#[target_feature(enable = "neon")]
11130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11132#[cfg_attr(
11133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11134    assert_instr(nop, N = 1)
11135)]
11136#[rustc_legacy_const_generics(1)]
11137#[cfg_attr(
11138    not(target_arch = "arm"),
11139    stable(feature = "neon_intrinsics", since = "1.59.0")
11140)]
11141#[cfg_attr(
11142    target_arch = "arm",
11143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11144)]
11145pub fn vdup_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x1_t {
11146    static_assert_uimm_bits!(N, 1);
11147    unsafe { transmute::<u64, _>(simd_extract!(a, N as u32)) }
11148}
11149#[doc = "Create a new vector with all lanes set to a value"]
11150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f16)"]
11151#[inline(always)]
11152#[target_feature(enable = "neon")]
11153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11154#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11155#[cfg_attr(
11156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11157    assert_instr(dup)
11158)]
11159#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
11160#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
11161#[cfg(not(target_arch = "arm64ec"))]
11162pub fn vdup_n_f16(a: f16) -> float16x4_t {
11163    float16x4_t::splat(a)
11164}
11165#[doc = "Create a new vector with all lanes set to a value"]
11166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f16)"]
11167#[inline(always)]
11168#[target_feature(enable = "neon")]
11169#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11170#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11171#[cfg_attr(
11172    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11173    assert_instr(dup)
11174)]
11175#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
11176#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
11177#[cfg(not(target_arch = "arm64ec"))]
11178pub fn vdupq_n_f16(a: f16) -> float16x8_t {
11179    float16x8_t::splat(a)
11180}
11181#[doc = "Duplicate vector element to vector or scalar"]
11182#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f32)"]
11183#[inline(always)]
11184#[target_feature(enable = "neon")]
11185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11186#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11187#[cfg_attr(
11188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11189    assert_instr(dup)
11190)]
11191#[cfg_attr(
11192    not(target_arch = "arm"),
11193    stable(feature = "neon_intrinsics", since = "1.59.0")
11194)]
11195#[cfg_attr(
11196    target_arch = "arm",
11197    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11198)]
11199pub fn vdup_n_f32(value: f32) -> float32x2_t {
11200    float32x2_t::splat(value)
11201}
11202#[doc = "Duplicate vector element to vector or scalar"]
11203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_p16)"]
11204#[inline(always)]
11205#[target_feature(enable = "neon")]
11206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11207#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11208#[cfg_attr(
11209    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11210    assert_instr(dup)
11211)]
11212#[cfg_attr(
11213    not(target_arch = "arm"),
11214    stable(feature = "neon_intrinsics", since = "1.59.0")
11215)]
11216#[cfg_attr(
11217    target_arch = "arm",
11218    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11219)]
11220pub fn vdup_n_p16(value: p16) -> poly16x4_t {
11221    poly16x4_t::splat(value)
11222}
11223#[doc = "Duplicate vector element to vector or scalar"]
11224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_p8)"]
11225#[inline(always)]
11226#[target_feature(enable = "neon")]
11227#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11228#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11229#[cfg_attr(
11230    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11231    assert_instr(dup)
11232)]
11233#[cfg_attr(
11234    not(target_arch = "arm"),
11235    stable(feature = "neon_intrinsics", since = "1.59.0")
11236)]
11237#[cfg_attr(
11238    target_arch = "arm",
11239    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11240)]
11241pub fn vdup_n_p8(value: p8) -> poly8x8_t {
11242    poly8x8_t::splat(value)
11243}
11244#[doc = "Duplicate vector element to vector or scalar"]
11245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s16)"]
11246#[inline(always)]
11247#[target_feature(enable = "neon")]
11248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11249#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11250#[cfg_attr(
11251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11252    assert_instr(dup)
11253)]
11254#[cfg_attr(
11255    not(target_arch = "arm"),
11256    stable(feature = "neon_intrinsics", since = "1.59.0")
11257)]
11258#[cfg_attr(
11259    target_arch = "arm",
11260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11261)]
11262pub fn vdup_n_s16(value: i16) -> int16x4_t {
11263    int16x4_t::splat(value)
11264}
11265#[doc = "Duplicate vector element to vector or scalar"]
11266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s32)"]
11267#[inline(always)]
11268#[target_feature(enable = "neon")]
11269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11270#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11271#[cfg_attr(
11272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11273    assert_instr(dup)
11274)]
11275#[cfg_attr(
11276    not(target_arch = "arm"),
11277    stable(feature = "neon_intrinsics", since = "1.59.0")
11278)]
11279#[cfg_attr(
11280    target_arch = "arm",
11281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11282)]
11283pub fn vdup_n_s32(value: i32) -> int32x2_t {
11284    int32x2_t::splat(value)
11285}
11286#[doc = "Duplicate vector element to vector or scalar"]
11287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s64)"]
11288#[inline(always)]
11289#[target_feature(enable = "neon")]
11290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11291#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11292#[cfg_attr(
11293    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11294    assert_instr(fmov)
11295)]
11296#[cfg_attr(
11297    not(target_arch = "arm"),
11298    stable(feature = "neon_intrinsics", since = "1.59.0")
11299)]
11300#[cfg_attr(
11301    target_arch = "arm",
11302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11303)]
11304pub fn vdup_n_s64(value: i64) -> int64x1_t {
11305    int64x1_t::splat(value)
11306}
11307#[doc = "Duplicate vector element to vector or scalar"]
11308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s8)"]
11309#[inline(always)]
11310#[target_feature(enable = "neon")]
11311#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11312#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11313#[cfg_attr(
11314    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11315    assert_instr(dup)
11316)]
11317#[cfg_attr(
11318    not(target_arch = "arm"),
11319    stable(feature = "neon_intrinsics", since = "1.59.0")
11320)]
11321#[cfg_attr(
11322    target_arch = "arm",
11323    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11324)]
11325pub fn vdup_n_s8(value: i8) -> int8x8_t {
11326    int8x8_t::splat(value)
11327}
11328#[doc = "Duplicate vector element to vector or scalar"]
11329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u16)"]
11330#[inline(always)]
11331#[target_feature(enable = "neon")]
11332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11333#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11334#[cfg_attr(
11335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11336    assert_instr(dup)
11337)]
11338#[cfg_attr(
11339    not(target_arch = "arm"),
11340    stable(feature = "neon_intrinsics", since = "1.59.0")
11341)]
11342#[cfg_attr(
11343    target_arch = "arm",
11344    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11345)]
11346pub fn vdup_n_u16(value: u16) -> uint16x4_t {
11347    uint16x4_t::splat(value)
11348}
11349#[doc = "Duplicate vector element to vector or scalar"]
11350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u32)"]
11351#[inline(always)]
11352#[target_feature(enable = "neon")]
11353#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11354#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11355#[cfg_attr(
11356    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11357    assert_instr(dup)
11358)]
11359#[cfg_attr(
11360    not(target_arch = "arm"),
11361    stable(feature = "neon_intrinsics", since = "1.59.0")
11362)]
11363#[cfg_attr(
11364    target_arch = "arm",
11365    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11366)]
11367pub fn vdup_n_u32(value: u32) -> uint32x2_t {
11368    uint32x2_t::splat(value)
11369}
11370#[doc = "Duplicate vector element to vector or scalar"]
11371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u64)"]
11372#[inline(always)]
11373#[target_feature(enable = "neon")]
11374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11375#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11376#[cfg_attr(
11377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11378    assert_instr(fmov)
11379)]
11380#[cfg_attr(
11381    not(target_arch = "arm"),
11382    stable(feature = "neon_intrinsics", since = "1.59.0")
11383)]
11384#[cfg_attr(
11385    target_arch = "arm",
11386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11387)]
11388pub fn vdup_n_u64(value: u64) -> uint64x1_t {
11389    uint64x1_t::splat(value)
11390}
11391#[doc = "Duplicate vector element to vector or scalar"]
11392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u8)"]
11393#[inline(always)]
11394#[target_feature(enable = "neon")]
11395#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11396#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11397#[cfg_attr(
11398    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11399    assert_instr(dup)
11400)]
11401#[cfg_attr(
11402    not(target_arch = "arm"),
11403    stable(feature = "neon_intrinsics", since = "1.59.0")
11404)]
11405#[cfg_attr(
11406    target_arch = "arm",
11407    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11408)]
11409pub fn vdup_n_u8(value: u8) -> uint8x8_t {
11410    uint8x8_t::splat(value)
11411}
11412#[doc = "Duplicate vector element to vector or scalar"]
11413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f32)"]
11414#[inline(always)]
11415#[target_feature(enable = "neon")]
11416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11417#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11418#[cfg_attr(
11419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11420    assert_instr(dup)
11421)]
11422#[cfg_attr(
11423    not(target_arch = "arm"),
11424    stable(feature = "neon_intrinsics", since = "1.59.0")
11425)]
11426#[cfg_attr(
11427    target_arch = "arm",
11428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11429)]
11430pub fn vdupq_n_f32(value: f32) -> float32x4_t {
11431    float32x4_t::splat(value)
11432}
11433#[doc = "Duplicate vector element to vector or scalar"]
11434#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_p16)"]
11435#[inline(always)]
11436#[target_feature(enable = "neon")]
11437#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11438#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11439#[cfg_attr(
11440    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11441    assert_instr(dup)
11442)]
11443#[cfg_attr(
11444    not(target_arch = "arm"),
11445    stable(feature = "neon_intrinsics", since = "1.59.0")
11446)]
11447#[cfg_attr(
11448    target_arch = "arm",
11449    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11450)]
11451pub fn vdupq_n_p16(value: p16) -> poly16x8_t {
11452    poly16x8_t::splat(value)
11453}
11454#[doc = "Duplicate vector element to vector or scalar"]
11455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_p8)"]
11456#[inline(always)]
11457#[target_feature(enable = "neon")]
11458#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11459#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11460#[cfg_attr(
11461    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11462    assert_instr(dup)
11463)]
11464#[cfg_attr(
11465    not(target_arch = "arm"),
11466    stable(feature = "neon_intrinsics", since = "1.59.0")
11467)]
11468#[cfg_attr(
11469    target_arch = "arm",
11470    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11471)]
11472pub fn vdupq_n_p8(value: p8) -> poly8x16_t {
11473    poly8x16_t::splat(value)
11474}
11475#[doc = "Duplicate vector element to vector or scalar"]
11476#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s16)"]
11477#[inline(always)]
11478#[target_feature(enable = "neon")]
11479#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11480#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11481#[cfg_attr(
11482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11483    assert_instr(dup)
11484)]
11485#[cfg_attr(
11486    not(target_arch = "arm"),
11487    stable(feature = "neon_intrinsics", since = "1.59.0")
11488)]
11489#[cfg_attr(
11490    target_arch = "arm",
11491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11492)]
11493pub fn vdupq_n_s16(value: i16) -> int16x8_t {
11494    int16x8_t::splat(value)
11495}
11496#[doc = "Duplicate vector element to vector or scalar"]
11497#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s32)"]
11498#[inline(always)]
11499#[target_feature(enable = "neon")]
11500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11501#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11502#[cfg_attr(
11503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11504    assert_instr(dup)
11505)]
11506#[cfg_attr(
11507    not(target_arch = "arm"),
11508    stable(feature = "neon_intrinsics", since = "1.59.0")
11509)]
11510#[cfg_attr(
11511    target_arch = "arm",
11512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11513)]
11514pub fn vdupq_n_s32(value: i32) -> int32x4_t {
11515    int32x4_t::splat(value)
11516}
11517#[doc = "Duplicate vector element to vector or scalar"]
11518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s64)"]
11519#[inline(always)]
11520#[target_feature(enable = "neon")]
11521#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11522#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11523#[cfg_attr(
11524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11525    assert_instr(dup)
11526)]
11527#[cfg_attr(
11528    not(target_arch = "arm"),
11529    stable(feature = "neon_intrinsics", since = "1.59.0")
11530)]
11531#[cfg_attr(
11532    target_arch = "arm",
11533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11534)]
11535pub fn vdupq_n_s64(value: i64) -> int64x2_t {
11536    int64x2_t::splat(value)
11537}
11538#[doc = "Duplicate vector element to vector or scalar"]
11539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s8)"]
11540#[inline(always)]
11541#[target_feature(enable = "neon")]
11542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11543#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11544#[cfg_attr(
11545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11546    assert_instr(dup)
11547)]
11548#[cfg_attr(
11549    not(target_arch = "arm"),
11550    stable(feature = "neon_intrinsics", since = "1.59.0")
11551)]
11552#[cfg_attr(
11553    target_arch = "arm",
11554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11555)]
11556pub fn vdupq_n_s8(value: i8) -> int8x16_t {
11557    int8x16_t::splat(value)
11558}
11559#[doc = "Duplicate vector element to vector or scalar"]
11560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u16)"]
11561#[inline(always)]
11562#[target_feature(enable = "neon")]
11563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11564#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11565#[cfg_attr(
11566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11567    assert_instr(dup)
11568)]
11569#[cfg_attr(
11570    not(target_arch = "arm"),
11571    stable(feature = "neon_intrinsics", since = "1.59.0")
11572)]
11573#[cfg_attr(
11574    target_arch = "arm",
11575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11576)]
11577pub fn vdupq_n_u16(value: u16) -> uint16x8_t {
11578    uint16x8_t::splat(value)
11579}
11580#[doc = "Duplicate vector element to vector or scalar"]
11581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u32)"]
11582#[inline(always)]
11583#[target_feature(enable = "neon")]
11584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11585#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11586#[cfg_attr(
11587    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11588    assert_instr(dup)
11589)]
11590#[cfg_attr(
11591    not(target_arch = "arm"),
11592    stable(feature = "neon_intrinsics", since = "1.59.0")
11593)]
11594#[cfg_attr(
11595    target_arch = "arm",
11596    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11597)]
11598pub fn vdupq_n_u32(value: u32) -> uint32x4_t {
11599    uint32x4_t::splat(value)
11600}
11601#[doc = "Duplicate vector element to vector or scalar"]
11602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u64)"]
11603#[inline(always)]
11604#[target_feature(enable = "neon")]
11605#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11606#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11607#[cfg_attr(
11608    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11609    assert_instr(dup)
11610)]
11611#[cfg_attr(
11612    not(target_arch = "arm"),
11613    stable(feature = "neon_intrinsics", since = "1.59.0")
11614)]
11615#[cfg_attr(
11616    target_arch = "arm",
11617    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11618)]
11619pub fn vdupq_n_u64(value: u64) -> uint64x2_t {
11620    uint64x2_t::splat(value)
11621}
11622#[doc = "Duplicate vector element to vector or scalar"]
11623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u8)"]
11624#[inline(always)]
11625#[target_feature(enable = "neon")]
11626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11627#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11628#[cfg_attr(
11629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11630    assert_instr(dup)
11631)]
11632#[cfg_attr(
11633    not(target_arch = "arm"),
11634    stable(feature = "neon_intrinsics", since = "1.59.0")
11635)]
11636#[cfg_attr(
11637    target_arch = "arm",
11638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11639)]
11640pub fn vdupq_n_u8(value: u8) -> uint8x16_t {
11641    uint8x16_t::splat(value)
11642}
11643#[doc = "Duplicate vector element to vector or scalar"]
11644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f32_vfp4)"]
11645#[inline(always)]
11646#[target_feature(enable = "neon")]
11647#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
11648#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11649#[cfg_attr(
11650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11651    assert_instr(dup)
11652)]
11653#[cfg_attr(
11654    not(target_arch = "arm"),
11655    stable(feature = "neon_intrinsics", since = "1.59.0")
11656)]
11657#[cfg_attr(
11658    target_arch = "arm",
11659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11660)]
11661fn vdup_n_f32_vfp4(value: f32) -> float32x2_t {
11662    float32x2_t::splat(value)
11663}
11664#[doc = "Duplicate vector element to vector or scalar"]
11665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f32_vfp4)"]
11666#[inline(always)]
11667#[target_feature(enable = "neon")]
11668#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
11669#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11670#[cfg_attr(
11671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11672    assert_instr(dup)
11673)]
11674#[cfg_attr(
11675    not(target_arch = "arm"),
11676    stable(feature = "neon_intrinsics", since = "1.59.0")
11677)]
11678#[cfg_attr(
11679    target_arch = "arm",
11680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11681)]
11682fn vdupq_n_f32_vfp4(value: f32) -> float32x4_t {
11683    float32x4_t::splat(value)
11684}
11685#[doc = "Set all vector lanes to the same value"]
11686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s64)"]
11687#[inline(always)]
11688#[target_feature(enable = "neon")]
11689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
11691#[cfg_attr(
11692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11693    assert_instr(dup, N = 0)
11694)]
11695#[rustc_legacy_const_generics(1)]
11696#[cfg_attr(
11697    not(target_arch = "arm"),
11698    stable(feature = "neon_intrinsics", since = "1.59.0")
11699)]
11700#[cfg_attr(
11701    target_arch = "arm",
11702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11703)]
11704pub fn vdupq_lane_s64<const N: i32>(a: int64x1_t) -> int64x2_t {
11705    static_assert!(N == 0);
11706    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11707}
11708#[doc = "Set all vector lanes to the same value"]
11709#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u64)"]
11710#[inline(always)]
11711#[target_feature(enable = "neon")]
11712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
11714#[cfg_attr(
11715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11716    assert_instr(dup, N = 0)
11717)]
11718#[rustc_legacy_const_generics(1)]
11719#[cfg_attr(
11720    not(target_arch = "arm"),
11721    stable(feature = "neon_intrinsics", since = "1.59.0")
11722)]
11723#[cfg_attr(
11724    target_arch = "arm",
11725    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11726)]
11727pub fn vdupq_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x2_t {
11728    static_assert!(N == 0);
11729    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11730}
11731#[doc = "Set all vector lanes to the same value"]
11732#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s64)"]
11733#[inline(always)]
11734#[target_feature(enable = "neon")]
11735#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11736#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11737#[cfg_attr(
11738    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11739    assert_instr(dup, N = 1)
11740)]
11741#[rustc_legacy_const_generics(1)]
11742#[cfg_attr(
11743    not(target_arch = "arm"),
11744    stable(feature = "neon_intrinsics", since = "1.59.0")
11745)]
11746#[cfg_attr(
11747    target_arch = "arm",
11748    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11749)]
11750pub fn vdupq_laneq_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
11751    static_assert_uimm_bits!(N, 1);
11752    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11753}
11754#[doc = "Set all vector lanes to the same value"]
11755#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u64)"]
11756#[inline(always)]
11757#[target_feature(enable = "neon")]
11758#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11759#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11760#[cfg_attr(
11761    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11762    assert_instr(dup, N = 1)
11763)]
11764#[rustc_legacy_const_generics(1)]
11765#[cfg_attr(
11766    not(target_arch = "arm"),
11767    stable(feature = "neon_intrinsics", since = "1.59.0")
11768)]
11769#[cfg_attr(
11770    target_arch = "arm",
11771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11772)]
11773pub fn vdupq_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
11774    static_assert_uimm_bits!(N, 1);
11775    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11776}
11777#[doc = "Vector bitwise exclusive or (vector)"]
11778#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s8)"]
11779#[inline(always)]
11780#[target_feature(enable = "neon")]
11781#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11782#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11783#[cfg_attr(
11784    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11785    assert_instr(eor)
11786)]
11787#[cfg_attr(
11788    not(target_arch = "arm"),
11789    stable(feature = "neon_intrinsics", since = "1.59.0")
11790)]
11791#[cfg_attr(
11792    target_arch = "arm",
11793    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11794)]
11795pub fn veor_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
11796    unsafe { simd_xor(a, b) }
11797}
11798#[doc = "Vector bitwise exclusive or (vector)"]
11799#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s8)"]
11800#[inline(always)]
11801#[target_feature(enable = "neon")]
11802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11803#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11804#[cfg_attr(
11805    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11806    assert_instr(eor)
11807)]
11808#[cfg_attr(
11809    not(target_arch = "arm"),
11810    stable(feature = "neon_intrinsics", since = "1.59.0")
11811)]
11812#[cfg_attr(
11813    target_arch = "arm",
11814    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11815)]
11816pub fn veorq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
11817    unsafe { simd_xor(a, b) }
11818}
11819#[doc = "Vector bitwise exclusive or (vector)"]
11820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s16)"]
11821#[inline(always)]
11822#[target_feature(enable = "neon")]
11823#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11824#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11825#[cfg_attr(
11826    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11827    assert_instr(eor)
11828)]
11829#[cfg_attr(
11830    not(target_arch = "arm"),
11831    stable(feature = "neon_intrinsics", since = "1.59.0")
11832)]
11833#[cfg_attr(
11834    target_arch = "arm",
11835    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11836)]
11837pub fn veor_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
11838    unsafe { simd_xor(a, b) }
11839}
11840#[doc = "Vector bitwise exclusive or (vector)"]
11841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s16)"]
11842#[inline(always)]
11843#[target_feature(enable = "neon")]
11844#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11845#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11846#[cfg_attr(
11847    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11848    assert_instr(eor)
11849)]
11850#[cfg_attr(
11851    not(target_arch = "arm"),
11852    stable(feature = "neon_intrinsics", since = "1.59.0")
11853)]
11854#[cfg_attr(
11855    target_arch = "arm",
11856    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11857)]
11858pub fn veorq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
11859    unsafe { simd_xor(a, b) }
11860}
11861#[doc = "Vector bitwise exclusive or (vector)"]
11862#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s32)"]
11863#[inline(always)]
11864#[target_feature(enable = "neon")]
11865#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11866#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11867#[cfg_attr(
11868    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11869    assert_instr(eor)
11870)]
11871#[cfg_attr(
11872    not(target_arch = "arm"),
11873    stable(feature = "neon_intrinsics", since = "1.59.0")
11874)]
11875#[cfg_attr(
11876    target_arch = "arm",
11877    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11878)]
11879pub fn veor_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
11880    unsafe { simd_xor(a, b) }
11881}
11882#[doc = "Vector bitwise exclusive or (vector)"]
11883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s32)"]
11884#[inline(always)]
11885#[target_feature(enable = "neon")]
11886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11888#[cfg_attr(
11889    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11890    assert_instr(eor)
11891)]
11892#[cfg_attr(
11893    not(target_arch = "arm"),
11894    stable(feature = "neon_intrinsics", since = "1.59.0")
11895)]
11896#[cfg_attr(
11897    target_arch = "arm",
11898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11899)]
11900pub fn veorq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
11901    unsafe { simd_xor(a, b) }
11902}
11903#[doc = "Vector bitwise exclusive or (vector)"]
11904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s64)"]
11905#[inline(always)]
11906#[target_feature(enable = "neon")]
11907#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11908#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11909#[cfg_attr(
11910    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11911    assert_instr(eor)
11912)]
11913#[cfg_attr(
11914    not(target_arch = "arm"),
11915    stable(feature = "neon_intrinsics", since = "1.59.0")
11916)]
11917#[cfg_attr(
11918    target_arch = "arm",
11919    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11920)]
11921pub fn veor_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
11922    unsafe { simd_xor(a, b) }
11923}
11924#[doc = "Vector bitwise exclusive or (vector)"]
11925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s64)"]
11926#[inline(always)]
11927#[target_feature(enable = "neon")]
11928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11929#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11930#[cfg_attr(
11931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11932    assert_instr(eor)
11933)]
11934#[cfg_attr(
11935    not(target_arch = "arm"),
11936    stable(feature = "neon_intrinsics", since = "1.59.0")
11937)]
11938#[cfg_attr(
11939    target_arch = "arm",
11940    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11941)]
11942pub fn veorq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
11943    unsafe { simd_xor(a, b) }
11944}
11945#[doc = "Vector bitwise exclusive or (vector)"]
11946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u8)"]
11947#[inline(always)]
11948#[target_feature(enable = "neon")]
11949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11950#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11951#[cfg_attr(
11952    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11953    assert_instr(eor)
11954)]
11955#[cfg_attr(
11956    not(target_arch = "arm"),
11957    stable(feature = "neon_intrinsics", since = "1.59.0")
11958)]
11959#[cfg_attr(
11960    target_arch = "arm",
11961    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11962)]
11963pub fn veor_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
11964    unsafe { simd_xor(a, b) }
11965}
11966#[doc = "Vector bitwise exclusive or (vector)"]
11967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u8)"]
11968#[inline(always)]
11969#[target_feature(enable = "neon")]
11970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11972#[cfg_attr(
11973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11974    assert_instr(eor)
11975)]
11976#[cfg_attr(
11977    not(target_arch = "arm"),
11978    stable(feature = "neon_intrinsics", since = "1.59.0")
11979)]
11980#[cfg_attr(
11981    target_arch = "arm",
11982    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11983)]
11984pub fn veorq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
11985    unsafe { simd_xor(a, b) }
11986}
11987#[doc = "Vector bitwise exclusive or (vector)"]
11988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u16)"]
11989#[inline(always)]
11990#[target_feature(enable = "neon")]
11991#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11992#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11993#[cfg_attr(
11994    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11995    assert_instr(eor)
11996)]
11997#[cfg_attr(
11998    not(target_arch = "arm"),
11999    stable(feature = "neon_intrinsics", since = "1.59.0")
12000)]
12001#[cfg_attr(
12002    target_arch = "arm",
12003    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12004)]
12005pub fn veor_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
12006    unsafe { simd_xor(a, b) }
12007}
12008#[doc = "Vector bitwise exclusive or (vector)"]
12009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u16)"]
12010#[inline(always)]
12011#[target_feature(enable = "neon")]
12012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12014#[cfg_attr(
12015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12016    assert_instr(eor)
12017)]
12018#[cfg_attr(
12019    not(target_arch = "arm"),
12020    stable(feature = "neon_intrinsics", since = "1.59.0")
12021)]
12022#[cfg_attr(
12023    target_arch = "arm",
12024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12025)]
12026pub fn veorq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
12027    unsafe { simd_xor(a, b) }
12028}
12029#[doc = "Vector bitwise exclusive or (vector)"]
12030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u32)"]
12031#[inline(always)]
12032#[target_feature(enable = "neon")]
12033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12034#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12035#[cfg_attr(
12036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12037    assert_instr(eor)
12038)]
12039#[cfg_attr(
12040    not(target_arch = "arm"),
12041    stable(feature = "neon_intrinsics", since = "1.59.0")
12042)]
12043#[cfg_attr(
12044    target_arch = "arm",
12045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12046)]
12047pub fn veor_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
12048    unsafe { simd_xor(a, b) }
12049}
12050#[doc = "Vector bitwise exclusive or (vector)"]
12051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u32)"]
12052#[inline(always)]
12053#[target_feature(enable = "neon")]
12054#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12055#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12056#[cfg_attr(
12057    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12058    assert_instr(eor)
12059)]
12060#[cfg_attr(
12061    not(target_arch = "arm"),
12062    stable(feature = "neon_intrinsics", since = "1.59.0")
12063)]
12064#[cfg_attr(
12065    target_arch = "arm",
12066    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12067)]
12068pub fn veorq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
12069    unsafe { simd_xor(a, b) }
12070}
12071#[doc = "Vector bitwise exclusive or (vector)"]
12072#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u64)"]
12073#[inline(always)]
12074#[target_feature(enable = "neon")]
12075#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12076#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12077#[cfg_attr(
12078    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12079    assert_instr(eor)
12080)]
12081#[cfg_attr(
12082    not(target_arch = "arm"),
12083    stable(feature = "neon_intrinsics", since = "1.59.0")
12084)]
12085#[cfg_attr(
12086    target_arch = "arm",
12087    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12088)]
12089pub fn veor_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
12090    unsafe { simd_xor(a, b) }
12091}
12092#[doc = "Vector bitwise exclusive or (vector)"]
12093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u64)"]
12094#[inline(always)]
12095#[target_feature(enable = "neon")]
12096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12097#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12098#[cfg_attr(
12099    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12100    assert_instr(eor)
12101)]
12102#[cfg_attr(
12103    not(target_arch = "arm"),
12104    stable(feature = "neon_intrinsics", since = "1.59.0")
12105)]
12106#[cfg_attr(
12107    target_arch = "arm",
12108    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12109)]
12110pub fn veorq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
12111    unsafe { simd_xor(a, b) }
12112}
12113#[doc = "Extract vector from pair of vectors"]
12114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_f16)"]
12115#[inline(always)]
12116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12117#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12118#[cfg_attr(
12119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12120    assert_instr(ext, N = 3)
12121)]
12122#[rustc_legacy_const_generics(2)]
12123#[target_feature(enable = "neon,fp16")]
12124#[cfg_attr(
12125    not(target_arch = "arm"),
12126    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
12127)]
12128#[cfg_attr(
12129    target_arch = "arm",
12130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12131)]
12132#[cfg(not(target_arch = "arm64ec"))]
12133pub fn vext_f16<const N: i32>(a: float16x4_t, b: float16x4_t) -> float16x4_t {
12134    static_assert_uimm_bits!(N, 2);
12135    unsafe {
12136        match N & 0b11 {
12137            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12138            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12139            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12140            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12141            _ => unreachable_unchecked(),
12142        }
12143    }
12144}
12145#[doc = "Extract vector from pair of vectors"]
12146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_f32)"]
12147#[inline(always)]
12148#[target_feature(enable = "neon")]
12149#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12150#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
12151#[cfg_attr(
12152    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12153    assert_instr(ext, N = 1)
12154)]
12155#[rustc_legacy_const_generics(2)]
12156#[cfg_attr(
12157    not(target_arch = "arm"),
12158    stable(feature = "neon_intrinsics", since = "1.59.0")
12159)]
12160#[cfg_attr(
12161    target_arch = "arm",
12162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12163)]
12164pub fn vext_f32<const N: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
12165    static_assert_uimm_bits!(N, 1);
12166    unsafe {
12167        match N & 0b1 {
12168            0 => simd_shuffle!(a, b, [0, 1]),
12169            1 => simd_shuffle!(a, b, [1, 2]),
12170            _ => unreachable_unchecked(),
12171        }
12172    }
12173}
12174#[doc = "Extract vector from pair of vectors"]
12175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s32)"]
12176#[inline(always)]
12177#[target_feature(enable = "neon")]
12178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12179#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
12180#[cfg_attr(
12181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12182    assert_instr(ext, N = 1)
12183)]
12184#[rustc_legacy_const_generics(2)]
12185#[cfg_attr(
12186    not(target_arch = "arm"),
12187    stable(feature = "neon_intrinsics", since = "1.59.0")
12188)]
12189#[cfg_attr(
12190    target_arch = "arm",
12191    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12192)]
12193pub fn vext_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
12194    static_assert_uimm_bits!(N, 1);
12195    unsafe {
12196        match N & 0b1 {
12197            0 => simd_shuffle!(a, b, [0, 1]),
12198            1 => simd_shuffle!(a, b, [1, 2]),
12199            _ => unreachable_unchecked(),
12200        }
12201    }
12202}
12203#[doc = "Extract vector from pair of vectors"]
12204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u32)"]
12205#[inline(always)]
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("vext.8", N = 1))]
12209#[cfg_attr(
12210    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12211    assert_instr(ext, N = 1)
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 fn vext_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
12223    static_assert_uimm_bits!(N, 1);
12224    unsafe {
12225        match N & 0b1 {
12226            0 => simd_shuffle!(a, b, [0, 1]),
12227            1 => simd_shuffle!(a, b, [1, 2]),
12228            _ => unreachable_unchecked(),
12229        }
12230    }
12231}
12232#[doc = "Extract vector from pair of vectors"]
12233#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s64)"]
12234#[doc = "## Safety"]
12235#[doc = "  * Neon intrinsic unsafe"]
12236#[inline(always)]
12237#[target_feature(enable = "neon")]
12238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12239#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
12240#[cfg_attr(
12241    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12242    assert_instr(nop, N = 0)
12243)]
12244#[rustc_legacy_const_generics(2)]
12245#[cfg_attr(
12246    not(target_arch = "arm"),
12247    stable(feature = "neon_intrinsics", since = "1.59.0")
12248)]
12249#[cfg_attr(
12250    target_arch = "arm",
12251    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12252)]
12253pub unsafe fn vext_s64<const N: i32>(a: int64x1_t, _b: int64x1_t) -> int64x1_t {
12254    static_assert!(N == 0);
12255    a
12256}
12257#[doc = "Extract vector from pair of vectors"]
12258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u64)"]
12259#[doc = "## Safety"]
12260#[doc = "  * Neon intrinsic unsafe"]
12261#[inline(always)]
12262#[target_feature(enable = "neon")]
12263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
12265#[cfg_attr(
12266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12267    assert_instr(nop, N = 0)
12268)]
12269#[rustc_legacy_const_generics(2)]
12270#[cfg_attr(
12271    not(target_arch = "arm"),
12272    stable(feature = "neon_intrinsics", since = "1.59.0")
12273)]
12274#[cfg_attr(
12275    target_arch = "arm",
12276    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12277)]
12278pub unsafe fn vext_u64<const N: i32>(a: uint64x1_t, _b: uint64x1_t) -> uint64x1_t {
12279    static_assert!(N == 0);
12280    a
12281}
12282#[doc = "Extract vector from pair of vectors"]
12283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s8)"]
12284#[inline(always)]
12285#[target_feature(enable = "neon")]
12286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12287#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12288#[cfg_attr(
12289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12290    assert_instr(ext, N = 7)
12291)]
12292#[rustc_legacy_const_generics(2)]
12293#[cfg_attr(
12294    not(target_arch = "arm"),
12295    stable(feature = "neon_intrinsics", since = "1.59.0")
12296)]
12297#[cfg_attr(
12298    target_arch = "arm",
12299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12300)]
12301pub fn vext_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
12302    static_assert_uimm_bits!(N, 3);
12303    unsafe {
12304        match N & 0b111 {
12305            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12306            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12307            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12308            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12309            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12310            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12311            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12312            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12313            _ => unreachable_unchecked(),
12314        }
12315    }
12316}
12317#[doc = "Extract vector from pair of vectors"]
12318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s16)"]
12319#[inline(always)]
12320#[target_feature(enable = "neon")]
12321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12322#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12323#[cfg_attr(
12324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12325    assert_instr(ext, N = 7)
12326)]
12327#[rustc_legacy_const_generics(2)]
12328#[cfg_attr(
12329    not(target_arch = "arm"),
12330    stable(feature = "neon_intrinsics", since = "1.59.0")
12331)]
12332#[cfg_attr(
12333    target_arch = "arm",
12334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12335)]
12336pub fn vextq_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
12337    static_assert_uimm_bits!(N, 3);
12338    unsafe {
12339        match N & 0b111 {
12340            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12341            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12342            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12343            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12344            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12345            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12346            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12347            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12348            _ => unreachable_unchecked(),
12349        }
12350    }
12351}
12352#[doc = "Extract vector from pair of vectors"]
12353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u8)"]
12354#[inline(always)]
12355#[target_feature(enable = "neon")]
12356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12357#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12358#[cfg_attr(
12359    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12360    assert_instr(ext, N = 7)
12361)]
12362#[rustc_legacy_const_generics(2)]
12363#[cfg_attr(
12364    not(target_arch = "arm"),
12365    stable(feature = "neon_intrinsics", since = "1.59.0")
12366)]
12367#[cfg_attr(
12368    target_arch = "arm",
12369    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12370)]
12371pub fn vext_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
12372    static_assert_uimm_bits!(N, 3);
12373    unsafe {
12374        match N & 0b111 {
12375            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12376            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12377            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12378            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12379            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12380            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12381            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12382            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12383            _ => unreachable_unchecked(),
12384        }
12385    }
12386}
12387#[doc = "Extract vector from pair of vectors"]
12388#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u16)"]
12389#[inline(always)]
12390#[target_feature(enable = "neon")]
12391#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12392#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12393#[cfg_attr(
12394    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12395    assert_instr(ext, N = 7)
12396)]
12397#[rustc_legacy_const_generics(2)]
12398#[cfg_attr(
12399    not(target_arch = "arm"),
12400    stable(feature = "neon_intrinsics", since = "1.59.0")
12401)]
12402#[cfg_attr(
12403    target_arch = "arm",
12404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12405)]
12406pub fn vextq_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
12407    static_assert_uimm_bits!(N, 3);
12408    unsafe {
12409        match N & 0b111 {
12410            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12411            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12412            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12413            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12414            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12415            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12416            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12417            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12418            _ => unreachable_unchecked(),
12419        }
12420    }
12421}
12422#[doc = "Extract vector from pair of vectors"]
12423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p8)"]
12424#[inline(always)]
12425#[target_feature(enable = "neon")]
12426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12428#[cfg_attr(
12429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12430    assert_instr(ext, N = 7)
12431)]
12432#[rustc_legacy_const_generics(2)]
12433#[cfg_attr(
12434    not(target_arch = "arm"),
12435    stable(feature = "neon_intrinsics", since = "1.59.0")
12436)]
12437#[cfg_attr(
12438    target_arch = "arm",
12439    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12440)]
12441pub fn vext_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
12442    static_assert_uimm_bits!(N, 3);
12443    unsafe {
12444        match N & 0b111 {
12445            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12446            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12447            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12448            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12449            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12450            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12451            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12452            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12453            _ => unreachable_unchecked(),
12454        }
12455    }
12456}
12457#[doc = "Extract vector from pair of vectors"]
12458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p16)"]
12459#[inline(always)]
12460#[target_feature(enable = "neon")]
12461#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12462#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12463#[cfg_attr(
12464    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12465    assert_instr(ext, N = 7)
12466)]
12467#[rustc_legacy_const_generics(2)]
12468#[cfg_attr(
12469    not(target_arch = "arm"),
12470    stable(feature = "neon_intrinsics", since = "1.59.0")
12471)]
12472#[cfg_attr(
12473    target_arch = "arm",
12474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12475)]
12476pub fn vextq_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
12477    static_assert_uimm_bits!(N, 3);
12478    unsafe {
12479        match N & 0b111 {
12480            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12481            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12482            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12483            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12484            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12485            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12486            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12487            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12488            _ => unreachable_unchecked(),
12489        }
12490    }
12491}
12492#[doc = "Extract vector from pair of vectors"]
12493#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_f16)"]
12494#[inline(always)]
12495#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12496#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12497#[cfg_attr(
12498    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12499    assert_instr(ext, N = 7)
12500)]
12501#[rustc_legacy_const_generics(2)]
12502#[target_feature(enable = "neon,fp16")]
12503#[cfg_attr(
12504    not(target_arch = "arm"),
12505    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
12506)]
12507#[cfg_attr(
12508    target_arch = "arm",
12509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12510)]
12511#[cfg(not(target_arch = "arm64ec"))]
12512pub fn vextq_f16<const N: i32>(a: float16x8_t, b: float16x8_t) -> float16x8_t {
12513    static_assert_uimm_bits!(N, 3);
12514    unsafe {
12515        match N & 0b111 {
12516            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12517            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12518            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12519            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12520            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12521            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12522            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12523            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12524            _ => unreachable_unchecked(),
12525        }
12526    }
12527}
12528#[doc = "Extract vector from pair of vectors"]
12529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_f32)"]
12530#[inline(always)]
12531#[target_feature(enable = "neon")]
12532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12533#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12534#[cfg_attr(
12535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12536    assert_instr(ext, N = 3)
12537)]
12538#[rustc_legacy_const_generics(2)]
12539#[cfg_attr(
12540    not(target_arch = "arm"),
12541    stable(feature = "neon_intrinsics", since = "1.59.0")
12542)]
12543#[cfg_attr(
12544    target_arch = "arm",
12545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12546)]
12547pub fn vextq_f32<const N: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
12548    static_assert_uimm_bits!(N, 2);
12549    unsafe {
12550        match N & 0b11 {
12551            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12552            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12553            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12554            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12555            _ => unreachable_unchecked(),
12556        }
12557    }
12558}
12559#[doc = "Extract vector from pair of vectors"]
12560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s16)"]
12561#[inline(always)]
12562#[target_feature(enable = "neon")]
12563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12564#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12565#[cfg_attr(
12566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12567    assert_instr(ext, N = 3)
12568)]
12569#[rustc_legacy_const_generics(2)]
12570#[cfg_attr(
12571    not(target_arch = "arm"),
12572    stable(feature = "neon_intrinsics", since = "1.59.0")
12573)]
12574#[cfg_attr(
12575    target_arch = "arm",
12576    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12577)]
12578pub fn vext_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
12579    static_assert_uimm_bits!(N, 2);
12580    unsafe {
12581        match N & 0b11 {
12582            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12583            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12584            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12585            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12586            _ => unreachable_unchecked(),
12587        }
12588    }
12589}
12590#[doc = "Extract vector from pair of vectors"]
12591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s32)"]
12592#[inline(always)]
12593#[target_feature(enable = "neon")]
12594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12595#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12596#[cfg_attr(
12597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12598    assert_instr(ext, N = 3)
12599)]
12600#[rustc_legacy_const_generics(2)]
12601#[cfg_attr(
12602    not(target_arch = "arm"),
12603    stable(feature = "neon_intrinsics", since = "1.59.0")
12604)]
12605#[cfg_attr(
12606    target_arch = "arm",
12607    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12608)]
12609pub fn vextq_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
12610    static_assert_uimm_bits!(N, 2);
12611    unsafe {
12612        match N & 0b11 {
12613            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12614            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12615            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12616            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12617            _ => unreachable_unchecked(),
12618        }
12619    }
12620}
12621#[doc = "Extract vector from pair of vectors"]
12622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u16)"]
12623#[inline(always)]
12624#[target_feature(enable = "neon")]
12625#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12626#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12627#[cfg_attr(
12628    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12629    assert_instr(ext, N = 3)
12630)]
12631#[rustc_legacy_const_generics(2)]
12632#[cfg_attr(
12633    not(target_arch = "arm"),
12634    stable(feature = "neon_intrinsics", since = "1.59.0")
12635)]
12636#[cfg_attr(
12637    target_arch = "arm",
12638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12639)]
12640pub fn vext_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
12641    static_assert_uimm_bits!(N, 2);
12642    unsafe {
12643        match N & 0b11 {
12644            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12645            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12646            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12647            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12648            _ => unreachable_unchecked(),
12649        }
12650    }
12651}
12652#[doc = "Extract vector from pair of vectors"]
12653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u32)"]
12654#[inline(always)]
12655#[target_feature(enable = "neon")]
12656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12657#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12658#[cfg_attr(
12659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12660    assert_instr(ext, N = 3)
12661)]
12662#[rustc_legacy_const_generics(2)]
12663#[cfg_attr(
12664    not(target_arch = "arm"),
12665    stable(feature = "neon_intrinsics", since = "1.59.0")
12666)]
12667#[cfg_attr(
12668    target_arch = "arm",
12669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12670)]
12671pub fn vextq_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
12672    static_assert_uimm_bits!(N, 2);
12673    unsafe {
12674        match N & 0b11 {
12675            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12676            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12677            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12678            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12679            _ => unreachable_unchecked(),
12680        }
12681    }
12682}
12683#[doc = "Extract vector from pair of vectors"]
12684#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p16)"]
12685#[inline(always)]
12686#[target_feature(enable = "neon")]
12687#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12688#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12689#[cfg_attr(
12690    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12691    assert_instr(ext, N = 3)
12692)]
12693#[rustc_legacy_const_generics(2)]
12694#[cfg_attr(
12695    not(target_arch = "arm"),
12696    stable(feature = "neon_intrinsics", since = "1.59.0")
12697)]
12698#[cfg_attr(
12699    target_arch = "arm",
12700    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12701)]
12702pub fn vext_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
12703    static_assert_uimm_bits!(N, 2);
12704    unsafe {
12705        match N & 0b11 {
12706            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12707            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12708            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12709            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12710            _ => unreachable_unchecked(),
12711        }
12712    }
12713}
12714#[doc = "Extract vector from pair of vectors"]
12715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s64)"]
12716#[inline(always)]
12717#[target_feature(enable = "neon")]
12718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
12720#[cfg_attr(
12721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12722    assert_instr(ext, N = 1)
12723)]
12724#[rustc_legacy_const_generics(2)]
12725#[cfg_attr(
12726    not(target_arch = "arm"),
12727    stable(feature = "neon_intrinsics", since = "1.59.0")
12728)]
12729#[cfg_attr(
12730    target_arch = "arm",
12731    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12732)]
12733pub fn vextq_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
12734    static_assert_uimm_bits!(N, 1);
12735    unsafe {
12736        match N & 0b1 {
12737            0 => simd_shuffle!(a, b, [0, 1]),
12738            1 => simd_shuffle!(a, b, [1, 2]),
12739            _ => unreachable_unchecked(),
12740        }
12741    }
12742}
12743#[doc = "Extract vector from pair of vectors"]
12744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u64)"]
12745#[inline(always)]
12746#[target_feature(enable = "neon")]
12747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
12749#[cfg_attr(
12750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12751    assert_instr(ext, N = 1)
12752)]
12753#[rustc_legacy_const_generics(2)]
12754#[cfg_attr(
12755    not(target_arch = "arm"),
12756    stable(feature = "neon_intrinsics", since = "1.59.0")
12757)]
12758#[cfg_attr(
12759    target_arch = "arm",
12760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12761)]
12762pub fn vextq_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
12763    static_assert_uimm_bits!(N, 1);
12764    unsafe {
12765        match N & 0b1 {
12766            0 => simd_shuffle!(a, b, [0, 1]),
12767            1 => simd_shuffle!(a, b, [1, 2]),
12768            _ => unreachable_unchecked(),
12769        }
12770    }
12771}
12772#[doc = "Extract vector from pair of vectors"]
12773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s8)"]
12774#[inline(always)]
12775#[target_feature(enable = "neon")]
12776#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12777#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12778#[cfg_attr(
12779    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12780    assert_instr(ext, N = 15)
12781)]
12782#[rustc_legacy_const_generics(2)]
12783#[cfg_attr(
12784    not(target_arch = "arm"),
12785    stable(feature = "neon_intrinsics", since = "1.59.0")
12786)]
12787#[cfg_attr(
12788    target_arch = "arm",
12789    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12790)]
12791pub fn vextq_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
12792    static_assert_uimm_bits!(N, 4);
12793    unsafe {
12794        match N & 0b1111 {
12795            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
12796            1 => simd_shuffle!(
12797                a,
12798                b,
12799                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
12800            ),
12801            2 => simd_shuffle!(
12802                a,
12803                b,
12804                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
12805            ),
12806            3 => simd_shuffle!(
12807                a,
12808                b,
12809                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
12810            ),
12811            4 => simd_shuffle!(
12812                a,
12813                b,
12814                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
12815            ),
12816            5 => simd_shuffle!(
12817                a,
12818                b,
12819                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
12820            ),
12821            6 => simd_shuffle!(
12822                a,
12823                b,
12824                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
12825            ),
12826            7 => simd_shuffle!(
12827                a,
12828                b,
12829                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
12830            ),
12831            8 => simd_shuffle!(
12832                a,
12833                b,
12834                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12835            ),
12836            9 => simd_shuffle!(
12837                a,
12838                b,
12839                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
12840            ),
12841            10 => simd_shuffle!(
12842                a,
12843                b,
12844                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
12845            ),
12846            11 => simd_shuffle!(
12847                a,
12848                b,
12849                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
12850            ),
12851            12 => simd_shuffle!(
12852                a,
12853                b,
12854                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
12855            ),
12856            13 => simd_shuffle!(
12857                a,
12858                b,
12859                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
12860            ),
12861            14 => simd_shuffle!(
12862                a,
12863                b,
12864                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
12865            ),
12866            15 => simd_shuffle!(
12867                a,
12868                b,
12869                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
12870            ),
12871            _ => unreachable_unchecked(),
12872        }
12873    }
12874}
12875#[doc = "Extract vector from pair of vectors"]
12876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u8)"]
12877#[inline(always)]
12878#[target_feature(enable = "neon")]
12879#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12880#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12881#[cfg_attr(
12882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12883    assert_instr(ext, N = 15)
12884)]
12885#[rustc_legacy_const_generics(2)]
12886#[cfg_attr(
12887    not(target_arch = "arm"),
12888    stable(feature = "neon_intrinsics", since = "1.59.0")
12889)]
12890#[cfg_attr(
12891    target_arch = "arm",
12892    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12893)]
12894pub fn vextq_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
12895    static_assert_uimm_bits!(N, 4);
12896    unsafe {
12897        match N & 0b1111 {
12898            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
12899            1 => simd_shuffle!(
12900                a,
12901                b,
12902                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
12903            ),
12904            2 => simd_shuffle!(
12905                a,
12906                b,
12907                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
12908            ),
12909            3 => simd_shuffle!(
12910                a,
12911                b,
12912                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
12913            ),
12914            4 => simd_shuffle!(
12915                a,
12916                b,
12917                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
12918            ),
12919            5 => simd_shuffle!(
12920                a,
12921                b,
12922                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
12923            ),
12924            6 => simd_shuffle!(
12925                a,
12926                b,
12927                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
12928            ),
12929            7 => simd_shuffle!(
12930                a,
12931                b,
12932                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
12933            ),
12934            8 => simd_shuffle!(
12935                a,
12936                b,
12937                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12938            ),
12939            9 => simd_shuffle!(
12940                a,
12941                b,
12942                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
12943            ),
12944            10 => simd_shuffle!(
12945                a,
12946                b,
12947                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
12948            ),
12949            11 => simd_shuffle!(
12950                a,
12951                b,
12952                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
12953            ),
12954            12 => simd_shuffle!(
12955                a,
12956                b,
12957                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
12958            ),
12959            13 => simd_shuffle!(
12960                a,
12961                b,
12962                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
12963            ),
12964            14 => simd_shuffle!(
12965                a,
12966                b,
12967                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
12968            ),
12969            15 => simd_shuffle!(
12970                a,
12971                b,
12972                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
12973            ),
12974            _ => unreachable_unchecked(),
12975        }
12976    }
12977}
12978#[doc = "Extract vector from pair of vectors"]
12979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p8)"]
12980#[inline(always)]
12981#[target_feature(enable = "neon")]
12982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12983#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12984#[cfg_attr(
12985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12986    assert_instr(ext, N = 15)
12987)]
12988#[rustc_legacy_const_generics(2)]
12989#[cfg_attr(
12990    not(target_arch = "arm"),
12991    stable(feature = "neon_intrinsics", since = "1.59.0")
12992)]
12993#[cfg_attr(
12994    target_arch = "arm",
12995    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12996)]
12997pub fn vextq_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
12998    static_assert_uimm_bits!(N, 4);
12999    unsafe {
13000        match N & 0b1111 {
13001            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
13002            1 => simd_shuffle!(
13003                a,
13004                b,
13005                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
13006            ),
13007            2 => simd_shuffle!(
13008                a,
13009                b,
13010                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
13011            ),
13012            3 => simd_shuffle!(
13013                a,
13014                b,
13015                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
13016            ),
13017            4 => simd_shuffle!(
13018                a,
13019                b,
13020                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
13021            ),
13022            5 => simd_shuffle!(
13023                a,
13024                b,
13025                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
13026            ),
13027            6 => simd_shuffle!(
13028                a,
13029                b,
13030                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
13031            ),
13032            7 => simd_shuffle!(
13033                a,
13034                b,
13035                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
13036            ),
13037            8 => simd_shuffle!(
13038                a,
13039                b,
13040                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
13041            ),
13042            9 => simd_shuffle!(
13043                a,
13044                b,
13045                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
13046            ),
13047            10 => simd_shuffle!(
13048                a,
13049                b,
13050                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
13051            ),
13052            11 => simd_shuffle!(
13053                a,
13054                b,
13055                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
13056            ),
13057            12 => simd_shuffle!(
13058                a,
13059                b,
13060                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
13061            ),
13062            13 => simd_shuffle!(
13063                a,
13064                b,
13065                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
13066            ),
13067            14 => simd_shuffle!(
13068                a,
13069                b,
13070                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
13071            ),
13072            15 => simd_shuffle!(
13073                a,
13074                b,
13075                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
13076            ),
13077            _ => unreachable_unchecked(),
13078        }
13079    }
13080}
13081#[doc = "Floating-point fused Multiply-Add to accumulator (vector)"]
13082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_f16)"]
13083#[inline(always)]
13084#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13085#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13086#[cfg_attr(
13087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13088    assert_instr(fmla)
13089)]
13090#[target_feature(enable = "neon,fp16")]
13091#[cfg_attr(
13092    not(target_arch = "arm"),
13093    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13094)]
13095#[cfg_attr(
13096    target_arch = "arm",
13097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13098)]
13099#[cfg(not(target_arch = "arm64ec"))]
13100pub fn vfma_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
13101    unsafe { simd_fma(b, c, a) }
13102}
13103#[doc = "Floating-point fused Multiply-Add to accumulator (vector)"]
13104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_f16)"]
13105#[inline(always)]
13106#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13108#[cfg_attr(
13109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13110    assert_instr(fmla)
13111)]
13112#[target_feature(enable = "neon,fp16")]
13113#[cfg_attr(
13114    not(target_arch = "arm"),
13115    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13116)]
13117#[cfg_attr(
13118    target_arch = "arm",
13119    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13120)]
13121#[cfg(not(target_arch = "arm64ec"))]
13122pub fn vfmaq_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
13123    unsafe { simd_fma(b, c, a) }
13124}
13125#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_f32)"]
13127#[inline(always)]
13128#[target_feature(enable = "neon")]
13129#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13130#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13131#[cfg_attr(
13132    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13133    assert_instr(fmla)
13134)]
13135#[cfg_attr(
13136    not(target_arch = "arm"),
13137    stable(feature = "neon_intrinsics", since = "1.59.0")
13138)]
13139#[cfg_attr(
13140    target_arch = "arm",
13141    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13142)]
13143pub fn vfma_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
13144    unsafe { simd_fma(b, c, a) }
13145}
13146#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13147#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_f32)"]
13148#[inline(always)]
13149#[target_feature(enable = "neon")]
13150#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13152#[cfg_attr(
13153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13154    assert_instr(fmla)
13155)]
13156#[cfg_attr(
13157    not(target_arch = "arm"),
13158    stable(feature = "neon_intrinsics", since = "1.59.0")
13159)]
13160#[cfg_attr(
13161    target_arch = "arm",
13162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13163)]
13164pub fn vfmaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
13165    unsafe { simd_fma(b, c, a) }
13166}
13167#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_n_f32)"]
13169#[inline(always)]
13170#[target_feature(enable = "neon")]
13171#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13173#[cfg_attr(
13174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13175    assert_instr(fmla)
13176)]
13177#[cfg_attr(
13178    not(target_arch = "arm"),
13179    stable(feature = "neon_intrinsics", since = "1.59.0")
13180)]
13181#[cfg_attr(
13182    target_arch = "arm",
13183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13184)]
13185pub fn vfma_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
13186    vfma_f32(a, b, vdup_n_f32_vfp4(c))
13187}
13188#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_n_f32)"]
13190#[inline(always)]
13191#[target_feature(enable = "neon")]
13192#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13194#[cfg_attr(
13195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13196    assert_instr(fmla)
13197)]
13198#[cfg_attr(
13199    not(target_arch = "arm"),
13200    stable(feature = "neon_intrinsics", since = "1.59.0")
13201)]
13202#[cfg_attr(
13203    target_arch = "arm",
13204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13205)]
13206pub fn vfmaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
13207    vfmaq_f32(a, b, vdupq_n_f32_vfp4(c))
13208}
13209#[doc = "Floating-point fused multiply-subtract from accumulator"]
13210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_f16)"]
13211#[inline(always)]
13212#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
13213#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13214#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
13215#[cfg_attr(
13216    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13217    assert_instr(fmls)
13218)]
13219#[target_feature(enable = "neon,fp16")]
13220#[cfg_attr(
13221    not(target_arch = "arm"),
13222    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13223)]
13224#[cfg_attr(
13225    target_arch = "arm",
13226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13227)]
13228#[cfg(not(target_arch = "arm64ec"))]
13229pub fn vfms_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
13230    unsafe {
13231        let b: float16x4_t = simd_neg(b);
13232        vfma_f16(a, b, c)
13233    }
13234}
13235#[doc = "Floating-point fused multiply-subtract from accumulator"]
13236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_f16)"]
13237#[inline(always)]
13238#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
13239#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13240#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
13241#[cfg_attr(
13242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13243    assert_instr(fmls)
13244)]
13245#[target_feature(enable = "neon,fp16")]
13246#[cfg_attr(
13247    not(target_arch = "arm"),
13248    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13249)]
13250#[cfg_attr(
13251    target_arch = "arm",
13252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13253)]
13254#[cfg(not(target_arch = "arm64ec"))]
13255pub fn vfmsq_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
13256    unsafe {
13257        let b: float16x8_t = simd_neg(b);
13258        vfmaq_f16(a, b, c)
13259    }
13260}
13261#[doc = "Floating-point fused multiply-subtract from accumulator"]
13262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_f32)"]
13263#[inline(always)]
13264#[target_feature(enable = "neon")]
13265#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13266#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13267#[cfg_attr(
13268    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13269    assert_instr(fmls)
13270)]
13271#[cfg_attr(
13272    not(target_arch = "arm"),
13273    stable(feature = "neon_intrinsics", since = "1.59.0")
13274)]
13275#[cfg_attr(
13276    target_arch = "arm",
13277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13278)]
13279pub fn vfms_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
13280    unsafe {
13281        let b: float32x2_t = simd_neg(b);
13282        vfma_f32(a, b, c)
13283    }
13284}
13285#[doc = "Floating-point fused multiply-subtract from accumulator"]
13286#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_f32)"]
13287#[inline(always)]
13288#[target_feature(enable = "neon")]
13289#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13290#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13291#[cfg_attr(
13292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13293    assert_instr(fmls)
13294)]
13295#[cfg_attr(
13296    not(target_arch = "arm"),
13297    stable(feature = "neon_intrinsics", since = "1.59.0")
13298)]
13299#[cfg_attr(
13300    target_arch = "arm",
13301    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13302)]
13303pub fn vfmsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
13304    unsafe {
13305        let b: float32x4_t = simd_neg(b);
13306        vfmaq_f32(a, b, c)
13307    }
13308}
13309#[doc = "Floating-point fused Multiply-subtract to accumulator(vector)"]
13310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_n_f32)"]
13311#[inline(always)]
13312#[target_feature(enable = "neon")]
13313#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13314#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13315#[cfg_attr(
13316    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13317    assert_instr(fmls)
13318)]
13319#[cfg_attr(
13320    not(target_arch = "arm"),
13321    stable(feature = "neon_intrinsics", since = "1.59.0")
13322)]
13323#[cfg_attr(
13324    target_arch = "arm",
13325    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13326)]
13327pub fn vfms_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
13328    vfms_f32(a, b, vdup_n_f32_vfp4(c))
13329}
13330#[doc = "Floating-point fused Multiply-subtract to accumulator(vector)"]
13331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_n_f32)"]
13332#[inline(always)]
13333#[target_feature(enable = "neon")]
13334#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13335#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13336#[cfg_attr(
13337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13338    assert_instr(fmls)
13339)]
13340#[cfg_attr(
13341    not(target_arch = "arm"),
13342    stable(feature = "neon_intrinsics", since = "1.59.0")
13343)]
13344#[cfg_attr(
13345    target_arch = "arm",
13346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13347)]
13348pub fn vfmsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
13349    vfmsq_f32(a, b, vdupq_n_f32_vfp4(c))
13350}
13351#[doc = "Duplicate vector element to vector"]
13352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_f16)"]
13353#[inline(always)]
13354#[target_feature(enable = "neon")]
13355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13356#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13357#[cfg_attr(
13358    not(target_arch = "arm"),
13359    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13360)]
13361#[cfg_attr(
13362    target_arch = "arm",
13363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13364)]
13365#[cfg(not(target_arch = "arm64ec"))]
13366#[cfg_attr(test, assert_instr(nop))]
13367pub fn vget_high_f16(a: float16x8_t) -> float16x4_t {
13368    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13369}
13370#[doc = "Duplicate vector element to vector"]
13371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_f16)"]
13372#[inline(always)]
13373#[target_feature(enable = "neon")]
13374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13375#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13376#[cfg_attr(
13377    not(target_arch = "arm"),
13378    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13379)]
13380#[cfg_attr(
13381    target_arch = "arm",
13382    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13383)]
13384#[cfg(not(target_arch = "arm64ec"))]
13385#[cfg_attr(test, assert_instr(nop))]
13386pub fn vget_low_f16(a: float16x8_t) -> float16x4_t {
13387    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
13388}
13389#[doc = "Duplicate vector element to vector or scalar"]
13390#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_f32)"]
13391#[inline(always)]
13392#[target_feature(enable = "neon")]
13393#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13394#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13395#[cfg_attr(
13396    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13397    assert_instr(ext)
13398)]
13399#[cfg_attr(
13400    not(target_arch = "arm"),
13401    stable(feature = "neon_intrinsics", since = "1.59.0")
13402)]
13403#[cfg_attr(
13404    target_arch = "arm",
13405    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13406)]
13407pub fn vget_high_f32(a: float32x4_t) -> float32x2_t {
13408    unsafe { simd_shuffle!(a, a, [2, 3]) }
13409}
13410#[doc = "Duplicate vector element to vector or scalar"]
13411#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_p16)"]
13412#[inline(always)]
13413#[target_feature(enable = "neon")]
13414#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13415#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13416#[cfg_attr(
13417    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13418    assert_instr(ext)
13419)]
13420#[cfg_attr(
13421    not(target_arch = "arm"),
13422    stable(feature = "neon_intrinsics", since = "1.59.0")
13423)]
13424#[cfg_attr(
13425    target_arch = "arm",
13426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13427)]
13428pub fn vget_high_p16(a: poly16x8_t) -> poly16x4_t {
13429    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13430}
13431#[doc = "Duplicate vector element to vector or scalar"]
13432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_p8)"]
13433#[inline(always)]
13434#[target_feature(enable = "neon")]
13435#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13436#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13437#[cfg_attr(
13438    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13439    assert_instr(ext)
13440)]
13441#[cfg_attr(
13442    not(target_arch = "arm"),
13443    stable(feature = "neon_intrinsics", since = "1.59.0")
13444)]
13445#[cfg_attr(
13446    target_arch = "arm",
13447    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13448)]
13449pub fn vget_high_p8(a: poly8x16_t) -> poly8x8_t {
13450    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
13451}
13452#[doc = "Duplicate vector element to vector or scalar"]
13453#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s16)"]
13454#[inline(always)]
13455#[target_feature(enable = "neon")]
13456#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13457#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13458#[cfg_attr(
13459    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13460    assert_instr(ext)
13461)]
13462#[cfg_attr(
13463    not(target_arch = "arm"),
13464    stable(feature = "neon_intrinsics", since = "1.59.0")
13465)]
13466#[cfg_attr(
13467    target_arch = "arm",
13468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13469)]
13470pub fn vget_high_s16(a: int16x8_t) -> int16x4_t {
13471    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13472}
13473#[doc = "Duplicate vector element to vector or scalar"]
13474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s32)"]
13475#[inline(always)]
13476#[target_feature(enable = "neon")]
13477#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13478#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13479#[cfg_attr(
13480    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13481    assert_instr(ext)
13482)]
13483#[cfg_attr(
13484    not(target_arch = "arm"),
13485    stable(feature = "neon_intrinsics", since = "1.59.0")
13486)]
13487#[cfg_attr(
13488    target_arch = "arm",
13489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13490)]
13491pub fn vget_high_s32(a: int32x4_t) -> int32x2_t {
13492    unsafe { simd_shuffle!(a, a, [2, 3]) }
13493}
13494#[doc = "Duplicate vector element to vector or scalar"]
13495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s8)"]
13496#[inline(always)]
13497#[target_feature(enable = "neon")]
13498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13499#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13500#[cfg_attr(
13501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13502    assert_instr(ext)
13503)]
13504#[cfg_attr(
13505    not(target_arch = "arm"),
13506    stable(feature = "neon_intrinsics", since = "1.59.0")
13507)]
13508#[cfg_attr(
13509    target_arch = "arm",
13510    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13511)]
13512pub fn vget_high_s8(a: int8x16_t) -> int8x8_t {
13513    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
13514}
13515#[doc = "Duplicate vector element to vector or scalar"]
13516#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u16)"]
13517#[inline(always)]
13518#[target_feature(enable = "neon")]
13519#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13520#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13521#[cfg_attr(
13522    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13523    assert_instr(ext)
13524)]
13525#[cfg_attr(
13526    not(target_arch = "arm"),
13527    stable(feature = "neon_intrinsics", since = "1.59.0")
13528)]
13529#[cfg_attr(
13530    target_arch = "arm",
13531    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13532)]
13533pub fn vget_high_u16(a: uint16x8_t) -> uint16x4_t {
13534    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13535}
13536#[doc = "Duplicate vector element to vector or scalar"]
13537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u32)"]
13538#[inline(always)]
13539#[target_feature(enable = "neon")]
13540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13541#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13542#[cfg_attr(
13543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13544    assert_instr(ext)
13545)]
13546#[cfg_attr(
13547    not(target_arch = "arm"),
13548    stable(feature = "neon_intrinsics", since = "1.59.0")
13549)]
13550#[cfg_attr(
13551    target_arch = "arm",
13552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13553)]
13554pub fn vget_high_u32(a: uint32x4_t) -> uint32x2_t {
13555    unsafe { simd_shuffle!(a, a, [2, 3]) }
13556}
13557#[doc = "Duplicate vector element to vector or scalar"]
13558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u8)"]
13559#[inline(always)]
13560#[target_feature(enable = "neon")]
13561#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13562#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13563#[cfg_attr(
13564    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13565    assert_instr(ext)
13566)]
13567#[cfg_attr(
13568    not(target_arch = "arm"),
13569    stable(feature = "neon_intrinsics", since = "1.59.0")
13570)]
13571#[cfg_attr(
13572    target_arch = "arm",
13573    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13574)]
13575pub fn vget_high_u8(a: uint8x16_t) -> uint8x8_t {
13576    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
13577}
13578#[doc = "Duplicate vector element to vector or scalar"]
13579#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s64)"]
13580#[inline(always)]
13581#[target_feature(enable = "neon")]
13582#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13583#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13584#[cfg_attr(
13585    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13586    assert_instr(ext)
13587)]
13588#[cfg_attr(
13589    not(target_arch = "arm"),
13590    stable(feature = "neon_intrinsics", since = "1.59.0")
13591)]
13592#[cfg_attr(
13593    target_arch = "arm",
13594    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13595)]
13596pub fn vget_high_s64(a: int64x2_t) -> int64x1_t {
13597    unsafe { int64x1_t([simd_extract!(a, 1)]) }
13598}
13599#[doc = "Duplicate vector element to vector or scalar"]
13600#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u64)"]
13601#[inline(always)]
13602#[target_feature(enable = "neon")]
13603#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13604#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13605#[cfg_attr(
13606    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13607    assert_instr(ext)
13608)]
13609#[cfg_attr(
13610    not(target_arch = "arm"),
13611    stable(feature = "neon_intrinsics", since = "1.59.0")
13612)]
13613#[cfg_attr(
13614    target_arch = "arm",
13615    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13616)]
13617pub fn vget_high_u64(a: uint64x2_t) -> uint64x1_t {
13618    unsafe { uint64x1_t([simd_extract!(a, 1)]) }
13619}
13620#[doc = "Duplicate vector element to scalar"]
13621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_f16)"]
13622#[inline(always)]
13623#[target_feature(enable = "neon")]
13624#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13625#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13626#[cfg_attr(
13627    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13628    assert_instr(nop, LANE = 0)
13629)]
13630#[rustc_legacy_const_generics(1)]
13631#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13632#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
13633#[cfg(not(target_arch = "arm64ec"))]
13634pub fn vget_lane_f16<const LANE: i32>(a: float16x4_t) -> f16 {
13635    static_assert_uimm_bits!(LANE, 2);
13636    unsafe { simd_extract!(a, LANE as u32) }
13637}
13638#[doc = "Duplicate vector element to scalar"]
13639#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_f16)"]
13640#[inline(always)]
13641#[target_feature(enable = "neon")]
13642#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13643#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13644#[cfg_attr(
13645    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13646    assert_instr(nop, LANE = 0)
13647)]
13648#[rustc_legacy_const_generics(1)]
13649#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13650#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
13651#[cfg(not(target_arch = "arm64ec"))]
13652pub fn vgetq_lane_f16<const LANE: i32>(a: float16x8_t) -> f16 {
13653    static_assert_uimm_bits!(LANE, 3);
13654    unsafe { simd_extract!(a, LANE as u32) }
13655}
13656#[doc = "Move vector element to general-purpose register"]
13657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_f32)"]
13658#[inline(always)]
13659#[target_feature(enable = "neon")]
13660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13661#[rustc_legacy_const_generics(1)]
13662#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13663#[cfg_attr(
13664    not(target_arch = "arm"),
13665    stable(feature = "neon_intrinsics", since = "1.59.0")
13666)]
13667#[cfg_attr(
13668    target_arch = "arm",
13669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13670)]
13671pub fn vget_lane_f32<const IMM5: i32>(v: float32x2_t) -> f32 {
13672    static_assert_uimm_bits!(IMM5, 1);
13673    unsafe { simd_extract!(v, IMM5 as u32) }
13674}
13675#[doc = "Move vector element to general-purpose register"]
13676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p16)"]
13677#[inline(always)]
13678#[target_feature(enable = "neon")]
13679#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13680#[rustc_legacy_const_generics(1)]
13681#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13682#[cfg_attr(
13683    not(target_arch = "arm"),
13684    stable(feature = "neon_intrinsics", since = "1.59.0")
13685)]
13686#[cfg_attr(
13687    target_arch = "arm",
13688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13689)]
13690pub fn vget_lane_p16<const IMM5: i32>(v: poly16x4_t) -> p16 {
13691    static_assert_uimm_bits!(IMM5, 2);
13692    unsafe { simd_extract!(v, IMM5 as u32) }
13693}
13694#[doc = "Move vector element to general-purpose register"]
13695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p8)"]
13696#[inline(always)]
13697#[target_feature(enable = "neon")]
13698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13699#[rustc_legacy_const_generics(1)]
13700#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13701#[cfg_attr(
13702    not(target_arch = "arm"),
13703    stable(feature = "neon_intrinsics", since = "1.59.0")
13704)]
13705#[cfg_attr(
13706    target_arch = "arm",
13707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13708)]
13709pub fn vget_lane_p8<const IMM5: i32>(v: poly8x8_t) -> p8 {
13710    static_assert_uimm_bits!(IMM5, 3);
13711    unsafe { simd_extract!(v, IMM5 as u32) }
13712}
13713#[doc = "Move vector element to general-purpose register"]
13714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s16)"]
13715#[inline(always)]
13716#[target_feature(enable = "neon")]
13717#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13718#[rustc_legacy_const_generics(1)]
13719#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13720#[cfg_attr(
13721    not(target_arch = "arm"),
13722    stable(feature = "neon_intrinsics", since = "1.59.0")
13723)]
13724#[cfg_attr(
13725    target_arch = "arm",
13726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13727)]
13728pub fn vget_lane_s16<const IMM5: i32>(v: int16x4_t) -> i16 {
13729    static_assert_uimm_bits!(IMM5, 2);
13730    unsafe { simd_extract!(v, IMM5 as u32) }
13731}
13732#[doc = "Move vector element to general-purpose register"]
13733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s32)"]
13734#[inline(always)]
13735#[target_feature(enable = "neon")]
13736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13737#[rustc_legacy_const_generics(1)]
13738#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13739#[cfg_attr(
13740    not(target_arch = "arm"),
13741    stable(feature = "neon_intrinsics", since = "1.59.0")
13742)]
13743#[cfg_attr(
13744    target_arch = "arm",
13745    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13746)]
13747pub fn vget_lane_s32<const IMM5: i32>(v: int32x2_t) -> i32 {
13748    static_assert_uimm_bits!(IMM5, 1);
13749    unsafe { simd_extract!(v, IMM5 as u32) }
13750}
13751#[doc = "Move vector element to general-purpose register"]
13752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s8)"]
13753#[inline(always)]
13754#[target_feature(enable = "neon")]
13755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13756#[rustc_legacy_const_generics(1)]
13757#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13758#[cfg_attr(
13759    not(target_arch = "arm"),
13760    stable(feature = "neon_intrinsics", since = "1.59.0")
13761)]
13762#[cfg_attr(
13763    target_arch = "arm",
13764    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13765)]
13766pub fn vget_lane_s8<const IMM5: i32>(v: int8x8_t) -> i8 {
13767    static_assert_uimm_bits!(IMM5, 3);
13768    unsafe { simd_extract!(v, IMM5 as u32) }
13769}
13770#[doc = "Move vector element to general-purpose register"]
13771#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u16)"]
13772#[inline(always)]
13773#[target_feature(enable = "neon")]
13774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13775#[rustc_legacy_const_generics(1)]
13776#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13777#[cfg_attr(
13778    not(target_arch = "arm"),
13779    stable(feature = "neon_intrinsics", since = "1.59.0")
13780)]
13781#[cfg_attr(
13782    target_arch = "arm",
13783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13784)]
13785pub fn vget_lane_u16<const IMM5: i32>(v: uint16x4_t) -> u16 {
13786    static_assert_uimm_bits!(IMM5, 2);
13787    unsafe { simd_extract!(v, IMM5 as u32) }
13788}
13789#[doc = "Move vector element to general-purpose register"]
13790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u32)"]
13791#[inline(always)]
13792#[target_feature(enable = "neon")]
13793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13794#[rustc_legacy_const_generics(1)]
13795#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13796#[cfg_attr(
13797    not(target_arch = "arm"),
13798    stable(feature = "neon_intrinsics", since = "1.59.0")
13799)]
13800#[cfg_attr(
13801    target_arch = "arm",
13802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13803)]
13804pub fn vget_lane_u32<const IMM5: i32>(v: uint32x2_t) -> u32 {
13805    static_assert_uimm_bits!(IMM5, 1);
13806    unsafe { simd_extract!(v, IMM5 as u32) }
13807}
13808#[doc = "Move vector element to general-purpose register"]
13809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u8)"]
13810#[inline(always)]
13811#[target_feature(enable = "neon")]
13812#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13813#[rustc_legacy_const_generics(1)]
13814#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13815#[cfg_attr(
13816    not(target_arch = "arm"),
13817    stable(feature = "neon_intrinsics", since = "1.59.0")
13818)]
13819#[cfg_attr(
13820    target_arch = "arm",
13821    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13822)]
13823pub fn vget_lane_u8<const IMM5: i32>(v: uint8x8_t) -> u8 {
13824    static_assert_uimm_bits!(IMM5, 3);
13825    unsafe { simd_extract!(v, IMM5 as u32) }
13826}
13827#[doc = "Move vector element to general-purpose register"]
13828#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_f32)"]
13829#[inline(always)]
13830#[target_feature(enable = "neon")]
13831#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13832#[rustc_legacy_const_generics(1)]
13833#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13834#[cfg_attr(
13835    not(target_arch = "arm"),
13836    stable(feature = "neon_intrinsics", since = "1.59.0")
13837)]
13838#[cfg_attr(
13839    target_arch = "arm",
13840    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13841)]
13842pub fn vgetq_lane_f32<const IMM5: i32>(v: float32x4_t) -> f32 {
13843    static_assert_uimm_bits!(IMM5, 2);
13844    unsafe { simd_extract!(v, IMM5 as u32) }
13845}
13846#[doc = "Move vector element to general-purpose register"]
13847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p16)"]
13848#[inline(always)]
13849#[target_feature(enable = "neon")]
13850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13851#[rustc_legacy_const_generics(1)]
13852#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13853#[cfg_attr(
13854    not(target_arch = "arm"),
13855    stable(feature = "neon_intrinsics", since = "1.59.0")
13856)]
13857#[cfg_attr(
13858    target_arch = "arm",
13859    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13860)]
13861pub fn vgetq_lane_p16<const IMM5: i32>(v: poly16x8_t) -> p16 {
13862    static_assert_uimm_bits!(IMM5, 3);
13863    unsafe { simd_extract!(v, IMM5 as u32) }
13864}
13865#[doc = "Move vector element to general-purpose register"]
13866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p64)"]
13867#[inline(always)]
13868#[target_feature(enable = "neon")]
13869#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13870#[rustc_legacy_const_generics(1)]
13871#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13872#[cfg_attr(
13873    not(target_arch = "arm"),
13874    stable(feature = "neon_intrinsics", since = "1.59.0")
13875)]
13876#[cfg_attr(
13877    target_arch = "arm",
13878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13879)]
13880pub fn vgetq_lane_p64<const IMM5: i32>(v: poly64x2_t) -> p64 {
13881    static_assert_uimm_bits!(IMM5, 1);
13882    unsafe { simd_extract!(v, IMM5 as u32) }
13883}
13884#[doc = "Move vector element to general-purpose register"]
13885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p8)"]
13886#[inline(always)]
13887#[target_feature(enable = "neon")]
13888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13889#[rustc_legacy_const_generics(1)]
13890#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13891#[cfg_attr(
13892    not(target_arch = "arm"),
13893    stable(feature = "neon_intrinsics", since = "1.59.0")
13894)]
13895#[cfg_attr(
13896    target_arch = "arm",
13897    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13898)]
13899pub fn vgetq_lane_p8<const IMM5: i32>(v: poly8x16_t) -> p8 {
13900    static_assert_uimm_bits!(IMM5, 4);
13901    unsafe { simd_extract!(v, IMM5 as u32) }
13902}
13903#[doc = "Move vector element to general-purpose register"]
13904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s16)"]
13905#[inline(always)]
13906#[target_feature(enable = "neon")]
13907#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13908#[rustc_legacy_const_generics(1)]
13909#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13910#[cfg_attr(
13911    not(target_arch = "arm"),
13912    stable(feature = "neon_intrinsics", since = "1.59.0")
13913)]
13914#[cfg_attr(
13915    target_arch = "arm",
13916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13917)]
13918pub fn vgetq_lane_s16<const IMM5: i32>(v: int16x8_t) -> i16 {
13919    static_assert_uimm_bits!(IMM5, 3);
13920    unsafe { simd_extract!(v, IMM5 as u32) }
13921}
13922#[doc = "Move vector element to general-purpose register"]
13923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s32)"]
13924#[inline(always)]
13925#[target_feature(enable = "neon")]
13926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13927#[rustc_legacy_const_generics(1)]
13928#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13929#[cfg_attr(
13930    not(target_arch = "arm"),
13931    stable(feature = "neon_intrinsics", since = "1.59.0")
13932)]
13933#[cfg_attr(
13934    target_arch = "arm",
13935    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13936)]
13937pub fn vgetq_lane_s32<const IMM5: i32>(v: int32x4_t) -> i32 {
13938    static_assert_uimm_bits!(IMM5, 2);
13939    unsafe { simd_extract!(v, IMM5 as u32) }
13940}
13941#[doc = "Move vector element to general-purpose register"]
13942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s64)"]
13943#[inline(always)]
13944#[target_feature(enable = "neon")]
13945#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13946#[rustc_legacy_const_generics(1)]
13947#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13948#[cfg_attr(
13949    not(target_arch = "arm"),
13950    stable(feature = "neon_intrinsics", since = "1.59.0")
13951)]
13952#[cfg_attr(
13953    target_arch = "arm",
13954    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13955)]
13956pub fn vgetq_lane_s64<const IMM5: i32>(v: int64x2_t) -> i64 {
13957    static_assert_uimm_bits!(IMM5, 1);
13958    unsafe { simd_extract!(v, IMM5 as u32) }
13959}
13960#[doc = "Move vector element to general-purpose register"]
13961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s8)"]
13962#[inline(always)]
13963#[target_feature(enable = "neon")]
13964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13965#[rustc_legacy_const_generics(1)]
13966#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13967#[cfg_attr(
13968    not(target_arch = "arm"),
13969    stable(feature = "neon_intrinsics", since = "1.59.0")
13970)]
13971#[cfg_attr(
13972    target_arch = "arm",
13973    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13974)]
13975pub fn vgetq_lane_s8<const IMM5: i32>(v: int8x16_t) -> i8 {
13976    static_assert_uimm_bits!(IMM5, 4);
13977    unsafe { simd_extract!(v, IMM5 as u32) }
13978}
13979#[doc = "Move vector element to general-purpose register"]
13980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u16)"]
13981#[inline(always)]
13982#[target_feature(enable = "neon")]
13983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13984#[rustc_legacy_const_generics(1)]
13985#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13986#[cfg_attr(
13987    not(target_arch = "arm"),
13988    stable(feature = "neon_intrinsics", since = "1.59.0")
13989)]
13990#[cfg_attr(
13991    target_arch = "arm",
13992    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13993)]
13994pub fn vgetq_lane_u16<const IMM5: i32>(v: uint16x8_t) -> u16 {
13995    static_assert_uimm_bits!(IMM5, 3);
13996    unsafe { simd_extract!(v, IMM5 as u32) }
13997}
13998#[doc = "Move vector element to general-purpose register"]
13999#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u32)"]
14000#[inline(always)]
14001#[target_feature(enable = "neon")]
14002#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14003#[rustc_legacy_const_generics(1)]
14004#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
14005#[cfg_attr(
14006    not(target_arch = "arm"),
14007    stable(feature = "neon_intrinsics", since = "1.59.0")
14008)]
14009#[cfg_attr(
14010    target_arch = "arm",
14011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14012)]
14013pub fn vgetq_lane_u32<const IMM5: i32>(v: uint32x4_t) -> u32 {
14014    static_assert_uimm_bits!(IMM5, 2);
14015    unsafe { simd_extract!(v, IMM5 as u32) }
14016}
14017#[doc = "Move vector element to general-purpose register"]
14018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u64)"]
14019#[inline(always)]
14020#[target_feature(enable = "neon")]
14021#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14022#[rustc_legacy_const_generics(1)]
14023#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
14024#[cfg_attr(
14025    not(target_arch = "arm"),
14026    stable(feature = "neon_intrinsics", since = "1.59.0")
14027)]
14028#[cfg_attr(
14029    target_arch = "arm",
14030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14031)]
14032pub fn vgetq_lane_u64<const IMM5: i32>(v: uint64x2_t) -> u64 {
14033    static_assert_uimm_bits!(IMM5, 2);
14034    unsafe { simd_extract!(v, IMM5 as u32) }
14035}
14036#[doc = "Move vector element to general-purpose register"]
14037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u8)"]
14038#[inline(always)]
14039#[target_feature(enable = "neon")]
14040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14041#[rustc_legacy_const_generics(1)]
14042#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
14043#[cfg_attr(
14044    not(target_arch = "arm"),
14045    stable(feature = "neon_intrinsics", since = "1.59.0")
14046)]
14047#[cfg_attr(
14048    target_arch = "arm",
14049    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14050)]
14051pub fn vgetq_lane_u8<const IMM5: i32>(v: uint8x16_t) -> u8 {
14052    static_assert_uimm_bits!(IMM5, 4);
14053    unsafe { simd_extract!(v, IMM5 as u32) }
14054}
14055#[doc = "Move vector element to general-purpose register"]
14056#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p64)"]
14057#[inline(always)]
14058#[target_feature(enable = "neon")]
14059#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14060#[rustc_legacy_const_generics(1)]
14061#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
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_lane_p64<const IMM5: i32>(v: poly64x1_t) -> p64 {
14071    static_assert!(IMM5 == 0);
14072    unsafe { simd_extract!(v, IMM5 as u32) }
14073}
14074#[doc = "Move vector element to general-purpose register"]
14075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s64)"]
14076#[inline(always)]
14077#[target_feature(enable = "neon")]
14078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14079#[rustc_legacy_const_generics(1)]
14080#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
14081#[cfg_attr(
14082    not(target_arch = "arm"),
14083    stable(feature = "neon_intrinsics", since = "1.59.0")
14084)]
14085#[cfg_attr(
14086    target_arch = "arm",
14087    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14088)]
14089pub fn vget_lane_s64<const IMM5: i32>(v: int64x1_t) -> i64 {
14090    static_assert!(IMM5 == 0);
14091    unsafe { simd_extract!(v, IMM5 as u32) }
14092}
14093#[doc = "Move vector element to general-purpose register"]
14094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u64)"]
14095#[inline(always)]
14096#[target_feature(enable = "neon")]
14097#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14098#[rustc_legacy_const_generics(1)]
14099#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
14100#[cfg_attr(
14101    not(target_arch = "arm"),
14102    stable(feature = "neon_intrinsics", since = "1.59.0")
14103)]
14104#[cfg_attr(
14105    target_arch = "arm",
14106    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14107)]
14108pub fn vget_lane_u64<const IMM5: i32>(v: uint64x1_t) -> u64 {
14109    static_assert!(IMM5 == 0);
14110    unsafe { simd_extract!(v, 0) }
14111}
14112#[doc = "Duplicate vector element to vector or scalar"]
14113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_f32)"]
14114#[inline(always)]
14115#[target_feature(enable = "neon")]
14116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14117#[cfg_attr(test, assert_instr(nop))]
14118#[cfg_attr(
14119    not(target_arch = "arm"),
14120    stable(feature = "neon_intrinsics", since = "1.59.0")
14121)]
14122#[cfg_attr(
14123    target_arch = "arm",
14124    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14125)]
14126pub fn vget_low_f32(a: float32x4_t) -> float32x2_t {
14127    unsafe { simd_shuffle!(a, a, [0, 1]) }
14128}
14129#[doc = "Duplicate vector element to vector or scalar"]
14130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_p16)"]
14131#[inline(always)]
14132#[target_feature(enable = "neon")]
14133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14134#[cfg_attr(test, assert_instr(nop))]
14135#[cfg_attr(
14136    not(target_arch = "arm"),
14137    stable(feature = "neon_intrinsics", since = "1.59.0")
14138)]
14139#[cfg_attr(
14140    target_arch = "arm",
14141    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14142)]
14143pub fn vget_low_p16(a: poly16x8_t) -> poly16x4_t {
14144    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
14145}
14146#[doc = "Duplicate vector element to vector or scalar"]
14147#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_p8)"]
14148#[inline(always)]
14149#[target_feature(enable = "neon")]
14150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14151#[cfg_attr(test, assert_instr(nop))]
14152#[cfg_attr(
14153    not(target_arch = "arm"),
14154    stable(feature = "neon_intrinsics", since = "1.59.0")
14155)]
14156#[cfg_attr(
14157    target_arch = "arm",
14158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14159)]
14160pub fn vget_low_p8(a: poly8x16_t) -> poly8x8_t {
14161    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
14162}
14163#[doc = "Duplicate vector element to vector or scalar"]
14164#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s16)"]
14165#[inline(always)]
14166#[target_feature(enable = "neon")]
14167#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14168#[cfg_attr(test, assert_instr(nop))]
14169#[cfg_attr(
14170    not(target_arch = "arm"),
14171    stable(feature = "neon_intrinsics", since = "1.59.0")
14172)]
14173#[cfg_attr(
14174    target_arch = "arm",
14175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14176)]
14177pub fn vget_low_s16(a: int16x8_t) -> int16x4_t {
14178    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
14179}
14180#[doc = "Duplicate vector element to vector or scalar"]
14181#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s32)"]
14182#[inline(always)]
14183#[target_feature(enable = "neon")]
14184#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14185#[cfg_attr(test, assert_instr(nop))]
14186#[cfg_attr(
14187    not(target_arch = "arm"),
14188    stable(feature = "neon_intrinsics", since = "1.59.0")
14189)]
14190#[cfg_attr(
14191    target_arch = "arm",
14192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14193)]
14194pub fn vget_low_s32(a: int32x4_t) -> int32x2_t {
14195    unsafe { simd_shuffle!(a, a, [0, 1]) }
14196}
14197#[doc = "Duplicate vector element to vector or scalar"]
14198#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s8)"]
14199#[inline(always)]
14200#[target_feature(enable = "neon")]
14201#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14202#[cfg_attr(test, assert_instr(nop))]
14203#[cfg_attr(
14204    not(target_arch = "arm"),
14205    stable(feature = "neon_intrinsics", since = "1.59.0")
14206)]
14207#[cfg_attr(
14208    target_arch = "arm",
14209    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14210)]
14211pub fn vget_low_s8(a: int8x16_t) -> int8x8_t {
14212    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
14213}
14214#[doc = "Duplicate vector element to vector or scalar"]
14215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u16)"]
14216#[inline(always)]
14217#[target_feature(enable = "neon")]
14218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14219#[cfg_attr(test, assert_instr(nop))]
14220#[cfg_attr(
14221    not(target_arch = "arm"),
14222    stable(feature = "neon_intrinsics", since = "1.59.0")
14223)]
14224#[cfg_attr(
14225    target_arch = "arm",
14226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14227)]
14228pub fn vget_low_u16(a: uint16x8_t) -> uint16x4_t {
14229    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
14230}
14231#[doc = "Duplicate vector element to vector or scalar"]
14232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u32)"]
14233#[inline(always)]
14234#[target_feature(enable = "neon")]
14235#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14236#[cfg_attr(test, assert_instr(nop))]
14237#[cfg_attr(
14238    not(target_arch = "arm"),
14239    stable(feature = "neon_intrinsics", since = "1.59.0")
14240)]
14241#[cfg_attr(
14242    target_arch = "arm",
14243    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14244)]
14245pub fn vget_low_u32(a: uint32x4_t) -> uint32x2_t {
14246    unsafe { simd_shuffle!(a, a, [0, 1]) }
14247}
14248#[doc = "Duplicate vector element to vector or scalar"]
14249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u8)"]
14250#[inline(always)]
14251#[target_feature(enable = "neon")]
14252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14253#[cfg_attr(test, assert_instr(nop))]
14254#[cfg_attr(
14255    not(target_arch = "arm"),
14256    stable(feature = "neon_intrinsics", since = "1.59.0")
14257)]
14258#[cfg_attr(
14259    target_arch = "arm",
14260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14261)]
14262pub fn vget_low_u8(a: uint8x16_t) -> uint8x8_t {
14263    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
14264}
14265#[doc = "Duplicate vector element to vector or scalar"]
14266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s64)"]
14267#[inline(always)]
14268#[target_feature(enable = "neon")]
14269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14270#[cfg_attr(test, assert_instr(nop))]
14271#[cfg_attr(
14272    not(target_arch = "arm"),
14273    stable(feature = "neon_intrinsics", since = "1.59.0")
14274)]
14275#[cfg_attr(
14276    target_arch = "arm",
14277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14278)]
14279pub fn vget_low_s64(a: int64x2_t) -> int64x1_t {
14280    unsafe { int64x1_t([simd_extract!(a, 0)]) }
14281}
14282#[doc = "Duplicate vector element to vector or scalar"]
14283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u64)"]
14284#[inline(always)]
14285#[target_feature(enable = "neon")]
14286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14287#[cfg_attr(test, assert_instr(nop))]
14288#[cfg_attr(
14289    not(target_arch = "arm"),
14290    stable(feature = "neon_intrinsics", since = "1.59.0")
14291)]
14292#[cfg_attr(
14293    target_arch = "arm",
14294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14295)]
14296pub fn vget_low_u64(a: uint64x2_t) -> uint64x1_t {
14297    unsafe { uint64x1_t([simd_extract!(a, 0)]) }
14298}
14299#[doc = "Halving add"]
14300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s8)"]
14301#[inline(always)]
14302#[target_feature(enable = "neon")]
14303#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14304#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
14305#[cfg_attr(
14306    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14307    assert_instr(shadd)
14308)]
14309#[cfg_attr(
14310    not(target_arch = "arm"),
14311    stable(feature = "neon_intrinsics", since = "1.59.0")
14312)]
14313#[cfg_attr(
14314    target_arch = "arm",
14315    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14316)]
14317pub fn vhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
14318    unsafe extern "unadjusted" {
14319        #[cfg_attr(
14320            any(target_arch = "aarch64", target_arch = "arm64ec"),
14321            link_name = "llvm.aarch64.neon.shadd.v8i8"
14322        )]
14323        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i8")]
14324        fn _vhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
14325    }
14326    unsafe { _vhadd_s8(a, b) }
14327}
14328#[doc = "Halving add"]
14329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s8)"]
14330#[inline(always)]
14331#[target_feature(enable = "neon")]
14332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14333#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
14334#[cfg_attr(
14335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14336    assert_instr(shadd)
14337)]
14338#[cfg_attr(
14339    not(target_arch = "arm"),
14340    stable(feature = "neon_intrinsics", since = "1.59.0")
14341)]
14342#[cfg_attr(
14343    target_arch = "arm",
14344    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14345)]
14346pub fn vhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
14347    unsafe extern "unadjusted" {
14348        #[cfg_attr(
14349            any(target_arch = "aarch64", target_arch = "arm64ec"),
14350            link_name = "llvm.aarch64.neon.shadd.v16i8"
14351        )]
14352        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v16i8")]
14353        fn _vhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
14354    }
14355    unsafe { _vhaddq_s8(a, b) }
14356}
14357#[doc = "Halving add"]
14358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s16)"]
14359#[inline(always)]
14360#[target_feature(enable = "neon")]
14361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14362#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
14363#[cfg_attr(
14364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14365    assert_instr(shadd)
14366)]
14367#[cfg_attr(
14368    not(target_arch = "arm"),
14369    stable(feature = "neon_intrinsics", since = "1.59.0")
14370)]
14371#[cfg_attr(
14372    target_arch = "arm",
14373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14374)]
14375pub fn vhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
14376    unsafe extern "unadjusted" {
14377        #[cfg_attr(
14378            any(target_arch = "aarch64", target_arch = "arm64ec"),
14379            link_name = "llvm.aarch64.neon.shadd.v4i16"
14380        )]
14381        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i16")]
14382        fn _vhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
14383    }
14384    unsafe { _vhadd_s16(a, b) }
14385}
14386#[doc = "Halving add"]
14387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s16)"]
14388#[inline(always)]
14389#[target_feature(enable = "neon")]
14390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14391#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
14392#[cfg_attr(
14393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14394    assert_instr(shadd)
14395)]
14396#[cfg_attr(
14397    not(target_arch = "arm"),
14398    stable(feature = "neon_intrinsics", since = "1.59.0")
14399)]
14400#[cfg_attr(
14401    target_arch = "arm",
14402    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14403)]
14404pub fn vhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
14405    unsafe extern "unadjusted" {
14406        #[cfg_attr(
14407            any(target_arch = "aarch64", target_arch = "arm64ec"),
14408            link_name = "llvm.aarch64.neon.shadd.v8i16"
14409        )]
14410        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i16")]
14411        fn _vhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
14412    }
14413    unsafe { _vhaddq_s16(a, b) }
14414}
14415#[doc = "Halving add"]
14416#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s32)"]
14417#[inline(always)]
14418#[target_feature(enable = "neon")]
14419#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14420#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
14421#[cfg_attr(
14422    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14423    assert_instr(shadd)
14424)]
14425#[cfg_attr(
14426    not(target_arch = "arm"),
14427    stable(feature = "neon_intrinsics", since = "1.59.0")
14428)]
14429#[cfg_attr(
14430    target_arch = "arm",
14431    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14432)]
14433pub fn vhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
14434    unsafe extern "unadjusted" {
14435        #[cfg_attr(
14436            any(target_arch = "aarch64", target_arch = "arm64ec"),
14437            link_name = "llvm.aarch64.neon.shadd.v2i32"
14438        )]
14439        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v2i32")]
14440        fn _vhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
14441    }
14442    unsafe { _vhadd_s32(a, b) }
14443}
14444#[doc = "Halving add"]
14445#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s32)"]
14446#[inline(always)]
14447#[target_feature(enable = "neon")]
14448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14449#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
14450#[cfg_attr(
14451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14452    assert_instr(shadd)
14453)]
14454#[cfg_attr(
14455    not(target_arch = "arm"),
14456    stable(feature = "neon_intrinsics", since = "1.59.0")
14457)]
14458#[cfg_attr(
14459    target_arch = "arm",
14460    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14461)]
14462pub fn vhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
14463    unsafe extern "unadjusted" {
14464        #[cfg_attr(
14465            any(target_arch = "aarch64", target_arch = "arm64ec"),
14466            link_name = "llvm.aarch64.neon.shadd.v4i32"
14467        )]
14468        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i32")]
14469        fn _vhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
14470    }
14471    unsafe { _vhaddq_s32(a, b) }
14472}
14473#[doc = "Halving add"]
14474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u8)"]
14475#[inline(always)]
14476#[target_feature(enable = "neon")]
14477#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14478#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
14479#[cfg_attr(
14480    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14481    assert_instr(uhadd)
14482)]
14483#[cfg_attr(
14484    not(target_arch = "arm"),
14485    stable(feature = "neon_intrinsics", since = "1.59.0")
14486)]
14487#[cfg_attr(
14488    target_arch = "arm",
14489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14490)]
14491pub fn vhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
14492    unsafe extern "unadjusted" {
14493        #[cfg_attr(
14494            any(target_arch = "aarch64", target_arch = "arm64ec"),
14495            link_name = "llvm.aarch64.neon.uhadd.v8i8"
14496        )]
14497        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i8")]
14498        fn _vhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
14499    }
14500    unsafe { _vhadd_u8(a, b) }
14501}
14502#[doc = "Halving add"]
14503#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u8)"]
14504#[inline(always)]
14505#[target_feature(enable = "neon")]
14506#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14507#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
14508#[cfg_attr(
14509    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14510    assert_instr(uhadd)
14511)]
14512#[cfg_attr(
14513    not(target_arch = "arm"),
14514    stable(feature = "neon_intrinsics", since = "1.59.0")
14515)]
14516#[cfg_attr(
14517    target_arch = "arm",
14518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14519)]
14520pub fn vhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
14521    unsafe extern "unadjusted" {
14522        #[cfg_attr(
14523            any(target_arch = "aarch64", target_arch = "arm64ec"),
14524            link_name = "llvm.aarch64.neon.uhadd.v16i8"
14525        )]
14526        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v16i8")]
14527        fn _vhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
14528    }
14529    unsafe { _vhaddq_u8(a, b) }
14530}
14531#[doc = "Halving add"]
14532#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u16)"]
14533#[inline(always)]
14534#[target_feature(enable = "neon")]
14535#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14536#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
14537#[cfg_attr(
14538    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14539    assert_instr(uhadd)
14540)]
14541#[cfg_attr(
14542    not(target_arch = "arm"),
14543    stable(feature = "neon_intrinsics", since = "1.59.0")
14544)]
14545#[cfg_attr(
14546    target_arch = "arm",
14547    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14548)]
14549pub fn vhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
14550    unsafe extern "unadjusted" {
14551        #[cfg_attr(
14552            any(target_arch = "aarch64", target_arch = "arm64ec"),
14553            link_name = "llvm.aarch64.neon.uhadd.v4i16"
14554        )]
14555        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i16")]
14556        fn _vhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
14557    }
14558    unsafe { _vhadd_u16(a, b) }
14559}
14560#[doc = "Halving add"]
14561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u16)"]
14562#[inline(always)]
14563#[target_feature(enable = "neon")]
14564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14565#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
14566#[cfg_attr(
14567    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14568    assert_instr(uhadd)
14569)]
14570#[cfg_attr(
14571    not(target_arch = "arm"),
14572    stable(feature = "neon_intrinsics", since = "1.59.0")
14573)]
14574#[cfg_attr(
14575    target_arch = "arm",
14576    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14577)]
14578pub fn vhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
14579    unsafe extern "unadjusted" {
14580        #[cfg_attr(
14581            any(target_arch = "aarch64", target_arch = "arm64ec"),
14582            link_name = "llvm.aarch64.neon.uhadd.v8i16"
14583        )]
14584        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i16")]
14585        fn _vhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
14586    }
14587    unsafe { _vhaddq_u16(a, b) }
14588}
14589#[doc = "Halving add"]
14590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u32)"]
14591#[inline(always)]
14592#[target_feature(enable = "neon")]
14593#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14594#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
14595#[cfg_attr(
14596    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14597    assert_instr(uhadd)
14598)]
14599#[cfg_attr(
14600    not(target_arch = "arm"),
14601    stable(feature = "neon_intrinsics", since = "1.59.0")
14602)]
14603#[cfg_attr(
14604    target_arch = "arm",
14605    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14606)]
14607pub fn vhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
14608    unsafe extern "unadjusted" {
14609        #[cfg_attr(
14610            any(target_arch = "aarch64", target_arch = "arm64ec"),
14611            link_name = "llvm.aarch64.neon.uhadd.v2i32"
14612        )]
14613        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v2i32")]
14614        fn _vhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
14615    }
14616    unsafe { _vhadd_u32(a, b) }
14617}
14618#[doc = "Halving add"]
14619#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u32)"]
14620#[inline(always)]
14621#[target_feature(enable = "neon")]
14622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14623#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
14624#[cfg_attr(
14625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14626    assert_instr(uhadd)
14627)]
14628#[cfg_attr(
14629    not(target_arch = "arm"),
14630    stable(feature = "neon_intrinsics", since = "1.59.0")
14631)]
14632#[cfg_attr(
14633    target_arch = "arm",
14634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14635)]
14636pub fn vhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
14637    unsafe extern "unadjusted" {
14638        #[cfg_attr(
14639            any(target_arch = "aarch64", target_arch = "arm64ec"),
14640            link_name = "llvm.aarch64.neon.uhadd.v4i32"
14641        )]
14642        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i32")]
14643        fn _vhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
14644    }
14645    unsafe { _vhaddq_u32(a, b) }
14646}
14647#[doc = "Signed halving subtract"]
14648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s16)"]
14649#[inline(always)]
14650#[target_feature(enable = "neon")]
14651#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14652#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
14653#[cfg_attr(
14654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14655    assert_instr(shsub)
14656)]
14657#[cfg_attr(
14658    not(target_arch = "arm"),
14659    stable(feature = "neon_intrinsics", since = "1.59.0")
14660)]
14661#[cfg_attr(
14662    target_arch = "arm",
14663    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14664)]
14665pub fn vhsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
14666    unsafe extern "unadjusted" {
14667        #[cfg_attr(
14668            any(target_arch = "aarch64", target_arch = "arm64ec"),
14669            link_name = "llvm.aarch64.neon.shsub.v4i16"
14670        )]
14671        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i16")]
14672        fn _vhsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
14673    }
14674    unsafe { _vhsub_s16(a, b) }
14675}
14676#[doc = "Signed halving subtract"]
14677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s16)"]
14678#[inline(always)]
14679#[target_feature(enable = "neon")]
14680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14681#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
14682#[cfg_attr(
14683    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14684    assert_instr(shsub)
14685)]
14686#[cfg_attr(
14687    not(target_arch = "arm"),
14688    stable(feature = "neon_intrinsics", since = "1.59.0")
14689)]
14690#[cfg_attr(
14691    target_arch = "arm",
14692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14693)]
14694pub fn vhsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
14695    unsafe extern "unadjusted" {
14696        #[cfg_attr(
14697            any(target_arch = "aarch64", target_arch = "arm64ec"),
14698            link_name = "llvm.aarch64.neon.shsub.v8i16"
14699        )]
14700        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i16")]
14701        fn _vhsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
14702    }
14703    unsafe { _vhsubq_s16(a, b) }
14704}
14705#[doc = "Signed halving subtract"]
14706#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s32)"]
14707#[inline(always)]
14708#[target_feature(enable = "neon")]
14709#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14710#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
14711#[cfg_attr(
14712    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14713    assert_instr(shsub)
14714)]
14715#[cfg_attr(
14716    not(target_arch = "arm"),
14717    stable(feature = "neon_intrinsics", since = "1.59.0")
14718)]
14719#[cfg_attr(
14720    target_arch = "arm",
14721    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14722)]
14723pub fn vhsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
14724    unsafe extern "unadjusted" {
14725        #[cfg_attr(
14726            any(target_arch = "aarch64", target_arch = "arm64ec"),
14727            link_name = "llvm.aarch64.neon.shsub.v2i32"
14728        )]
14729        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v2i32")]
14730        fn _vhsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
14731    }
14732    unsafe { _vhsub_s32(a, b) }
14733}
14734#[doc = "Signed halving subtract"]
14735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s32)"]
14736#[inline(always)]
14737#[target_feature(enable = "neon")]
14738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14739#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
14740#[cfg_attr(
14741    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14742    assert_instr(shsub)
14743)]
14744#[cfg_attr(
14745    not(target_arch = "arm"),
14746    stable(feature = "neon_intrinsics", since = "1.59.0")
14747)]
14748#[cfg_attr(
14749    target_arch = "arm",
14750    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14751)]
14752pub fn vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
14753    unsafe extern "unadjusted" {
14754        #[cfg_attr(
14755            any(target_arch = "aarch64", target_arch = "arm64ec"),
14756            link_name = "llvm.aarch64.neon.shsub.v4i32"
14757        )]
14758        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i32")]
14759        fn _vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
14760    }
14761    unsafe { _vhsubq_s32(a, b) }
14762}
14763#[doc = "Signed halving subtract"]
14764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s8)"]
14765#[inline(always)]
14766#[target_feature(enable = "neon")]
14767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14768#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
14769#[cfg_attr(
14770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14771    assert_instr(shsub)
14772)]
14773#[cfg_attr(
14774    not(target_arch = "arm"),
14775    stable(feature = "neon_intrinsics", since = "1.59.0")
14776)]
14777#[cfg_attr(
14778    target_arch = "arm",
14779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14780)]
14781pub fn vhsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
14782    unsafe extern "unadjusted" {
14783        #[cfg_attr(
14784            any(target_arch = "aarch64", target_arch = "arm64ec"),
14785            link_name = "llvm.aarch64.neon.shsub.v8i8"
14786        )]
14787        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i8")]
14788        fn _vhsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
14789    }
14790    unsafe { _vhsub_s8(a, b) }
14791}
14792#[doc = "Signed halving subtract"]
14793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s8)"]
14794#[inline(always)]
14795#[target_feature(enable = "neon")]
14796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14797#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
14798#[cfg_attr(
14799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14800    assert_instr(shsub)
14801)]
14802#[cfg_attr(
14803    not(target_arch = "arm"),
14804    stable(feature = "neon_intrinsics", since = "1.59.0")
14805)]
14806#[cfg_attr(
14807    target_arch = "arm",
14808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14809)]
14810pub fn vhsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
14811    unsafe extern "unadjusted" {
14812        #[cfg_attr(
14813            any(target_arch = "aarch64", target_arch = "arm64ec"),
14814            link_name = "llvm.aarch64.neon.shsub.v16i8"
14815        )]
14816        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v16i8")]
14817        fn _vhsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
14818    }
14819    unsafe { _vhsubq_s8(a, b) }
14820}
14821#[doc = "Signed halving subtract"]
14822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u8)"]
14823#[inline(always)]
14824#[target_feature(enable = "neon")]
14825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14826#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u8"))]
14827#[cfg_attr(
14828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14829    assert_instr(uhsub)
14830)]
14831#[cfg_attr(
14832    not(target_arch = "arm"),
14833    stable(feature = "neon_intrinsics", since = "1.59.0")
14834)]
14835#[cfg_attr(
14836    target_arch = "arm",
14837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14838)]
14839pub fn vhsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
14840    unsafe extern "unadjusted" {
14841        #[cfg_attr(
14842            any(target_arch = "aarch64", target_arch = "arm64ec"),
14843            link_name = "llvm.aarch64.neon.uhsub.v8i8"
14844        )]
14845        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i8")]
14846        fn _vhsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
14847    }
14848    unsafe { _vhsub_u8(a, b) }
14849}
14850#[doc = "Signed halving subtract"]
14851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u8)"]
14852#[inline(always)]
14853#[target_feature(enable = "neon")]
14854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14855#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u8"))]
14856#[cfg_attr(
14857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14858    assert_instr(uhsub)
14859)]
14860#[cfg_attr(
14861    not(target_arch = "arm"),
14862    stable(feature = "neon_intrinsics", since = "1.59.0")
14863)]
14864#[cfg_attr(
14865    target_arch = "arm",
14866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14867)]
14868pub fn vhsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
14869    unsafe extern "unadjusted" {
14870        #[cfg_attr(
14871            any(target_arch = "aarch64", target_arch = "arm64ec"),
14872            link_name = "llvm.aarch64.neon.uhsub.v16i8"
14873        )]
14874        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v16i8")]
14875        fn _vhsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
14876    }
14877    unsafe { _vhsubq_u8(a, b) }
14878}
14879#[doc = "Signed halving subtract"]
14880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u16)"]
14881#[inline(always)]
14882#[target_feature(enable = "neon")]
14883#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14884#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
14885#[cfg_attr(
14886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14887    assert_instr(uhsub)
14888)]
14889#[cfg_attr(
14890    not(target_arch = "arm"),
14891    stable(feature = "neon_intrinsics", since = "1.59.0")
14892)]
14893#[cfg_attr(
14894    target_arch = "arm",
14895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14896)]
14897pub fn vhsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
14898    unsafe extern "unadjusted" {
14899        #[cfg_attr(
14900            any(target_arch = "aarch64", target_arch = "arm64ec"),
14901            link_name = "llvm.aarch64.neon.uhsub.v4i16"
14902        )]
14903        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i16")]
14904        fn _vhsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
14905    }
14906    unsafe { _vhsub_u16(a, b) }
14907}
14908#[doc = "Signed halving subtract"]
14909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u16)"]
14910#[inline(always)]
14911#[target_feature(enable = "neon")]
14912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14913#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
14914#[cfg_attr(
14915    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14916    assert_instr(uhsub)
14917)]
14918#[cfg_attr(
14919    not(target_arch = "arm"),
14920    stable(feature = "neon_intrinsics", since = "1.59.0")
14921)]
14922#[cfg_attr(
14923    target_arch = "arm",
14924    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14925)]
14926pub fn vhsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
14927    unsafe extern "unadjusted" {
14928        #[cfg_attr(
14929            any(target_arch = "aarch64", target_arch = "arm64ec"),
14930            link_name = "llvm.aarch64.neon.uhsub.v8i16"
14931        )]
14932        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i16")]
14933        fn _vhsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
14934    }
14935    unsafe { _vhsubq_u16(a, b) }
14936}
14937#[doc = "Signed halving subtract"]
14938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u32)"]
14939#[inline(always)]
14940#[target_feature(enable = "neon")]
14941#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14942#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u32"))]
14943#[cfg_attr(
14944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14945    assert_instr(uhsub)
14946)]
14947#[cfg_attr(
14948    not(target_arch = "arm"),
14949    stable(feature = "neon_intrinsics", since = "1.59.0")
14950)]
14951#[cfg_attr(
14952    target_arch = "arm",
14953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14954)]
14955pub fn vhsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
14956    unsafe extern "unadjusted" {
14957        #[cfg_attr(
14958            any(target_arch = "aarch64", target_arch = "arm64ec"),
14959            link_name = "llvm.aarch64.neon.uhsub.v2i32"
14960        )]
14961        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v2i32")]
14962        fn _vhsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
14963    }
14964    unsafe { _vhsub_u32(a, b) }
14965}
14966#[doc = "Signed halving subtract"]
14967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u32)"]
14968#[inline(always)]
14969#[target_feature(enable = "neon")]
14970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14971#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u32"))]
14972#[cfg_attr(
14973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14974    assert_instr(uhsub)
14975)]
14976#[cfg_attr(
14977    not(target_arch = "arm"),
14978    stable(feature = "neon_intrinsics", since = "1.59.0")
14979)]
14980#[cfg_attr(
14981    target_arch = "arm",
14982    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14983)]
14984pub fn vhsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
14985    unsafe extern "unadjusted" {
14986        #[cfg_attr(
14987            any(target_arch = "aarch64", target_arch = "arm64ec"),
14988            link_name = "llvm.aarch64.neon.uhsub.v4i32"
14989        )]
14990        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i32")]
14991        fn _vhsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
14992    }
14993    unsafe { _vhsubq_u32(a, b) }
14994}
14995#[doc = "Load one single-element structure and replicate to all lanes of one register"]
14996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_f16)"]
14997#[doc = "## Safety"]
14998#[doc = "  * Neon intrinsic unsafe"]
14999#[inline(always)]
15000#[target_feature(enable = "neon")]
15001#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15002#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15003#[cfg_attr(
15004    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15005    assert_instr(ld1r)
15006)]
15007#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15008#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15009#[cfg(not(target_arch = "arm64ec"))]
15010pub unsafe fn vld1_dup_f16(ptr: *const f16) -> float16x4_t {
15011    let x: float16x4_t = vld1_lane_f16::<0>(ptr, transmute(f16x4::splat(0.0)));
15012    simd_shuffle!(x, x, [0, 0, 0, 0])
15013}
15014#[doc = "Load one single-element structure and replicate to all lanes of one register"]
15015#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_f16)"]
15016#[doc = "## Safety"]
15017#[doc = "  * Neon intrinsic unsafe"]
15018#[inline(always)]
15019#[target_feature(enable = "neon")]
15020#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15022#[cfg_attr(
15023    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15024    assert_instr(ld1r)
15025)]
15026#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15027#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15028#[cfg(not(target_arch = "arm64ec"))]
15029pub unsafe fn vld1q_dup_f16(ptr: *const f16) -> float16x8_t {
15030    let x: float16x8_t = vld1q_lane_f16::<0>(ptr, transmute(f16x8::splat(0.0)));
15031    simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0])
15032}
15033#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_f32)"]
15035#[doc = "## Safety"]
15036#[doc = "  * Neon intrinsic unsafe"]
15037#[inline(always)]
15038#[target_feature(enable = "neon")]
15039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15040#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15041#[cfg_attr(
15042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15043    assert_instr(ld1r)
15044)]
15045#[cfg_attr(
15046    not(target_arch = "arm"),
15047    stable(feature = "neon_intrinsics", since = "1.59.0")
15048)]
15049#[cfg_attr(
15050    target_arch = "arm",
15051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15052)]
15053pub unsafe fn vld1_dup_f32(ptr: *const f32) -> float32x2_t {
15054    transmute(f32x2::splat(*ptr))
15055}
15056#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p16)"]
15058#[doc = "## Safety"]
15059#[doc = "  * Neon intrinsic unsafe"]
15060#[inline(always)]
15061#[target_feature(enable = "neon")]
15062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15063#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15064#[cfg_attr(
15065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15066    assert_instr(ld1r)
15067)]
15068#[cfg_attr(
15069    not(target_arch = "arm"),
15070    stable(feature = "neon_intrinsics", since = "1.59.0")
15071)]
15072#[cfg_attr(
15073    target_arch = "arm",
15074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15075)]
15076pub unsafe fn vld1_dup_p16(ptr: *const p16) -> poly16x4_t {
15077    transmute(u16x4::splat(*ptr))
15078}
15079#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p8)"]
15081#[doc = "## Safety"]
15082#[doc = "  * Neon intrinsic unsafe"]
15083#[inline(always)]
15084#[target_feature(enable = "neon")]
15085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15086#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15087#[cfg_attr(
15088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15089    assert_instr(ld1r)
15090)]
15091#[cfg_attr(
15092    not(target_arch = "arm"),
15093    stable(feature = "neon_intrinsics", since = "1.59.0")
15094)]
15095#[cfg_attr(
15096    target_arch = "arm",
15097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15098)]
15099pub unsafe fn vld1_dup_p8(ptr: *const p8) -> poly8x8_t {
15100    transmute(u8x8::splat(*ptr))
15101}
15102#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s16)"]
15104#[doc = "## Safety"]
15105#[doc = "  * Neon intrinsic unsafe"]
15106#[inline(always)]
15107#[target_feature(enable = "neon")]
15108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15109#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15110#[cfg_attr(
15111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15112    assert_instr(ld1r)
15113)]
15114#[cfg_attr(
15115    not(target_arch = "arm"),
15116    stable(feature = "neon_intrinsics", since = "1.59.0")
15117)]
15118#[cfg_attr(
15119    target_arch = "arm",
15120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15121)]
15122pub unsafe fn vld1_dup_s16(ptr: *const i16) -> int16x4_t {
15123    transmute(i16x4::splat(*ptr))
15124}
15125#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s32)"]
15127#[doc = "## Safety"]
15128#[doc = "  * Neon intrinsic unsafe"]
15129#[inline(always)]
15130#[target_feature(enable = "neon")]
15131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15132#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15133#[cfg_attr(
15134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15135    assert_instr(ld1r)
15136)]
15137#[cfg_attr(
15138    not(target_arch = "arm"),
15139    stable(feature = "neon_intrinsics", since = "1.59.0")
15140)]
15141#[cfg_attr(
15142    target_arch = "arm",
15143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15144)]
15145pub unsafe fn vld1_dup_s32(ptr: *const i32) -> int32x2_t {
15146    transmute(i32x2::splat(*ptr))
15147}
15148#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s8)"]
15150#[doc = "## Safety"]
15151#[doc = "  * Neon intrinsic unsafe"]
15152#[inline(always)]
15153#[target_feature(enable = "neon")]
15154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15155#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15156#[cfg_attr(
15157    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15158    assert_instr(ld1r)
15159)]
15160#[cfg_attr(
15161    not(target_arch = "arm"),
15162    stable(feature = "neon_intrinsics", since = "1.59.0")
15163)]
15164#[cfg_attr(
15165    target_arch = "arm",
15166    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15167)]
15168pub unsafe fn vld1_dup_s8(ptr: *const i8) -> int8x8_t {
15169    transmute(i8x8::splat(*ptr))
15170}
15171#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15172#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u16)"]
15173#[doc = "## Safety"]
15174#[doc = "  * Neon intrinsic unsafe"]
15175#[inline(always)]
15176#[target_feature(enable = "neon")]
15177#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15178#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15179#[cfg_attr(
15180    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15181    assert_instr(ld1r)
15182)]
15183#[cfg_attr(
15184    not(target_arch = "arm"),
15185    stable(feature = "neon_intrinsics", since = "1.59.0")
15186)]
15187#[cfg_attr(
15188    target_arch = "arm",
15189    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15190)]
15191pub unsafe fn vld1_dup_u16(ptr: *const u16) -> uint16x4_t {
15192    transmute(u16x4::splat(*ptr))
15193}
15194#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u32)"]
15196#[doc = "## Safety"]
15197#[doc = "  * Neon intrinsic unsafe"]
15198#[inline(always)]
15199#[target_feature(enable = "neon")]
15200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15201#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15202#[cfg_attr(
15203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15204    assert_instr(ld1r)
15205)]
15206#[cfg_attr(
15207    not(target_arch = "arm"),
15208    stable(feature = "neon_intrinsics", since = "1.59.0")
15209)]
15210#[cfg_attr(
15211    target_arch = "arm",
15212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15213)]
15214pub unsafe fn vld1_dup_u32(ptr: *const u32) -> uint32x2_t {
15215    transmute(u32x2::splat(*ptr))
15216}
15217#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u8)"]
15219#[doc = "## Safety"]
15220#[doc = "  * Neon intrinsic unsafe"]
15221#[inline(always)]
15222#[target_feature(enable = "neon")]
15223#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15224#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15225#[cfg_attr(
15226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15227    assert_instr(ld1r)
15228)]
15229#[cfg_attr(
15230    not(target_arch = "arm"),
15231    stable(feature = "neon_intrinsics", since = "1.59.0")
15232)]
15233#[cfg_attr(
15234    target_arch = "arm",
15235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15236)]
15237pub unsafe fn vld1_dup_u8(ptr: *const u8) -> uint8x8_t {
15238    transmute(u8x8::splat(*ptr))
15239}
15240#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_f32)"]
15242#[doc = "## Safety"]
15243#[doc = "  * Neon intrinsic unsafe"]
15244#[inline(always)]
15245#[target_feature(enable = "neon")]
15246#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15247#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15248#[cfg_attr(
15249    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15250    assert_instr(ld1r)
15251)]
15252#[cfg_attr(
15253    not(target_arch = "arm"),
15254    stable(feature = "neon_intrinsics", since = "1.59.0")
15255)]
15256#[cfg_attr(
15257    target_arch = "arm",
15258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15259)]
15260pub unsafe fn vld1q_dup_f32(ptr: *const f32) -> float32x4_t {
15261    transmute(f32x4::splat(*ptr))
15262}
15263#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p16)"]
15265#[doc = "## Safety"]
15266#[doc = "  * Neon intrinsic unsafe"]
15267#[inline(always)]
15268#[target_feature(enable = "neon")]
15269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15270#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15271#[cfg_attr(
15272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15273    assert_instr(ld1r)
15274)]
15275#[cfg_attr(
15276    not(target_arch = "arm"),
15277    stable(feature = "neon_intrinsics", since = "1.59.0")
15278)]
15279#[cfg_attr(
15280    target_arch = "arm",
15281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15282)]
15283pub unsafe fn vld1q_dup_p16(ptr: *const p16) -> poly16x8_t {
15284    transmute(u16x8::splat(*ptr))
15285}
15286#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p8)"]
15288#[doc = "## Safety"]
15289#[doc = "  * Neon intrinsic unsafe"]
15290#[inline(always)]
15291#[target_feature(enable = "neon")]
15292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15293#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15294#[cfg_attr(
15295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15296    assert_instr(ld1r)
15297)]
15298#[cfg_attr(
15299    not(target_arch = "arm"),
15300    stable(feature = "neon_intrinsics", since = "1.59.0")
15301)]
15302#[cfg_attr(
15303    target_arch = "arm",
15304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15305)]
15306pub unsafe fn vld1q_dup_p8(ptr: *const p8) -> poly8x16_t {
15307    transmute(u8x16::splat(*ptr))
15308}
15309#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s16)"]
15311#[doc = "## Safety"]
15312#[doc = "  * Neon intrinsic unsafe"]
15313#[inline(always)]
15314#[target_feature(enable = "neon")]
15315#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15316#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15317#[cfg_attr(
15318    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15319    assert_instr(ld1r)
15320)]
15321#[cfg_attr(
15322    not(target_arch = "arm"),
15323    stable(feature = "neon_intrinsics", since = "1.59.0")
15324)]
15325#[cfg_attr(
15326    target_arch = "arm",
15327    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15328)]
15329pub unsafe fn vld1q_dup_s16(ptr: *const i16) -> int16x8_t {
15330    transmute(i16x8::splat(*ptr))
15331}
15332#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15333#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s32)"]
15334#[doc = "## Safety"]
15335#[doc = "  * Neon intrinsic unsafe"]
15336#[inline(always)]
15337#[target_feature(enable = "neon")]
15338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15339#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15340#[cfg_attr(
15341    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15342    assert_instr(ld1r)
15343)]
15344#[cfg_attr(
15345    not(target_arch = "arm"),
15346    stable(feature = "neon_intrinsics", since = "1.59.0")
15347)]
15348#[cfg_attr(
15349    target_arch = "arm",
15350    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15351)]
15352pub unsafe fn vld1q_dup_s32(ptr: *const i32) -> int32x4_t {
15353    transmute(i32x4::splat(*ptr))
15354}
15355#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s64)"]
15357#[doc = "## Safety"]
15358#[doc = "  * Neon intrinsic unsafe"]
15359#[inline(always)]
15360#[target_feature(enable = "neon")]
15361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15362#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))]
15363#[cfg_attr(
15364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15365    assert_instr(ld1r)
15366)]
15367#[cfg_attr(
15368    not(target_arch = "arm"),
15369    stable(feature = "neon_intrinsics", since = "1.59.0")
15370)]
15371#[cfg_attr(
15372    target_arch = "arm",
15373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15374)]
15375pub unsafe fn vld1q_dup_s64(ptr: *const i64) -> int64x2_t {
15376    transmute(i64x2::splat(*ptr))
15377}
15378#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s8)"]
15380#[doc = "## Safety"]
15381#[doc = "  * Neon intrinsic unsafe"]
15382#[inline(always)]
15383#[target_feature(enable = "neon")]
15384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15385#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15386#[cfg_attr(
15387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15388    assert_instr(ld1r)
15389)]
15390#[cfg_attr(
15391    not(target_arch = "arm"),
15392    stable(feature = "neon_intrinsics", since = "1.59.0")
15393)]
15394#[cfg_attr(
15395    target_arch = "arm",
15396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15397)]
15398pub unsafe fn vld1q_dup_s8(ptr: *const i8) -> int8x16_t {
15399    transmute(i8x16::splat(*ptr))
15400}
15401#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u16)"]
15403#[doc = "## Safety"]
15404#[doc = "  * Neon intrinsic unsafe"]
15405#[inline(always)]
15406#[target_feature(enable = "neon")]
15407#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15408#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15409#[cfg_attr(
15410    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15411    assert_instr(ld1r)
15412)]
15413#[cfg_attr(
15414    not(target_arch = "arm"),
15415    stable(feature = "neon_intrinsics", since = "1.59.0")
15416)]
15417#[cfg_attr(
15418    target_arch = "arm",
15419    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15420)]
15421pub unsafe fn vld1q_dup_u16(ptr: *const u16) -> uint16x8_t {
15422    transmute(u16x8::splat(*ptr))
15423}
15424#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15425#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u32)"]
15426#[doc = "## Safety"]
15427#[doc = "  * Neon intrinsic unsafe"]
15428#[inline(always)]
15429#[target_feature(enable = "neon")]
15430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15431#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15432#[cfg_attr(
15433    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15434    assert_instr(ld1r)
15435)]
15436#[cfg_attr(
15437    not(target_arch = "arm"),
15438    stable(feature = "neon_intrinsics", since = "1.59.0")
15439)]
15440#[cfg_attr(
15441    target_arch = "arm",
15442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15443)]
15444pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t {
15445    transmute(u32x4::splat(*ptr))
15446}
15447#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15448#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u64)"]
15449#[doc = "## Safety"]
15450#[doc = "  * Neon intrinsic unsafe"]
15451#[inline(always)]
15452#[target_feature(enable = "neon")]
15453#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15454#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))]
15455#[cfg_attr(
15456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15457    assert_instr(ld1r)
15458)]
15459#[cfg_attr(
15460    not(target_arch = "arm"),
15461    stable(feature = "neon_intrinsics", since = "1.59.0")
15462)]
15463#[cfg_attr(
15464    target_arch = "arm",
15465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15466)]
15467pub unsafe fn vld1q_dup_u64(ptr: *const u64) -> uint64x2_t {
15468    transmute(u64x2::splat(*ptr))
15469}
15470#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15471#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u8)"]
15472#[doc = "## Safety"]
15473#[doc = "  * Neon intrinsic unsafe"]
15474#[inline(always)]
15475#[target_feature(enable = "neon")]
15476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15478#[cfg_attr(
15479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15480    assert_instr(ld1r)
15481)]
15482#[cfg_attr(
15483    not(target_arch = "arm"),
15484    stable(feature = "neon_intrinsics", since = "1.59.0")
15485)]
15486#[cfg_attr(
15487    target_arch = "arm",
15488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15489)]
15490pub unsafe fn vld1q_dup_u8(ptr: *const u8) -> uint8x16_t {
15491    transmute(u8x16::splat(*ptr))
15492}
15493#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p64)"]
15495#[doc = "## Safety"]
15496#[doc = "  * Neon intrinsic unsafe"]
15497#[inline(always)]
15498#[target_feature(enable = "neon,aes")]
15499#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15500#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15501#[cfg_attr(
15502    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15503    assert_instr(ldr)
15504)]
15505#[cfg_attr(
15506    not(target_arch = "arm"),
15507    stable(feature = "neon_intrinsics", since = "1.59.0")
15508)]
15509#[cfg_attr(
15510    target_arch = "arm",
15511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15512)]
15513pub unsafe fn vld1_dup_p64(ptr: *const p64) -> poly64x1_t {
15514    let x: poly64x1_t;
15515    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
15516    {
15517        x = crate::core_arch::aarch64::vld1_p64(ptr);
15518    }
15519    #[cfg(target_arch = "arm")]
15520    {
15521        x = crate::core_arch::arm::vld1_p64(ptr);
15522    };
15523    x
15524}
15525#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15526#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s64)"]
15527#[doc = "## Safety"]
15528#[doc = "  * Neon intrinsic unsafe"]
15529#[inline(always)]
15530#[target_feature(enable = "neon")]
15531#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15532#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15533#[cfg_attr(
15534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15535    assert_instr(ldr)
15536)]
15537#[cfg_attr(
15538    not(target_arch = "arm"),
15539    stable(feature = "neon_intrinsics", since = "1.59.0")
15540)]
15541#[cfg_attr(
15542    target_arch = "arm",
15543    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15544)]
15545pub unsafe fn vld1_dup_s64(ptr: *const i64) -> int64x1_t {
15546    let x: int64x1_t;
15547    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
15548    {
15549        x = crate::core_arch::aarch64::vld1_s64(ptr);
15550    }
15551    #[cfg(target_arch = "arm")]
15552    {
15553        x = crate::core_arch::arm::vld1_s64(ptr);
15554    };
15555    x
15556}
15557#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u64)"]
15559#[doc = "## Safety"]
15560#[doc = "  * Neon intrinsic unsafe"]
15561#[inline(always)]
15562#[target_feature(enable = "neon")]
15563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15564#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15565#[cfg_attr(
15566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15567    assert_instr(ldr)
15568)]
15569#[cfg_attr(
15570    not(target_arch = "arm"),
15571    stable(feature = "neon_intrinsics", since = "1.59.0")
15572)]
15573#[cfg_attr(
15574    target_arch = "arm",
15575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15576)]
15577pub unsafe fn vld1_dup_u64(ptr: *const u64) -> uint64x1_t {
15578    let x: uint64x1_t;
15579    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
15580    {
15581        x = crate::core_arch::aarch64::vld1_u64(ptr);
15582    }
15583    #[cfg(target_arch = "arm")]
15584    {
15585        x = crate::core_arch::arm::vld1_u64(ptr);
15586    };
15587    x
15588}
15589#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16)"]
15591#[doc = "## Safety"]
15592#[doc = "  * Neon intrinsic unsafe"]
15593#[inline(always)]
15594#[cfg(target_endian = "little")]
15595#[cfg(target_arch = "arm")]
15596#[target_feature(enable = "neon,v7")]
15597#[target_feature(enable = "neon,fp16")]
15598#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15599#[cfg(not(target_arch = "arm64ec"))]
15600#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15601pub unsafe fn vld1_f16(ptr: *const f16) -> float16x4_t {
15602    transmute(vld1_v4f16(
15603        ptr as *const i8,
15604        crate::mem::align_of::<f16>() as i32,
15605    ))
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)"]
15609#[doc = "## Safety"]
15610#[doc = "  * Neon intrinsic unsafe"]
15611#[inline(always)]
15612#[cfg(target_endian = "big")]
15613#[cfg(target_arch = "arm")]
15614#[target_feature(enable = "neon,v7")]
15615#[target_feature(enable = "neon,fp16")]
15616#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15617#[cfg(not(target_arch = "arm64ec"))]
15618#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15619pub unsafe fn vld1_f16(ptr: *const f16) -> float16x4_t {
15620    let ret_val: float16x4_t = transmute(vld1_v4f16(
15621        ptr as *const i8,
15622        crate::mem::align_of::<f16>() as i32,
15623    ));
15624    simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
15625}
15626#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15627#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16)"]
15628#[doc = "## Safety"]
15629#[doc = "  * Neon intrinsic unsafe"]
15630#[inline(always)]
15631#[cfg(target_endian = "little")]
15632#[cfg(target_arch = "arm")]
15633#[target_feature(enable = "neon,v7")]
15634#[target_feature(enable = "neon,fp16")]
15635#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15636#[cfg(not(target_arch = "arm64ec"))]
15637#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15638pub unsafe fn vld1q_f16(ptr: *const f16) -> float16x8_t {
15639    transmute(vld1q_v8f16(
15640        ptr as *const i8,
15641        crate::mem::align_of::<f16>() as i32,
15642    ))
15643}
15644#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16)"]
15646#[doc = "## Safety"]
15647#[doc = "  * Neon intrinsic unsafe"]
15648#[inline(always)]
15649#[cfg(target_endian = "big")]
15650#[cfg(target_arch = "arm")]
15651#[target_feature(enable = "neon,v7")]
15652#[target_feature(enable = "neon,fp16")]
15653#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15654#[cfg(not(target_arch = "arm64ec"))]
15655#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15656pub unsafe fn vld1q_f16(ptr: *const f16) -> float16x8_t {
15657    let ret_val: float16x8_t = transmute(vld1q_v8f16(
15658        ptr as *const i8,
15659        crate::mem::align_of::<f16>() as i32,
15660    ));
15661    simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
15662}
15663#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x2)"]
15665#[doc = "## Safety"]
15666#[doc = "  * Neon intrinsic unsafe"]
15667#[inline(always)]
15668#[target_feature(enable = "neon")]
15669#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15670#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15671#[cfg_attr(
15672    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15673    assert_instr(ld)
15674)]
15675#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15676#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15677#[cfg(not(target_arch = "arm64ec"))]
15678pub unsafe fn vld1_f16_x2(a: *const f16) -> float16x4x2_t {
15679    crate::ptr::read_unaligned(a.cast())
15680}
15681#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x3)"]
15683#[doc = "## Safety"]
15684#[doc = "  * Neon intrinsic unsafe"]
15685#[inline(always)]
15686#[target_feature(enable = "neon")]
15687#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15688#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15689#[cfg_attr(
15690    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15691    assert_instr(ld)
15692)]
15693#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15694#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15695#[cfg(not(target_arch = "arm64ec"))]
15696pub unsafe fn vld1_f16_x3(a: *const f16) -> float16x4x3_t {
15697    crate::ptr::read_unaligned(a.cast())
15698}
15699#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15700#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x4)"]
15701#[doc = "## Safety"]
15702#[doc = "  * Neon intrinsic unsafe"]
15703#[inline(always)]
15704#[target_feature(enable = "neon")]
15705#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15706#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15707#[cfg_attr(
15708    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15709    assert_instr(ld)
15710)]
15711#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15712#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15713#[cfg(not(target_arch = "arm64ec"))]
15714pub unsafe fn vld1_f16_x4(a: *const f16) -> float16x4x4_t {
15715    crate::ptr::read_unaligned(a.cast())
15716}
15717#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x2)"]
15719#[doc = "## Safety"]
15720#[doc = "  * Neon intrinsic unsafe"]
15721#[inline(always)]
15722#[target_feature(enable = "neon")]
15723#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15724#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15725#[cfg_attr(
15726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15727    assert_instr(ld)
15728)]
15729#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15730#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15731#[cfg(not(target_arch = "arm64ec"))]
15732pub unsafe fn vld1q_f16_x2(a: *const f16) -> float16x8x2_t {
15733    crate::ptr::read_unaligned(a.cast())
15734}
15735#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x3)"]
15737#[doc = "## Safety"]
15738#[doc = "  * Neon intrinsic unsafe"]
15739#[inline(always)]
15740#[target_feature(enable = "neon")]
15741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15742#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15743#[cfg_attr(
15744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15745    assert_instr(ld)
15746)]
15747#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15748#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15749#[cfg(not(target_arch = "arm64ec"))]
15750pub unsafe fn vld1q_f16_x3(a: *const f16) -> float16x8x3_t {
15751    crate::ptr::read_unaligned(a.cast())
15752}
15753#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x4)"]
15755#[doc = "## Safety"]
15756#[doc = "  * Neon intrinsic unsafe"]
15757#[inline(always)]
15758#[target_feature(enable = "neon")]
15759#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15760#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15761#[cfg_attr(
15762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15763    assert_instr(ld)
15764)]
15765#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15766#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15767#[cfg(not(target_arch = "arm64ec"))]
15768pub unsafe fn vld1q_f16_x4(a: *const f16) -> float16x8x4_t {
15769    crate::ptr::read_unaligned(a.cast())
15770}
15771#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32)"]
15773#[doc = "## Safety"]
15774#[doc = "  * Neon intrinsic unsafe"]
15775#[inline(always)]
15776#[cfg(target_arch = "arm")]
15777#[target_feature(enable = "neon,v7")]
15778#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15780pub unsafe fn vld1_f32(ptr: *const f32) -> float32x2_t {
15781    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
15782    transmute(vld1_v2f32::<ALIGN>(ptr as *const i8))
15783}
15784#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32)"]
15786#[doc = "## Safety"]
15787#[doc = "  * Neon intrinsic unsafe"]
15788#[inline(always)]
15789#[cfg(target_arch = "arm")]
15790#[target_feature(enable = "neon,v7")]
15791#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15792#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15793pub unsafe fn vld1q_f32(ptr: *const f32) -> float32x4_t {
15794    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
15795    transmute(vld1q_v4f32::<ALIGN>(ptr as *const i8))
15796}
15797#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15798#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8)"]
15799#[doc = "## Safety"]
15800#[doc = "  * Neon intrinsic unsafe"]
15801#[inline(always)]
15802#[cfg(target_arch = "arm")]
15803#[target_feature(enable = "neon,v7")]
15804#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15805#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15806pub unsafe fn vld1_u8(ptr: *const u8) -> uint8x8_t {
15807    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
15808    transmute(vld1_v8i8::<ALIGN>(ptr as *const i8))
15809}
15810#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8)"]
15812#[doc = "## Safety"]
15813#[doc = "  * Neon intrinsic unsafe"]
15814#[inline(always)]
15815#[cfg(target_arch = "arm")]
15816#[target_feature(enable = "neon,v7")]
15817#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15818#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15819pub unsafe fn vld1q_u8(ptr: *const u8) -> uint8x16_t {
15820    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
15821    transmute(vld1q_v16i8::<ALIGN>(ptr as *const i8))
15822}
15823#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15824#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16)"]
15825#[doc = "## Safety"]
15826#[doc = "  * Neon intrinsic unsafe"]
15827#[inline(always)]
15828#[cfg(target_arch = "arm")]
15829#[target_feature(enable = "neon,v7")]
15830#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15831#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15832pub unsafe fn vld1_u16(ptr: *const u16) -> uint16x4_t {
15833    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
15834    transmute(vld1_v4i16::<ALIGN>(ptr as *const i8))
15835}
15836#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16)"]
15838#[doc = "## Safety"]
15839#[doc = "  * Neon intrinsic unsafe"]
15840#[inline(always)]
15841#[cfg(target_arch = "arm")]
15842#[target_feature(enable = "neon,v7")]
15843#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15844#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15845pub unsafe fn vld1q_u16(ptr: *const u16) -> uint16x8_t {
15846    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
15847    transmute(vld1q_v8i16::<ALIGN>(ptr as *const i8))
15848}
15849#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15850#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32)"]
15851#[doc = "## Safety"]
15852#[doc = "  * Neon intrinsic unsafe"]
15853#[inline(always)]
15854#[cfg(target_arch = "arm")]
15855#[target_feature(enable = "neon,v7")]
15856#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15858pub unsafe fn vld1_u32(ptr: *const u32) -> uint32x2_t {
15859    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
15860    transmute(vld1_v2i32::<ALIGN>(ptr as *const i8))
15861}
15862#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32)"]
15864#[doc = "## Safety"]
15865#[doc = "  * Neon intrinsic unsafe"]
15866#[inline(always)]
15867#[cfg(target_arch = "arm")]
15868#[target_feature(enable = "neon,v7")]
15869#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15870#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15871pub unsafe fn vld1q_u32(ptr: *const u32) -> uint32x4_t {
15872    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
15873    transmute(vld1q_v4i32::<ALIGN>(ptr as *const i8))
15874}
15875#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64)"]
15877#[doc = "## Safety"]
15878#[doc = "  * Neon intrinsic unsafe"]
15879#[inline(always)]
15880#[cfg(target_arch = "arm")]
15881#[target_feature(enable = "neon,v7")]
15882#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15884pub unsafe fn vld1_u64(ptr: *const u64) -> uint64x1_t {
15885    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
15886    transmute(vld1_v1i64::<ALIGN>(ptr as *const i8))
15887}
15888#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64)"]
15890#[doc = "## Safety"]
15891#[doc = "  * Neon intrinsic unsafe"]
15892#[inline(always)]
15893#[cfg(target_arch = "arm")]
15894#[target_feature(enable = "neon,v7")]
15895#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15896#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
15897pub unsafe fn vld1q_u64(ptr: *const u64) -> uint64x2_t {
15898    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
15899    transmute(vld1q_v2i64::<ALIGN>(ptr as *const i8))
15900}
15901#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8)"]
15903#[doc = "## Safety"]
15904#[doc = "  * Neon intrinsic unsafe"]
15905#[inline(always)]
15906#[cfg(target_arch = "arm")]
15907#[target_feature(enable = "neon,v7")]
15908#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15909#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15910pub unsafe fn vld1_p8(ptr: *const p8) -> poly8x8_t {
15911    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
15912    transmute(vld1_v8i8::<ALIGN>(ptr as *const i8))
15913}
15914#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8)"]
15916#[doc = "## Safety"]
15917#[doc = "  * Neon intrinsic unsafe"]
15918#[inline(always)]
15919#[cfg(target_arch = "arm")]
15920#[target_feature(enable = "neon,v7")]
15921#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15922#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15923pub unsafe fn vld1q_p8(ptr: *const p8) -> poly8x16_t {
15924    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
15925    transmute(vld1q_v16i8::<ALIGN>(ptr as *const i8))
15926}
15927#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16)"]
15929#[doc = "## Safety"]
15930#[doc = "  * Neon intrinsic unsafe"]
15931#[inline(always)]
15932#[cfg(target_arch = "arm")]
15933#[target_feature(enable = "neon,v7")]
15934#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15935#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15936pub unsafe fn vld1_p16(ptr: *const p16) -> poly16x4_t {
15937    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
15938    transmute(vld1_v4i16::<ALIGN>(ptr as *const i8))
15939}
15940#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15941#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16)"]
15942#[doc = "## Safety"]
15943#[doc = "  * Neon intrinsic unsafe"]
15944#[inline(always)]
15945#[cfg(target_arch = "arm")]
15946#[target_feature(enable = "neon,v7")]
15947#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15948#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15949pub unsafe fn vld1q_p16(ptr: *const p16) -> poly16x8_t {
15950    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
15951    transmute(vld1q_v8i16::<ALIGN>(ptr as *const i8))
15952}
15953#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64)"]
15955#[doc = "## Safety"]
15956#[doc = "  * Neon intrinsic unsafe"]
15957#[inline(always)]
15958#[cfg(target_arch = "arm")]
15959#[target_feature(enable = "neon,aes")]
15960#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15961#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
15962pub unsafe fn vld1q_p64(ptr: *const p64) -> poly64x2_t {
15963    const ALIGN: i32 = crate::mem::align_of::<p64>() as i32;
15964    transmute(vld1q_v2i64::<ALIGN>(ptr as *const i8))
15965}
15966#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x2)"]
15968#[doc = "## Safety"]
15969#[doc = "  * Neon intrinsic unsafe"]
15970#[inline(always)]
15971#[target_feature(enable = "neon")]
15972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15973#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
15974#[cfg_attr(
15975    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15976    assert_instr(ld)
15977)]
15978#[cfg_attr(
15979    not(target_arch = "arm"),
15980    stable(feature = "neon_intrinsics", since = "1.59.0")
15981)]
15982#[cfg_attr(
15983    target_arch = "arm",
15984    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15985)]
15986pub unsafe fn vld1_f32_x2(a: *const f32) -> float32x2x2_t {
15987    crate::ptr::read_unaligned(a.cast())
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 intrinsic unsafe"]
15993#[inline(always)]
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(vld))]
15997#[cfg_attr(
15998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15999    assert_instr(ld)
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    crate::ptr::read_unaligned(a.cast())
16011}
16012#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x4)"]
16014#[doc = "## Safety"]
16015#[doc = "  * Neon intrinsic unsafe"]
16016#[inline(always)]
16017#[target_feature(enable = "neon")]
16018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16020#[cfg_attr(
16021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16022    assert_instr(ld)
16023)]
16024#[cfg_attr(
16025    not(target_arch = "arm"),
16026    stable(feature = "neon_intrinsics", since = "1.59.0")
16027)]
16028#[cfg_attr(
16029    target_arch = "arm",
16030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16031)]
16032pub unsafe fn vld1_f32_x4(a: *const f32) -> float32x2x4_t {
16033    crate::ptr::read_unaligned(a.cast())
16034}
16035#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x2)"]
16037#[doc = "## Safety"]
16038#[doc = "  * Neon intrinsic unsafe"]
16039#[inline(always)]
16040#[target_feature(enable = "neon")]
16041#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16042#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16043#[cfg_attr(
16044    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16045    assert_instr(ld)
16046)]
16047#[cfg_attr(
16048    not(target_arch = "arm"),
16049    stable(feature = "neon_intrinsics", since = "1.59.0")
16050)]
16051#[cfg_attr(
16052    target_arch = "arm",
16053    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16054)]
16055pub unsafe fn vld1q_f32_x2(a: *const f32) -> float32x4x2_t {
16056    crate::ptr::read_unaligned(a.cast())
16057}
16058#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x3)"]
16060#[doc = "## Safety"]
16061#[doc = "  * Neon intrinsic unsafe"]
16062#[inline(always)]
16063#[target_feature(enable = "neon")]
16064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16066#[cfg_attr(
16067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16068    assert_instr(ld)
16069)]
16070#[cfg_attr(
16071    not(target_arch = "arm"),
16072    stable(feature = "neon_intrinsics", since = "1.59.0")
16073)]
16074#[cfg_attr(
16075    target_arch = "arm",
16076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16077)]
16078pub unsafe fn vld1q_f32_x3(a: *const f32) -> float32x4x3_t {
16079    crate::ptr::read_unaligned(a.cast())
16080}
16081#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x4)"]
16083#[doc = "## Safety"]
16084#[doc = "  * Neon intrinsic unsafe"]
16085#[inline(always)]
16086#[target_feature(enable = "neon")]
16087#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16088#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16089#[cfg_attr(
16090    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16091    assert_instr(ld)
16092)]
16093#[cfg_attr(
16094    not(target_arch = "arm"),
16095    stable(feature = "neon_intrinsics", since = "1.59.0")
16096)]
16097#[cfg_attr(
16098    target_arch = "arm",
16099    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16100)]
16101pub unsafe fn vld1q_f32_x4(a: *const f32) -> float32x4x4_t {
16102    crate::ptr::read_unaligned(a.cast())
16103}
16104#[doc = "Load one single-element structure to one lane of one register"]
16105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_f16)"]
16106#[doc = "## Safety"]
16107#[doc = "  * Neon intrinsic unsafe"]
16108#[inline(always)]
16109#[target_feature(enable = "neon")]
16110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16111#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1, LANE = 0))]
16112#[cfg_attr(
16113    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16114    assert_instr(ld1, LANE = 0)
16115)]
16116#[rustc_legacy_const_generics(2)]
16117#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
16118#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
16119#[cfg(not(target_arch = "arm64ec"))]
16120pub unsafe fn vld1_lane_f16<const LANE: i32>(ptr: *const f16, src: float16x4_t) -> float16x4_t {
16121    static_assert_uimm_bits!(LANE, 2);
16122    simd_insert!(src, LANE as u32, *ptr)
16123}
16124#[doc = "Load one single-element structure to one lane of one register"]
16125#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_f16)"]
16126#[doc = "## Safety"]
16127#[doc = "  * Neon intrinsic unsafe"]
16128#[inline(always)]
16129#[target_feature(enable = "neon")]
16130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1, LANE = 0))]
16132#[cfg_attr(
16133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16134    assert_instr(ld1, LANE = 0)
16135)]
16136#[rustc_legacy_const_generics(2)]
16137#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
16138#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
16139#[cfg(not(target_arch = "arm64ec"))]
16140pub unsafe fn vld1q_lane_f16<const LANE: i32>(ptr: *const f16, src: float16x8_t) -> float16x8_t {
16141    static_assert_uimm_bits!(LANE, 3);
16142    simd_insert!(src, LANE as u32, *ptr)
16143}
16144#[doc = "Load one single-element structure to one lane of one register."]
16145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_f32)"]
16146#[doc = "## Safety"]
16147#[doc = "  * Neon intrinsic unsafe"]
16148#[inline(always)]
16149#[target_feature(enable = "neon")]
16150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16151#[rustc_legacy_const_generics(2)]
16152#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16153#[cfg_attr(
16154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16155    assert_instr(ld1, LANE = 1)
16156)]
16157#[cfg_attr(
16158    not(target_arch = "arm"),
16159    stable(feature = "neon_intrinsics", since = "1.59.0")
16160)]
16161#[cfg_attr(
16162    target_arch = "arm",
16163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16164)]
16165pub unsafe fn vld1_lane_f32<const LANE: i32>(ptr: *const f32, src: float32x2_t) -> float32x2_t {
16166    static_assert_uimm_bits!(LANE, 1);
16167    simd_insert!(src, LANE as u32, *ptr)
16168}
16169#[doc = "Load one single-element structure to one lane of one register."]
16170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p16)"]
16171#[doc = "## Safety"]
16172#[doc = "  * Neon intrinsic unsafe"]
16173#[inline(always)]
16174#[target_feature(enable = "neon")]
16175#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16176#[rustc_legacy_const_generics(2)]
16177#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16178#[cfg_attr(
16179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16180    assert_instr(ld1, LANE = 3)
16181)]
16182#[cfg_attr(
16183    not(target_arch = "arm"),
16184    stable(feature = "neon_intrinsics", since = "1.59.0")
16185)]
16186#[cfg_attr(
16187    target_arch = "arm",
16188    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16189)]
16190pub unsafe fn vld1_lane_p16<const LANE: i32>(ptr: *const p16, src: poly16x4_t) -> poly16x4_t {
16191    static_assert_uimm_bits!(LANE, 2);
16192    simd_insert!(src, LANE as u32, *ptr)
16193}
16194#[doc = "Load one single-element structure to one lane of one register."]
16195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p8)"]
16196#[doc = "## Safety"]
16197#[doc = "  * Neon intrinsic unsafe"]
16198#[inline(always)]
16199#[target_feature(enable = "neon")]
16200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16201#[rustc_legacy_const_generics(2)]
16202#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16203#[cfg_attr(
16204    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16205    assert_instr(ld1, LANE = 7)
16206)]
16207#[cfg_attr(
16208    not(target_arch = "arm"),
16209    stable(feature = "neon_intrinsics", since = "1.59.0")
16210)]
16211#[cfg_attr(
16212    target_arch = "arm",
16213    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16214)]
16215pub unsafe fn vld1_lane_p8<const LANE: i32>(ptr: *const p8, src: poly8x8_t) -> poly8x8_t {
16216    static_assert_uimm_bits!(LANE, 3);
16217    simd_insert!(src, LANE as u32, *ptr)
16218}
16219#[doc = "Load one single-element structure to one lane of one register."]
16220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s16)"]
16221#[doc = "## Safety"]
16222#[doc = "  * Neon intrinsic unsafe"]
16223#[inline(always)]
16224#[target_feature(enable = "neon")]
16225#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16226#[rustc_legacy_const_generics(2)]
16227#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16228#[cfg_attr(
16229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16230    assert_instr(ld1, LANE = 3)
16231)]
16232#[cfg_attr(
16233    not(target_arch = "arm"),
16234    stable(feature = "neon_intrinsics", since = "1.59.0")
16235)]
16236#[cfg_attr(
16237    target_arch = "arm",
16238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16239)]
16240pub unsafe fn vld1_lane_s16<const LANE: i32>(ptr: *const i16, src: int16x4_t) -> int16x4_t {
16241    static_assert_uimm_bits!(LANE, 2);
16242    simd_insert!(src, LANE as u32, *ptr)
16243}
16244#[doc = "Load one single-element structure to one lane of one register."]
16245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s32)"]
16246#[doc = "## Safety"]
16247#[doc = "  * Neon intrinsic unsafe"]
16248#[inline(always)]
16249#[target_feature(enable = "neon")]
16250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16251#[rustc_legacy_const_generics(2)]
16252#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16253#[cfg_attr(
16254    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16255    assert_instr(ld1, LANE = 1)
16256)]
16257#[cfg_attr(
16258    not(target_arch = "arm"),
16259    stable(feature = "neon_intrinsics", since = "1.59.0")
16260)]
16261#[cfg_attr(
16262    target_arch = "arm",
16263    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16264)]
16265pub unsafe fn vld1_lane_s32<const LANE: i32>(ptr: *const i32, src: int32x2_t) -> int32x2_t {
16266    static_assert_uimm_bits!(LANE, 1);
16267    simd_insert!(src, LANE as u32, *ptr)
16268}
16269#[doc = "Load one single-element structure to one lane of one register."]
16270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s64)"]
16271#[doc = "## Safety"]
16272#[doc = "  * Neon intrinsic unsafe"]
16273#[inline(always)]
16274#[target_feature(enable = "neon")]
16275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16276#[rustc_legacy_const_generics(2)]
16277#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16278#[cfg_attr(
16279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16280    assert_instr(ldr, LANE = 0)
16281)]
16282#[cfg_attr(
16283    not(target_arch = "arm"),
16284    stable(feature = "neon_intrinsics", since = "1.59.0")
16285)]
16286#[cfg_attr(
16287    target_arch = "arm",
16288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16289)]
16290pub unsafe fn vld1_lane_s64<const LANE: i32>(ptr: *const i64, src: int64x1_t) -> int64x1_t {
16291    static_assert!(LANE == 0);
16292    simd_insert!(src, LANE as u32, *ptr)
16293}
16294#[doc = "Load one single-element structure to one lane of one register."]
16295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s8)"]
16296#[doc = "## Safety"]
16297#[doc = "  * Neon intrinsic unsafe"]
16298#[inline(always)]
16299#[target_feature(enable = "neon")]
16300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16301#[rustc_legacy_const_generics(2)]
16302#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16303#[cfg_attr(
16304    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16305    assert_instr(ld1, LANE = 7)
16306)]
16307#[cfg_attr(
16308    not(target_arch = "arm"),
16309    stable(feature = "neon_intrinsics", since = "1.59.0")
16310)]
16311#[cfg_attr(
16312    target_arch = "arm",
16313    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16314)]
16315pub unsafe fn vld1_lane_s8<const LANE: i32>(ptr: *const i8, src: int8x8_t) -> int8x8_t {
16316    static_assert_uimm_bits!(LANE, 3);
16317    simd_insert!(src, LANE as u32, *ptr)
16318}
16319#[doc = "Load one single-element structure to one lane of one register."]
16320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u16)"]
16321#[doc = "## Safety"]
16322#[doc = "  * Neon intrinsic unsafe"]
16323#[inline(always)]
16324#[target_feature(enable = "neon")]
16325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16326#[rustc_legacy_const_generics(2)]
16327#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16328#[cfg_attr(
16329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16330    assert_instr(ld1, LANE = 3)
16331)]
16332#[cfg_attr(
16333    not(target_arch = "arm"),
16334    stable(feature = "neon_intrinsics", since = "1.59.0")
16335)]
16336#[cfg_attr(
16337    target_arch = "arm",
16338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16339)]
16340pub unsafe fn vld1_lane_u16<const LANE: i32>(ptr: *const u16, src: uint16x4_t) -> uint16x4_t {
16341    static_assert_uimm_bits!(LANE, 2);
16342    simd_insert!(src, LANE as u32, *ptr)
16343}
16344#[doc = "Load one single-element structure to one lane of one register."]
16345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u32)"]
16346#[doc = "## Safety"]
16347#[doc = "  * Neon intrinsic unsafe"]
16348#[inline(always)]
16349#[target_feature(enable = "neon")]
16350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16351#[rustc_legacy_const_generics(2)]
16352#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16353#[cfg_attr(
16354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16355    assert_instr(ld1, LANE = 1)
16356)]
16357#[cfg_attr(
16358    not(target_arch = "arm"),
16359    stable(feature = "neon_intrinsics", since = "1.59.0")
16360)]
16361#[cfg_attr(
16362    target_arch = "arm",
16363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16364)]
16365pub unsafe fn vld1_lane_u32<const LANE: i32>(ptr: *const u32, src: uint32x2_t) -> uint32x2_t {
16366    static_assert_uimm_bits!(LANE, 1);
16367    simd_insert!(src, LANE as u32, *ptr)
16368}
16369#[doc = "Load one single-element structure to one lane of one register."]
16370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u64)"]
16371#[doc = "## Safety"]
16372#[doc = "  * Neon intrinsic unsafe"]
16373#[inline(always)]
16374#[target_feature(enable = "neon")]
16375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16376#[rustc_legacy_const_generics(2)]
16377#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16378#[cfg_attr(
16379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16380    assert_instr(ldr, LANE = 0)
16381)]
16382#[cfg_attr(
16383    not(target_arch = "arm"),
16384    stable(feature = "neon_intrinsics", since = "1.59.0")
16385)]
16386#[cfg_attr(
16387    target_arch = "arm",
16388    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16389)]
16390pub unsafe fn vld1_lane_u64<const LANE: i32>(ptr: *const u64, src: uint64x1_t) -> uint64x1_t {
16391    static_assert!(LANE == 0);
16392    simd_insert!(src, LANE as u32, *ptr)
16393}
16394#[doc = "Load one single-element structure to one lane of one register."]
16395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u8)"]
16396#[doc = "## Safety"]
16397#[doc = "  * Neon intrinsic unsafe"]
16398#[inline(always)]
16399#[target_feature(enable = "neon")]
16400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16401#[rustc_legacy_const_generics(2)]
16402#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16403#[cfg_attr(
16404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16405    assert_instr(ld1, LANE = 7)
16406)]
16407#[cfg_attr(
16408    not(target_arch = "arm"),
16409    stable(feature = "neon_intrinsics", since = "1.59.0")
16410)]
16411#[cfg_attr(
16412    target_arch = "arm",
16413    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16414)]
16415pub unsafe fn vld1_lane_u8<const LANE: i32>(ptr: *const u8, src: uint8x8_t) -> uint8x8_t {
16416    static_assert_uimm_bits!(LANE, 3);
16417    simd_insert!(src, LANE as u32, *ptr)
16418}
16419#[doc = "Load one single-element structure to one lane of one register."]
16420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_f32)"]
16421#[doc = "## Safety"]
16422#[doc = "  * Neon intrinsic unsafe"]
16423#[inline(always)]
16424#[target_feature(enable = "neon")]
16425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16426#[rustc_legacy_const_generics(2)]
16427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16428#[cfg_attr(
16429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16430    assert_instr(ld1, LANE = 3)
16431)]
16432#[cfg_attr(
16433    not(target_arch = "arm"),
16434    stable(feature = "neon_intrinsics", since = "1.59.0")
16435)]
16436#[cfg_attr(
16437    target_arch = "arm",
16438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16439)]
16440pub unsafe fn vld1q_lane_f32<const LANE: i32>(ptr: *const f32, src: float32x4_t) -> float32x4_t {
16441    static_assert_uimm_bits!(LANE, 2);
16442    simd_insert!(src, LANE as u32, *ptr)
16443}
16444#[doc = "Load one single-element structure to one lane of one register."]
16445#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p16)"]
16446#[doc = "## Safety"]
16447#[doc = "  * Neon intrinsic unsafe"]
16448#[inline(always)]
16449#[target_feature(enable = "neon")]
16450#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16451#[rustc_legacy_const_generics(2)]
16452#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16453#[cfg_attr(
16454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16455    assert_instr(ld1, LANE = 7)
16456)]
16457#[cfg_attr(
16458    not(target_arch = "arm"),
16459    stable(feature = "neon_intrinsics", since = "1.59.0")
16460)]
16461#[cfg_attr(
16462    target_arch = "arm",
16463    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16464)]
16465pub unsafe fn vld1q_lane_p16<const LANE: i32>(ptr: *const p16, src: poly16x8_t) -> poly16x8_t {
16466    static_assert_uimm_bits!(LANE, 3);
16467    simd_insert!(src, LANE as u32, *ptr)
16468}
16469#[doc = "Load one single-element structure to one lane of one register."]
16470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p8)"]
16471#[doc = "## Safety"]
16472#[doc = "  * Neon intrinsic unsafe"]
16473#[inline(always)]
16474#[target_feature(enable = "neon")]
16475#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16476#[rustc_legacy_const_generics(2)]
16477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16478#[cfg_attr(
16479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16480    assert_instr(ld1, LANE = 15)
16481)]
16482#[cfg_attr(
16483    not(target_arch = "arm"),
16484    stable(feature = "neon_intrinsics", since = "1.59.0")
16485)]
16486#[cfg_attr(
16487    target_arch = "arm",
16488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16489)]
16490pub unsafe fn vld1q_lane_p8<const LANE: i32>(ptr: *const p8, src: poly8x16_t) -> poly8x16_t {
16491    static_assert_uimm_bits!(LANE, 4);
16492    simd_insert!(src, LANE as u32, *ptr)
16493}
16494#[doc = "Load one single-element structure to one lane of one register."]
16495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s16)"]
16496#[doc = "## Safety"]
16497#[doc = "  * Neon intrinsic unsafe"]
16498#[inline(always)]
16499#[target_feature(enable = "neon")]
16500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16501#[rustc_legacy_const_generics(2)]
16502#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16503#[cfg_attr(
16504    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16505    assert_instr(ld1, LANE = 7)
16506)]
16507#[cfg_attr(
16508    not(target_arch = "arm"),
16509    stable(feature = "neon_intrinsics", since = "1.59.0")
16510)]
16511#[cfg_attr(
16512    target_arch = "arm",
16513    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16514)]
16515pub unsafe fn vld1q_lane_s16<const LANE: i32>(ptr: *const i16, src: int16x8_t) -> int16x8_t {
16516    static_assert_uimm_bits!(LANE, 3);
16517    simd_insert!(src, LANE as u32, *ptr)
16518}
16519#[doc = "Load one single-element structure to one lane of one register."]
16520#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s32)"]
16521#[doc = "## Safety"]
16522#[doc = "  * Neon intrinsic unsafe"]
16523#[inline(always)]
16524#[target_feature(enable = "neon")]
16525#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16526#[rustc_legacy_const_generics(2)]
16527#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16528#[cfg_attr(
16529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16530    assert_instr(ld1, LANE = 3)
16531)]
16532#[cfg_attr(
16533    not(target_arch = "arm"),
16534    stable(feature = "neon_intrinsics", since = "1.59.0")
16535)]
16536#[cfg_attr(
16537    target_arch = "arm",
16538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16539)]
16540pub unsafe fn vld1q_lane_s32<const LANE: i32>(ptr: *const i32, src: int32x4_t) -> int32x4_t {
16541    static_assert_uimm_bits!(LANE, 2);
16542    simd_insert!(src, LANE as u32, *ptr)
16543}
16544#[doc = "Load one single-element structure to one lane of one register."]
16545#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s64)"]
16546#[doc = "## Safety"]
16547#[doc = "  * Neon intrinsic unsafe"]
16548#[inline(always)]
16549#[target_feature(enable = "neon")]
16550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16551#[rustc_legacy_const_generics(2)]
16552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16553#[cfg_attr(
16554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16555    assert_instr(ld1, LANE = 1)
16556)]
16557#[cfg_attr(
16558    not(target_arch = "arm"),
16559    stable(feature = "neon_intrinsics", since = "1.59.0")
16560)]
16561#[cfg_attr(
16562    target_arch = "arm",
16563    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16564)]
16565pub unsafe fn vld1q_lane_s64<const LANE: i32>(ptr: *const i64, src: int64x2_t) -> int64x2_t {
16566    static_assert_uimm_bits!(LANE, 1);
16567    simd_insert!(src, LANE as u32, *ptr)
16568}
16569#[doc = "Load one single-element structure to one lane of one register."]
16570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s8)"]
16571#[doc = "## Safety"]
16572#[doc = "  * Neon intrinsic unsafe"]
16573#[inline(always)]
16574#[target_feature(enable = "neon")]
16575#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16576#[rustc_legacy_const_generics(2)]
16577#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16578#[cfg_attr(
16579    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16580    assert_instr(ld1, LANE = 15)
16581)]
16582#[cfg_attr(
16583    not(target_arch = "arm"),
16584    stable(feature = "neon_intrinsics", since = "1.59.0")
16585)]
16586#[cfg_attr(
16587    target_arch = "arm",
16588    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16589)]
16590pub unsafe fn vld1q_lane_s8<const LANE: i32>(ptr: *const i8, src: int8x16_t) -> int8x16_t {
16591    static_assert_uimm_bits!(LANE, 4);
16592    simd_insert!(src, LANE as u32, *ptr)
16593}
16594#[doc = "Load one single-element structure to one lane of one register."]
16595#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u16)"]
16596#[doc = "## Safety"]
16597#[doc = "  * Neon intrinsic unsafe"]
16598#[inline(always)]
16599#[target_feature(enable = "neon")]
16600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16601#[rustc_legacy_const_generics(2)]
16602#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16603#[cfg_attr(
16604    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16605    assert_instr(ld1, LANE = 7)
16606)]
16607#[cfg_attr(
16608    not(target_arch = "arm"),
16609    stable(feature = "neon_intrinsics", since = "1.59.0")
16610)]
16611#[cfg_attr(
16612    target_arch = "arm",
16613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16614)]
16615pub unsafe fn vld1q_lane_u16<const LANE: i32>(ptr: *const u16, src: uint16x8_t) -> uint16x8_t {
16616    static_assert_uimm_bits!(LANE, 3);
16617    simd_insert!(src, LANE as u32, *ptr)
16618}
16619#[doc = "Load one single-element structure to one lane of one register."]
16620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u32)"]
16621#[doc = "## Safety"]
16622#[doc = "  * Neon intrinsic unsafe"]
16623#[inline(always)]
16624#[target_feature(enable = "neon")]
16625#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16626#[rustc_legacy_const_generics(2)]
16627#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16628#[cfg_attr(
16629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16630    assert_instr(ld1, LANE = 3)
16631)]
16632#[cfg_attr(
16633    not(target_arch = "arm"),
16634    stable(feature = "neon_intrinsics", since = "1.59.0")
16635)]
16636#[cfg_attr(
16637    target_arch = "arm",
16638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16639)]
16640pub unsafe fn vld1q_lane_u32<const LANE: i32>(ptr: *const u32, src: uint32x4_t) -> uint32x4_t {
16641    static_assert_uimm_bits!(LANE, 2);
16642    simd_insert!(src, LANE as u32, *ptr)
16643}
16644#[doc = "Load one single-element structure to one lane of one register."]
16645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u64)"]
16646#[doc = "## Safety"]
16647#[doc = "  * Neon intrinsic unsafe"]
16648#[inline(always)]
16649#[target_feature(enable = "neon")]
16650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16651#[rustc_legacy_const_generics(2)]
16652#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16653#[cfg_attr(
16654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16655    assert_instr(ld1, LANE = 1)
16656)]
16657#[cfg_attr(
16658    not(target_arch = "arm"),
16659    stable(feature = "neon_intrinsics", since = "1.59.0")
16660)]
16661#[cfg_attr(
16662    target_arch = "arm",
16663    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16664)]
16665pub unsafe fn vld1q_lane_u64<const LANE: i32>(ptr: *const u64, src: uint64x2_t) -> uint64x2_t {
16666    static_assert_uimm_bits!(LANE, 1);
16667    simd_insert!(src, LANE as u32, *ptr)
16668}
16669#[doc = "Load one single-element structure to one lane of one register."]
16670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u8)"]
16671#[doc = "## Safety"]
16672#[doc = "  * Neon intrinsic unsafe"]
16673#[inline(always)]
16674#[target_feature(enable = "neon")]
16675#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16676#[rustc_legacy_const_generics(2)]
16677#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16678#[cfg_attr(
16679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16680    assert_instr(ld1, LANE = 15)
16681)]
16682#[cfg_attr(
16683    not(target_arch = "arm"),
16684    stable(feature = "neon_intrinsics", since = "1.59.0")
16685)]
16686#[cfg_attr(
16687    target_arch = "arm",
16688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16689)]
16690pub unsafe fn vld1q_lane_u8<const LANE: i32>(ptr: *const u8, src: uint8x16_t) -> uint8x16_t {
16691    static_assert_uimm_bits!(LANE, 4);
16692    simd_insert!(src, LANE as u32, *ptr)
16693}
16694#[doc = "Load one single-element structure to one lane of one register."]
16695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p64)"]
16696#[doc = "## Safety"]
16697#[doc = "  * Neon intrinsic unsafe"]
16698#[inline(always)]
16699#[target_feature(enable = "neon,aes")]
16700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16701#[rustc_legacy_const_generics(2)]
16702#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16703#[cfg_attr(
16704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16705    assert_instr(ldr, LANE = 0)
16706)]
16707#[cfg_attr(
16708    not(target_arch = "arm"),
16709    stable(feature = "neon_intrinsics", since = "1.59.0")
16710)]
16711#[cfg_attr(
16712    target_arch = "arm",
16713    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16714)]
16715pub unsafe fn vld1_lane_p64<const LANE: i32>(ptr: *const p64, src: poly64x1_t) -> poly64x1_t {
16716    static_assert!(LANE == 0);
16717    simd_insert!(src, LANE as u32, *ptr)
16718}
16719#[doc = "Load one single-element structure to one lane of one register."]
16720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p64)"]
16721#[doc = "## Safety"]
16722#[doc = "  * Neon intrinsic unsafe"]
16723#[inline(always)]
16724#[target_feature(enable = "neon,aes")]
16725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16726#[rustc_legacy_const_generics(2)]
16727#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16728#[cfg_attr(
16729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16730    assert_instr(ld1, LANE = 1)
16731)]
16732#[cfg_attr(
16733    not(target_arch = "arm"),
16734    stable(feature = "neon_intrinsics", since = "1.59.0")
16735)]
16736#[cfg_attr(
16737    target_arch = "arm",
16738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16739)]
16740pub unsafe fn vld1q_lane_p64<const LANE: i32>(ptr: *const p64, src: poly64x2_t) -> poly64x2_t {
16741    static_assert_uimm_bits!(LANE, 1);
16742    simd_insert!(src, LANE as u32, *ptr)
16743}
16744#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64)"]
16746#[doc = "## Safety"]
16747#[doc = "  * Neon intrinsic unsafe"]
16748#[inline(always)]
16749#[cfg(target_arch = "arm")]
16750#[target_feature(enable = "neon,aes")]
16751#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
16753pub unsafe fn vld1_p64(ptr: *const p64) -> poly64x1_t {
16754    let a: *const i8 = ptr as *const i8;
16755    let b: i32 = crate::mem::align_of::<p64>() as i32;
16756    unsafe extern "unadjusted" {
16757        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v1i64")]
16758        fn _vld1_v1i64(a: *const i8, b: i32) -> int64x1_t;
16759    }
16760    transmute(_vld1_v1i64(a, b))
16761}
16762#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x2)"]
16764#[doc = "## Safety"]
16765#[doc = "  * Neon intrinsic unsafe"]
16766#[inline(always)]
16767#[target_feature(enable = "neon,aes")]
16768#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16769#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16770#[cfg_attr(
16771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16772    assert_instr(ld)
16773)]
16774#[cfg_attr(
16775    not(target_arch = "arm"),
16776    stable(feature = "neon_intrinsics", since = "1.59.0")
16777)]
16778#[cfg_attr(
16779    target_arch = "arm",
16780    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16781)]
16782pub unsafe fn vld1_p64_x2(a: *const p64) -> poly64x1x2_t {
16783    crate::ptr::read_unaligned(a.cast())
16784}
16785#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x3)"]
16787#[doc = "## Safety"]
16788#[doc = "  * Neon intrinsic unsafe"]
16789#[inline(always)]
16790#[target_feature(enable = "neon,aes")]
16791#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16793#[cfg_attr(
16794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16795    assert_instr(ld)
16796)]
16797#[cfg_attr(
16798    not(target_arch = "arm"),
16799    stable(feature = "neon_intrinsics", since = "1.59.0")
16800)]
16801#[cfg_attr(
16802    target_arch = "arm",
16803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16804)]
16805pub unsafe fn vld1_p64_x3(a: *const p64) -> poly64x1x3_t {
16806    crate::ptr::read_unaligned(a.cast())
16807}
16808#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x4)"]
16810#[doc = "## Safety"]
16811#[doc = "  * Neon intrinsic unsafe"]
16812#[inline(always)]
16813#[target_feature(enable = "neon,aes")]
16814#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16816#[cfg_attr(
16817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16818    assert_instr(ld)
16819)]
16820#[cfg_attr(
16821    not(target_arch = "arm"),
16822    stable(feature = "neon_intrinsics", since = "1.59.0")
16823)]
16824#[cfg_attr(
16825    target_arch = "arm",
16826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16827)]
16828pub unsafe fn vld1_p64_x4(a: *const p64) -> poly64x1x4_t {
16829    crate::ptr::read_unaligned(a.cast())
16830}
16831#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16832#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x2)"]
16833#[doc = "## Safety"]
16834#[doc = "  * Neon intrinsic unsafe"]
16835#[inline(always)]
16836#[target_feature(enable = "neon,aes")]
16837#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16838#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16839#[cfg_attr(
16840    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16841    assert_instr(ld)
16842)]
16843#[cfg_attr(
16844    not(target_arch = "arm"),
16845    stable(feature = "neon_intrinsics", since = "1.59.0")
16846)]
16847#[cfg_attr(
16848    target_arch = "arm",
16849    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16850)]
16851pub unsafe fn vld1q_p64_x2(a: *const p64) -> poly64x2x2_t {
16852    crate::ptr::read_unaligned(a.cast())
16853}
16854#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x3)"]
16856#[doc = "## Safety"]
16857#[doc = "  * Neon intrinsic unsafe"]
16858#[inline(always)]
16859#[target_feature(enable = "neon,aes")]
16860#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16861#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16862#[cfg_attr(
16863    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16864    assert_instr(ld)
16865)]
16866#[cfg_attr(
16867    not(target_arch = "arm"),
16868    stable(feature = "neon_intrinsics", since = "1.59.0")
16869)]
16870#[cfg_attr(
16871    target_arch = "arm",
16872    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16873)]
16874pub unsafe fn vld1q_p64_x3(a: *const p64) -> poly64x2x3_t {
16875    crate::ptr::read_unaligned(a.cast())
16876}
16877#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x4)"]
16879#[doc = "## Safety"]
16880#[doc = "  * Neon intrinsic unsafe"]
16881#[inline(always)]
16882#[target_feature(enable = "neon,aes")]
16883#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16884#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16885#[cfg_attr(
16886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16887    assert_instr(ld)
16888)]
16889#[cfg_attr(
16890    not(target_arch = "arm"),
16891    stable(feature = "neon_intrinsics", since = "1.59.0")
16892)]
16893#[cfg_attr(
16894    target_arch = "arm",
16895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16896)]
16897pub unsafe fn vld1q_p64_x4(a: *const p64) -> poly64x2x4_t {
16898    crate::ptr::read_unaligned(a.cast())
16899}
16900#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16901#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8)"]
16902#[doc = "## Safety"]
16903#[doc = "  * Neon intrinsic unsafe"]
16904#[inline(always)]
16905#[cfg(target_arch = "arm")]
16906#[target_feature(enable = "neon,v7")]
16907#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16908#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
16909pub unsafe fn vld1_s8(ptr: *const i8) -> int8x8_t {
16910    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
16911    vld1_v8i8::<ALIGN>(ptr as *const i8)
16912}
16913#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8)"]
16915#[doc = "## Safety"]
16916#[doc = "  * Neon intrinsic unsafe"]
16917#[inline(always)]
16918#[cfg(target_arch = "arm")]
16919#[target_feature(enable = "neon,v7")]
16920#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16921#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
16922pub unsafe fn vld1q_s8(ptr: *const i8) -> int8x16_t {
16923    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
16924    vld1q_v16i8::<ALIGN>(ptr as *const i8)
16925}
16926#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16)"]
16928#[doc = "## Safety"]
16929#[doc = "  * Neon intrinsic unsafe"]
16930#[inline(always)]
16931#[cfg(target_arch = "arm")]
16932#[target_feature(enable = "neon,v7")]
16933#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16934#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
16935pub unsafe fn vld1_s16(ptr: *const i16) -> int16x4_t {
16936    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
16937    vld1_v4i16::<ALIGN>(ptr as *const i8)
16938}
16939#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16)"]
16941#[doc = "## Safety"]
16942#[doc = "  * Neon intrinsic unsafe"]
16943#[inline(always)]
16944#[cfg(target_arch = "arm")]
16945#[target_feature(enable = "neon,v7")]
16946#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16947#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
16948pub unsafe fn vld1q_s16(ptr: *const i16) -> int16x8_t {
16949    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
16950    vld1q_v8i16::<ALIGN>(ptr as *const i8)
16951}
16952#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32)"]
16954#[doc = "## Safety"]
16955#[doc = "  * Neon intrinsic unsafe"]
16956#[inline(always)]
16957#[cfg(target_arch = "arm")]
16958#[target_feature(enable = "neon,v7")]
16959#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16960#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
16961pub unsafe fn vld1_s32(ptr: *const i32) -> int32x2_t {
16962    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
16963    vld1_v2i32::<ALIGN>(ptr as *const i8)
16964}
16965#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32)"]
16967#[doc = "## Safety"]
16968#[doc = "  * Neon intrinsic unsafe"]
16969#[inline(always)]
16970#[cfg(target_arch = "arm")]
16971#[target_feature(enable = "neon,v7")]
16972#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16973#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
16974pub unsafe fn vld1q_s32(ptr: *const i32) -> int32x4_t {
16975    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
16976    vld1q_v4i32::<ALIGN>(ptr as *const i8)
16977}
16978#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64)"]
16980#[doc = "## Safety"]
16981#[doc = "  * Neon intrinsic unsafe"]
16982#[inline(always)]
16983#[cfg(target_arch = "arm")]
16984#[target_feature(enable = "neon,v7")]
16985#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16986#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
16987pub unsafe fn vld1_s64(ptr: *const i64) -> int64x1_t {
16988    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
16989    vld1_v1i64::<ALIGN>(ptr as *const i8)
16990}
16991#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64)"]
16993#[doc = "## Safety"]
16994#[doc = "  * Neon intrinsic unsafe"]
16995#[inline(always)]
16996#[cfg(target_arch = "arm")]
16997#[target_feature(enable = "neon,v7")]
16998#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16999#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
17000pub unsafe fn vld1q_s64(ptr: *const i64) -> int64x2_t {
17001    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
17002    vld1q_v2i64::<ALIGN>(ptr as *const i8)
17003}
17004#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17005#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x2)"]
17006#[doc = "## Safety"]
17007#[doc = "  * Neon intrinsic unsafe"]
17008#[inline(always)]
17009#[target_feature(enable = "neon")]
17010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17011#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17012#[cfg_attr(
17013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17014    assert_instr(ld)
17015)]
17016#[cfg_attr(
17017    not(target_arch = "arm"),
17018    stable(feature = "neon_intrinsics", since = "1.59.0")
17019)]
17020#[cfg_attr(
17021    target_arch = "arm",
17022    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17023)]
17024pub unsafe fn vld1_s8_x2(a: *const i8) -> int8x8x2_t {
17025    crate::ptr::read_unaligned(a.cast())
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_x3)"]
17029#[doc = "## Safety"]
17030#[doc = "  * Neon intrinsic unsafe"]
17031#[inline(always)]
17032#[target_feature(enable = "neon")]
17033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17034#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17035#[cfg_attr(
17036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17037    assert_instr(ld)
17038)]
17039#[cfg_attr(
17040    not(target_arch = "arm"),
17041    stable(feature = "neon_intrinsics", since = "1.59.0")
17042)]
17043#[cfg_attr(
17044    target_arch = "arm",
17045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17046)]
17047pub unsafe fn vld1_s8_x3(a: *const i8) -> int8x8x3_t {
17048    crate::ptr::read_unaligned(a.cast())
17049}
17050#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x4)"]
17052#[doc = "## Safety"]
17053#[doc = "  * Neon intrinsic unsafe"]
17054#[inline(always)]
17055#[target_feature(enable = "neon")]
17056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17058#[cfg_attr(
17059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17060    assert_instr(ld)
17061)]
17062#[cfg_attr(
17063    not(target_arch = "arm"),
17064    stable(feature = "neon_intrinsics", since = "1.59.0")
17065)]
17066#[cfg_attr(
17067    target_arch = "arm",
17068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17069)]
17070pub unsafe fn vld1_s8_x4(a: *const i8) -> int8x8x4_t {
17071    crate::ptr::read_unaligned(a.cast())
17072}
17073#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x2)"]
17075#[doc = "## Safety"]
17076#[doc = "  * Neon intrinsic unsafe"]
17077#[inline(always)]
17078#[target_feature(enable = "neon")]
17079#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17080#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17081#[cfg_attr(
17082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17083    assert_instr(ld)
17084)]
17085#[cfg_attr(
17086    not(target_arch = "arm"),
17087    stable(feature = "neon_intrinsics", since = "1.59.0")
17088)]
17089#[cfg_attr(
17090    target_arch = "arm",
17091    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17092)]
17093pub unsafe fn vld1q_s8_x2(a: *const i8) -> int8x16x2_t {
17094    crate::ptr::read_unaligned(a.cast())
17095}
17096#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17097#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x3)"]
17098#[doc = "## Safety"]
17099#[doc = "  * Neon intrinsic unsafe"]
17100#[inline(always)]
17101#[target_feature(enable = "neon")]
17102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17103#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17104#[cfg_attr(
17105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17106    assert_instr(ld)
17107)]
17108#[cfg_attr(
17109    not(target_arch = "arm"),
17110    stable(feature = "neon_intrinsics", since = "1.59.0")
17111)]
17112#[cfg_attr(
17113    target_arch = "arm",
17114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17115)]
17116pub unsafe fn vld1q_s8_x3(a: *const i8) -> int8x16x3_t {
17117    crate::ptr::read_unaligned(a.cast())
17118}
17119#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x4)"]
17121#[doc = "## Safety"]
17122#[doc = "  * Neon intrinsic unsafe"]
17123#[inline(always)]
17124#[target_feature(enable = "neon")]
17125#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17126#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17127#[cfg_attr(
17128    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17129    assert_instr(ld)
17130)]
17131#[cfg_attr(
17132    not(target_arch = "arm"),
17133    stable(feature = "neon_intrinsics", since = "1.59.0")
17134)]
17135#[cfg_attr(
17136    target_arch = "arm",
17137    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17138)]
17139pub unsafe fn vld1q_s8_x4(a: *const i8) -> int8x16x4_t {
17140    crate::ptr::read_unaligned(a.cast())
17141}
17142#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x2)"]
17144#[doc = "## Safety"]
17145#[doc = "  * Neon intrinsic unsafe"]
17146#[inline(always)]
17147#[target_feature(enable = "neon")]
17148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17150#[cfg_attr(
17151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17152    assert_instr(ld)
17153)]
17154#[cfg_attr(
17155    not(target_arch = "arm"),
17156    stable(feature = "neon_intrinsics", since = "1.59.0")
17157)]
17158#[cfg_attr(
17159    target_arch = "arm",
17160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17161)]
17162pub unsafe fn vld1_s16_x2(a: *const i16) -> int16x4x2_t {
17163    crate::ptr::read_unaligned(a.cast())
17164}
17165#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x3)"]
17167#[doc = "## Safety"]
17168#[doc = "  * Neon intrinsic unsafe"]
17169#[inline(always)]
17170#[target_feature(enable = "neon")]
17171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17173#[cfg_attr(
17174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17175    assert_instr(ld)
17176)]
17177#[cfg_attr(
17178    not(target_arch = "arm"),
17179    stable(feature = "neon_intrinsics", since = "1.59.0")
17180)]
17181#[cfg_attr(
17182    target_arch = "arm",
17183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17184)]
17185pub unsafe fn vld1_s16_x3(a: *const i16) -> int16x4x3_t {
17186    crate::ptr::read_unaligned(a.cast())
17187}
17188#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x4)"]
17190#[doc = "## Safety"]
17191#[doc = "  * Neon intrinsic unsafe"]
17192#[inline(always)]
17193#[target_feature(enable = "neon")]
17194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17196#[cfg_attr(
17197    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17198    assert_instr(ld)
17199)]
17200#[cfg_attr(
17201    not(target_arch = "arm"),
17202    stable(feature = "neon_intrinsics", since = "1.59.0")
17203)]
17204#[cfg_attr(
17205    target_arch = "arm",
17206    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17207)]
17208pub unsafe fn vld1_s16_x4(a: *const i16) -> int16x4x4_t {
17209    crate::ptr::read_unaligned(a.cast())
17210}
17211#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x2)"]
17213#[doc = "## Safety"]
17214#[doc = "  * Neon intrinsic unsafe"]
17215#[inline(always)]
17216#[target_feature(enable = "neon")]
17217#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17218#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17219#[cfg_attr(
17220    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17221    assert_instr(ld)
17222)]
17223#[cfg_attr(
17224    not(target_arch = "arm"),
17225    stable(feature = "neon_intrinsics", since = "1.59.0")
17226)]
17227#[cfg_attr(
17228    target_arch = "arm",
17229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17230)]
17231pub unsafe fn vld1q_s16_x2(a: *const i16) -> int16x8x2_t {
17232    crate::ptr::read_unaligned(a.cast())
17233}
17234#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x3)"]
17236#[doc = "## Safety"]
17237#[doc = "  * Neon intrinsic unsafe"]
17238#[inline(always)]
17239#[target_feature(enable = "neon")]
17240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17242#[cfg_attr(
17243    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17244    assert_instr(ld)
17245)]
17246#[cfg_attr(
17247    not(target_arch = "arm"),
17248    stable(feature = "neon_intrinsics", since = "1.59.0")
17249)]
17250#[cfg_attr(
17251    target_arch = "arm",
17252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17253)]
17254pub unsafe fn vld1q_s16_x3(a: *const i16) -> int16x8x3_t {
17255    crate::ptr::read_unaligned(a.cast())
17256}
17257#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x4)"]
17259#[doc = "## Safety"]
17260#[doc = "  * Neon intrinsic unsafe"]
17261#[inline(always)]
17262#[target_feature(enable = "neon")]
17263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17265#[cfg_attr(
17266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17267    assert_instr(ld)
17268)]
17269#[cfg_attr(
17270    not(target_arch = "arm"),
17271    stable(feature = "neon_intrinsics", since = "1.59.0")
17272)]
17273#[cfg_attr(
17274    target_arch = "arm",
17275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17276)]
17277pub unsafe fn vld1q_s16_x4(a: *const i16) -> int16x8x4_t {
17278    crate::ptr::read_unaligned(a.cast())
17279}
17280#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x2)"]
17282#[doc = "## Safety"]
17283#[doc = "  * Neon intrinsic unsafe"]
17284#[inline(always)]
17285#[target_feature(enable = "neon")]
17286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17287#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17288#[cfg_attr(
17289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17290    assert_instr(ld)
17291)]
17292#[cfg_attr(
17293    not(target_arch = "arm"),
17294    stable(feature = "neon_intrinsics", since = "1.59.0")
17295)]
17296#[cfg_attr(
17297    target_arch = "arm",
17298    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17299)]
17300pub unsafe fn vld1_s32_x2(a: *const i32) -> int32x2x2_t {
17301    crate::ptr::read_unaligned(a.cast())
17302}
17303#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x3)"]
17305#[doc = "## Safety"]
17306#[doc = "  * Neon intrinsic unsafe"]
17307#[inline(always)]
17308#[target_feature(enable = "neon")]
17309#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17310#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17311#[cfg_attr(
17312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17313    assert_instr(ld)
17314)]
17315#[cfg_attr(
17316    not(target_arch = "arm"),
17317    stable(feature = "neon_intrinsics", since = "1.59.0")
17318)]
17319#[cfg_attr(
17320    target_arch = "arm",
17321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17322)]
17323pub unsafe fn vld1_s32_x3(a: *const i32) -> int32x2x3_t {
17324    crate::ptr::read_unaligned(a.cast())
17325}
17326#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x4)"]
17328#[doc = "## Safety"]
17329#[doc = "  * Neon intrinsic unsafe"]
17330#[inline(always)]
17331#[target_feature(enable = "neon")]
17332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17333#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17334#[cfg_attr(
17335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17336    assert_instr(ld)
17337)]
17338#[cfg_attr(
17339    not(target_arch = "arm"),
17340    stable(feature = "neon_intrinsics", since = "1.59.0")
17341)]
17342#[cfg_attr(
17343    target_arch = "arm",
17344    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17345)]
17346pub unsafe fn vld1_s32_x4(a: *const i32) -> int32x2x4_t {
17347    crate::ptr::read_unaligned(a.cast())
17348}
17349#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x2)"]
17351#[doc = "## Safety"]
17352#[doc = "  * Neon intrinsic unsafe"]
17353#[inline(always)]
17354#[target_feature(enable = "neon")]
17355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17356#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17357#[cfg_attr(
17358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17359    assert_instr(ld)
17360)]
17361#[cfg_attr(
17362    not(target_arch = "arm"),
17363    stable(feature = "neon_intrinsics", since = "1.59.0")
17364)]
17365#[cfg_attr(
17366    target_arch = "arm",
17367    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17368)]
17369pub unsafe fn vld1q_s32_x2(a: *const i32) -> int32x4x2_t {
17370    crate::ptr::read_unaligned(a.cast())
17371}
17372#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17373#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x3)"]
17374#[doc = "## Safety"]
17375#[doc = "  * Neon intrinsic unsafe"]
17376#[inline(always)]
17377#[target_feature(enable = "neon")]
17378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17380#[cfg_attr(
17381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17382    assert_instr(ld)
17383)]
17384#[cfg_attr(
17385    not(target_arch = "arm"),
17386    stable(feature = "neon_intrinsics", since = "1.59.0")
17387)]
17388#[cfg_attr(
17389    target_arch = "arm",
17390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17391)]
17392pub unsafe fn vld1q_s32_x3(a: *const i32) -> int32x4x3_t {
17393    crate::ptr::read_unaligned(a.cast())
17394}
17395#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x4)"]
17397#[doc = "## Safety"]
17398#[doc = "  * Neon intrinsic unsafe"]
17399#[inline(always)]
17400#[target_feature(enable = "neon")]
17401#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17402#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17403#[cfg_attr(
17404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17405    assert_instr(ld)
17406)]
17407#[cfg_attr(
17408    not(target_arch = "arm"),
17409    stable(feature = "neon_intrinsics", since = "1.59.0")
17410)]
17411#[cfg_attr(
17412    target_arch = "arm",
17413    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17414)]
17415pub unsafe fn vld1q_s32_x4(a: *const i32) -> int32x4x4_t {
17416    crate::ptr::read_unaligned(a.cast())
17417}
17418#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x2)"]
17420#[doc = "## Safety"]
17421#[doc = "  * Neon intrinsic unsafe"]
17422#[inline(always)]
17423#[target_feature(enable = "neon")]
17424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17425#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17426#[cfg_attr(
17427    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17428    assert_instr(ld)
17429)]
17430#[cfg_attr(
17431    not(target_arch = "arm"),
17432    stable(feature = "neon_intrinsics", since = "1.59.0")
17433)]
17434#[cfg_attr(
17435    target_arch = "arm",
17436    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17437)]
17438pub unsafe fn vld1_s64_x2(a: *const i64) -> int64x1x2_t {
17439    crate::ptr::read_unaligned(a.cast())
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/vld1_s64_x3)"]
17443#[doc = "## Safety"]
17444#[doc = "  * Neon intrinsic unsafe"]
17445#[inline(always)]
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(vld))]
17449#[cfg_attr(
17450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17451    assert_instr(ld)
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 vld1_s64_x3(a: *const i64) -> int64x1x3_t {
17462    crate::ptr::read_unaligned(a.cast())
17463}
17464#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x4)"]
17466#[doc = "## Safety"]
17467#[doc = "  * Neon intrinsic unsafe"]
17468#[inline(always)]
17469#[target_feature(enable = "neon")]
17470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17472#[cfg_attr(
17473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17474    assert_instr(ld)
17475)]
17476#[cfg_attr(
17477    not(target_arch = "arm"),
17478    stable(feature = "neon_intrinsics", since = "1.59.0")
17479)]
17480#[cfg_attr(
17481    target_arch = "arm",
17482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17483)]
17484pub unsafe fn vld1_s64_x4(a: *const i64) -> int64x1x4_t {
17485    crate::ptr::read_unaligned(a.cast())
17486}
17487#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x2)"]
17489#[doc = "## Safety"]
17490#[doc = "  * Neon intrinsic unsafe"]
17491#[inline(always)]
17492#[target_feature(enable = "neon")]
17493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17495#[cfg_attr(
17496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17497    assert_instr(ld)
17498)]
17499#[cfg_attr(
17500    not(target_arch = "arm"),
17501    stable(feature = "neon_intrinsics", since = "1.59.0")
17502)]
17503#[cfg_attr(
17504    target_arch = "arm",
17505    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17506)]
17507pub unsafe fn vld1q_s64_x2(a: *const i64) -> int64x2x2_t {
17508    crate::ptr::read_unaligned(a.cast())
17509}
17510#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17511#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x3)"]
17512#[doc = "## Safety"]
17513#[doc = "  * Neon intrinsic unsafe"]
17514#[inline(always)]
17515#[target_feature(enable = "neon")]
17516#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17517#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17518#[cfg_attr(
17519    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17520    assert_instr(ld)
17521)]
17522#[cfg_attr(
17523    not(target_arch = "arm"),
17524    stable(feature = "neon_intrinsics", since = "1.59.0")
17525)]
17526#[cfg_attr(
17527    target_arch = "arm",
17528    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17529)]
17530pub unsafe fn vld1q_s64_x3(a: *const i64) -> int64x2x3_t {
17531    crate::ptr::read_unaligned(a.cast())
17532}
17533#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x4)"]
17535#[doc = "## Safety"]
17536#[doc = "  * Neon intrinsic unsafe"]
17537#[inline(always)]
17538#[target_feature(enable = "neon")]
17539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17540#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17541#[cfg_attr(
17542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17543    assert_instr(ld)
17544)]
17545#[cfg_attr(
17546    not(target_arch = "arm"),
17547    stable(feature = "neon_intrinsics", since = "1.59.0")
17548)]
17549#[cfg_attr(
17550    target_arch = "arm",
17551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17552)]
17553pub unsafe fn vld1q_s64_x4(a: *const i64) -> int64x2x4_t {
17554    crate::ptr::read_unaligned(a.cast())
17555}
17556#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x2)"]
17558#[doc = "## Safety"]
17559#[doc = "  * Neon intrinsic unsafe"]
17560#[inline(always)]
17561#[target_feature(enable = "neon")]
17562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17563#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17564#[cfg_attr(
17565    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17566    assert_instr(ld)
17567)]
17568#[cfg_attr(
17569    not(target_arch = "arm"),
17570    stable(feature = "neon_intrinsics", since = "1.59.0")
17571)]
17572#[cfg_attr(
17573    target_arch = "arm",
17574    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17575)]
17576pub unsafe fn vld1_u8_x2(a: *const u8) -> uint8x8x2_t {
17577    crate::ptr::read_unaligned(a.cast())
17578}
17579#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17580#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x3)"]
17581#[doc = "## Safety"]
17582#[doc = "  * Neon intrinsic unsafe"]
17583#[inline(always)]
17584#[target_feature(enable = "neon")]
17585#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17586#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17587#[cfg_attr(
17588    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17589    assert_instr(ld)
17590)]
17591#[cfg_attr(
17592    not(target_arch = "arm"),
17593    stable(feature = "neon_intrinsics", since = "1.59.0")
17594)]
17595#[cfg_attr(
17596    target_arch = "arm",
17597    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17598)]
17599pub unsafe fn vld1_u8_x3(a: *const u8) -> uint8x8x3_t {
17600    crate::ptr::read_unaligned(a.cast())
17601}
17602#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17603#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x4)"]
17604#[doc = "## Safety"]
17605#[doc = "  * Neon intrinsic unsafe"]
17606#[inline(always)]
17607#[target_feature(enable = "neon")]
17608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17610#[cfg_attr(
17611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17612    assert_instr(ld)
17613)]
17614#[cfg_attr(
17615    not(target_arch = "arm"),
17616    stable(feature = "neon_intrinsics", since = "1.59.0")
17617)]
17618#[cfg_attr(
17619    target_arch = "arm",
17620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17621)]
17622pub unsafe fn vld1_u8_x4(a: *const u8) -> uint8x8x4_t {
17623    crate::ptr::read_unaligned(a.cast())
17624}
17625#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x2)"]
17627#[doc = "## Safety"]
17628#[doc = "  * Neon intrinsic unsafe"]
17629#[inline(always)]
17630#[target_feature(enable = "neon")]
17631#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17633#[cfg_attr(
17634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17635    assert_instr(ld)
17636)]
17637#[cfg_attr(
17638    not(target_arch = "arm"),
17639    stable(feature = "neon_intrinsics", since = "1.59.0")
17640)]
17641#[cfg_attr(
17642    target_arch = "arm",
17643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17644)]
17645pub unsafe fn vld1q_u8_x2(a: *const u8) -> uint8x16x2_t {
17646    crate::ptr::read_unaligned(a.cast())
17647}
17648#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x3)"]
17650#[doc = "## Safety"]
17651#[doc = "  * Neon intrinsic unsafe"]
17652#[inline(always)]
17653#[target_feature(enable = "neon")]
17654#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17655#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17656#[cfg_attr(
17657    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17658    assert_instr(ld)
17659)]
17660#[cfg_attr(
17661    not(target_arch = "arm"),
17662    stable(feature = "neon_intrinsics", since = "1.59.0")
17663)]
17664#[cfg_attr(
17665    target_arch = "arm",
17666    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17667)]
17668pub unsafe fn vld1q_u8_x3(a: *const u8) -> uint8x16x3_t {
17669    crate::ptr::read_unaligned(a.cast())
17670}
17671#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x4)"]
17673#[doc = "## Safety"]
17674#[doc = "  * Neon intrinsic unsafe"]
17675#[inline(always)]
17676#[target_feature(enable = "neon")]
17677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17678#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17679#[cfg_attr(
17680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17681    assert_instr(ld)
17682)]
17683#[cfg_attr(
17684    not(target_arch = "arm"),
17685    stable(feature = "neon_intrinsics", since = "1.59.0")
17686)]
17687#[cfg_attr(
17688    target_arch = "arm",
17689    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17690)]
17691pub unsafe fn vld1q_u8_x4(a: *const u8) -> uint8x16x4_t {
17692    crate::ptr::read_unaligned(a.cast())
17693}
17694#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x2)"]
17696#[doc = "## Safety"]
17697#[doc = "  * Neon intrinsic unsafe"]
17698#[inline(always)]
17699#[target_feature(enable = "neon")]
17700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17701#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17702#[cfg_attr(
17703    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17704    assert_instr(ld)
17705)]
17706#[cfg_attr(
17707    not(target_arch = "arm"),
17708    stable(feature = "neon_intrinsics", since = "1.59.0")
17709)]
17710#[cfg_attr(
17711    target_arch = "arm",
17712    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17713)]
17714pub unsafe fn vld1_u16_x2(a: *const u16) -> uint16x4x2_t {
17715    crate::ptr::read_unaligned(a.cast())
17716}
17717#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x3)"]
17719#[doc = "## Safety"]
17720#[doc = "  * Neon intrinsic unsafe"]
17721#[inline(always)]
17722#[target_feature(enable = "neon")]
17723#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17724#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17725#[cfg_attr(
17726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17727    assert_instr(ld)
17728)]
17729#[cfg_attr(
17730    not(target_arch = "arm"),
17731    stable(feature = "neon_intrinsics", since = "1.59.0")
17732)]
17733#[cfg_attr(
17734    target_arch = "arm",
17735    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17736)]
17737pub unsafe fn vld1_u16_x3(a: *const u16) -> uint16x4x3_t {
17738    crate::ptr::read_unaligned(a.cast())
17739}
17740#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x4)"]
17742#[doc = "## Safety"]
17743#[doc = "  * Neon intrinsic unsafe"]
17744#[inline(always)]
17745#[target_feature(enable = "neon")]
17746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17748#[cfg_attr(
17749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17750    assert_instr(ld)
17751)]
17752#[cfg_attr(
17753    not(target_arch = "arm"),
17754    stable(feature = "neon_intrinsics", since = "1.59.0")
17755)]
17756#[cfg_attr(
17757    target_arch = "arm",
17758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17759)]
17760pub unsafe fn vld1_u16_x4(a: *const u16) -> uint16x4x4_t {
17761    crate::ptr::read_unaligned(a.cast())
17762}
17763#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x2)"]
17765#[doc = "## Safety"]
17766#[doc = "  * Neon intrinsic unsafe"]
17767#[inline(always)]
17768#[target_feature(enable = "neon")]
17769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17771#[cfg_attr(
17772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17773    assert_instr(ld)
17774)]
17775#[cfg_attr(
17776    not(target_arch = "arm"),
17777    stable(feature = "neon_intrinsics", since = "1.59.0")
17778)]
17779#[cfg_attr(
17780    target_arch = "arm",
17781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17782)]
17783pub unsafe fn vld1q_u16_x2(a: *const u16) -> uint16x8x2_t {
17784    crate::ptr::read_unaligned(a.cast())
17785}
17786#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x3)"]
17788#[doc = "## Safety"]
17789#[doc = "  * Neon intrinsic unsafe"]
17790#[inline(always)]
17791#[target_feature(enable = "neon")]
17792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17794#[cfg_attr(
17795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17796    assert_instr(ld)
17797)]
17798#[cfg_attr(
17799    not(target_arch = "arm"),
17800    stable(feature = "neon_intrinsics", since = "1.59.0")
17801)]
17802#[cfg_attr(
17803    target_arch = "arm",
17804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17805)]
17806pub unsafe fn vld1q_u16_x3(a: *const u16) -> uint16x8x3_t {
17807    crate::ptr::read_unaligned(a.cast())
17808}
17809#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x4)"]
17811#[doc = "## Safety"]
17812#[doc = "  * Neon intrinsic unsafe"]
17813#[inline(always)]
17814#[target_feature(enable = "neon")]
17815#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17816#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17817#[cfg_attr(
17818    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17819    assert_instr(ld)
17820)]
17821#[cfg_attr(
17822    not(target_arch = "arm"),
17823    stable(feature = "neon_intrinsics", since = "1.59.0")
17824)]
17825#[cfg_attr(
17826    target_arch = "arm",
17827    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17828)]
17829pub unsafe fn vld1q_u16_x4(a: *const u16) -> uint16x8x4_t {
17830    crate::ptr::read_unaligned(a.cast())
17831}
17832#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x2)"]
17834#[doc = "## Safety"]
17835#[doc = "  * Neon intrinsic unsafe"]
17836#[inline(always)]
17837#[target_feature(enable = "neon")]
17838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17840#[cfg_attr(
17841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17842    assert_instr(ld)
17843)]
17844#[cfg_attr(
17845    not(target_arch = "arm"),
17846    stable(feature = "neon_intrinsics", since = "1.59.0")
17847)]
17848#[cfg_attr(
17849    target_arch = "arm",
17850    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17851)]
17852pub unsafe fn vld1_u32_x2(a: *const u32) -> uint32x2x2_t {
17853    crate::ptr::read_unaligned(a.cast())
17854}
17855#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x3)"]
17857#[doc = "## Safety"]
17858#[doc = "  * Neon intrinsic unsafe"]
17859#[inline(always)]
17860#[target_feature(enable = "neon")]
17861#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17862#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17863#[cfg_attr(
17864    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17865    assert_instr(ld)
17866)]
17867#[cfg_attr(
17868    not(target_arch = "arm"),
17869    stable(feature = "neon_intrinsics", since = "1.59.0")
17870)]
17871#[cfg_attr(
17872    target_arch = "arm",
17873    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17874)]
17875pub unsafe fn vld1_u32_x3(a: *const u32) -> uint32x2x3_t {
17876    crate::ptr::read_unaligned(a.cast())
17877}
17878#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17879#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x4)"]
17880#[doc = "## Safety"]
17881#[doc = "  * Neon intrinsic unsafe"]
17882#[inline(always)]
17883#[target_feature(enable = "neon")]
17884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17885#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17886#[cfg_attr(
17887    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17888    assert_instr(ld)
17889)]
17890#[cfg_attr(
17891    not(target_arch = "arm"),
17892    stable(feature = "neon_intrinsics", since = "1.59.0")
17893)]
17894#[cfg_attr(
17895    target_arch = "arm",
17896    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17897)]
17898pub unsafe fn vld1_u32_x4(a: *const u32) -> uint32x2x4_t {
17899    crate::ptr::read_unaligned(a.cast())
17900}
17901#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x2)"]
17903#[doc = "## Safety"]
17904#[doc = "  * Neon intrinsic unsafe"]
17905#[inline(always)]
17906#[target_feature(enable = "neon")]
17907#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17908#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17909#[cfg_attr(
17910    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17911    assert_instr(ld)
17912)]
17913#[cfg_attr(
17914    not(target_arch = "arm"),
17915    stable(feature = "neon_intrinsics", since = "1.59.0")
17916)]
17917#[cfg_attr(
17918    target_arch = "arm",
17919    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17920)]
17921pub unsafe fn vld1q_u32_x2(a: *const u32) -> uint32x4x2_t {
17922    crate::ptr::read_unaligned(a.cast())
17923}
17924#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x3)"]
17926#[doc = "## Safety"]
17927#[doc = "  * Neon intrinsic unsafe"]
17928#[inline(always)]
17929#[target_feature(enable = "neon")]
17930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17932#[cfg_attr(
17933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17934    assert_instr(ld)
17935)]
17936#[cfg_attr(
17937    not(target_arch = "arm"),
17938    stable(feature = "neon_intrinsics", since = "1.59.0")
17939)]
17940#[cfg_attr(
17941    target_arch = "arm",
17942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17943)]
17944pub unsafe fn vld1q_u32_x3(a: *const u32) -> uint32x4x3_t {
17945    crate::ptr::read_unaligned(a.cast())
17946}
17947#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x4)"]
17949#[doc = "## Safety"]
17950#[doc = "  * Neon intrinsic unsafe"]
17951#[inline(always)]
17952#[target_feature(enable = "neon")]
17953#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17954#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17955#[cfg_attr(
17956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17957    assert_instr(ld)
17958)]
17959#[cfg_attr(
17960    not(target_arch = "arm"),
17961    stable(feature = "neon_intrinsics", since = "1.59.0")
17962)]
17963#[cfg_attr(
17964    target_arch = "arm",
17965    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17966)]
17967pub unsafe fn vld1q_u32_x4(a: *const u32) -> uint32x4x4_t {
17968    crate::ptr::read_unaligned(a.cast())
17969}
17970#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17971#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x2)"]
17972#[doc = "## Safety"]
17973#[doc = "  * Neon intrinsic unsafe"]
17974#[inline(always)]
17975#[target_feature(enable = "neon")]
17976#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
17978#[cfg_attr(
17979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17980    assert_instr(ld)
17981)]
17982#[cfg_attr(
17983    not(target_arch = "arm"),
17984    stable(feature = "neon_intrinsics", since = "1.59.0")
17985)]
17986#[cfg_attr(
17987    target_arch = "arm",
17988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17989)]
17990pub unsafe fn vld1_u64_x2(a: *const u64) -> uint64x1x2_t {
17991    crate::ptr::read_unaligned(a.cast())
17992}
17993#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x3)"]
17995#[doc = "## Safety"]
17996#[doc = "  * Neon intrinsic unsafe"]
17997#[inline(always)]
17998#[target_feature(enable = "neon")]
17999#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18000#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18001#[cfg_attr(
18002    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18003    assert_instr(ld)
18004)]
18005#[cfg_attr(
18006    not(target_arch = "arm"),
18007    stable(feature = "neon_intrinsics", since = "1.59.0")
18008)]
18009#[cfg_attr(
18010    target_arch = "arm",
18011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18012)]
18013pub unsafe fn vld1_u64_x3(a: *const u64) -> uint64x1x3_t {
18014    crate::ptr::read_unaligned(a.cast())
18015}
18016#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x4)"]
18018#[doc = "## Safety"]
18019#[doc = "  * Neon intrinsic unsafe"]
18020#[inline(always)]
18021#[target_feature(enable = "neon")]
18022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18024#[cfg_attr(
18025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18026    assert_instr(ld)
18027)]
18028#[cfg_attr(
18029    not(target_arch = "arm"),
18030    stable(feature = "neon_intrinsics", since = "1.59.0")
18031)]
18032#[cfg_attr(
18033    target_arch = "arm",
18034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18035)]
18036pub unsafe fn vld1_u64_x4(a: *const u64) -> uint64x1x4_t {
18037    crate::ptr::read_unaligned(a.cast())
18038}
18039#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x2)"]
18041#[doc = "## Safety"]
18042#[doc = "  * Neon intrinsic unsafe"]
18043#[inline(always)]
18044#[target_feature(enable = "neon")]
18045#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18046#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18047#[cfg_attr(
18048    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18049    assert_instr(ld)
18050)]
18051#[cfg_attr(
18052    not(target_arch = "arm"),
18053    stable(feature = "neon_intrinsics", since = "1.59.0")
18054)]
18055#[cfg_attr(
18056    target_arch = "arm",
18057    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18058)]
18059pub unsafe fn vld1q_u64_x2(a: *const u64) -> uint64x2x2_t {
18060    crate::ptr::read_unaligned(a.cast())
18061}
18062#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x3)"]
18064#[doc = "## Safety"]
18065#[doc = "  * Neon intrinsic unsafe"]
18066#[inline(always)]
18067#[target_feature(enable = "neon")]
18068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18070#[cfg_attr(
18071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18072    assert_instr(ld)
18073)]
18074#[cfg_attr(
18075    not(target_arch = "arm"),
18076    stable(feature = "neon_intrinsics", since = "1.59.0")
18077)]
18078#[cfg_attr(
18079    target_arch = "arm",
18080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18081)]
18082pub unsafe fn vld1q_u64_x3(a: *const u64) -> uint64x2x3_t {
18083    crate::ptr::read_unaligned(a.cast())
18084}
18085#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x4)"]
18087#[doc = "## Safety"]
18088#[doc = "  * Neon intrinsic unsafe"]
18089#[inline(always)]
18090#[target_feature(enable = "neon")]
18091#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18092#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18093#[cfg_attr(
18094    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18095    assert_instr(ld)
18096)]
18097#[cfg_attr(
18098    not(target_arch = "arm"),
18099    stable(feature = "neon_intrinsics", since = "1.59.0")
18100)]
18101#[cfg_attr(
18102    target_arch = "arm",
18103    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18104)]
18105pub unsafe fn vld1q_u64_x4(a: *const u64) -> uint64x2x4_t {
18106    crate::ptr::read_unaligned(a.cast())
18107}
18108#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x2)"]
18110#[doc = "## Safety"]
18111#[doc = "  * Neon intrinsic unsafe"]
18112#[inline(always)]
18113#[target_feature(enable = "neon")]
18114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18116#[cfg_attr(
18117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18118    assert_instr(ld)
18119)]
18120#[cfg_attr(
18121    not(target_arch = "arm"),
18122    stable(feature = "neon_intrinsics", since = "1.59.0")
18123)]
18124#[cfg_attr(
18125    target_arch = "arm",
18126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18127)]
18128pub unsafe fn vld1_p8_x2(a: *const p8) -> poly8x8x2_t {
18129    crate::ptr::read_unaligned(a.cast())
18130}
18131#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18132#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x3)"]
18133#[doc = "## Safety"]
18134#[doc = "  * Neon intrinsic unsafe"]
18135#[inline(always)]
18136#[target_feature(enable = "neon")]
18137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18138#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18139#[cfg_attr(
18140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18141    assert_instr(ld)
18142)]
18143#[cfg_attr(
18144    not(target_arch = "arm"),
18145    stable(feature = "neon_intrinsics", since = "1.59.0")
18146)]
18147#[cfg_attr(
18148    target_arch = "arm",
18149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18150)]
18151pub unsafe fn vld1_p8_x3(a: *const p8) -> poly8x8x3_t {
18152    crate::ptr::read_unaligned(a.cast())
18153}
18154#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x4)"]
18156#[doc = "## Safety"]
18157#[doc = "  * Neon intrinsic unsafe"]
18158#[inline(always)]
18159#[target_feature(enable = "neon")]
18160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18161#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18162#[cfg_attr(
18163    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18164    assert_instr(ld)
18165)]
18166#[cfg_attr(
18167    not(target_arch = "arm"),
18168    stable(feature = "neon_intrinsics", since = "1.59.0")
18169)]
18170#[cfg_attr(
18171    target_arch = "arm",
18172    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18173)]
18174pub unsafe fn vld1_p8_x4(a: *const p8) -> poly8x8x4_t {
18175    crate::ptr::read_unaligned(a.cast())
18176}
18177#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x2)"]
18179#[doc = "## Safety"]
18180#[doc = "  * Neon intrinsic unsafe"]
18181#[inline(always)]
18182#[target_feature(enable = "neon")]
18183#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18184#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18185#[cfg_attr(
18186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18187    assert_instr(ld)
18188)]
18189#[cfg_attr(
18190    not(target_arch = "arm"),
18191    stable(feature = "neon_intrinsics", since = "1.59.0")
18192)]
18193#[cfg_attr(
18194    target_arch = "arm",
18195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18196)]
18197pub unsafe fn vld1q_p8_x2(a: *const p8) -> poly8x16x2_t {
18198    crate::ptr::read_unaligned(a.cast())
18199}
18200#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18201#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x3)"]
18202#[doc = "## Safety"]
18203#[doc = "  * Neon intrinsic unsafe"]
18204#[inline(always)]
18205#[target_feature(enable = "neon")]
18206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18207#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18208#[cfg_attr(
18209    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18210    assert_instr(ld)
18211)]
18212#[cfg_attr(
18213    not(target_arch = "arm"),
18214    stable(feature = "neon_intrinsics", since = "1.59.0")
18215)]
18216#[cfg_attr(
18217    target_arch = "arm",
18218    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18219)]
18220pub unsafe fn vld1q_p8_x3(a: *const p8) -> poly8x16x3_t {
18221    crate::ptr::read_unaligned(a.cast())
18222}
18223#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x4)"]
18225#[doc = "## Safety"]
18226#[doc = "  * Neon intrinsic unsafe"]
18227#[inline(always)]
18228#[target_feature(enable = "neon")]
18229#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18230#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18231#[cfg_attr(
18232    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18233    assert_instr(ld)
18234)]
18235#[cfg_attr(
18236    not(target_arch = "arm"),
18237    stable(feature = "neon_intrinsics", since = "1.59.0")
18238)]
18239#[cfg_attr(
18240    target_arch = "arm",
18241    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18242)]
18243pub unsafe fn vld1q_p8_x4(a: *const p8) -> poly8x16x4_t {
18244    crate::ptr::read_unaligned(a.cast())
18245}
18246#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x2)"]
18248#[doc = "## Safety"]
18249#[doc = "  * Neon intrinsic unsafe"]
18250#[inline(always)]
18251#[target_feature(enable = "neon")]
18252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18253#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18254#[cfg_attr(
18255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18256    assert_instr(ld)
18257)]
18258#[cfg_attr(
18259    not(target_arch = "arm"),
18260    stable(feature = "neon_intrinsics", since = "1.59.0")
18261)]
18262#[cfg_attr(
18263    target_arch = "arm",
18264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18265)]
18266pub unsafe fn vld1_p16_x2(a: *const p16) -> poly16x4x2_t {
18267    crate::ptr::read_unaligned(a.cast())
18268}
18269#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x3)"]
18271#[doc = "## Safety"]
18272#[doc = "  * Neon intrinsic unsafe"]
18273#[inline(always)]
18274#[target_feature(enable = "neon")]
18275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18276#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18277#[cfg_attr(
18278    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18279    assert_instr(ld)
18280)]
18281#[cfg_attr(
18282    not(target_arch = "arm"),
18283    stable(feature = "neon_intrinsics", since = "1.59.0")
18284)]
18285#[cfg_attr(
18286    target_arch = "arm",
18287    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18288)]
18289pub unsafe fn vld1_p16_x3(a: *const p16) -> poly16x4x3_t {
18290    crate::ptr::read_unaligned(a.cast())
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_p16_x4)"]
18294#[doc = "## Safety"]
18295#[doc = "  * Neon intrinsic unsafe"]
18296#[inline(always)]
18297#[target_feature(enable = "neon")]
18298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18300#[cfg_attr(
18301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18302    assert_instr(ld)
18303)]
18304#[cfg_attr(
18305    not(target_arch = "arm"),
18306    stable(feature = "neon_intrinsics", since = "1.59.0")
18307)]
18308#[cfg_attr(
18309    target_arch = "arm",
18310    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18311)]
18312pub unsafe fn vld1_p16_x4(a: *const p16) -> poly16x4x4_t {
18313    crate::ptr::read_unaligned(a.cast())
18314}
18315#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18316#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x2)"]
18317#[doc = "## Safety"]
18318#[doc = "  * Neon intrinsic unsafe"]
18319#[inline(always)]
18320#[target_feature(enable = "neon")]
18321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18322#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18323#[cfg_attr(
18324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18325    assert_instr(ld)
18326)]
18327#[cfg_attr(
18328    not(target_arch = "arm"),
18329    stable(feature = "neon_intrinsics", since = "1.59.0")
18330)]
18331#[cfg_attr(
18332    target_arch = "arm",
18333    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18334)]
18335pub unsafe fn vld1q_p16_x2(a: *const p16) -> poly16x8x2_t {
18336    crate::ptr::read_unaligned(a.cast())
18337}
18338#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x3)"]
18340#[doc = "## Safety"]
18341#[doc = "  * Neon intrinsic unsafe"]
18342#[inline(always)]
18343#[target_feature(enable = "neon")]
18344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18346#[cfg_attr(
18347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18348    assert_instr(ld)
18349)]
18350#[cfg_attr(
18351    not(target_arch = "arm"),
18352    stable(feature = "neon_intrinsics", since = "1.59.0")
18353)]
18354#[cfg_attr(
18355    target_arch = "arm",
18356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18357)]
18358pub unsafe fn vld1q_p16_x3(a: *const p16) -> poly16x8x3_t {
18359    crate::ptr::read_unaligned(a.cast())
18360}
18361#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x4)"]
18363#[doc = "## Safety"]
18364#[doc = "  * Neon intrinsic unsafe"]
18365#[inline(always)]
18366#[target_feature(enable = "neon")]
18367#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18368#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18369#[cfg_attr(
18370    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18371    assert_instr(ld)
18372)]
18373#[cfg_attr(
18374    not(target_arch = "arm"),
18375    stable(feature = "neon_intrinsics", since = "1.59.0")
18376)]
18377#[cfg_attr(
18378    target_arch = "arm",
18379    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18380)]
18381pub unsafe fn vld1q_p16_x4(a: *const p16) -> poly16x8x4_t {
18382    crate::ptr::read_unaligned(a.cast())
18383}
18384#[inline(always)]
18385#[rustc_legacy_const_generics(1)]
18386#[cfg(target_arch = "arm")]
18387#[target_feature(enable = "neon,v7")]
18388#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18389#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18390unsafe fn vld1_v1i64<const ALIGN: i32>(a: *const i8) -> int64x1_t {
18391    unsafe extern "unadjusted" {
18392        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v1i64")]
18393        fn _vld1_v1i64(a: *const i8, b: i32) -> int64x1_t;
18394    }
18395    _vld1_v1i64(a, ALIGN)
18396}
18397#[inline(always)]
18398#[rustc_legacy_const_generics(1)]
18399#[cfg(target_arch = "arm")]
18400#[target_feature(enable = "neon,v7")]
18401#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18402#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18403unsafe fn vld1_v2f32<const ALIGN: i32>(a: *const i8) -> float32x2_t {
18404    unsafe extern "unadjusted" {
18405        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2f32")]
18406        fn _vld1_v2f32(a: *const i8, b: i32) -> float32x2_t;
18407    }
18408    _vld1_v2f32(a, ALIGN)
18409}
18410#[inline(always)]
18411#[rustc_legacy_const_generics(1)]
18412#[cfg(target_arch = "arm")]
18413#[target_feature(enable = "neon,v7")]
18414#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18415#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18416unsafe fn vld1_v2i32<const ALIGN: i32>(a: *const i8) -> int32x2_t {
18417    unsafe extern "unadjusted" {
18418        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2i32")]
18419        fn _vld1_v2i32(a: *const i8, b: i32) -> int32x2_t;
18420    }
18421    _vld1_v2i32(a, ALIGN)
18422}
18423#[inline(always)]
18424#[rustc_legacy_const_generics(1)]
18425#[cfg(target_arch = "arm")]
18426#[target_feature(enable = "neon,v7")]
18427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18428#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18429unsafe fn vld1_v4i16<const ALIGN: i32>(a: *const i8) -> int16x4_t {
18430    unsafe extern "unadjusted" {
18431        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4i16")]
18432        fn _vld1_v4i16(a: *const i8, b: i32) -> int16x4_t;
18433    }
18434    _vld1_v4i16(a, ALIGN)
18435}
18436#[inline(always)]
18437#[rustc_legacy_const_generics(1)]
18438#[cfg(target_arch = "arm")]
18439#[target_feature(enable = "neon,v7")]
18440#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18441#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18442unsafe fn vld1_v8i8<const ALIGN: i32>(a: *const i8) -> int8x8_t {
18443    unsafe extern "unadjusted" {
18444        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8i8")]
18445        fn _vld1_v8i8(a: *const i8, b: i32) -> int8x8_t;
18446    }
18447    _vld1_v8i8(a, ALIGN)
18448}
18449#[inline(always)]
18450#[rustc_legacy_const_generics(1)]
18451#[cfg(target_arch = "arm")]
18452#[target_feature(enable = "neon,v7")]
18453#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18454#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18455unsafe fn vld1q_v16i8<const ALIGN: i32>(a: *const i8) -> int8x16_t {
18456    unsafe extern "unadjusted" {
18457        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v16i8")]
18458        fn _vld1q_v16i8(a: *const i8, b: i32) -> int8x16_t;
18459    }
18460    _vld1q_v16i8(a, ALIGN)
18461}
18462#[inline(always)]
18463#[rustc_legacy_const_generics(1)]
18464#[cfg(target_arch = "arm")]
18465#[target_feature(enable = "neon,v7")]
18466#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18467#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18468unsafe fn vld1q_v2i64<const ALIGN: i32>(a: *const i8) -> int64x2_t {
18469    unsafe extern "unadjusted" {
18470        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2i64")]
18471        fn _vld1q_v2i64(a: *const i8, b: i32) -> int64x2_t;
18472    }
18473    _vld1q_v2i64(a, ALIGN)
18474}
18475#[inline(always)]
18476#[rustc_legacy_const_generics(1)]
18477#[cfg(target_arch = "arm")]
18478#[target_feature(enable = "neon,v7")]
18479#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18480#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18481unsafe fn vld1q_v4f32<const ALIGN: i32>(a: *const i8) -> float32x4_t {
18482    unsafe extern "unadjusted" {
18483        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4f32")]
18484        fn _vld1q_v4f32(a: *const i8, b: i32) -> float32x4_t;
18485    }
18486    _vld1q_v4f32(a, ALIGN)
18487}
18488#[inline(always)]
18489#[rustc_legacy_const_generics(1)]
18490#[cfg(target_arch = "arm")]
18491#[target_feature(enable = "neon,v7")]
18492#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18493#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18494unsafe fn vld1q_v4i32<const ALIGN: i32>(a: *const i8) -> int32x4_t {
18495    unsafe extern "unadjusted" {
18496        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4i32")]
18497        fn _vld1q_v4i32(a: *const i8, b: i32) -> int32x4_t;
18498    }
18499    _vld1q_v4i32(a, ALIGN)
18500}
18501#[inline(always)]
18502#[rustc_legacy_const_generics(1)]
18503#[cfg(target_arch = "arm")]
18504#[target_feature(enable = "neon,v7")]
18505#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18506#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18507unsafe fn vld1q_v8i16<const ALIGN: i32>(a: *const i8) -> int16x8_t {
18508    unsafe extern "unadjusted" {
18509        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8i16")]
18510        fn _vld1q_v8i16(a: *const i8, b: i32) -> int16x8_t;
18511    }
18512    _vld1q_v8i16(a, ALIGN)
18513}
18514#[inline(always)]
18515#[cfg(target_arch = "arm")]
18516#[target_feature(enable = "neon,v7")]
18517#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
18518#[target_feature(enable = "neon,fp16")]
18519#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18520#[cfg(not(target_arch = "arm64ec"))]
18521unsafe fn vld1_v4f16(a: *const i8, b: i32) -> float16x4_t {
18522    unsafe extern "unadjusted" {
18523        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4f16")]
18524        fn _vld1_v4f16(a: *const i8, b: i32) -> float16x4_t;
18525    }
18526    _vld1_v4f16(a, b)
18527}
18528#[inline(always)]
18529#[cfg(target_arch = "arm")]
18530#[target_feature(enable = "neon,v7")]
18531#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
18532#[target_feature(enable = "neon,fp16")]
18533#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18534#[cfg(not(target_arch = "arm64ec"))]
18535unsafe fn vld1q_v8f16(a: *const i8, b: i32) -> float16x8_t {
18536    unsafe extern "unadjusted" {
18537        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8f16")]
18538        fn _vld1q_v8f16(a: *const i8, b: i32) -> float16x8_t;
18539    }
18540    _vld1q_v8f16(a, b)
18541}
18542#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
18543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p64)"]
18544#[doc = "## Safety"]
18545#[doc = "  * Neon intrinsic unsafe"]
18546#[inline(always)]
18547#[target_feature(enable = "neon,aes")]
18548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18549#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
18550#[cfg_attr(
18551    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18552    assert_instr(ld1r)
18553)]
18554#[cfg_attr(
18555    not(target_arch = "arm"),
18556    stable(feature = "neon_intrinsics", since = "1.59.0")
18557)]
18558#[cfg_attr(
18559    target_arch = "arm",
18560    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18561)]
18562pub unsafe fn vld1q_dup_p64(ptr: *const p64) -> poly64x2_t {
18563    let x = vld1q_lane_p64::<0>(ptr, transmute(u64x2::splat(0)));
18564    simd_shuffle!(x, x, [0, 0])
18565}
18566#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f16)"]
18568#[doc = "## Safety"]
18569#[doc = "  * Neon intrinsic unsafe"]
18570#[inline(always)]
18571#[target_feature(enable = "neon")]
18572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18573#[cfg(target_arch = "arm")]
18574#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
18575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
18576#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
18577#[cfg(not(target_arch = "arm64ec"))]
18578pub unsafe fn vld2_dup_f16(a: *const f16) -> float16x4x2_t {
18579    unsafe extern "unadjusted" {
18580        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4f16.p0")]
18581        fn _vld2_dup_f16(ptr: *const f16, size: i32) -> float16x4x2_t;
18582    }
18583    _vld2_dup_f16(a as _, 2)
18584}
18585#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f16)"]
18587#[doc = "## Safety"]
18588#[doc = "  * Neon intrinsic unsafe"]
18589#[inline(always)]
18590#[target_feature(enable = "neon")]
18591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18592#[cfg(target_arch = "arm")]
18593#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
18594#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
18595#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
18596#[cfg(not(target_arch = "arm64ec"))]
18597pub unsafe fn vld2q_dup_f16(a: *const f16) -> float16x8x2_t {
18598    unsafe extern "unadjusted" {
18599        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8f16.p0")]
18600        fn _vld2q_dup_f16(ptr: *const f16, size: i32) -> float16x8x2_t;
18601    }
18602    _vld2q_dup_f16(a as _, 2)
18603}
18604#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f16)"]
18606#[doc = "## Safety"]
18607#[doc = "  * Neon intrinsic unsafe"]
18608#[inline(always)]
18609#[target_feature(enable = "neon")]
18610#[cfg(not(target_arch = "arm"))]
18611#[cfg_attr(
18612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18613    assert_instr(ld2r)
18614)]
18615#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
18616#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
18617#[cfg(not(target_arch = "arm64ec"))]
18618pub unsafe fn vld2_dup_f16(a: *const f16) -> float16x4x2_t {
18619    unsafe extern "unadjusted" {
18620        #[cfg_attr(
18621            any(target_arch = "aarch64", target_arch = "arm64ec"),
18622            link_name = "llvm.aarch64.neon.ld2r.v4f16.p0"
18623        )]
18624        fn _vld2_dup_f16(ptr: *const f16) -> float16x4x2_t;
18625    }
18626    _vld2_dup_f16(a as _)
18627}
18628#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f16)"]
18630#[doc = "## Safety"]
18631#[doc = "  * Neon intrinsic unsafe"]
18632#[inline(always)]
18633#[target_feature(enable = "neon")]
18634#[cfg(not(target_arch = "arm"))]
18635#[cfg_attr(
18636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18637    assert_instr(ld2r)
18638)]
18639#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
18640#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
18641#[cfg(not(target_arch = "arm64ec"))]
18642pub unsafe fn vld2q_dup_f16(a: *const f16) -> float16x8x2_t {
18643    unsafe extern "unadjusted" {
18644        #[cfg_attr(
18645            any(target_arch = "aarch64", target_arch = "arm64ec"),
18646            link_name = "llvm.aarch64.neon.ld2r.v8f16.p0"
18647        )]
18648        fn _vld2q_dup_f16(ptr: *const f16) -> float16x8x2_t;
18649    }
18650    _vld2q_dup_f16(a as _)
18651}
18652#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)"]
18654#[doc = "## Safety"]
18655#[doc = "  * Neon intrinsic unsafe"]
18656#[inline(always)]
18657#[target_feature(enable = "neon,v7")]
18658#[cfg(target_arch = "arm")]
18659#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18660#[cfg_attr(test, assert_instr(vld2))]
18661pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
18662    unsafe extern "unadjusted" {
18663        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2f32.p0")]
18664        fn _vld2_dup_f32(ptr: *const i8, size: i32) -> float32x2x2_t;
18665    }
18666    _vld2_dup_f32(a as *const i8, 4)
18667}
18668#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)"]
18670#[doc = "## Safety"]
18671#[doc = "  * Neon intrinsic unsafe"]
18672#[inline(always)]
18673#[target_feature(enable = "neon,v7")]
18674#[cfg(target_arch = "arm")]
18675#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18676#[cfg_attr(test, assert_instr(vld2))]
18677pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
18678    unsafe extern "unadjusted" {
18679        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4f32.p0")]
18680        fn _vld2q_dup_f32(ptr: *const i8, size: i32) -> float32x4x2_t;
18681    }
18682    _vld2q_dup_f32(a as *const i8, 4)
18683}
18684#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)"]
18686#[doc = "## Safety"]
18687#[doc = "  * Neon intrinsic unsafe"]
18688#[inline(always)]
18689#[target_feature(enable = "neon,v7")]
18690#[cfg(target_arch = "arm")]
18691#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18692#[cfg_attr(test, assert_instr(vld2))]
18693pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
18694    unsafe extern "unadjusted" {
18695        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i8.p0")]
18696        fn _vld2_dup_s8(ptr: *const i8, size: i32) -> int8x8x2_t;
18697    }
18698    _vld2_dup_s8(a as *const i8, 1)
18699}
18700#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)"]
18702#[doc = "## Safety"]
18703#[doc = "  * Neon intrinsic unsafe"]
18704#[inline(always)]
18705#[target_feature(enable = "neon,v7")]
18706#[cfg(target_arch = "arm")]
18707#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18708#[cfg_attr(test, assert_instr(vld2))]
18709pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
18710    unsafe extern "unadjusted" {
18711        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v16i8.p0")]
18712        fn _vld2q_dup_s8(ptr: *const i8, size: i32) -> int8x16x2_t;
18713    }
18714    _vld2q_dup_s8(a as *const i8, 1)
18715}
18716#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)"]
18718#[doc = "## Safety"]
18719#[doc = "  * Neon intrinsic unsafe"]
18720#[inline(always)]
18721#[target_feature(enable = "neon,v7")]
18722#[cfg(target_arch = "arm")]
18723#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18724#[cfg_attr(test, assert_instr(vld2))]
18725pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
18726    unsafe extern "unadjusted" {
18727        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i16.p0")]
18728        fn _vld2_dup_s16(ptr: *const i8, size: i32) -> int16x4x2_t;
18729    }
18730    _vld2_dup_s16(a as *const i8, 2)
18731}
18732#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s16)"]
18734#[doc = "## Safety"]
18735#[doc = "  * Neon intrinsic unsafe"]
18736#[inline(always)]
18737#[target_feature(enable = "neon,v7")]
18738#[cfg(target_arch = "arm")]
18739#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18740#[cfg_attr(test, assert_instr(vld2))]
18741pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
18742    unsafe extern "unadjusted" {
18743        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i16.p0")]
18744        fn _vld2q_dup_s16(ptr: *const i8, size: i32) -> int16x8x2_t;
18745    }
18746    _vld2q_dup_s16(a as *const i8, 2)
18747}
18748#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)"]
18750#[doc = "## Safety"]
18751#[doc = "  * Neon intrinsic unsafe"]
18752#[inline(always)]
18753#[target_feature(enable = "neon,v7")]
18754#[cfg(target_arch = "arm")]
18755#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18756#[cfg_attr(test, assert_instr(vld2))]
18757pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
18758    unsafe extern "unadjusted" {
18759        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2i32.p0")]
18760        fn _vld2_dup_s32(ptr: *const i8, size: i32) -> int32x2x2_t;
18761    }
18762    _vld2_dup_s32(a as *const i8, 4)
18763}
18764#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s32)"]
18766#[doc = "## Safety"]
18767#[doc = "  * Neon intrinsic unsafe"]
18768#[inline(always)]
18769#[target_feature(enable = "neon,v7")]
18770#[cfg(target_arch = "arm")]
18771#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18772#[cfg_attr(test, assert_instr(vld2))]
18773pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
18774    unsafe extern "unadjusted" {
18775        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i32.p0")]
18776        fn _vld2q_dup_s32(ptr: *const i8, size: i32) -> int32x4x2_t;
18777    }
18778    _vld2q_dup_s32(a as *const i8, 4)
18779}
18780#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)"]
18782#[doc = "## Safety"]
18783#[doc = "  * Neon intrinsic unsafe"]
18784#[inline(always)]
18785#[target_feature(enable = "neon")]
18786#[cfg(not(target_arch = "arm"))]
18787#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18788#[cfg_attr(test, assert_instr(ld2r))]
18789pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
18790    unsafe extern "unadjusted" {
18791        #[cfg_attr(
18792            any(target_arch = "aarch64", target_arch = "arm64ec"),
18793            link_name = "llvm.aarch64.neon.ld2r.v2f32.p0"
18794        )]
18795        fn _vld2_dup_f32(ptr: *const f32) -> float32x2x2_t;
18796    }
18797    _vld2_dup_f32(a as _)
18798}
18799#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)"]
18801#[doc = "## Safety"]
18802#[doc = "  * Neon intrinsic unsafe"]
18803#[inline(always)]
18804#[target_feature(enable = "neon")]
18805#[cfg(not(target_arch = "arm"))]
18806#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18807#[cfg_attr(test, assert_instr(ld2r))]
18808pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
18809    unsafe extern "unadjusted" {
18810        #[cfg_attr(
18811            any(target_arch = "aarch64", target_arch = "arm64ec"),
18812            link_name = "llvm.aarch64.neon.ld2r.v4f32.p0"
18813        )]
18814        fn _vld2q_dup_f32(ptr: *const f32) -> float32x4x2_t;
18815    }
18816    _vld2q_dup_f32(a as _)
18817}
18818#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)"]
18820#[doc = "## Safety"]
18821#[doc = "  * Neon intrinsic unsafe"]
18822#[inline(always)]
18823#[target_feature(enable = "neon")]
18824#[cfg(not(target_arch = "arm"))]
18825#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18826#[cfg_attr(test, assert_instr(ld2r))]
18827pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
18828    unsafe extern "unadjusted" {
18829        #[cfg_attr(
18830            any(target_arch = "aarch64", target_arch = "arm64ec"),
18831            link_name = "llvm.aarch64.neon.ld2r.v8i8.p0"
18832        )]
18833        fn _vld2_dup_s8(ptr: *const i8) -> int8x8x2_t;
18834    }
18835    _vld2_dup_s8(a as _)
18836}
18837#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)"]
18839#[doc = "## Safety"]
18840#[doc = "  * Neon intrinsic unsafe"]
18841#[inline(always)]
18842#[target_feature(enable = "neon")]
18843#[cfg(not(target_arch = "arm"))]
18844#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18845#[cfg_attr(test, assert_instr(ld2r))]
18846pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
18847    unsafe extern "unadjusted" {
18848        #[cfg_attr(
18849            any(target_arch = "aarch64", target_arch = "arm64ec"),
18850            link_name = "llvm.aarch64.neon.ld2r.v16i8.p0"
18851        )]
18852        fn _vld2q_dup_s8(ptr: *const i8) -> int8x16x2_t;
18853    }
18854    _vld2q_dup_s8(a as _)
18855}
18856#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)"]
18858#[doc = "## Safety"]
18859#[doc = "  * Neon intrinsic unsafe"]
18860#[inline(always)]
18861#[target_feature(enable = "neon")]
18862#[cfg(not(target_arch = "arm"))]
18863#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18864#[cfg_attr(test, assert_instr(ld2r))]
18865pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
18866    unsafe extern "unadjusted" {
18867        #[cfg_attr(
18868            any(target_arch = "aarch64", target_arch = "arm64ec"),
18869            link_name = "llvm.aarch64.neon.ld2r.v4i16.p0"
18870        )]
18871        fn _vld2_dup_s16(ptr: *const i16) -> int16x4x2_t;
18872    }
18873    _vld2_dup_s16(a as _)
18874}
18875#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s16)"]
18877#[doc = "## Safety"]
18878#[doc = "  * Neon intrinsic unsafe"]
18879#[inline(always)]
18880#[target_feature(enable = "neon")]
18881#[cfg(not(target_arch = "arm"))]
18882#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18883#[cfg_attr(test, assert_instr(ld2r))]
18884pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
18885    unsafe extern "unadjusted" {
18886        #[cfg_attr(
18887            any(target_arch = "aarch64", target_arch = "arm64ec"),
18888            link_name = "llvm.aarch64.neon.ld2r.v8i16.p0"
18889        )]
18890        fn _vld2q_dup_s16(ptr: *const i16) -> int16x8x2_t;
18891    }
18892    _vld2q_dup_s16(a as _)
18893}
18894#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)"]
18896#[doc = "## Safety"]
18897#[doc = "  * Neon intrinsic unsafe"]
18898#[inline(always)]
18899#[target_feature(enable = "neon")]
18900#[cfg(not(target_arch = "arm"))]
18901#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18902#[cfg_attr(test, assert_instr(ld2r))]
18903pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
18904    unsafe extern "unadjusted" {
18905        #[cfg_attr(
18906            any(target_arch = "aarch64", target_arch = "arm64ec"),
18907            link_name = "llvm.aarch64.neon.ld2r.v2i32.p0"
18908        )]
18909        fn _vld2_dup_s32(ptr: *const i32) -> int32x2x2_t;
18910    }
18911    _vld2_dup_s32(a as _)
18912}
18913#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s32)"]
18915#[doc = "## Safety"]
18916#[doc = "  * Neon intrinsic unsafe"]
18917#[inline(always)]
18918#[target_feature(enable = "neon")]
18919#[cfg(not(target_arch = "arm"))]
18920#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18921#[cfg_attr(test, assert_instr(ld2r))]
18922pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
18923    unsafe extern "unadjusted" {
18924        #[cfg_attr(
18925            any(target_arch = "aarch64", target_arch = "arm64ec"),
18926            link_name = "llvm.aarch64.neon.ld2r.v4i32.p0"
18927        )]
18928        fn _vld2q_dup_s32(ptr: *const i32) -> int32x4x2_t;
18929    }
18930    _vld2q_dup_s32(a as _)
18931}
18932#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p64)"]
18934#[doc = "## Safety"]
18935#[doc = "  * Neon intrinsic unsafe"]
18936#[inline(always)]
18937#[target_feature(enable = "neon,aes")]
18938#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
18939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
18940#[cfg_attr(
18941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18942    assert_instr(ld2r)
18943)]
18944#[cfg_attr(
18945    not(target_arch = "arm"),
18946    stable(feature = "neon_intrinsics", since = "1.59.0")
18947)]
18948#[cfg_attr(
18949    target_arch = "arm",
18950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18951)]
18952pub unsafe fn vld2_dup_p64(a: *const p64) -> poly64x1x2_t {
18953    transmute(vld2_dup_s64(transmute(a)))
18954}
18955#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)"]
18957#[doc = "## Safety"]
18958#[doc = "  * Neon intrinsic unsafe"]
18959#[inline(always)]
18960#[target_feature(enable = "neon,v7")]
18961#[cfg(target_arch = "arm")]
18962#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18963#[cfg_attr(test, assert_instr(nop))]
18964pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
18965    unsafe extern "unadjusted" {
18966        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v1i64.p0")]
18967        fn _vld2_dup_s64(ptr: *const i8, size: i32) -> int64x1x2_t;
18968    }
18969    _vld2_dup_s64(a as *const i8, 8)
18970}
18971#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)"]
18973#[doc = "## Safety"]
18974#[doc = "  * Neon intrinsic unsafe"]
18975#[inline(always)]
18976#[target_feature(enable = "neon")]
18977#[cfg(not(target_arch = "arm"))]
18978#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18979#[cfg_attr(test, assert_instr(ld2r))]
18980pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
18981    unsafe extern "unadjusted" {
18982        #[cfg_attr(
18983            any(target_arch = "aarch64", target_arch = "arm64ec"),
18984            link_name = "llvm.aarch64.neon.ld2r.v1i64.p0"
18985        )]
18986        fn _vld2_dup_s64(ptr: *const i64) -> int64x1x2_t;
18987    }
18988    _vld2_dup_s64(a as _)
18989}
18990#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18991#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u64)"]
18992#[doc = "## Safety"]
18993#[doc = "  * Neon intrinsic unsafe"]
18994#[inline(always)]
18995#[target_feature(enable = "neon")]
18996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
18998#[cfg_attr(
18999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19000    assert_instr(ld2r)
19001)]
19002#[cfg_attr(
19003    not(target_arch = "arm"),
19004    stable(feature = "neon_intrinsics", since = "1.59.0")
19005)]
19006#[cfg_attr(
19007    target_arch = "arm",
19008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19009)]
19010pub unsafe fn vld2_dup_u64(a: *const u64) -> uint64x1x2_t {
19011    transmute(vld2_dup_s64(transmute(a)))
19012}
19013#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u8)"]
19015#[doc = "## Safety"]
19016#[doc = "  * Neon intrinsic unsafe"]
19017#[inline(always)]
19018#[cfg(target_endian = "little")]
19019#[target_feature(enable = "neon")]
19020#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19022#[cfg_attr(
19023    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19024    assert_instr(ld2r)
19025)]
19026#[cfg_attr(
19027    not(target_arch = "arm"),
19028    stable(feature = "neon_intrinsics", since = "1.59.0")
19029)]
19030#[cfg_attr(
19031    target_arch = "arm",
19032    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19033)]
19034pub unsafe fn vld2_dup_u8(a: *const u8) -> uint8x8x2_t {
19035    transmute(vld2_dup_s8(transmute(a)))
19036}
19037#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u8)"]
19039#[doc = "## Safety"]
19040#[doc = "  * Neon intrinsic unsafe"]
19041#[inline(always)]
19042#[cfg(target_endian = "big")]
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(vld2))]
19046#[cfg_attr(
19047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19048    assert_instr(ld2r)
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 vld2_dup_u8(a: *const u8) -> uint8x8x2_t {
19059    let mut ret_val: uint8x8x2_t = transmute(vld2_dup_s8(transmute(a)));
19060    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19061    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19062    ret_val
19063}
19064#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u8)"]
19066#[doc = "## Safety"]
19067#[doc = "  * Neon intrinsic unsafe"]
19068#[inline(always)]
19069#[cfg(target_endian = "little")]
19070#[target_feature(enable = "neon")]
19071#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19072#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19073#[cfg_attr(
19074    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19075    assert_instr(ld2r)
19076)]
19077#[cfg_attr(
19078    not(target_arch = "arm"),
19079    stable(feature = "neon_intrinsics", since = "1.59.0")
19080)]
19081#[cfg_attr(
19082    target_arch = "arm",
19083    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19084)]
19085pub unsafe fn vld2q_dup_u8(a: *const u8) -> uint8x16x2_t {
19086    transmute(vld2q_dup_s8(transmute(a)))
19087}
19088#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19089#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u8)"]
19090#[doc = "## Safety"]
19091#[doc = "  * Neon intrinsic unsafe"]
19092#[inline(always)]
19093#[cfg(target_endian = "big")]
19094#[target_feature(enable = "neon")]
19095#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19096#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19097#[cfg_attr(
19098    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19099    assert_instr(ld2r)
19100)]
19101#[cfg_attr(
19102    not(target_arch = "arm"),
19103    stable(feature = "neon_intrinsics", since = "1.59.0")
19104)]
19105#[cfg_attr(
19106    target_arch = "arm",
19107    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19108)]
19109pub unsafe fn vld2q_dup_u8(a: *const u8) -> uint8x16x2_t {
19110    let mut ret_val: uint8x16x2_t = transmute(vld2q_dup_s8(transmute(a)));
19111    ret_val.0 = unsafe {
19112        simd_shuffle!(
19113            ret_val.0,
19114            ret_val.0,
19115            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19116        )
19117    };
19118    ret_val.1 = unsafe {
19119        simd_shuffle!(
19120            ret_val.1,
19121            ret_val.1,
19122            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19123        )
19124    };
19125    ret_val
19126}
19127#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u16)"]
19129#[doc = "## Safety"]
19130#[doc = "  * Neon intrinsic unsafe"]
19131#[inline(always)]
19132#[cfg(target_endian = "little")]
19133#[target_feature(enable = "neon")]
19134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19136#[cfg_attr(
19137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19138    assert_instr(ld2r)
19139)]
19140#[cfg_attr(
19141    not(target_arch = "arm"),
19142    stable(feature = "neon_intrinsics", since = "1.59.0")
19143)]
19144#[cfg_attr(
19145    target_arch = "arm",
19146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19147)]
19148pub unsafe fn vld2_dup_u16(a: *const u16) -> uint16x4x2_t {
19149    transmute(vld2_dup_s16(transmute(a)))
19150}
19151#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u16)"]
19153#[doc = "## Safety"]
19154#[doc = "  * Neon intrinsic unsafe"]
19155#[inline(always)]
19156#[cfg(target_endian = "big")]
19157#[target_feature(enable = "neon")]
19158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19160#[cfg_attr(
19161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19162    assert_instr(ld2r)
19163)]
19164#[cfg_attr(
19165    not(target_arch = "arm"),
19166    stable(feature = "neon_intrinsics", since = "1.59.0")
19167)]
19168#[cfg_attr(
19169    target_arch = "arm",
19170    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19171)]
19172pub unsafe fn vld2_dup_u16(a: *const u16) -> uint16x4x2_t {
19173    let mut ret_val: uint16x4x2_t = transmute(vld2_dup_s16(transmute(a)));
19174    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19175    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19176    ret_val
19177}
19178#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u16)"]
19180#[doc = "## Safety"]
19181#[doc = "  * Neon intrinsic unsafe"]
19182#[inline(always)]
19183#[cfg(target_endian = "little")]
19184#[target_feature(enable = "neon")]
19185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19186#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19187#[cfg_attr(
19188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19189    assert_instr(ld2r)
19190)]
19191#[cfg_attr(
19192    not(target_arch = "arm"),
19193    stable(feature = "neon_intrinsics", since = "1.59.0")
19194)]
19195#[cfg_attr(
19196    target_arch = "arm",
19197    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19198)]
19199pub unsafe fn vld2q_dup_u16(a: *const u16) -> uint16x8x2_t {
19200    transmute(vld2q_dup_s16(transmute(a)))
19201}
19202#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u16)"]
19204#[doc = "## Safety"]
19205#[doc = "  * Neon intrinsic unsafe"]
19206#[inline(always)]
19207#[cfg(target_endian = "big")]
19208#[target_feature(enable = "neon")]
19209#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19210#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19211#[cfg_attr(
19212    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19213    assert_instr(ld2r)
19214)]
19215#[cfg_attr(
19216    not(target_arch = "arm"),
19217    stable(feature = "neon_intrinsics", since = "1.59.0")
19218)]
19219#[cfg_attr(
19220    target_arch = "arm",
19221    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19222)]
19223pub unsafe fn vld2q_dup_u16(a: *const u16) -> uint16x8x2_t {
19224    let mut ret_val: uint16x8x2_t = transmute(vld2q_dup_s16(transmute(a)));
19225    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19226    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19227    ret_val
19228}
19229#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u32)"]
19231#[doc = "## Safety"]
19232#[doc = "  * Neon intrinsic unsafe"]
19233#[inline(always)]
19234#[cfg(target_endian = "little")]
19235#[target_feature(enable = "neon")]
19236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19237#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19238#[cfg_attr(
19239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19240    assert_instr(ld2r)
19241)]
19242#[cfg_attr(
19243    not(target_arch = "arm"),
19244    stable(feature = "neon_intrinsics", since = "1.59.0")
19245)]
19246#[cfg_attr(
19247    target_arch = "arm",
19248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19249)]
19250pub unsafe fn vld2_dup_u32(a: *const u32) -> uint32x2x2_t {
19251    transmute(vld2_dup_s32(transmute(a)))
19252}
19253#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19254#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u32)"]
19255#[doc = "## Safety"]
19256#[doc = "  * Neon intrinsic unsafe"]
19257#[inline(always)]
19258#[cfg(target_endian = "big")]
19259#[target_feature(enable = "neon")]
19260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19261#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19262#[cfg_attr(
19263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19264    assert_instr(ld2r)
19265)]
19266#[cfg_attr(
19267    not(target_arch = "arm"),
19268    stable(feature = "neon_intrinsics", since = "1.59.0")
19269)]
19270#[cfg_attr(
19271    target_arch = "arm",
19272    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19273)]
19274pub unsafe fn vld2_dup_u32(a: *const u32) -> uint32x2x2_t {
19275    let mut ret_val: uint32x2x2_t = transmute(vld2_dup_s32(transmute(a)));
19276    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
19277    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
19278    ret_val
19279}
19280#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u32)"]
19282#[doc = "## Safety"]
19283#[doc = "  * Neon intrinsic unsafe"]
19284#[inline(always)]
19285#[cfg(target_endian = "little")]
19286#[target_feature(enable = "neon")]
19287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19289#[cfg_attr(
19290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19291    assert_instr(ld2r)
19292)]
19293#[cfg_attr(
19294    not(target_arch = "arm"),
19295    stable(feature = "neon_intrinsics", since = "1.59.0")
19296)]
19297#[cfg_attr(
19298    target_arch = "arm",
19299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19300)]
19301pub unsafe fn vld2q_dup_u32(a: *const u32) -> uint32x4x2_t {
19302    transmute(vld2q_dup_s32(transmute(a)))
19303}
19304#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u32)"]
19306#[doc = "## Safety"]
19307#[doc = "  * Neon intrinsic unsafe"]
19308#[inline(always)]
19309#[cfg(target_endian = "big")]
19310#[target_feature(enable = "neon")]
19311#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19312#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19313#[cfg_attr(
19314    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19315    assert_instr(ld2r)
19316)]
19317#[cfg_attr(
19318    not(target_arch = "arm"),
19319    stable(feature = "neon_intrinsics", since = "1.59.0")
19320)]
19321#[cfg_attr(
19322    target_arch = "arm",
19323    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19324)]
19325pub unsafe fn vld2q_dup_u32(a: *const u32) -> uint32x4x2_t {
19326    let mut ret_val: uint32x4x2_t = transmute(vld2q_dup_s32(transmute(a)));
19327    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19328    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19329    ret_val
19330}
19331#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p8)"]
19333#[doc = "## Safety"]
19334#[doc = "  * Neon intrinsic unsafe"]
19335#[inline(always)]
19336#[cfg(target_endian = "little")]
19337#[target_feature(enable = "neon")]
19338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19339#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19340#[cfg_attr(
19341    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19342    assert_instr(ld2r)
19343)]
19344#[cfg_attr(
19345    not(target_arch = "arm"),
19346    stable(feature = "neon_intrinsics", since = "1.59.0")
19347)]
19348#[cfg_attr(
19349    target_arch = "arm",
19350    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19351)]
19352pub unsafe fn vld2_dup_p8(a: *const p8) -> poly8x8x2_t {
19353    transmute(vld2_dup_s8(transmute(a)))
19354}
19355#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p8)"]
19357#[doc = "## Safety"]
19358#[doc = "  * Neon intrinsic unsafe"]
19359#[inline(always)]
19360#[cfg(target_endian = "big")]
19361#[target_feature(enable = "neon")]
19362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19364#[cfg_attr(
19365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19366    assert_instr(ld2r)
19367)]
19368#[cfg_attr(
19369    not(target_arch = "arm"),
19370    stable(feature = "neon_intrinsics", since = "1.59.0")
19371)]
19372#[cfg_attr(
19373    target_arch = "arm",
19374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19375)]
19376pub unsafe fn vld2_dup_p8(a: *const p8) -> poly8x8x2_t {
19377    let mut ret_val: poly8x8x2_t = transmute(vld2_dup_s8(transmute(a)));
19378    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19379    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19380    ret_val
19381}
19382#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p8)"]
19384#[doc = "## Safety"]
19385#[doc = "  * Neon intrinsic unsafe"]
19386#[inline(always)]
19387#[cfg(target_endian = "little")]
19388#[target_feature(enable = "neon")]
19389#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19390#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19391#[cfg_attr(
19392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19393    assert_instr(ld2r)
19394)]
19395#[cfg_attr(
19396    not(target_arch = "arm"),
19397    stable(feature = "neon_intrinsics", since = "1.59.0")
19398)]
19399#[cfg_attr(
19400    target_arch = "arm",
19401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19402)]
19403pub unsafe fn vld2q_dup_p8(a: *const p8) -> poly8x16x2_t {
19404    transmute(vld2q_dup_s8(transmute(a)))
19405}
19406#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19407#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p8)"]
19408#[doc = "## Safety"]
19409#[doc = "  * Neon intrinsic unsafe"]
19410#[inline(always)]
19411#[cfg(target_endian = "big")]
19412#[target_feature(enable = "neon")]
19413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19414#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19415#[cfg_attr(
19416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19417    assert_instr(ld2r)
19418)]
19419#[cfg_attr(
19420    not(target_arch = "arm"),
19421    stable(feature = "neon_intrinsics", since = "1.59.0")
19422)]
19423#[cfg_attr(
19424    target_arch = "arm",
19425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19426)]
19427pub unsafe fn vld2q_dup_p8(a: *const p8) -> poly8x16x2_t {
19428    let mut ret_val: poly8x16x2_t = transmute(vld2q_dup_s8(transmute(a)));
19429    ret_val.0 = unsafe {
19430        simd_shuffle!(
19431            ret_val.0,
19432            ret_val.0,
19433            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19434        )
19435    };
19436    ret_val.1 = unsafe {
19437        simd_shuffle!(
19438            ret_val.1,
19439            ret_val.1,
19440            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19441        )
19442    };
19443    ret_val
19444}
19445#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p16)"]
19447#[doc = "## Safety"]
19448#[doc = "  * Neon intrinsic unsafe"]
19449#[inline(always)]
19450#[cfg(target_endian = "little")]
19451#[target_feature(enable = "neon")]
19452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19454#[cfg_attr(
19455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19456    assert_instr(ld2r)
19457)]
19458#[cfg_attr(
19459    not(target_arch = "arm"),
19460    stable(feature = "neon_intrinsics", since = "1.59.0")
19461)]
19462#[cfg_attr(
19463    target_arch = "arm",
19464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19465)]
19466pub unsafe fn vld2_dup_p16(a: *const p16) -> poly16x4x2_t {
19467    transmute(vld2_dup_s16(transmute(a)))
19468}
19469#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p16)"]
19471#[doc = "## Safety"]
19472#[doc = "  * Neon intrinsic unsafe"]
19473#[inline(always)]
19474#[cfg(target_endian = "big")]
19475#[target_feature(enable = "neon")]
19476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19477#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19478#[cfg_attr(
19479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19480    assert_instr(ld2r)
19481)]
19482#[cfg_attr(
19483    not(target_arch = "arm"),
19484    stable(feature = "neon_intrinsics", since = "1.59.0")
19485)]
19486#[cfg_attr(
19487    target_arch = "arm",
19488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19489)]
19490pub unsafe fn vld2_dup_p16(a: *const p16) -> poly16x4x2_t {
19491    let mut ret_val: poly16x4x2_t = transmute(vld2_dup_s16(transmute(a)));
19492    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19493    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19494    ret_val
19495}
19496#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19497#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p16)"]
19498#[doc = "## Safety"]
19499#[doc = "  * Neon intrinsic unsafe"]
19500#[inline(always)]
19501#[cfg(target_endian = "little")]
19502#[target_feature(enable = "neon")]
19503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19505#[cfg_attr(
19506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19507    assert_instr(ld2r)
19508)]
19509#[cfg_attr(
19510    not(target_arch = "arm"),
19511    stable(feature = "neon_intrinsics", since = "1.59.0")
19512)]
19513#[cfg_attr(
19514    target_arch = "arm",
19515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19516)]
19517pub unsafe fn vld2q_dup_p16(a: *const p16) -> poly16x8x2_t {
19518    transmute(vld2q_dup_s16(transmute(a)))
19519}
19520#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p16)"]
19522#[doc = "## Safety"]
19523#[doc = "  * Neon intrinsic unsafe"]
19524#[inline(always)]
19525#[cfg(target_endian = "big")]
19526#[target_feature(enable = "neon")]
19527#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19528#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19529#[cfg_attr(
19530    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19531    assert_instr(ld2r)
19532)]
19533#[cfg_attr(
19534    not(target_arch = "arm"),
19535    stable(feature = "neon_intrinsics", since = "1.59.0")
19536)]
19537#[cfg_attr(
19538    target_arch = "arm",
19539    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19540)]
19541pub unsafe fn vld2q_dup_p16(a: *const p16) -> poly16x8x2_t {
19542    let mut ret_val: poly16x8x2_t = transmute(vld2q_dup_s16(transmute(a)));
19543    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19544    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19545    ret_val
19546}
19547#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f16)"]
19549#[doc = "## Safety"]
19550#[doc = "  * Neon intrinsic unsafe"]
19551#[inline(always)]
19552#[target_feature(enable = "neon")]
19553#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19554#[cfg(target_arch = "arm")]
19555#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19556#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19557#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19558#[cfg(not(target_arch = "arm64ec"))]
19559pub unsafe fn vld2_f16(a: *const f16) -> float16x4x2_t {
19560    unsafe extern "unadjusted" {
19561        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4f16.p0")]
19562        fn _vld2_f16(ptr: *const f16, size: i32) -> float16x4x2_t;
19563    }
19564    _vld2_f16(a as _, 2)
19565}
19566#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f16)"]
19568#[doc = "## Safety"]
19569#[doc = "  * Neon intrinsic unsafe"]
19570#[inline(always)]
19571#[target_feature(enable = "neon")]
19572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19573#[cfg(target_arch = "arm")]
19574#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19575#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19576#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19577#[cfg(not(target_arch = "arm64ec"))]
19578pub unsafe fn vld2q_f16(a: *const f16) -> float16x8x2_t {
19579    unsafe extern "unadjusted" {
19580        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8f16.p0")]
19581        fn _vld2q_f16(ptr: *const f16, size: i32) -> float16x8x2_t;
19582    }
19583    _vld2q_f16(a as _, 2)
19584}
19585#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f16)"]
19587#[doc = "## Safety"]
19588#[doc = "  * Neon intrinsic unsafe"]
19589#[inline(always)]
19590#[target_feature(enable = "neon")]
19591#[cfg(not(target_arch = "arm"))]
19592#[cfg_attr(
19593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19594    assert_instr(ld2)
19595)]
19596#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19597#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19598#[cfg(not(target_arch = "arm64ec"))]
19599pub unsafe fn vld2_f16(a: *const f16) -> float16x4x2_t {
19600    unsafe extern "unadjusted" {
19601        #[cfg_attr(
19602            any(target_arch = "aarch64", target_arch = "arm64ec"),
19603            link_name = "llvm.aarch64.neon.ld2.v4f16.p0"
19604        )]
19605        fn _vld2_f16(ptr: *const f16) -> float16x4x2_t;
19606    }
19607    _vld2_f16(a as _)
19608}
19609#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f16)"]
19611#[doc = "## Safety"]
19612#[doc = "  * Neon intrinsic unsafe"]
19613#[inline(always)]
19614#[target_feature(enable = "neon")]
19615#[cfg(not(target_arch = "arm"))]
19616#[cfg_attr(
19617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19618    assert_instr(ld2)
19619)]
19620#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19621#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19622#[cfg(not(target_arch = "arm64ec"))]
19623pub unsafe fn vld2q_f16(a: *const f16) -> float16x8x2_t {
19624    unsafe extern "unadjusted" {
19625        #[cfg_attr(
19626            any(target_arch = "aarch64", target_arch = "arm64ec"),
19627            link_name = "llvm.aarch64.neon.ld2.v8f16.p0"
19628        )]
19629        fn _vld2q_f16(ptr: *const f16) -> float16x8x2_t;
19630    }
19631    _vld2q_f16(a as _)
19632}
19633#[doc = "Load multiple 2-element structures to two registers"]
19634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)"]
19635#[doc = "## Safety"]
19636#[doc = "  * Neon intrinsic unsafe"]
19637#[inline(always)]
19638#[target_feature(enable = "neon,v7")]
19639#[cfg(target_arch = "arm")]
19640#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19641#[cfg_attr(test, assert_instr(vld2))]
19642pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
19643    unsafe extern "unadjusted" {
19644        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2f32")]
19645        fn _vld2_f32(ptr: *const i8, size: i32) -> float32x2x2_t;
19646    }
19647    _vld2_f32(a as *const i8, 4)
19648}
19649#[doc = "Load multiple 2-element structures to two registers"]
19650#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)"]
19651#[doc = "## Safety"]
19652#[doc = "  * Neon intrinsic unsafe"]
19653#[inline(always)]
19654#[target_feature(enable = "neon,v7")]
19655#[cfg(target_arch = "arm")]
19656#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19657#[cfg_attr(test, assert_instr(vld2))]
19658pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
19659    unsafe extern "unadjusted" {
19660        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4f32")]
19661        fn _vld2q_f32(ptr: *const i8, size: i32) -> float32x4x2_t;
19662    }
19663    _vld2q_f32(a as *const i8, 4)
19664}
19665#[doc = "Load multiple 2-element structures to two registers"]
19666#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s8)"]
19667#[doc = "## Safety"]
19668#[doc = "  * Neon intrinsic unsafe"]
19669#[inline(always)]
19670#[target_feature(enable = "neon,v7")]
19671#[cfg(target_arch = "arm")]
19672#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19673#[cfg_attr(test, assert_instr(vld2))]
19674pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
19675    unsafe extern "unadjusted" {
19676        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i8")]
19677        fn _vld2_s8(ptr: *const i8, size: i32) -> int8x8x2_t;
19678    }
19679    _vld2_s8(a as *const i8, 1)
19680}
19681#[doc = "Load multiple 2-element structures to two registers"]
19682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)"]
19683#[doc = "## Safety"]
19684#[doc = "  * Neon intrinsic unsafe"]
19685#[inline(always)]
19686#[target_feature(enable = "neon,v7")]
19687#[cfg(target_arch = "arm")]
19688#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19689#[cfg_attr(test, assert_instr(vld2))]
19690pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
19691    unsafe extern "unadjusted" {
19692        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v16i8")]
19693        fn _vld2q_s8(ptr: *const i8, size: i32) -> int8x16x2_t;
19694    }
19695    _vld2q_s8(a as *const i8, 1)
19696}
19697#[doc = "Load multiple 2-element structures to two registers"]
19698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)"]
19699#[doc = "## Safety"]
19700#[doc = "  * Neon intrinsic unsafe"]
19701#[inline(always)]
19702#[target_feature(enable = "neon,v7")]
19703#[cfg(target_arch = "arm")]
19704#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19705#[cfg_attr(test, assert_instr(vld2))]
19706pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
19707    unsafe extern "unadjusted" {
19708        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i16")]
19709        fn _vld2_s16(ptr: *const i8, size: i32) -> int16x4x2_t;
19710    }
19711    _vld2_s16(a as *const i8, 2)
19712}
19713#[doc = "Load multiple 2-element structures to two registers"]
19714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)"]
19715#[doc = "## Safety"]
19716#[doc = "  * Neon intrinsic unsafe"]
19717#[inline(always)]
19718#[target_feature(enable = "neon,v7")]
19719#[cfg(target_arch = "arm")]
19720#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19721#[cfg_attr(test, assert_instr(vld2))]
19722pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
19723    unsafe extern "unadjusted" {
19724        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i16")]
19725        fn _vld2q_s16(ptr: *const i8, size: i32) -> int16x8x2_t;
19726    }
19727    _vld2q_s16(a as *const i8, 2)
19728}
19729#[doc = "Load multiple 2-element structures to two registers"]
19730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)"]
19731#[doc = "## Safety"]
19732#[doc = "  * Neon intrinsic unsafe"]
19733#[inline(always)]
19734#[target_feature(enable = "neon,v7")]
19735#[cfg(target_arch = "arm")]
19736#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19737#[cfg_attr(test, assert_instr(vld2))]
19738pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
19739    unsafe extern "unadjusted" {
19740        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2i32")]
19741        fn _vld2_s32(ptr: *const i8, size: i32) -> int32x2x2_t;
19742    }
19743    _vld2_s32(a as *const i8, 4)
19744}
19745#[doc = "Load multiple 2-element structures to two registers"]
19746#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)"]
19747#[doc = "## Safety"]
19748#[doc = "  * Neon intrinsic unsafe"]
19749#[inline(always)]
19750#[target_feature(enable = "neon,v7")]
19751#[cfg(target_arch = "arm")]
19752#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19753#[cfg_attr(test, assert_instr(vld2))]
19754pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
19755    unsafe extern "unadjusted" {
19756        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i32")]
19757        fn _vld2q_s32(ptr: *const i8, size: i32) -> int32x4x2_t;
19758    }
19759    _vld2q_s32(a as *const i8, 4)
19760}
19761#[doc = "Load multiple 2-element structures to two registers"]
19762#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)"]
19763#[doc = "## Safety"]
19764#[doc = "  * Neon intrinsic unsafe"]
19765#[inline(always)]
19766#[target_feature(enable = "neon")]
19767#[cfg(not(target_arch = "arm"))]
19768#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19769#[cfg_attr(test, assert_instr(ld2))]
19770pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
19771    unsafe extern "unadjusted" {
19772        #[cfg_attr(
19773            any(target_arch = "aarch64", target_arch = "arm64ec"),
19774            link_name = "llvm.aarch64.neon.ld2.v2f32.p0"
19775        )]
19776        fn _vld2_f32(ptr: *const float32x2_t) -> float32x2x2_t;
19777    }
19778    _vld2_f32(a as _)
19779}
19780#[doc = "Load multiple 2-element structures to two registers"]
19781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)"]
19782#[doc = "## Safety"]
19783#[doc = "  * Neon intrinsic unsafe"]
19784#[inline(always)]
19785#[target_feature(enable = "neon")]
19786#[cfg(not(target_arch = "arm"))]
19787#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19788#[cfg_attr(test, assert_instr(ld2))]
19789pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
19790    unsafe extern "unadjusted" {
19791        #[cfg_attr(
19792            any(target_arch = "aarch64", target_arch = "arm64ec"),
19793            link_name = "llvm.aarch64.neon.ld2.v4f32.p0"
19794        )]
19795        fn _vld2q_f32(ptr: *const float32x4_t) -> float32x4x2_t;
19796    }
19797    _vld2q_f32(a as _)
19798}
19799#[doc = "Load multiple 2-element structures to two registers"]
19800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s8)"]
19801#[doc = "## Safety"]
19802#[doc = "  * Neon intrinsic unsafe"]
19803#[inline(always)]
19804#[target_feature(enable = "neon")]
19805#[cfg(not(target_arch = "arm"))]
19806#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19807#[cfg_attr(test, assert_instr(ld2))]
19808pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
19809    unsafe extern "unadjusted" {
19810        #[cfg_attr(
19811            any(target_arch = "aarch64", target_arch = "arm64ec"),
19812            link_name = "llvm.aarch64.neon.ld2.v8i8.p0"
19813        )]
19814        fn _vld2_s8(ptr: *const int8x8_t) -> int8x8x2_t;
19815    }
19816    _vld2_s8(a as _)
19817}
19818#[doc = "Load multiple 2-element structures to two registers"]
19819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)"]
19820#[doc = "## Safety"]
19821#[doc = "  * Neon intrinsic unsafe"]
19822#[inline(always)]
19823#[target_feature(enable = "neon")]
19824#[cfg(not(target_arch = "arm"))]
19825#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19826#[cfg_attr(test, assert_instr(ld2))]
19827pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
19828    unsafe extern "unadjusted" {
19829        #[cfg_attr(
19830            any(target_arch = "aarch64", target_arch = "arm64ec"),
19831            link_name = "llvm.aarch64.neon.ld2.v16i8.p0"
19832        )]
19833        fn _vld2q_s8(ptr: *const int8x16_t) -> int8x16x2_t;
19834    }
19835    _vld2q_s8(a as _)
19836}
19837#[doc = "Load multiple 2-element structures to two registers"]
19838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)"]
19839#[doc = "## Safety"]
19840#[doc = "  * Neon intrinsic unsafe"]
19841#[inline(always)]
19842#[target_feature(enable = "neon")]
19843#[cfg(not(target_arch = "arm"))]
19844#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19845#[cfg_attr(test, assert_instr(ld2))]
19846pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
19847    unsafe extern "unadjusted" {
19848        #[cfg_attr(
19849            any(target_arch = "aarch64", target_arch = "arm64ec"),
19850            link_name = "llvm.aarch64.neon.ld2.v4i16.p0"
19851        )]
19852        fn _vld2_s16(ptr: *const int16x4_t) -> int16x4x2_t;
19853    }
19854    _vld2_s16(a as _)
19855}
19856#[doc = "Load multiple 2-element structures to two registers"]
19857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)"]
19858#[doc = "## Safety"]
19859#[doc = "  * Neon intrinsic unsafe"]
19860#[inline(always)]
19861#[target_feature(enable = "neon")]
19862#[cfg(not(target_arch = "arm"))]
19863#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19864#[cfg_attr(test, assert_instr(ld2))]
19865pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
19866    unsafe extern "unadjusted" {
19867        #[cfg_attr(
19868            any(target_arch = "aarch64", target_arch = "arm64ec"),
19869            link_name = "llvm.aarch64.neon.ld2.v8i16.p0"
19870        )]
19871        fn _vld2q_s16(ptr: *const int16x8_t) -> int16x8x2_t;
19872    }
19873    _vld2q_s16(a as _)
19874}
19875#[doc = "Load multiple 2-element structures to two registers"]
19876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)"]
19877#[doc = "## Safety"]
19878#[doc = "  * Neon intrinsic unsafe"]
19879#[inline(always)]
19880#[target_feature(enable = "neon")]
19881#[cfg(not(target_arch = "arm"))]
19882#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19883#[cfg_attr(test, assert_instr(ld2))]
19884pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
19885    unsafe extern "unadjusted" {
19886        #[cfg_attr(
19887            any(target_arch = "aarch64", target_arch = "arm64ec"),
19888            link_name = "llvm.aarch64.neon.ld2.v2i32.p0"
19889        )]
19890        fn _vld2_s32(ptr: *const int32x2_t) -> int32x2x2_t;
19891    }
19892    _vld2_s32(a as _)
19893}
19894#[doc = "Load multiple 2-element structures to two registers"]
19895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)"]
19896#[doc = "## Safety"]
19897#[doc = "  * Neon intrinsic unsafe"]
19898#[inline(always)]
19899#[target_feature(enable = "neon")]
19900#[cfg(not(target_arch = "arm"))]
19901#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19902#[cfg_attr(test, assert_instr(ld2))]
19903pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
19904    unsafe extern "unadjusted" {
19905        #[cfg_attr(
19906            any(target_arch = "aarch64", target_arch = "arm64ec"),
19907            link_name = "llvm.aarch64.neon.ld2.v4i32.p0"
19908        )]
19909        fn _vld2q_s32(ptr: *const int32x4_t) -> int32x4x2_t;
19910    }
19911    _vld2q_s32(a as _)
19912}
19913#[doc = "Load multiple 2-element structures to two registers"]
19914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f16)"]
19915#[doc = "## Safety"]
19916#[doc = "  * Neon intrinsic unsafe"]
19917#[inline(always)]
19918#[target_feature(enable = "neon,v7")]
19919#[cfg(target_arch = "arm")]
19920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
19921#[rustc_legacy_const_generics(2)]
19922#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19923#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19924#[cfg(not(target_arch = "arm64ec"))]
19925pub unsafe fn vld2_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x2_t) -> float16x4x2_t {
19926    static_assert_uimm_bits!(LANE, 2);
19927    unsafe extern "unadjusted" {
19928        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4f16.p0")]
19929        fn _vld2_lane_f16(
19930            ptr: *const f16,
19931            a: float16x4_t,
19932            b: float16x4_t,
19933            n: i32,
19934            size: i32,
19935        ) -> float16x4x2_t;
19936    }
19937    _vld2_lane_f16(a as _, b.0, b.1, LANE, 2)
19938}
19939#[doc = "Load multiple 2-element structures to two registers"]
19940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f16)"]
19941#[doc = "## Safety"]
19942#[doc = "  * Neon intrinsic unsafe"]
19943#[inline(always)]
19944#[target_feature(enable = "neon,v7")]
19945#[cfg(target_arch = "arm")]
19946#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
19947#[rustc_legacy_const_generics(2)]
19948#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19949#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19950#[cfg(not(target_arch = "arm64ec"))]
19951pub unsafe fn vld2q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x2_t) -> float16x8x2_t {
19952    static_assert_uimm_bits!(LANE, 3);
19953    unsafe extern "unadjusted" {
19954        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8f16.p0")]
19955        fn _vld2q_lane_f16(
19956            ptr: *const f16,
19957            a: float16x8_t,
19958            b: float16x8_t,
19959            n: i32,
19960            size: i32,
19961        ) -> float16x8x2_t;
19962    }
19963    _vld2q_lane_f16(a as _, b.0, b.1, LANE, 2)
19964}
19965#[doc = "Load multiple 2-element structures to two registers"]
19966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f16)"]
19967#[doc = "## Safety"]
19968#[doc = "  * Neon intrinsic unsafe"]
19969#[inline(always)]
19970#[target_feature(enable = "neon")]
19971#[cfg(not(target_arch = "arm"))]
19972#[cfg_attr(
19973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19974    assert_instr(ld2, LANE = 0)
19975)]
19976#[rustc_legacy_const_generics(2)]
19977#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19978#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19979#[cfg(not(target_arch = "arm64ec"))]
19980pub unsafe fn vld2_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x2_t) -> float16x4x2_t {
19981    static_assert_uimm_bits!(LANE, 2);
19982    unsafe extern "unadjusted" {
19983        #[cfg_attr(
19984            any(target_arch = "aarch64", target_arch = "arm64ec"),
19985            link_name = "llvm.aarch64.neon.ld2lane.v4f16.p0"
19986        )]
19987        fn _vld2_lane_f16(a: float16x4_t, b: float16x4_t, n: i64, ptr: *const f16)
19988            -> float16x4x2_t;
19989    }
19990    _vld2_lane_f16(b.0, b.1, LANE as i64, a as _)
19991}
19992#[doc = "Load multiple 2-element structures to two registers"]
19993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f16)"]
19994#[doc = "## Safety"]
19995#[doc = "  * Neon intrinsic unsafe"]
19996#[inline(always)]
19997#[target_feature(enable = "neon")]
19998#[cfg(not(target_arch = "arm"))]
19999#[cfg_attr(
20000    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20001    assert_instr(ld2, LANE = 0)
20002)]
20003#[rustc_legacy_const_generics(2)]
20004#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20005#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20006#[cfg(not(target_arch = "arm64ec"))]
20007pub unsafe fn vld2q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x2_t) -> float16x8x2_t {
20008    static_assert_uimm_bits!(LANE, 3);
20009    unsafe extern "unadjusted" {
20010        #[cfg_attr(
20011            any(target_arch = "aarch64", target_arch = "arm64ec"),
20012            link_name = "llvm.aarch64.neon.ld2lane.v8f16.p0"
20013        )]
20014        fn _vld2q_lane_f16(
20015            a: float16x8_t,
20016            b: float16x8_t,
20017            n: i64,
20018            ptr: *const f16,
20019        ) -> float16x8x2_t;
20020    }
20021    _vld2q_lane_f16(b.0, b.1, LANE as i64, a as _)
20022}
20023#[doc = "Load multiple 2-element structures to two registers"]
20024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)"]
20025#[doc = "## Safety"]
20026#[doc = "  * Neon intrinsic unsafe"]
20027#[inline(always)]
20028#[target_feature(enable = "neon")]
20029#[cfg(not(target_arch = "arm"))]
20030#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20031#[rustc_legacy_const_generics(2)]
20032#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20033pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
20034    static_assert_uimm_bits!(LANE, 2);
20035    unsafe extern "unadjusted" {
20036        #[cfg_attr(
20037            any(target_arch = "aarch64", target_arch = "arm64ec"),
20038            link_name = "llvm.aarch64.neon.ld2lane.v2f32.p0"
20039        )]
20040        fn _vld2_lane_f32(a: float32x2_t, b: float32x2_t, n: i64, ptr: *const i8) -> float32x2x2_t;
20041    }
20042    _vld2_lane_f32(b.0, b.1, LANE as i64, a as _)
20043}
20044#[doc = "Load multiple 2-element structures to two registers"]
20045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)"]
20046#[doc = "## Safety"]
20047#[doc = "  * Neon intrinsic unsafe"]
20048#[inline(always)]
20049#[target_feature(enable = "neon")]
20050#[cfg(not(target_arch = "arm"))]
20051#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20052#[rustc_legacy_const_generics(2)]
20053#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20054pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
20055    static_assert_uimm_bits!(LANE, 2);
20056    unsafe extern "unadjusted" {
20057        #[cfg_attr(
20058            any(target_arch = "aarch64", target_arch = "arm64ec"),
20059            link_name = "llvm.aarch64.neon.ld2lane.v4f32.p0"
20060        )]
20061        fn _vld2q_lane_f32(a: float32x4_t, b: float32x4_t, n: i64, ptr: *const i8)
20062            -> float32x4x2_t;
20063    }
20064    _vld2q_lane_f32(b.0, b.1, LANE as i64, a as _)
20065}
20066#[doc = "Load multiple 2-element structures to two registers"]
20067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)"]
20068#[doc = "## Safety"]
20069#[doc = "  * Neon intrinsic unsafe"]
20070#[inline(always)]
20071#[target_feature(enable = "neon")]
20072#[cfg(not(target_arch = "arm"))]
20073#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20074#[rustc_legacy_const_generics(2)]
20075#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20076pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
20077    static_assert_uimm_bits!(LANE, 3);
20078    unsafe extern "unadjusted" {
20079        #[cfg_attr(
20080            any(target_arch = "aarch64", target_arch = "arm64ec"),
20081            link_name = "llvm.aarch64.neon.ld2lane.v8i8.p0"
20082        )]
20083        fn _vld2_lane_s8(a: int8x8_t, b: int8x8_t, n: i64, ptr: *const i8) -> int8x8x2_t;
20084    }
20085    _vld2_lane_s8(b.0, b.1, LANE as i64, a as _)
20086}
20087#[doc = "Load multiple 2-element structures to two registers"]
20088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)"]
20089#[doc = "## Safety"]
20090#[doc = "  * Neon intrinsic unsafe"]
20091#[inline(always)]
20092#[target_feature(enable = "neon")]
20093#[cfg(not(target_arch = "arm"))]
20094#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20095#[rustc_legacy_const_generics(2)]
20096#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20097pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
20098    static_assert_uimm_bits!(LANE, 2);
20099    unsafe extern "unadjusted" {
20100        #[cfg_attr(
20101            any(target_arch = "aarch64", target_arch = "arm64ec"),
20102            link_name = "llvm.aarch64.neon.ld2lane.v4i16.p0"
20103        )]
20104        fn _vld2_lane_s16(a: int16x4_t, b: int16x4_t, n: i64, ptr: *const i8) -> int16x4x2_t;
20105    }
20106    _vld2_lane_s16(b.0, b.1, LANE as i64, a as _)
20107}
20108#[doc = "Load multiple 2-element structures to two registers"]
20109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)"]
20110#[doc = "## Safety"]
20111#[doc = "  * Neon intrinsic unsafe"]
20112#[inline(always)]
20113#[target_feature(enable = "neon")]
20114#[cfg(not(target_arch = "arm"))]
20115#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20116#[rustc_legacy_const_generics(2)]
20117#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20118pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
20119    static_assert_uimm_bits!(LANE, 3);
20120    unsafe extern "unadjusted" {
20121        #[cfg_attr(
20122            any(target_arch = "aarch64", target_arch = "arm64ec"),
20123            link_name = "llvm.aarch64.neon.ld2lane.v8i16.p0"
20124        )]
20125        fn _vld2q_lane_s16(a: int16x8_t, b: int16x8_t, n: i64, ptr: *const i8) -> int16x8x2_t;
20126    }
20127    _vld2q_lane_s16(b.0, b.1, LANE as i64, a as _)
20128}
20129#[doc = "Load multiple 2-element structures to two registers"]
20130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s32)"]
20131#[doc = "## Safety"]
20132#[doc = "  * Neon intrinsic unsafe"]
20133#[inline(always)]
20134#[target_feature(enable = "neon")]
20135#[cfg(not(target_arch = "arm"))]
20136#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20137#[rustc_legacy_const_generics(2)]
20138#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20139pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
20140    static_assert_uimm_bits!(LANE, 1);
20141    unsafe extern "unadjusted" {
20142        #[cfg_attr(
20143            any(target_arch = "aarch64", target_arch = "arm64ec"),
20144            link_name = "llvm.aarch64.neon.ld2lane.v2i32.p0"
20145        )]
20146        fn _vld2_lane_s32(a: int32x2_t, b: int32x2_t, n: i64, ptr: *const i8) -> int32x2x2_t;
20147    }
20148    _vld2_lane_s32(b.0, b.1, LANE as i64, a as _)
20149}
20150#[doc = "Load multiple 2-element structures to two registers"]
20151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)"]
20152#[doc = "## Safety"]
20153#[doc = "  * Neon intrinsic unsafe"]
20154#[inline(always)]
20155#[target_feature(enable = "neon")]
20156#[cfg(not(target_arch = "arm"))]
20157#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20158#[rustc_legacy_const_generics(2)]
20159#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20160pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
20161    static_assert_uimm_bits!(LANE, 2);
20162    unsafe extern "unadjusted" {
20163        #[cfg_attr(
20164            any(target_arch = "aarch64", target_arch = "arm64ec"),
20165            link_name = "llvm.aarch64.neon.ld2lane.v4i32.p0"
20166        )]
20167        fn _vld2q_lane_s32(a: int32x4_t, b: int32x4_t, n: i64, ptr: *const i8) -> int32x4x2_t;
20168    }
20169    _vld2q_lane_s32(b.0, b.1, LANE as i64, a as _)
20170}
20171#[doc = "Load multiple 2-element structures to two registers"]
20172#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)"]
20173#[doc = "## Safety"]
20174#[doc = "  * Neon intrinsic unsafe"]
20175#[inline(always)]
20176#[target_feature(enable = "neon,v7")]
20177#[cfg(target_arch = "arm")]
20178#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20179#[rustc_legacy_const_generics(2)]
20180#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20181pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
20182    static_assert_uimm_bits!(LANE, 1);
20183    unsafe extern "unadjusted" {
20184        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2f32.p0")]
20185        fn _vld2_lane_f32(
20186            ptr: *const i8,
20187            a: float32x2_t,
20188            b: float32x2_t,
20189            n: i32,
20190            size: i32,
20191        ) -> float32x2x2_t;
20192    }
20193    _vld2_lane_f32(a as _, b.0, b.1, LANE, 4)
20194}
20195#[doc = "Load multiple 2-element structures to two registers"]
20196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)"]
20197#[doc = "## Safety"]
20198#[doc = "  * Neon intrinsic unsafe"]
20199#[inline(always)]
20200#[target_feature(enable = "neon,v7")]
20201#[cfg(target_arch = "arm")]
20202#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20203#[rustc_legacy_const_generics(2)]
20204#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20205pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
20206    static_assert_uimm_bits!(LANE, 2);
20207    unsafe extern "unadjusted" {
20208        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4f32.p0")]
20209        fn _vld2q_lane_f32(
20210            ptr: *const i8,
20211            a: float32x4_t,
20212            b: float32x4_t,
20213            n: i32,
20214            size: i32,
20215        ) -> float32x4x2_t;
20216    }
20217    _vld2q_lane_f32(a as _, b.0, b.1, LANE, 4)
20218}
20219#[doc = "Load multiple 2-element structures to two registers"]
20220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)"]
20221#[doc = "## Safety"]
20222#[doc = "  * Neon intrinsic unsafe"]
20223#[inline(always)]
20224#[target_feature(enable = "neon,v7")]
20225#[cfg(target_arch = "arm")]
20226#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20227#[rustc_legacy_const_generics(2)]
20228#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20229pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
20230    static_assert_uimm_bits!(LANE, 3);
20231    unsafe extern "unadjusted" {
20232        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i16.p0")]
20233        fn _vld2q_lane_s16(
20234            ptr: *const i8,
20235            a: int16x8_t,
20236            b: int16x8_t,
20237            n: i32,
20238            size: i32,
20239        ) -> int16x8x2_t;
20240    }
20241    _vld2q_lane_s16(a as _, b.0, b.1, LANE, 2)
20242}
20243#[doc = "Load multiple 2-element structures to two registers"]
20244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)"]
20245#[doc = "## Safety"]
20246#[doc = "  * Neon intrinsic unsafe"]
20247#[inline(always)]
20248#[target_feature(enable = "neon,v7")]
20249#[cfg(target_arch = "arm")]
20250#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20251#[rustc_legacy_const_generics(2)]
20252#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20253pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
20254    static_assert_uimm_bits!(LANE, 2);
20255    unsafe extern "unadjusted" {
20256        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i32.p0")]
20257        fn _vld2q_lane_s32(
20258            ptr: *const i8,
20259            a: int32x4_t,
20260            b: int32x4_t,
20261            n: i32,
20262            size: i32,
20263        ) -> int32x4x2_t;
20264    }
20265    _vld2q_lane_s32(a as _, b.0, b.1, LANE, 4)
20266}
20267#[doc = "Load multiple 2-element structures to two registers"]
20268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)"]
20269#[doc = "## Safety"]
20270#[doc = "  * Neon intrinsic unsafe"]
20271#[inline(always)]
20272#[target_feature(enable = "neon,v7")]
20273#[cfg(target_arch = "arm")]
20274#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20275#[rustc_legacy_const_generics(2)]
20276#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20277pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
20278    static_assert_uimm_bits!(LANE, 3);
20279    unsafe extern "unadjusted" {
20280        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i8.p0")]
20281        fn _vld2_lane_s8(ptr: *const i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32)
20282            -> int8x8x2_t;
20283    }
20284    _vld2_lane_s8(a as _, b.0, b.1, LANE, 1)
20285}
20286#[doc = "Load multiple 2-element structures to two registers"]
20287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)"]
20288#[doc = "## Safety"]
20289#[doc = "  * Neon intrinsic unsafe"]
20290#[inline(always)]
20291#[target_feature(enable = "neon,v7")]
20292#[cfg(target_arch = "arm")]
20293#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20294#[rustc_legacy_const_generics(2)]
20295#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20296pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
20297    static_assert_uimm_bits!(LANE, 2);
20298    unsafe extern "unadjusted" {
20299        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i16.p0")]
20300        fn _vld2_lane_s16(
20301            ptr: *const i8,
20302            a: int16x4_t,
20303            b: int16x4_t,
20304            n: i32,
20305            size: i32,
20306        ) -> int16x4x2_t;
20307    }
20308    _vld2_lane_s16(a as _, b.0, b.1, LANE, 2)
20309}
20310#[doc = "Load multiple 2-element structures to two registers"]
20311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s32)"]
20312#[doc = "## Safety"]
20313#[doc = "  * Neon intrinsic unsafe"]
20314#[inline(always)]
20315#[target_feature(enable = "neon,v7")]
20316#[cfg(target_arch = "arm")]
20317#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20318#[rustc_legacy_const_generics(2)]
20319#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20320pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
20321    static_assert_uimm_bits!(LANE, 1);
20322    unsafe extern "unadjusted" {
20323        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2i32.p0")]
20324        fn _vld2_lane_s32(
20325            ptr: *const i8,
20326            a: int32x2_t,
20327            b: int32x2_t,
20328            n: i32,
20329            size: i32,
20330        ) -> int32x2x2_t;
20331    }
20332    _vld2_lane_s32(a as _, b.0, b.1, LANE, 4)
20333}
20334#[doc = "Load multiple 2-element structures to two registers"]
20335#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u8)"]
20336#[doc = "## Safety"]
20337#[doc = "  * Neon intrinsic unsafe"]
20338#[inline(always)]
20339#[target_feature(enable = "neon")]
20340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20342#[cfg_attr(
20343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20344    assert_instr(ld2, LANE = 0)
20345)]
20346#[rustc_legacy_const_generics(2)]
20347#[cfg_attr(
20348    not(target_arch = "arm"),
20349    stable(feature = "neon_intrinsics", since = "1.59.0")
20350)]
20351#[cfg_attr(
20352    target_arch = "arm",
20353    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20354)]
20355pub unsafe fn vld2_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x2_t) -> uint8x8x2_t {
20356    static_assert_uimm_bits!(LANE, 3);
20357    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
20358}
20359#[doc = "Load multiple 2-element structures to two registers"]
20360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u16)"]
20361#[doc = "## Safety"]
20362#[doc = "  * Neon intrinsic unsafe"]
20363#[inline(always)]
20364#[target_feature(enable = "neon")]
20365#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20366#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20367#[cfg_attr(
20368    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20369    assert_instr(ld2, LANE = 0)
20370)]
20371#[rustc_legacy_const_generics(2)]
20372#[cfg_attr(
20373    not(target_arch = "arm"),
20374    stable(feature = "neon_intrinsics", since = "1.59.0")
20375)]
20376#[cfg_attr(
20377    target_arch = "arm",
20378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20379)]
20380pub unsafe fn vld2_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x2_t) -> uint16x4x2_t {
20381    static_assert_uimm_bits!(LANE, 2);
20382    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
20383}
20384#[doc = "Load multiple 2-element structures to two registers"]
20385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u16)"]
20386#[doc = "## Safety"]
20387#[doc = "  * Neon intrinsic unsafe"]
20388#[inline(always)]
20389#[target_feature(enable = "neon")]
20390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20392#[cfg_attr(
20393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20394    assert_instr(ld2, LANE = 0)
20395)]
20396#[rustc_legacy_const_generics(2)]
20397#[cfg_attr(
20398    not(target_arch = "arm"),
20399    stable(feature = "neon_intrinsics", since = "1.59.0")
20400)]
20401#[cfg_attr(
20402    target_arch = "arm",
20403    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20404)]
20405pub unsafe fn vld2q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x2_t) -> uint16x8x2_t {
20406    static_assert_uimm_bits!(LANE, 3);
20407    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
20408}
20409#[doc = "Load multiple 2-element structures to two registers"]
20410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u32)"]
20411#[doc = "## Safety"]
20412#[doc = "  * Neon intrinsic unsafe"]
20413#[inline(always)]
20414#[target_feature(enable = "neon")]
20415#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20416#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20417#[cfg_attr(
20418    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20419    assert_instr(ld2, LANE = 0)
20420)]
20421#[rustc_legacy_const_generics(2)]
20422#[cfg_attr(
20423    not(target_arch = "arm"),
20424    stable(feature = "neon_intrinsics", since = "1.59.0")
20425)]
20426#[cfg_attr(
20427    target_arch = "arm",
20428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20429)]
20430pub unsafe fn vld2_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x2_t) -> uint32x2x2_t {
20431    static_assert_uimm_bits!(LANE, 1);
20432    transmute(vld2_lane_s32::<LANE>(transmute(a), transmute(b)))
20433}
20434#[doc = "Load multiple 2-element structures to two registers"]
20435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u32)"]
20436#[doc = "## Safety"]
20437#[doc = "  * Neon intrinsic unsafe"]
20438#[inline(always)]
20439#[target_feature(enable = "neon")]
20440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20442#[cfg_attr(
20443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20444    assert_instr(ld2, LANE = 0)
20445)]
20446#[rustc_legacy_const_generics(2)]
20447#[cfg_attr(
20448    not(target_arch = "arm"),
20449    stable(feature = "neon_intrinsics", since = "1.59.0")
20450)]
20451#[cfg_attr(
20452    target_arch = "arm",
20453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20454)]
20455pub unsafe fn vld2q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x2_t) -> uint32x4x2_t {
20456    static_assert_uimm_bits!(LANE, 2);
20457    transmute(vld2q_lane_s32::<LANE>(transmute(a), transmute(b)))
20458}
20459#[doc = "Load multiple 2-element structures to two registers"]
20460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p8)"]
20461#[doc = "## Safety"]
20462#[doc = "  * Neon intrinsic unsafe"]
20463#[inline(always)]
20464#[target_feature(enable = "neon")]
20465#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20466#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20467#[cfg_attr(
20468    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20469    assert_instr(ld2, LANE = 0)
20470)]
20471#[rustc_legacy_const_generics(2)]
20472#[cfg_attr(
20473    not(target_arch = "arm"),
20474    stable(feature = "neon_intrinsics", since = "1.59.0")
20475)]
20476#[cfg_attr(
20477    target_arch = "arm",
20478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20479)]
20480pub unsafe fn vld2_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x2_t) -> poly8x8x2_t {
20481    static_assert_uimm_bits!(LANE, 3);
20482    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
20483}
20484#[doc = "Load multiple 2-element structures to two registers"]
20485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p16)"]
20486#[doc = "## Safety"]
20487#[doc = "  * Neon intrinsic unsafe"]
20488#[inline(always)]
20489#[target_feature(enable = "neon")]
20490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20492#[cfg_attr(
20493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20494    assert_instr(ld2, LANE = 0)
20495)]
20496#[rustc_legacy_const_generics(2)]
20497#[cfg_attr(
20498    not(target_arch = "arm"),
20499    stable(feature = "neon_intrinsics", since = "1.59.0")
20500)]
20501#[cfg_attr(
20502    target_arch = "arm",
20503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20504)]
20505pub unsafe fn vld2_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x2_t) -> poly16x4x2_t {
20506    static_assert_uimm_bits!(LANE, 2);
20507    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
20508}
20509#[doc = "Load multiple 2-element structures to two registers"]
20510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_p16)"]
20511#[doc = "## Safety"]
20512#[doc = "  * Neon intrinsic unsafe"]
20513#[inline(always)]
20514#[target_feature(enable = "neon")]
20515#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20516#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20517#[cfg_attr(
20518    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20519    assert_instr(ld2, LANE = 0)
20520)]
20521#[rustc_legacy_const_generics(2)]
20522#[cfg_attr(
20523    not(target_arch = "arm"),
20524    stable(feature = "neon_intrinsics", since = "1.59.0")
20525)]
20526#[cfg_attr(
20527    target_arch = "arm",
20528    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20529)]
20530pub unsafe fn vld2q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x2_t) -> poly16x8x2_t {
20531    static_assert_uimm_bits!(LANE, 3);
20532    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
20533}
20534#[doc = "Load multiple 2-element structures to two registers"]
20535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p64)"]
20536#[doc = "## Safety"]
20537#[doc = "  * Neon intrinsic unsafe"]
20538#[inline(always)]
20539#[target_feature(enable = "neon,aes")]
20540#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
20541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
20542#[cfg_attr(
20543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20544    assert_instr(nop)
20545)]
20546#[cfg_attr(
20547    not(target_arch = "arm"),
20548    stable(feature = "neon_intrinsics", since = "1.59.0")
20549)]
20550#[cfg_attr(
20551    target_arch = "arm",
20552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20553)]
20554pub unsafe fn vld2_p64(a: *const p64) -> poly64x1x2_t {
20555    transmute(vld2_s64(transmute(a)))
20556}
20557#[doc = "Load multiple 2-element structures to two registers"]
20558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)"]
20559#[doc = "## Safety"]
20560#[doc = "  * Neon intrinsic unsafe"]
20561#[inline(always)]
20562#[target_feature(enable = "neon,v7")]
20563#[cfg(target_arch = "arm")]
20564#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20565#[cfg_attr(test, assert_instr(nop))]
20566pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
20567    unsafe extern "unadjusted" {
20568        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v1i64")]
20569        fn _vld2_s64(ptr: *const i8, size: i32) -> int64x1x2_t;
20570    }
20571    _vld2_s64(a as *const i8, 8)
20572}
20573#[doc = "Load multiple 2-element structures to two registers"]
20574#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)"]
20575#[doc = "## Safety"]
20576#[doc = "  * Neon intrinsic unsafe"]
20577#[inline(always)]
20578#[target_feature(enable = "neon")]
20579#[cfg(not(target_arch = "arm"))]
20580#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20581#[cfg_attr(test, assert_instr(nop))]
20582pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
20583    unsafe extern "unadjusted" {
20584        #[cfg_attr(
20585            any(target_arch = "aarch64", target_arch = "arm64ec"),
20586            link_name = "llvm.aarch64.neon.ld2.v1i64.p0"
20587        )]
20588        fn _vld2_s64(ptr: *const int64x1_t) -> int64x1x2_t;
20589    }
20590    _vld2_s64(a as _)
20591}
20592#[doc = "Load multiple 2-element structures to two registers"]
20593#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u64)"]
20594#[doc = "## Safety"]
20595#[doc = "  * Neon intrinsic unsafe"]
20596#[inline(always)]
20597#[target_feature(enable = "neon")]
20598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20599#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
20600#[cfg_attr(
20601    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20602    assert_instr(nop)
20603)]
20604#[cfg_attr(
20605    not(target_arch = "arm"),
20606    stable(feature = "neon_intrinsics", since = "1.59.0")
20607)]
20608#[cfg_attr(
20609    target_arch = "arm",
20610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20611)]
20612pub unsafe fn vld2_u64(a: *const u64) -> uint64x1x2_t {
20613    transmute(vld2_s64(transmute(a)))
20614}
20615#[doc = "Load multiple 2-element structures to two registers"]
20616#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u8)"]
20617#[doc = "## Safety"]
20618#[doc = "  * Neon intrinsic unsafe"]
20619#[inline(always)]
20620#[target_feature(enable = "neon")]
20621#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20622#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20623#[cfg_attr(
20624    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20625    assert_instr(ld2)
20626)]
20627#[cfg_attr(
20628    not(target_arch = "arm"),
20629    stable(feature = "neon_intrinsics", since = "1.59.0")
20630)]
20631#[cfg_attr(
20632    target_arch = "arm",
20633    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20634)]
20635pub unsafe fn vld2_u8(a: *const u8) -> uint8x8x2_t {
20636    transmute(vld2_s8(transmute(a)))
20637}
20638#[doc = "Load multiple 2-element structures to two registers"]
20639#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u8)"]
20640#[doc = "## Safety"]
20641#[doc = "  * Neon intrinsic unsafe"]
20642#[inline(always)]
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(ld2)
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 vld2q_u8(a: *const u8) -> uint8x16x2_t {
20659    transmute(vld2q_s8(transmute(a)))
20660}
20661#[doc = "Load multiple 2-element structures to two registers"]
20662#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u16)"]
20663#[doc = "## Safety"]
20664#[doc = "  * Neon intrinsic unsafe"]
20665#[inline(always)]
20666#[target_feature(enable = "neon")]
20667#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20668#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20669#[cfg_attr(
20670    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20671    assert_instr(ld2)
20672)]
20673#[cfg_attr(
20674    not(target_arch = "arm"),
20675    stable(feature = "neon_intrinsics", since = "1.59.0")
20676)]
20677#[cfg_attr(
20678    target_arch = "arm",
20679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20680)]
20681pub unsafe fn vld2_u16(a: *const u16) -> uint16x4x2_t {
20682    transmute(vld2_s16(transmute(a)))
20683}
20684#[doc = "Load multiple 2-element structures to two registers"]
20685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u16)"]
20686#[doc = "## Safety"]
20687#[doc = "  * Neon intrinsic unsafe"]
20688#[inline(always)]
20689#[target_feature(enable = "neon")]
20690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20691#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20692#[cfg_attr(
20693    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20694    assert_instr(ld2)
20695)]
20696#[cfg_attr(
20697    not(target_arch = "arm"),
20698    stable(feature = "neon_intrinsics", since = "1.59.0")
20699)]
20700#[cfg_attr(
20701    target_arch = "arm",
20702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20703)]
20704pub unsafe fn vld2q_u16(a: *const u16) -> uint16x8x2_t {
20705    transmute(vld2q_s16(transmute(a)))
20706}
20707#[doc = "Load multiple 2-element structures to two registers"]
20708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u32)"]
20709#[doc = "## Safety"]
20710#[doc = "  * Neon intrinsic unsafe"]
20711#[inline(always)]
20712#[target_feature(enable = "neon")]
20713#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20714#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20715#[cfg_attr(
20716    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20717    assert_instr(ld2)
20718)]
20719#[cfg_attr(
20720    not(target_arch = "arm"),
20721    stable(feature = "neon_intrinsics", since = "1.59.0")
20722)]
20723#[cfg_attr(
20724    target_arch = "arm",
20725    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20726)]
20727pub unsafe fn vld2_u32(a: *const u32) -> uint32x2x2_t {
20728    transmute(vld2_s32(transmute(a)))
20729}
20730#[doc = "Load multiple 2-element structures to two registers"]
20731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u32)"]
20732#[doc = "## Safety"]
20733#[doc = "  * Neon intrinsic unsafe"]
20734#[inline(always)]
20735#[target_feature(enable = "neon")]
20736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20737#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20738#[cfg_attr(
20739    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20740    assert_instr(ld2)
20741)]
20742#[cfg_attr(
20743    not(target_arch = "arm"),
20744    stable(feature = "neon_intrinsics", since = "1.59.0")
20745)]
20746#[cfg_attr(
20747    target_arch = "arm",
20748    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20749)]
20750pub unsafe fn vld2q_u32(a: *const u32) -> uint32x4x2_t {
20751    transmute(vld2q_s32(transmute(a)))
20752}
20753#[doc = "Load multiple 2-element structures to two registers"]
20754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p8)"]
20755#[doc = "## Safety"]
20756#[doc = "  * Neon intrinsic unsafe"]
20757#[inline(always)]
20758#[target_feature(enable = "neon")]
20759#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20760#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20761#[cfg_attr(
20762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20763    assert_instr(ld2)
20764)]
20765#[cfg_attr(
20766    not(target_arch = "arm"),
20767    stable(feature = "neon_intrinsics", since = "1.59.0")
20768)]
20769#[cfg_attr(
20770    target_arch = "arm",
20771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20772)]
20773pub unsafe fn vld2_p8(a: *const p8) -> poly8x8x2_t {
20774    transmute(vld2_s8(transmute(a)))
20775}
20776#[doc = "Load multiple 2-element structures to two registers"]
20777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p8)"]
20778#[doc = "## Safety"]
20779#[doc = "  * Neon intrinsic unsafe"]
20780#[inline(always)]
20781#[target_feature(enable = "neon")]
20782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20784#[cfg_attr(
20785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20786    assert_instr(ld2)
20787)]
20788#[cfg_attr(
20789    not(target_arch = "arm"),
20790    stable(feature = "neon_intrinsics", since = "1.59.0")
20791)]
20792#[cfg_attr(
20793    target_arch = "arm",
20794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20795)]
20796pub unsafe fn vld2q_p8(a: *const p8) -> poly8x16x2_t {
20797    transmute(vld2q_s8(transmute(a)))
20798}
20799#[doc = "Load multiple 2-element structures to two registers"]
20800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p16)"]
20801#[doc = "## Safety"]
20802#[doc = "  * Neon intrinsic unsafe"]
20803#[inline(always)]
20804#[target_feature(enable = "neon")]
20805#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20806#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20807#[cfg_attr(
20808    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20809    assert_instr(ld2)
20810)]
20811#[cfg_attr(
20812    not(target_arch = "arm"),
20813    stable(feature = "neon_intrinsics", since = "1.59.0")
20814)]
20815#[cfg_attr(
20816    target_arch = "arm",
20817    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20818)]
20819pub unsafe fn vld2_p16(a: *const p16) -> poly16x4x2_t {
20820    transmute(vld2_s16(transmute(a)))
20821}
20822#[doc = "Load multiple 2-element structures to two registers"]
20823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p16)"]
20824#[doc = "## Safety"]
20825#[doc = "  * Neon intrinsic unsafe"]
20826#[inline(always)]
20827#[target_feature(enable = "neon")]
20828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20829#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20830#[cfg_attr(
20831    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20832    assert_instr(ld2)
20833)]
20834#[cfg_attr(
20835    not(target_arch = "arm"),
20836    stable(feature = "neon_intrinsics", since = "1.59.0")
20837)]
20838#[cfg_attr(
20839    target_arch = "arm",
20840    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20841)]
20842pub unsafe fn vld2q_p16(a: *const p16) -> poly16x8x2_t {
20843    transmute(vld2q_s16(transmute(a)))
20844}
20845#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
20846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f16)"]
20847#[doc = "## Safety"]
20848#[doc = "  * Neon intrinsic unsafe"]
20849#[inline(always)]
20850#[target_feature(enable = "neon")]
20851#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20852#[cfg(target_arch = "arm")]
20853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
20854#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20855#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20856#[cfg(not(target_arch = "arm64ec"))]
20857pub unsafe fn vld3_dup_f16(a: *const f16) -> float16x4x3_t {
20858    unsafe extern "unadjusted" {
20859        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4f16.p0")]
20860        fn _vld3_dup_f16(ptr: *const f16, size: i32) -> float16x4x3_t;
20861    }
20862    _vld3_dup_f16(a as _, 2)
20863}
20864#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
20865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f16)"]
20866#[doc = "## Safety"]
20867#[doc = "  * Neon intrinsic unsafe"]
20868#[inline(always)]
20869#[target_feature(enable = "neon")]
20870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20871#[cfg(target_arch = "arm")]
20872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
20873#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20874#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20875#[cfg(not(target_arch = "arm64ec"))]
20876pub unsafe fn vld3q_dup_f16(a: *const f16) -> float16x8x3_t {
20877    unsafe extern "unadjusted" {
20878        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8f16.p0")]
20879        fn _vld3q_dup_f16(ptr: *const f16, size: i32) -> float16x8x3_t;
20880    }
20881    _vld3q_dup_f16(a as _, 2)
20882}
20883#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
20884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f16)"]
20885#[doc = "## Safety"]
20886#[doc = "  * Neon intrinsic unsafe"]
20887#[inline(always)]
20888#[target_feature(enable = "neon")]
20889#[cfg(not(target_arch = "arm"))]
20890#[cfg_attr(
20891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20892    assert_instr(ld3r)
20893)]
20894#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20895#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20896#[cfg(not(target_arch = "arm64ec"))]
20897pub unsafe fn vld3_dup_f16(a: *const f16) -> float16x4x3_t {
20898    unsafe extern "unadjusted" {
20899        #[cfg_attr(
20900            any(target_arch = "aarch64", target_arch = "arm64ec"),
20901            link_name = "llvm.aarch64.neon.ld3r.v4f16.p0"
20902        )]
20903        fn _vld3_dup_f16(ptr: *const f16) -> float16x4x3_t;
20904    }
20905    _vld3_dup_f16(a as _)
20906}
20907#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
20908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f16)"]
20909#[doc = "## Safety"]
20910#[doc = "  * Neon intrinsic unsafe"]
20911#[inline(always)]
20912#[target_feature(enable = "neon")]
20913#[cfg(not(target_arch = "arm"))]
20914#[cfg_attr(
20915    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20916    assert_instr(ld3r)
20917)]
20918#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20919#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20920#[cfg(not(target_arch = "arm64ec"))]
20921pub unsafe fn vld3q_dup_f16(a: *const f16) -> float16x8x3_t {
20922    unsafe extern "unadjusted" {
20923        #[cfg_attr(
20924            any(target_arch = "aarch64", target_arch = "arm64ec"),
20925            link_name = "llvm.aarch64.neon.ld3r.v8f16.p0"
20926        )]
20927        fn _vld3q_dup_f16(ptr: *const f16) -> float16x8x3_t;
20928    }
20929    _vld3q_dup_f16(a as _)
20930}
20931#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
20932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)"]
20933#[doc = "## Safety"]
20934#[doc = "  * Neon intrinsic unsafe"]
20935#[inline(always)]
20936#[target_feature(enable = "neon")]
20937#[cfg(not(target_arch = "arm"))]
20938#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20939#[cfg_attr(test, assert_instr(ld3r))]
20940pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
20941    unsafe extern "unadjusted" {
20942        #[cfg_attr(
20943            any(target_arch = "aarch64", target_arch = "arm64ec"),
20944            link_name = "llvm.aarch64.neon.ld3r.v2f32.p0"
20945        )]
20946        fn _vld3_dup_f32(ptr: *const f32) -> float32x2x3_t;
20947    }
20948    _vld3_dup_f32(a as _)
20949}
20950#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
20951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)"]
20952#[doc = "## Safety"]
20953#[doc = "  * Neon intrinsic unsafe"]
20954#[inline(always)]
20955#[target_feature(enable = "neon")]
20956#[cfg(not(target_arch = "arm"))]
20957#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20958#[cfg_attr(test, assert_instr(ld3r))]
20959pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
20960    unsafe extern "unadjusted" {
20961        #[cfg_attr(
20962            any(target_arch = "aarch64", target_arch = "arm64ec"),
20963            link_name = "llvm.aarch64.neon.ld3r.v4f32.p0"
20964        )]
20965        fn _vld3q_dup_f32(ptr: *const f32) -> float32x4x3_t;
20966    }
20967    _vld3q_dup_f32(a as _)
20968}
20969#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
20970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)"]
20971#[doc = "## Safety"]
20972#[doc = "  * Neon intrinsic unsafe"]
20973#[inline(always)]
20974#[target_feature(enable = "neon")]
20975#[cfg(not(target_arch = "arm"))]
20976#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20977#[cfg_attr(test, assert_instr(ld3r))]
20978pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
20979    unsafe extern "unadjusted" {
20980        #[cfg_attr(
20981            any(target_arch = "aarch64", target_arch = "arm64ec"),
20982            link_name = "llvm.aarch64.neon.ld3r.v8i8.p0"
20983        )]
20984        fn _vld3_dup_s8(ptr: *const i8) -> int8x8x3_t;
20985    }
20986    _vld3_dup_s8(a as _)
20987}
20988#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
20989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)"]
20990#[doc = "## Safety"]
20991#[doc = "  * Neon intrinsic unsafe"]
20992#[inline(always)]
20993#[target_feature(enable = "neon")]
20994#[cfg(not(target_arch = "arm"))]
20995#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20996#[cfg_attr(test, assert_instr(ld3r))]
20997pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
20998    unsafe extern "unadjusted" {
20999        #[cfg_attr(
21000            any(target_arch = "aarch64", target_arch = "arm64ec"),
21001            link_name = "llvm.aarch64.neon.ld3r.v16i8.p0"
21002        )]
21003        fn _vld3q_dup_s8(ptr: *const i8) -> int8x16x3_t;
21004    }
21005    _vld3q_dup_s8(a as _)
21006}
21007#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)"]
21009#[doc = "## Safety"]
21010#[doc = "  * Neon intrinsic unsafe"]
21011#[inline(always)]
21012#[target_feature(enable = "neon")]
21013#[cfg(not(target_arch = "arm"))]
21014#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21015#[cfg_attr(test, assert_instr(ld3r))]
21016pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
21017    unsafe extern "unadjusted" {
21018        #[cfg_attr(
21019            any(target_arch = "aarch64", target_arch = "arm64ec"),
21020            link_name = "llvm.aarch64.neon.ld3r.v4i16.p0"
21021        )]
21022        fn _vld3_dup_s16(ptr: *const i16) -> int16x4x3_t;
21023    }
21024    _vld3_dup_s16(a as _)
21025}
21026#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21027#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)"]
21028#[doc = "## Safety"]
21029#[doc = "  * Neon intrinsic unsafe"]
21030#[inline(always)]
21031#[target_feature(enable = "neon")]
21032#[cfg(not(target_arch = "arm"))]
21033#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21034#[cfg_attr(test, assert_instr(ld3r))]
21035pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
21036    unsafe extern "unadjusted" {
21037        #[cfg_attr(
21038            any(target_arch = "aarch64", target_arch = "arm64ec"),
21039            link_name = "llvm.aarch64.neon.ld3r.v8i16.p0"
21040        )]
21041        fn _vld3q_dup_s16(ptr: *const i16) -> int16x8x3_t;
21042    }
21043    _vld3q_dup_s16(a as _)
21044}
21045#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)"]
21047#[doc = "## Safety"]
21048#[doc = "  * Neon intrinsic unsafe"]
21049#[inline(always)]
21050#[target_feature(enable = "neon")]
21051#[cfg(not(target_arch = "arm"))]
21052#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21053#[cfg_attr(test, assert_instr(ld3r))]
21054pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
21055    unsafe extern "unadjusted" {
21056        #[cfg_attr(
21057            any(target_arch = "aarch64", target_arch = "arm64ec"),
21058            link_name = "llvm.aarch64.neon.ld3r.v2i32.p0"
21059        )]
21060        fn _vld3_dup_s32(ptr: *const i32) -> int32x2x3_t;
21061    }
21062    _vld3_dup_s32(a as _)
21063}
21064#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)"]
21066#[doc = "## Safety"]
21067#[doc = "  * Neon intrinsic unsafe"]
21068#[inline(always)]
21069#[target_feature(enable = "neon")]
21070#[cfg(not(target_arch = "arm"))]
21071#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21072#[cfg_attr(test, assert_instr(ld3r))]
21073pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
21074    unsafe extern "unadjusted" {
21075        #[cfg_attr(
21076            any(target_arch = "aarch64", target_arch = "arm64ec"),
21077            link_name = "llvm.aarch64.neon.ld3r.v4i32.p0"
21078        )]
21079        fn _vld3q_dup_s32(ptr: *const i32) -> int32x4x3_t;
21080    }
21081    _vld3q_dup_s32(a as _)
21082}
21083#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)"]
21085#[doc = "## Safety"]
21086#[doc = "  * Neon intrinsic unsafe"]
21087#[inline(always)]
21088#[target_feature(enable = "neon")]
21089#[cfg(not(target_arch = "arm"))]
21090#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21091#[cfg_attr(test, assert_instr(ld3r))]
21092pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
21093    unsafe extern "unadjusted" {
21094        #[cfg_attr(
21095            any(target_arch = "aarch64", target_arch = "arm64ec"),
21096            link_name = "llvm.aarch64.neon.ld3r.v1i64.p0"
21097        )]
21098        fn _vld3_dup_s64(ptr: *const i64) -> int64x1x3_t;
21099    }
21100    _vld3_dup_s64(a as _)
21101}
21102#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)"]
21104#[doc = "## Safety"]
21105#[doc = "  * Neon intrinsic unsafe"]
21106#[inline(always)]
21107#[target_feature(enable = "neon,v7")]
21108#[cfg(target_arch = "arm")]
21109#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21110#[cfg_attr(test, assert_instr(vld3))]
21111pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
21112    unsafe extern "unadjusted" {
21113        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2f32.p0")]
21114        fn _vld3_dup_f32(ptr: *const i8, size: i32) -> float32x2x3_t;
21115    }
21116    _vld3_dup_f32(a as *const i8, 4)
21117}
21118#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)"]
21120#[doc = "## Safety"]
21121#[doc = "  * Neon intrinsic unsafe"]
21122#[inline(always)]
21123#[target_feature(enable = "neon,v7")]
21124#[cfg(target_arch = "arm")]
21125#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21126#[cfg_attr(test, assert_instr(vld3))]
21127pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
21128    unsafe extern "unadjusted" {
21129        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4f32.p0")]
21130        fn _vld3q_dup_f32(ptr: *const i8, size: i32) -> float32x4x3_t;
21131    }
21132    _vld3q_dup_f32(a as *const i8, 4)
21133}
21134#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21135#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)"]
21136#[doc = "## Safety"]
21137#[doc = "  * Neon intrinsic unsafe"]
21138#[inline(always)]
21139#[target_feature(enable = "neon,v7")]
21140#[cfg(target_arch = "arm")]
21141#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21142#[cfg_attr(test, assert_instr(vld3))]
21143pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
21144    unsafe extern "unadjusted" {
21145        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i8.p0")]
21146        fn _vld3_dup_s8(ptr: *const i8, size: i32) -> int8x8x3_t;
21147    }
21148    _vld3_dup_s8(a as *const i8, 1)
21149}
21150#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)"]
21152#[doc = "## Safety"]
21153#[doc = "  * Neon intrinsic unsafe"]
21154#[inline(always)]
21155#[target_feature(enable = "neon,v7")]
21156#[cfg(target_arch = "arm")]
21157#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21158#[cfg_attr(test, assert_instr(vld3))]
21159pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
21160    unsafe extern "unadjusted" {
21161        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v16i8.p0")]
21162        fn _vld3q_dup_s8(ptr: *const i8, size: i32) -> int8x16x3_t;
21163    }
21164    _vld3q_dup_s8(a as *const i8, 1)
21165}
21166#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21167#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)"]
21168#[doc = "## Safety"]
21169#[doc = "  * Neon intrinsic unsafe"]
21170#[inline(always)]
21171#[target_feature(enable = "neon,v7")]
21172#[cfg(target_arch = "arm")]
21173#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21174#[cfg_attr(test, assert_instr(vld3))]
21175pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
21176    unsafe extern "unadjusted" {
21177        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i16.p0")]
21178        fn _vld3_dup_s16(ptr: *const i8, size: i32) -> int16x4x3_t;
21179    }
21180    _vld3_dup_s16(a as *const i8, 2)
21181}
21182#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)"]
21184#[doc = "## Safety"]
21185#[doc = "  * Neon intrinsic unsafe"]
21186#[inline(always)]
21187#[target_feature(enable = "neon,v7")]
21188#[cfg(target_arch = "arm")]
21189#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21190#[cfg_attr(test, assert_instr(vld3))]
21191pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
21192    unsafe extern "unadjusted" {
21193        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i16.p0")]
21194        fn _vld3q_dup_s16(ptr: *const i8, size: i32) -> int16x8x3_t;
21195    }
21196    _vld3q_dup_s16(a as *const i8, 2)
21197}
21198#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)"]
21200#[doc = "## Safety"]
21201#[doc = "  * Neon intrinsic unsafe"]
21202#[inline(always)]
21203#[target_feature(enable = "neon,v7")]
21204#[cfg(target_arch = "arm")]
21205#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21206#[cfg_attr(test, assert_instr(vld3))]
21207pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
21208    unsafe extern "unadjusted" {
21209        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2i32.p0")]
21210        fn _vld3_dup_s32(ptr: *const i8, size: i32) -> int32x2x3_t;
21211    }
21212    _vld3_dup_s32(a as *const i8, 4)
21213}
21214#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)"]
21216#[doc = "## Safety"]
21217#[doc = "  * Neon intrinsic unsafe"]
21218#[inline(always)]
21219#[target_feature(enable = "neon,v7")]
21220#[cfg(target_arch = "arm")]
21221#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21222#[cfg_attr(test, assert_instr(vld3))]
21223pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
21224    unsafe extern "unadjusted" {
21225        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i32.p0")]
21226        fn _vld3q_dup_s32(ptr: *const i8, size: i32) -> int32x4x3_t;
21227    }
21228    _vld3q_dup_s32(a as *const i8, 4)
21229}
21230#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p64)"]
21232#[doc = "## Safety"]
21233#[doc = "  * Neon intrinsic unsafe"]
21234#[inline(always)]
21235#[target_feature(enable = "neon,aes")]
21236#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
21237#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
21238#[cfg_attr(
21239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21240    assert_instr(ld3r)
21241)]
21242#[cfg_attr(
21243    not(target_arch = "arm"),
21244    stable(feature = "neon_intrinsics", since = "1.59.0")
21245)]
21246#[cfg_attr(
21247    target_arch = "arm",
21248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21249)]
21250pub unsafe fn vld3_dup_p64(a: *const p64) -> poly64x1x3_t {
21251    transmute(vld3_dup_s64(transmute(a)))
21252}
21253#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21254#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)"]
21255#[doc = "## Safety"]
21256#[doc = "  * Neon intrinsic unsafe"]
21257#[inline(always)]
21258#[cfg(target_arch = "arm")]
21259#[target_feature(enable = "neon,v7")]
21260#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21261#[cfg_attr(test, assert_instr(nop))]
21262pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
21263    unsafe extern "unadjusted" {
21264        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v1i64.p0")]
21265        fn _vld3_dup_s64(ptr: *const i8, size: i32) -> int64x1x3_t;
21266    }
21267    _vld3_dup_s64(a as *const i8, 8)
21268}
21269#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u64)"]
21271#[doc = "## Safety"]
21272#[doc = "  * Neon intrinsic unsafe"]
21273#[inline(always)]
21274#[target_feature(enable = "neon")]
21275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21276#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
21277#[cfg_attr(
21278    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21279    assert_instr(ld3r)
21280)]
21281#[cfg_attr(
21282    not(target_arch = "arm"),
21283    stable(feature = "neon_intrinsics", since = "1.59.0")
21284)]
21285#[cfg_attr(
21286    target_arch = "arm",
21287    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21288)]
21289pub unsafe fn vld3_dup_u64(a: *const u64) -> uint64x1x3_t {
21290    transmute(vld3_dup_s64(transmute(a)))
21291}
21292#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u8)"]
21294#[doc = "## Safety"]
21295#[doc = "  * Neon intrinsic unsafe"]
21296#[inline(always)]
21297#[cfg(target_endian = "little")]
21298#[target_feature(enable = "neon")]
21299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21300#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21301#[cfg_attr(
21302    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21303    assert_instr(ld3r)
21304)]
21305#[cfg_attr(
21306    not(target_arch = "arm"),
21307    stable(feature = "neon_intrinsics", since = "1.59.0")
21308)]
21309#[cfg_attr(
21310    target_arch = "arm",
21311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21312)]
21313pub unsafe fn vld3_dup_u8(a: *const u8) -> uint8x8x3_t {
21314    transmute(vld3_dup_s8(transmute(a)))
21315}
21316#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u8)"]
21318#[doc = "## Safety"]
21319#[doc = "  * Neon intrinsic unsafe"]
21320#[inline(always)]
21321#[cfg(target_endian = "big")]
21322#[target_feature(enable = "neon")]
21323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21324#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21325#[cfg_attr(
21326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21327    assert_instr(ld3r)
21328)]
21329#[cfg_attr(
21330    not(target_arch = "arm"),
21331    stable(feature = "neon_intrinsics", since = "1.59.0")
21332)]
21333#[cfg_attr(
21334    target_arch = "arm",
21335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21336)]
21337pub unsafe fn vld3_dup_u8(a: *const u8) -> uint8x8x3_t {
21338    let mut ret_val: uint8x8x3_t = transmute(vld3_dup_s8(transmute(a)));
21339    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21340    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21341    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
21342    ret_val
21343}
21344#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u8)"]
21346#[doc = "## Safety"]
21347#[doc = "  * Neon intrinsic unsafe"]
21348#[inline(always)]
21349#[cfg(target_endian = "little")]
21350#[target_feature(enable = "neon")]
21351#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21352#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21353#[cfg_attr(
21354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21355    assert_instr(ld3r)
21356)]
21357#[cfg_attr(
21358    not(target_arch = "arm"),
21359    stable(feature = "neon_intrinsics", since = "1.59.0")
21360)]
21361#[cfg_attr(
21362    target_arch = "arm",
21363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21364)]
21365pub unsafe fn vld3q_dup_u8(a: *const u8) -> uint8x16x3_t {
21366    transmute(vld3q_dup_s8(transmute(a)))
21367}
21368#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u8)"]
21370#[doc = "## Safety"]
21371#[doc = "  * Neon intrinsic unsafe"]
21372#[inline(always)]
21373#[cfg(target_endian = "big")]
21374#[target_feature(enable = "neon")]
21375#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21376#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21377#[cfg_attr(
21378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21379    assert_instr(ld3r)
21380)]
21381#[cfg_attr(
21382    not(target_arch = "arm"),
21383    stable(feature = "neon_intrinsics", since = "1.59.0")
21384)]
21385#[cfg_attr(
21386    target_arch = "arm",
21387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21388)]
21389pub unsafe fn vld3q_dup_u8(a: *const u8) -> uint8x16x3_t {
21390    let mut ret_val: uint8x16x3_t = transmute(vld3q_dup_s8(transmute(a)));
21391    ret_val.0 = unsafe {
21392        simd_shuffle!(
21393            ret_val.0,
21394            ret_val.0,
21395            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21396        )
21397    };
21398    ret_val.1 = unsafe {
21399        simd_shuffle!(
21400            ret_val.1,
21401            ret_val.1,
21402            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21403        )
21404    };
21405    ret_val.2 = unsafe {
21406        simd_shuffle!(
21407            ret_val.2,
21408            ret_val.2,
21409            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21410        )
21411    };
21412    ret_val
21413}
21414#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u16)"]
21416#[doc = "## Safety"]
21417#[doc = "  * Neon intrinsic unsafe"]
21418#[inline(always)]
21419#[cfg(target_endian = "little")]
21420#[target_feature(enable = "neon")]
21421#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21422#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21423#[cfg_attr(
21424    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21425    assert_instr(ld3r)
21426)]
21427#[cfg_attr(
21428    not(target_arch = "arm"),
21429    stable(feature = "neon_intrinsics", since = "1.59.0")
21430)]
21431#[cfg_attr(
21432    target_arch = "arm",
21433    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21434)]
21435pub unsafe fn vld3_dup_u16(a: *const u16) -> uint16x4x3_t {
21436    transmute(vld3_dup_s16(transmute(a)))
21437}
21438#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21439#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u16)"]
21440#[doc = "## Safety"]
21441#[doc = "  * Neon intrinsic unsafe"]
21442#[inline(always)]
21443#[cfg(target_endian = "big")]
21444#[target_feature(enable = "neon")]
21445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21447#[cfg_attr(
21448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21449    assert_instr(ld3r)
21450)]
21451#[cfg_attr(
21452    not(target_arch = "arm"),
21453    stable(feature = "neon_intrinsics", since = "1.59.0")
21454)]
21455#[cfg_attr(
21456    target_arch = "arm",
21457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21458)]
21459pub unsafe fn vld3_dup_u16(a: *const u16) -> uint16x4x3_t {
21460    let mut ret_val: uint16x4x3_t = transmute(vld3_dup_s16(transmute(a)));
21461    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
21462    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
21463    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
21464    ret_val
21465}
21466#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u16)"]
21468#[doc = "## Safety"]
21469#[doc = "  * Neon intrinsic unsafe"]
21470#[inline(always)]
21471#[cfg(target_endian = "little")]
21472#[target_feature(enable = "neon")]
21473#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21474#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21475#[cfg_attr(
21476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21477    assert_instr(ld3r)
21478)]
21479#[cfg_attr(
21480    not(target_arch = "arm"),
21481    stable(feature = "neon_intrinsics", since = "1.59.0")
21482)]
21483#[cfg_attr(
21484    target_arch = "arm",
21485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21486)]
21487pub unsafe fn vld3q_dup_u16(a: *const u16) -> uint16x8x3_t {
21488    transmute(vld3q_dup_s16(transmute(a)))
21489}
21490#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u16)"]
21492#[doc = "## Safety"]
21493#[doc = "  * Neon intrinsic unsafe"]
21494#[inline(always)]
21495#[cfg(target_endian = "big")]
21496#[target_feature(enable = "neon")]
21497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21498#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21499#[cfg_attr(
21500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21501    assert_instr(ld3r)
21502)]
21503#[cfg_attr(
21504    not(target_arch = "arm"),
21505    stable(feature = "neon_intrinsics", since = "1.59.0")
21506)]
21507#[cfg_attr(
21508    target_arch = "arm",
21509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21510)]
21511pub unsafe fn vld3q_dup_u16(a: *const u16) -> uint16x8x3_t {
21512    let mut ret_val: uint16x8x3_t = transmute(vld3q_dup_s16(transmute(a)));
21513    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21514    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21515    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
21516    ret_val
21517}
21518#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u32)"]
21520#[doc = "## Safety"]
21521#[doc = "  * Neon intrinsic unsafe"]
21522#[inline(always)]
21523#[cfg(target_endian = "little")]
21524#[target_feature(enable = "neon")]
21525#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21526#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21527#[cfg_attr(
21528    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21529    assert_instr(ld3r)
21530)]
21531#[cfg_attr(
21532    not(target_arch = "arm"),
21533    stable(feature = "neon_intrinsics", since = "1.59.0")
21534)]
21535#[cfg_attr(
21536    target_arch = "arm",
21537    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21538)]
21539pub unsafe fn vld3_dup_u32(a: *const u32) -> uint32x2x3_t {
21540    transmute(vld3_dup_s32(transmute(a)))
21541}
21542#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u32)"]
21544#[doc = "## Safety"]
21545#[doc = "  * Neon intrinsic unsafe"]
21546#[inline(always)]
21547#[cfg(target_endian = "big")]
21548#[target_feature(enable = "neon")]
21549#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21550#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21551#[cfg_attr(
21552    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21553    assert_instr(ld3r)
21554)]
21555#[cfg_attr(
21556    not(target_arch = "arm"),
21557    stable(feature = "neon_intrinsics", since = "1.59.0")
21558)]
21559#[cfg_attr(
21560    target_arch = "arm",
21561    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21562)]
21563pub unsafe fn vld3_dup_u32(a: *const u32) -> uint32x2x3_t {
21564    let mut ret_val: uint32x2x3_t = transmute(vld3_dup_s32(transmute(a)));
21565    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
21566    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
21567    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
21568    ret_val
21569}
21570#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u32)"]
21572#[doc = "## Safety"]
21573#[doc = "  * Neon intrinsic unsafe"]
21574#[inline(always)]
21575#[cfg(target_endian = "little")]
21576#[target_feature(enable = "neon")]
21577#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21578#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21579#[cfg_attr(
21580    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21581    assert_instr(ld3r)
21582)]
21583#[cfg_attr(
21584    not(target_arch = "arm"),
21585    stable(feature = "neon_intrinsics", since = "1.59.0")
21586)]
21587#[cfg_attr(
21588    target_arch = "arm",
21589    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21590)]
21591pub unsafe fn vld3q_dup_u32(a: *const u32) -> uint32x4x3_t {
21592    transmute(vld3q_dup_s32(transmute(a)))
21593}
21594#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21595#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u32)"]
21596#[doc = "## Safety"]
21597#[doc = "  * Neon intrinsic unsafe"]
21598#[inline(always)]
21599#[cfg(target_endian = "big")]
21600#[target_feature(enable = "neon")]
21601#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21602#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21603#[cfg_attr(
21604    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21605    assert_instr(ld3r)
21606)]
21607#[cfg_attr(
21608    not(target_arch = "arm"),
21609    stable(feature = "neon_intrinsics", since = "1.59.0")
21610)]
21611#[cfg_attr(
21612    target_arch = "arm",
21613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21614)]
21615pub unsafe fn vld3q_dup_u32(a: *const u32) -> uint32x4x3_t {
21616    let mut ret_val: uint32x4x3_t = transmute(vld3q_dup_s32(transmute(a)));
21617    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
21618    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
21619    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
21620    ret_val
21621}
21622#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p8)"]
21624#[doc = "## Safety"]
21625#[doc = "  * Neon intrinsic unsafe"]
21626#[inline(always)]
21627#[cfg(target_endian = "little")]
21628#[target_feature(enable = "neon")]
21629#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21630#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21631#[cfg_attr(
21632    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21633    assert_instr(ld3r)
21634)]
21635#[cfg_attr(
21636    not(target_arch = "arm"),
21637    stable(feature = "neon_intrinsics", since = "1.59.0")
21638)]
21639#[cfg_attr(
21640    target_arch = "arm",
21641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21642)]
21643pub unsafe fn vld3_dup_p8(a: *const p8) -> poly8x8x3_t {
21644    transmute(vld3_dup_s8(transmute(a)))
21645}
21646#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p8)"]
21648#[doc = "## Safety"]
21649#[doc = "  * Neon intrinsic unsafe"]
21650#[inline(always)]
21651#[cfg(target_endian = "big")]
21652#[target_feature(enable = "neon")]
21653#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21654#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21655#[cfg_attr(
21656    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21657    assert_instr(ld3r)
21658)]
21659#[cfg_attr(
21660    not(target_arch = "arm"),
21661    stable(feature = "neon_intrinsics", since = "1.59.0")
21662)]
21663#[cfg_attr(
21664    target_arch = "arm",
21665    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21666)]
21667pub unsafe fn vld3_dup_p8(a: *const p8) -> poly8x8x3_t {
21668    let mut ret_val: poly8x8x3_t = transmute(vld3_dup_s8(transmute(a)));
21669    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21670    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21671    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
21672    ret_val
21673}
21674#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p8)"]
21676#[doc = "## Safety"]
21677#[doc = "  * Neon intrinsic unsafe"]
21678#[inline(always)]
21679#[cfg(target_endian = "little")]
21680#[target_feature(enable = "neon")]
21681#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21682#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21683#[cfg_attr(
21684    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21685    assert_instr(ld3r)
21686)]
21687#[cfg_attr(
21688    not(target_arch = "arm"),
21689    stable(feature = "neon_intrinsics", since = "1.59.0")
21690)]
21691#[cfg_attr(
21692    target_arch = "arm",
21693    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21694)]
21695pub unsafe fn vld3q_dup_p8(a: *const p8) -> poly8x16x3_t {
21696    transmute(vld3q_dup_s8(transmute(a)))
21697}
21698#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p8)"]
21700#[doc = "## Safety"]
21701#[doc = "  * Neon intrinsic unsafe"]
21702#[inline(always)]
21703#[cfg(target_endian = "big")]
21704#[target_feature(enable = "neon")]
21705#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21706#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21707#[cfg_attr(
21708    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21709    assert_instr(ld3r)
21710)]
21711#[cfg_attr(
21712    not(target_arch = "arm"),
21713    stable(feature = "neon_intrinsics", since = "1.59.0")
21714)]
21715#[cfg_attr(
21716    target_arch = "arm",
21717    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21718)]
21719pub unsafe fn vld3q_dup_p8(a: *const p8) -> poly8x16x3_t {
21720    let mut ret_val: poly8x16x3_t = transmute(vld3q_dup_s8(transmute(a)));
21721    ret_val.0 = unsafe {
21722        simd_shuffle!(
21723            ret_val.0,
21724            ret_val.0,
21725            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21726        )
21727    };
21728    ret_val.1 = unsafe {
21729        simd_shuffle!(
21730            ret_val.1,
21731            ret_val.1,
21732            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21733        )
21734    };
21735    ret_val.2 = unsafe {
21736        simd_shuffle!(
21737            ret_val.2,
21738            ret_val.2,
21739            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21740        )
21741    };
21742    ret_val
21743}
21744#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p16)"]
21746#[doc = "## Safety"]
21747#[doc = "  * Neon intrinsic unsafe"]
21748#[inline(always)]
21749#[cfg(target_endian = "little")]
21750#[target_feature(enable = "neon")]
21751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21753#[cfg_attr(
21754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21755    assert_instr(ld3r)
21756)]
21757#[cfg_attr(
21758    not(target_arch = "arm"),
21759    stable(feature = "neon_intrinsics", since = "1.59.0")
21760)]
21761#[cfg_attr(
21762    target_arch = "arm",
21763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21764)]
21765pub unsafe fn vld3_dup_p16(a: *const p16) -> poly16x4x3_t {
21766    transmute(vld3_dup_s16(transmute(a)))
21767}
21768#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p16)"]
21770#[doc = "## Safety"]
21771#[doc = "  * Neon intrinsic unsafe"]
21772#[inline(always)]
21773#[cfg(target_endian = "big")]
21774#[target_feature(enable = "neon")]
21775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21776#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21777#[cfg_attr(
21778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21779    assert_instr(ld3r)
21780)]
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 vld3_dup_p16(a: *const p16) -> poly16x4x3_t {
21790    let mut ret_val: poly16x4x3_t = transmute(vld3_dup_s16(transmute(a)));
21791    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
21792    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
21793    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
21794    ret_val
21795}
21796#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p16)"]
21798#[doc = "## Safety"]
21799#[doc = "  * Neon intrinsic unsafe"]
21800#[inline(always)]
21801#[cfg(target_endian = "little")]
21802#[target_feature(enable = "neon")]
21803#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21804#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21805#[cfg_attr(
21806    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21807    assert_instr(ld3r)
21808)]
21809#[cfg_attr(
21810    not(target_arch = "arm"),
21811    stable(feature = "neon_intrinsics", since = "1.59.0")
21812)]
21813#[cfg_attr(
21814    target_arch = "arm",
21815    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21816)]
21817pub unsafe fn vld3q_dup_p16(a: *const p16) -> poly16x8x3_t {
21818    transmute(vld3q_dup_s16(transmute(a)))
21819}
21820#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p16)"]
21822#[doc = "## Safety"]
21823#[doc = "  * Neon intrinsic unsafe"]
21824#[inline(always)]
21825#[cfg(target_endian = "big")]
21826#[target_feature(enable = "neon")]
21827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21829#[cfg_attr(
21830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21831    assert_instr(ld3r)
21832)]
21833#[cfg_attr(
21834    not(target_arch = "arm"),
21835    stable(feature = "neon_intrinsics", since = "1.59.0")
21836)]
21837#[cfg_attr(
21838    target_arch = "arm",
21839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21840)]
21841pub unsafe fn vld3q_dup_p16(a: *const p16) -> poly16x8x3_t {
21842    let mut ret_val: poly16x8x3_t = transmute(vld3q_dup_s16(transmute(a)));
21843    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21844    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21845    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
21846    ret_val
21847}
21848#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
21849#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f16)"]
21850#[doc = "## Safety"]
21851#[doc = "  * Neon intrinsic unsafe"]
21852#[inline(always)]
21853#[target_feature(enable = "neon")]
21854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21855#[cfg(target_arch = "arm")]
21856#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21857#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21858#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21859#[cfg(not(target_arch = "arm64ec"))]
21860pub unsafe fn vld3_f16(a: *const f16) -> float16x4x3_t {
21861    unsafe extern "unadjusted" {
21862        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4f16.p0")]
21863        fn _vld3_f16(ptr: *const f16, size: i32) -> float16x4x3_t;
21864    }
21865    _vld3_f16(a as _, 2)
21866}
21867#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
21868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f16)"]
21869#[doc = "## Safety"]
21870#[doc = "  * Neon intrinsic unsafe"]
21871#[inline(always)]
21872#[target_feature(enable = "neon")]
21873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21874#[cfg(target_arch = "arm")]
21875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21876#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21877#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21878#[cfg(not(target_arch = "arm64ec"))]
21879pub unsafe fn vld3q_f16(a: *const f16) -> float16x8x3_t {
21880    unsafe extern "unadjusted" {
21881        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8f16.p0")]
21882        fn _vld3q_f16(ptr: *const f16, size: i32) -> float16x8x3_t;
21883    }
21884    _vld3q_f16(a as _, 2)
21885}
21886#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
21887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f16)"]
21888#[doc = "## Safety"]
21889#[doc = "  * Neon intrinsic unsafe"]
21890#[inline(always)]
21891#[target_feature(enable = "neon")]
21892#[cfg(not(target_arch = "arm"))]
21893#[cfg_attr(
21894    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21895    assert_instr(ld3)
21896)]
21897#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21898#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21899#[cfg(not(target_arch = "arm64ec"))]
21900pub unsafe fn vld3_f16(a: *const f16) -> float16x4x3_t {
21901    crate::core_arch::macros::deinterleaving_load!(f16, 4, 3, a)
21902}
21903#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
21904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f16)"]
21905#[doc = "## Safety"]
21906#[doc = "  * Neon intrinsic unsafe"]
21907#[inline(always)]
21908#[target_feature(enable = "neon")]
21909#[cfg(not(target_arch = "arm"))]
21910#[cfg_attr(
21911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21912    assert_instr(ld3)
21913)]
21914#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21915#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21916#[cfg(not(target_arch = "arm64ec"))]
21917pub unsafe fn vld3q_f16(a: *const f16) -> float16x8x3_t {
21918    crate::core_arch::macros::deinterleaving_load!(f16, 8, 3, a)
21919}
21920#[doc = "Load multiple 3-element structures to three registers"]
21921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)"]
21922#[doc = "## Safety"]
21923#[doc = "  * Neon intrinsic unsafe"]
21924#[inline(always)]
21925#[target_feature(enable = "neon")]
21926#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21927#[cfg(not(target_arch = "arm"))]
21928#[cfg_attr(test, assert_instr(ld3))]
21929pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
21930    crate::core_arch::macros::deinterleaving_load!(f32, 2, 3, a)
21931}
21932#[doc = "Load multiple 3-element structures to three registers"]
21933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)"]
21934#[doc = "## Safety"]
21935#[doc = "  * Neon intrinsic unsafe"]
21936#[inline(always)]
21937#[target_feature(enable = "neon")]
21938#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21939#[cfg(not(target_arch = "arm"))]
21940#[cfg_attr(test, assert_instr(ld3))]
21941pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
21942    crate::core_arch::macros::deinterleaving_load!(f32, 4, 3, a)
21943}
21944#[doc = "Load multiple 3-element structures to three registers"]
21945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)"]
21946#[doc = "## Safety"]
21947#[doc = "  * Neon intrinsic unsafe"]
21948#[inline(always)]
21949#[target_feature(enable = "neon")]
21950#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21951#[cfg(not(target_arch = "arm"))]
21952#[cfg_attr(test, assert_instr(ld3))]
21953pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
21954    crate::core_arch::macros::deinterleaving_load!(i8, 8, 3, a)
21955}
21956#[doc = "Load multiple 3-element structures to three registers"]
21957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)"]
21958#[doc = "## Safety"]
21959#[doc = "  * Neon intrinsic unsafe"]
21960#[inline(always)]
21961#[target_feature(enable = "neon")]
21962#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21963#[cfg(not(target_arch = "arm"))]
21964#[cfg_attr(test, assert_instr(ld3))]
21965pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
21966    crate::core_arch::macros::deinterleaving_load!(i8, 16, 3, a)
21967}
21968#[doc = "Load multiple 3-element structures to three registers"]
21969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)"]
21970#[doc = "## Safety"]
21971#[doc = "  * Neon intrinsic unsafe"]
21972#[inline(always)]
21973#[target_feature(enable = "neon")]
21974#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21975#[cfg(not(target_arch = "arm"))]
21976#[cfg_attr(test, assert_instr(ld3))]
21977pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
21978    crate::core_arch::macros::deinterleaving_load!(i16, 4, 3, a)
21979}
21980#[doc = "Load multiple 3-element structures to three registers"]
21981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)"]
21982#[doc = "## Safety"]
21983#[doc = "  * Neon intrinsic unsafe"]
21984#[inline(always)]
21985#[target_feature(enable = "neon")]
21986#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21987#[cfg(not(target_arch = "arm"))]
21988#[cfg_attr(test, assert_instr(ld3))]
21989pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
21990    crate::core_arch::macros::deinterleaving_load!(i16, 8, 3, a)
21991}
21992#[doc = "Load multiple 3-element structures to three registers"]
21993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)"]
21994#[doc = "## Safety"]
21995#[doc = "  * Neon intrinsic unsafe"]
21996#[inline(always)]
21997#[target_feature(enable = "neon")]
21998#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21999#[cfg(not(target_arch = "arm"))]
22000#[cfg_attr(test, assert_instr(ld3))]
22001pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
22002    crate::core_arch::macros::deinterleaving_load!(i32, 2, 3, a)
22003}
22004#[doc = "Load multiple 3-element structures to three registers"]
22005#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)"]
22006#[doc = "## Safety"]
22007#[doc = "  * Neon intrinsic unsafe"]
22008#[inline(always)]
22009#[target_feature(enable = "neon")]
22010#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22011#[cfg(not(target_arch = "arm"))]
22012#[cfg_attr(test, assert_instr(ld3))]
22013pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
22014    crate::core_arch::macros::deinterleaving_load!(i32, 4, 3, a)
22015}
22016#[doc = "Load multiple 3-element structures to three registers"]
22017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)"]
22018#[doc = "## Safety"]
22019#[doc = "  * Neon intrinsic unsafe"]
22020#[inline(always)]
22021#[cfg(target_arch = "arm")]
22022#[target_feature(enable = "neon,v7")]
22023#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22024#[cfg_attr(test, assert_instr(vld3))]
22025pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
22026    unsafe extern "unadjusted" {
22027        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2f32.p0")]
22028        fn _vld3_f32(ptr: *const i8, size: i32) -> float32x2x3_t;
22029    }
22030    _vld3_f32(a as *const i8, 4)
22031}
22032#[doc = "Load multiple 3-element structures to three registers"]
22033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)"]
22034#[doc = "## Safety"]
22035#[doc = "  * Neon intrinsic unsafe"]
22036#[inline(always)]
22037#[cfg(target_arch = "arm")]
22038#[target_feature(enable = "neon,v7")]
22039#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22040#[cfg_attr(test, assert_instr(vld3))]
22041pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
22042    unsafe extern "unadjusted" {
22043        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4f32.p0")]
22044        fn _vld3q_f32(ptr: *const i8, size: i32) -> float32x4x3_t;
22045    }
22046    _vld3q_f32(a as *const i8, 4)
22047}
22048#[doc = "Load multiple 3-element structures to three registers"]
22049#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)"]
22050#[doc = "## Safety"]
22051#[doc = "  * Neon intrinsic unsafe"]
22052#[inline(always)]
22053#[cfg(target_arch = "arm")]
22054#[target_feature(enable = "neon,v7")]
22055#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22056#[cfg_attr(test, assert_instr(vld3))]
22057pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
22058    unsafe extern "unadjusted" {
22059        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i8.p0")]
22060        fn _vld3_s8(ptr: *const i8, size: i32) -> int8x8x3_t;
22061    }
22062    _vld3_s8(a as *const i8, 1)
22063}
22064#[doc = "Load multiple 3-element structures to three registers"]
22065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)"]
22066#[doc = "## Safety"]
22067#[doc = "  * Neon intrinsic unsafe"]
22068#[inline(always)]
22069#[cfg(target_arch = "arm")]
22070#[target_feature(enable = "neon,v7")]
22071#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22072#[cfg_attr(test, assert_instr(vld3))]
22073pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
22074    unsafe extern "unadjusted" {
22075        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v16i8.p0")]
22076        fn _vld3q_s8(ptr: *const i8, size: i32) -> int8x16x3_t;
22077    }
22078    _vld3q_s8(a as *const i8, 1)
22079}
22080#[doc = "Load multiple 3-element structures to three registers"]
22081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)"]
22082#[doc = "## Safety"]
22083#[doc = "  * Neon intrinsic unsafe"]
22084#[inline(always)]
22085#[cfg(target_arch = "arm")]
22086#[target_feature(enable = "neon,v7")]
22087#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22088#[cfg_attr(test, assert_instr(vld3))]
22089pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
22090    unsafe extern "unadjusted" {
22091        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i16.p0")]
22092        fn _vld3_s16(ptr: *const i8, size: i32) -> int16x4x3_t;
22093    }
22094    _vld3_s16(a as *const i8, 2)
22095}
22096#[doc = "Load multiple 3-element structures to three registers"]
22097#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)"]
22098#[doc = "## Safety"]
22099#[doc = "  * Neon intrinsic unsafe"]
22100#[inline(always)]
22101#[cfg(target_arch = "arm")]
22102#[target_feature(enable = "neon,v7")]
22103#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22104#[cfg_attr(test, assert_instr(vld3))]
22105pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
22106    unsafe extern "unadjusted" {
22107        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i16.p0")]
22108        fn _vld3q_s16(ptr: *const i8, size: i32) -> int16x8x3_t;
22109    }
22110    _vld3q_s16(a as *const i8, 2)
22111}
22112#[doc = "Load multiple 3-element structures to three registers"]
22113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)"]
22114#[doc = "## Safety"]
22115#[doc = "  * Neon intrinsic unsafe"]
22116#[inline(always)]
22117#[cfg(target_arch = "arm")]
22118#[target_feature(enable = "neon,v7")]
22119#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22120#[cfg_attr(test, assert_instr(vld3))]
22121pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
22122    unsafe extern "unadjusted" {
22123        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2i32.p0")]
22124        fn _vld3_s32(ptr: *const i8, size: i32) -> int32x2x3_t;
22125    }
22126    _vld3_s32(a as *const i8, 4)
22127}
22128#[doc = "Load multiple 3-element structures to three registers"]
22129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)"]
22130#[doc = "## Safety"]
22131#[doc = "  * Neon intrinsic unsafe"]
22132#[inline(always)]
22133#[cfg(target_arch = "arm")]
22134#[target_feature(enable = "neon,v7")]
22135#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22136#[cfg_attr(test, assert_instr(vld3))]
22137pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
22138    unsafe extern "unadjusted" {
22139        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i32.p0")]
22140        fn _vld3q_s32(ptr: *const i8, size: i32) -> int32x4x3_t;
22141    }
22142    _vld3q_s32(a as *const i8, 4)
22143}
22144#[doc = "Load multiple 3-element structures to two registers"]
22145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f16)"]
22146#[doc = "## Safety"]
22147#[doc = "  * Neon intrinsic unsafe"]
22148#[inline(always)]
22149#[target_feature(enable = "neon,v7")]
22150#[cfg(target_arch = "arm")]
22151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22152#[rustc_legacy_const_generics(2)]
22153#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22154#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22155#[cfg(not(target_arch = "arm64ec"))]
22156pub unsafe fn vld3_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x3_t) -> float16x4x3_t {
22157    static_assert_uimm_bits!(LANE, 2);
22158    unsafe extern "unadjusted" {
22159        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4f16.p0")]
22160        fn _vld3_lane_f16(
22161            ptr: *const f16,
22162            a: float16x4_t,
22163            b: float16x4_t,
22164            c: float16x4_t,
22165            n: i32,
22166            size: i32,
22167        ) -> float16x4x3_t;
22168    }
22169    _vld3_lane_f16(a as _, b.0, b.1, b.2, LANE, 2)
22170}
22171#[doc = "Load multiple 3-element structures to two registers"]
22172#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f16)"]
22173#[doc = "## Safety"]
22174#[doc = "  * Neon intrinsic unsafe"]
22175#[inline(always)]
22176#[target_feature(enable = "neon,v7")]
22177#[cfg(target_arch = "arm")]
22178#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22179#[rustc_legacy_const_generics(2)]
22180#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22181#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22182#[cfg(not(target_arch = "arm64ec"))]
22183pub unsafe fn vld3q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x3_t) -> float16x8x3_t {
22184    static_assert_uimm_bits!(LANE, 3);
22185    unsafe extern "unadjusted" {
22186        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8f16.p0")]
22187        fn _vld3q_lane_f16(
22188            ptr: *const f16,
22189            a: float16x8_t,
22190            b: float16x8_t,
22191            c: float16x8_t,
22192            n: i32,
22193            size: i32,
22194        ) -> float16x8x3_t;
22195    }
22196    _vld3q_lane_f16(a as _, b.0, b.1, b.2, LANE, 2)
22197}
22198#[doc = "Load multiple 3-element structures to two registers"]
22199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f16)"]
22200#[doc = "## Safety"]
22201#[doc = "  * Neon intrinsic unsafe"]
22202#[inline(always)]
22203#[target_feature(enable = "neon")]
22204#[cfg(not(target_arch = "arm"))]
22205#[cfg_attr(
22206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22207    assert_instr(ld3, LANE = 0)
22208)]
22209#[rustc_legacy_const_generics(2)]
22210#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22211#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22212#[cfg(not(target_arch = "arm64ec"))]
22213pub unsafe fn vld3_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x3_t) -> float16x4x3_t {
22214    static_assert_uimm_bits!(LANE, 2);
22215    unsafe extern "unadjusted" {
22216        #[cfg_attr(
22217            any(target_arch = "aarch64", target_arch = "arm64ec"),
22218            link_name = "llvm.aarch64.neon.ld3lane.v4f16.p0"
22219        )]
22220        fn _vld3_lane_f16(
22221            a: float16x4_t,
22222            b: float16x4_t,
22223            c: float16x4_t,
22224            n: i64,
22225            ptr: *const f16,
22226        ) -> float16x4x3_t;
22227    }
22228    _vld3_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
22229}
22230#[doc = "Load multiple 3-element structures to two registers"]
22231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f16)"]
22232#[doc = "## Safety"]
22233#[doc = "  * Neon intrinsic unsafe"]
22234#[inline(always)]
22235#[target_feature(enable = "neon")]
22236#[cfg(not(target_arch = "arm"))]
22237#[cfg_attr(
22238    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22239    assert_instr(ld3, LANE = 0)
22240)]
22241#[rustc_legacy_const_generics(2)]
22242#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22243#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22244#[cfg(not(target_arch = "arm64ec"))]
22245pub unsafe fn vld3q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x3_t) -> float16x8x3_t {
22246    static_assert_uimm_bits!(LANE, 3);
22247    unsafe extern "unadjusted" {
22248        #[cfg_attr(
22249            any(target_arch = "aarch64", target_arch = "arm64ec"),
22250            link_name = "llvm.aarch64.neon.ld3lane.v8f16.p0"
22251        )]
22252        fn _vld3q_lane_f16(
22253            a: float16x8_t,
22254            b: float16x8_t,
22255            c: float16x8_t,
22256            n: i64,
22257            ptr: *const f16,
22258        ) -> float16x8x3_t;
22259    }
22260    _vld3q_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
22261}
22262#[doc = "Load multiple 3-element structures to three registers"]
22263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)"]
22264#[doc = "## Safety"]
22265#[doc = "  * Neon intrinsic unsafe"]
22266#[inline(always)]
22267#[target_feature(enable = "neon")]
22268#[cfg(not(target_arch = "arm"))]
22269#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22270#[rustc_legacy_const_generics(2)]
22271#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22272pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
22273    static_assert_uimm_bits!(LANE, 1);
22274    unsafe extern "unadjusted" {
22275        #[cfg_attr(
22276            any(target_arch = "aarch64", target_arch = "arm64ec"),
22277            link_name = "llvm.aarch64.neon.ld3lane.v2f32.p0"
22278        )]
22279        fn _vld3_lane_f32(
22280            a: float32x2_t,
22281            b: float32x2_t,
22282            c: float32x2_t,
22283            n: i64,
22284            ptr: *const i8,
22285        ) -> float32x2x3_t;
22286    }
22287    _vld3_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
22288}
22289#[doc = "Load multiple 3-element structures to three registers"]
22290#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)"]
22291#[doc = "## Safety"]
22292#[doc = "  * Neon intrinsic unsafe"]
22293#[inline(always)]
22294#[target_feature(enable = "neon")]
22295#[cfg(not(target_arch = "arm"))]
22296#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22297#[rustc_legacy_const_generics(2)]
22298#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22299pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
22300    static_assert_uimm_bits!(LANE, 2);
22301    unsafe extern "unadjusted" {
22302        #[cfg_attr(
22303            any(target_arch = "aarch64", target_arch = "arm64ec"),
22304            link_name = "llvm.aarch64.neon.ld3lane.v4f32.p0"
22305        )]
22306        fn _vld3q_lane_f32(
22307            a: float32x4_t,
22308            b: float32x4_t,
22309            c: float32x4_t,
22310            n: i64,
22311            ptr: *const i8,
22312        ) -> float32x4x3_t;
22313    }
22314    _vld3q_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
22315}
22316#[doc = "Load multiple 3-element structures to three registers"]
22317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)"]
22318#[doc = "## Safety"]
22319#[doc = "  * Neon intrinsic unsafe"]
22320#[inline(always)]
22321#[cfg(target_arch = "arm")]
22322#[target_feature(enable = "neon,v7")]
22323#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22324#[rustc_legacy_const_generics(2)]
22325#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22326pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
22327    static_assert_uimm_bits!(LANE, 1);
22328    unsafe extern "unadjusted" {
22329        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2f32.p0")]
22330        fn _vld3_lane_f32(
22331            ptr: *const i8,
22332            a: float32x2_t,
22333            b: float32x2_t,
22334            c: float32x2_t,
22335            n: i32,
22336            size: i32,
22337        ) -> float32x2x3_t;
22338    }
22339    _vld3_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
22340}
22341#[doc = "Load multiple 3-element structures to two registers"]
22342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)"]
22343#[doc = "## Safety"]
22344#[doc = "  * Neon intrinsic unsafe"]
22345#[inline(always)]
22346#[target_feature(enable = "neon")]
22347#[cfg(not(target_arch = "arm"))]
22348#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22349#[rustc_legacy_const_generics(2)]
22350#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22351pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
22352    static_assert_uimm_bits!(LANE, 3);
22353    unsafe extern "unadjusted" {
22354        #[cfg_attr(
22355            any(target_arch = "aarch64", target_arch = "arm64ec"),
22356            link_name = "llvm.aarch64.neon.ld3lane.v8i8.p0"
22357        )]
22358        fn _vld3_lane_s8(
22359            a: int8x8_t,
22360            b: int8x8_t,
22361            c: int8x8_t,
22362            n: i64,
22363            ptr: *const i8,
22364        ) -> int8x8x3_t;
22365    }
22366    _vld3_lane_s8(b.0, b.1, b.2, LANE as i64, a as _)
22367}
22368#[doc = "Load multiple 3-element structures to two registers"]
22369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)"]
22370#[doc = "## Safety"]
22371#[doc = "  * Neon intrinsic unsafe"]
22372#[inline(always)]
22373#[target_feature(enable = "neon")]
22374#[cfg(not(target_arch = "arm"))]
22375#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22376#[rustc_legacy_const_generics(2)]
22377#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22378pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
22379    static_assert_uimm_bits!(LANE, 2);
22380    unsafe extern "unadjusted" {
22381        #[cfg_attr(
22382            any(target_arch = "aarch64", target_arch = "arm64ec"),
22383            link_name = "llvm.aarch64.neon.ld3lane.v4i16.p0"
22384        )]
22385        fn _vld3_lane_s16(
22386            a: int16x4_t,
22387            b: int16x4_t,
22388            c: int16x4_t,
22389            n: i64,
22390            ptr: *const i8,
22391        ) -> int16x4x3_t;
22392    }
22393    _vld3_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
22394}
22395#[doc = "Load multiple 3-element structures to two registers"]
22396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)"]
22397#[doc = "## Safety"]
22398#[doc = "  * Neon intrinsic unsafe"]
22399#[inline(always)]
22400#[target_feature(enable = "neon")]
22401#[cfg(not(target_arch = "arm"))]
22402#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22403#[rustc_legacy_const_generics(2)]
22404#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22405pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
22406    static_assert_uimm_bits!(LANE, 4);
22407    unsafe extern "unadjusted" {
22408        #[cfg_attr(
22409            any(target_arch = "aarch64", target_arch = "arm64ec"),
22410            link_name = "llvm.aarch64.neon.ld3lane.v8i16.p0"
22411        )]
22412        fn _vld3q_lane_s16(
22413            a: int16x8_t,
22414            b: int16x8_t,
22415            c: int16x8_t,
22416            n: i64,
22417            ptr: *const i8,
22418        ) -> int16x8x3_t;
22419    }
22420    _vld3q_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
22421}
22422#[doc = "Load multiple 3-element structures to two registers"]
22423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)"]
22424#[doc = "## Safety"]
22425#[doc = "  * Neon intrinsic unsafe"]
22426#[inline(always)]
22427#[target_feature(enable = "neon")]
22428#[cfg(not(target_arch = "arm"))]
22429#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22430#[rustc_legacy_const_generics(2)]
22431#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22432pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
22433    static_assert_uimm_bits!(LANE, 1);
22434    unsafe extern "unadjusted" {
22435        #[cfg_attr(
22436            any(target_arch = "aarch64", target_arch = "arm64ec"),
22437            link_name = "llvm.aarch64.neon.ld3lane.v2i32.p0"
22438        )]
22439        fn _vld3_lane_s32(
22440            a: int32x2_t,
22441            b: int32x2_t,
22442            c: int32x2_t,
22443            n: i64,
22444            ptr: *const i8,
22445        ) -> int32x2x3_t;
22446    }
22447    _vld3_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
22448}
22449#[doc = "Load multiple 3-element structures to two registers"]
22450#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)"]
22451#[doc = "## Safety"]
22452#[doc = "  * Neon intrinsic unsafe"]
22453#[inline(always)]
22454#[target_feature(enable = "neon")]
22455#[cfg(not(target_arch = "arm"))]
22456#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22457#[rustc_legacy_const_generics(2)]
22458#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22459pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
22460    static_assert_uimm_bits!(LANE, 2);
22461    unsafe extern "unadjusted" {
22462        #[cfg_attr(
22463            any(target_arch = "aarch64", target_arch = "arm64ec"),
22464            link_name = "llvm.aarch64.neon.ld3lane.v4i32.p0"
22465        )]
22466        fn _vld3q_lane_s32(
22467            a: int32x4_t,
22468            b: int32x4_t,
22469            c: int32x4_t,
22470            n: i64,
22471            ptr: *const i8,
22472        ) -> int32x4x3_t;
22473    }
22474    _vld3q_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
22475}
22476#[doc = "Load multiple 3-element structures to two registers"]
22477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)"]
22478#[doc = "## Safety"]
22479#[doc = "  * Neon intrinsic unsafe"]
22480#[inline(always)]
22481#[cfg(target_arch = "arm")]
22482#[target_feature(enable = "neon,v7")]
22483#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22484#[rustc_legacy_const_generics(2)]
22485#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22486pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
22487    static_assert_uimm_bits!(LANE, 3);
22488    unsafe extern "unadjusted" {
22489        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i8.p0")]
22490        fn _vld3_lane_s8(
22491            ptr: *const i8,
22492            a: int8x8_t,
22493            b: int8x8_t,
22494            c: int8x8_t,
22495            n: i32,
22496            size: i32,
22497        ) -> int8x8x3_t;
22498    }
22499    _vld3_lane_s8(a as _, b.0, b.1, b.2, LANE, 1)
22500}
22501#[doc = "Load multiple 3-element structures to two registers"]
22502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)"]
22503#[doc = "## Safety"]
22504#[doc = "  * Neon intrinsic unsafe"]
22505#[inline(always)]
22506#[cfg(target_arch = "arm")]
22507#[target_feature(enable = "neon,v7")]
22508#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22509#[rustc_legacy_const_generics(2)]
22510#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22511pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
22512    static_assert_uimm_bits!(LANE, 2);
22513    unsafe extern "unadjusted" {
22514        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i16.p0")]
22515        fn _vld3_lane_s16(
22516            ptr: *const i8,
22517            a: int16x4_t,
22518            b: int16x4_t,
22519            c: int16x4_t,
22520            n: i32,
22521            size: i32,
22522        ) -> int16x4x3_t;
22523    }
22524    _vld3_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
22525}
22526#[doc = "Load multiple 3-element structures to two registers"]
22527#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)"]
22528#[doc = "## Safety"]
22529#[doc = "  * Neon intrinsic unsafe"]
22530#[inline(always)]
22531#[cfg(target_arch = "arm")]
22532#[target_feature(enable = "neon,v7")]
22533#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22534#[rustc_legacy_const_generics(2)]
22535#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22536pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
22537    static_assert_uimm_bits!(LANE, 3);
22538    unsafe extern "unadjusted" {
22539        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i16.p0")]
22540        fn _vld3q_lane_s16(
22541            ptr: *const i8,
22542            a: int16x8_t,
22543            b: int16x8_t,
22544            c: int16x8_t,
22545            n: i32,
22546            size: i32,
22547        ) -> int16x8x3_t;
22548    }
22549    _vld3q_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
22550}
22551#[doc = "Load multiple 3-element structures to two registers"]
22552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)"]
22553#[doc = "## Safety"]
22554#[doc = "  * Neon intrinsic unsafe"]
22555#[inline(always)]
22556#[cfg(target_arch = "arm")]
22557#[target_feature(enable = "neon,v7")]
22558#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22559#[rustc_legacy_const_generics(2)]
22560#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22561pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
22562    static_assert_uimm_bits!(LANE, 1);
22563    unsafe extern "unadjusted" {
22564        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2i32.p0")]
22565        fn _vld3_lane_s32(
22566            ptr: *const i8,
22567            a: int32x2_t,
22568            b: int32x2_t,
22569            c: int32x2_t,
22570            n: i32,
22571            size: i32,
22572        ) -> int32x2x3_t;
22573    }
22574    _vld3_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
22575}
22576#[doc = "Load multiple 3-element structures to two registers"]
22577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)"]
22578#[doc = "## Safety"]
22579#[doc = "  * Neon intrinsic unsafe"]
22580#[inline(always)]
22581#[cfg(target_arch = "arm")]
22582#[target_feature(enable = "neon,v7")]
22583#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22584#[rustc_legacy_const_generics(2)]
22585#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22586pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
22587    static_assert_uimm_bits!(LANE, 2);
22588    unsafe extern "unadjusted" {
22589        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i32.p0")]
22590        fn _vld3q_lane_s32(
22591            ptr: *const i8,
22592            a: int32x4_t,
22593            b: int32x4_t,
22594            c: int32x4_t,
22595            n: i32,
22596            size: i32,
22597        ) -> int32x4x3_t;
22598    }
22599    _vld3q_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
22600}
22601#[doc = "Load multiple 3-element structures to three registers"]
22602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u8)"]
22603#[doc = "## Safety"]
22604#[doc = "  * Neon intrinsic unsafe"]
22605#[inline(always)]
22606#[target_feature(enable = "neon")]
22607#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22608#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22609#[cfg_attr(
22610    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22611    assert_instr(ld3, LANE = 0)
22612)]
22613#[rustc_legacy_const_generics(2)]
22614#[cfg_attr(
22615    not(target_arch = "arm"),
22616    stable(feature = "neon_intrinsics", since = "1.59.0")
22617)]
22618#[cfg_attr(
22619    target_arch = "arm",
22620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22621)]
22622pub unsafe fn vld3_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x3_t) -> uint8x8x3_t {
22623    static_assert_uimm_bits!(LANE, 3);
22624    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
22625}
22626#[doc = "Load multiple 3-element structures to three registers"]
22627#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u16)"]
22628#[doc = "## Safety"]
22629#[doc = "  * Neon intrinsic unsafe"]
22630#[inline(always)]
22631#[target_feature(enable = "neon")]
22632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22633#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22634#[cfg_attr(
22635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22636    assert_instr(ld3, LANE = 0)
22637)]
22638#[rustc_legacy_const_generics(2)]
22639#[cfg_attr(
22640    not(target_arch = "arm"),
22641    stable(feature = "neon_intrinsics", since = "1.59.0")
22642)]
22643#[cfg_attr(
22644    target_arch = "arm",
22645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22646)]
22647pub unsafe fn vld3_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x3_t) -> uint16x4x3_t {
22648    static_assert_uimm_bits!(LANE, 2);
22649    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
22650}
22651#[doc = "Load multiple 3-element structures to three registers"]
22652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u16)"]
22653#[doc = "## Safety"]
22654#[doc = "  * Neon intrinsic unsafe"]
22655#[inline(always)]
22656#[target_feature(enable = "neon")]
22657#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22658#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22659#[cfg_attr(
22660    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22661    assert_instr(ld3, LANE = 0)
22662)]
22663#[rustc_legacy_const_generics(2)]
22664#[cfg_attr(
22665    not(target_arch = "arm"),
22666    stable(feature = "neon_intrinsics", since = "1.59.0")
22667)]
22668#[cfg_attr(
22669    target_arch = "arm",
22670    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22671)]
22672pub unsafe fn vld3q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x3_t) -> uint16x8x3_t {
22673    static_assert_uimm_bits!(LANE, 3);
22674    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
22675}
22676#[doc = "Load multiple 3-element structures to three registers"]
22677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u32)"]
22678#[doc = "## Safety"]
22679#[doc = "  * Neon intrinsic unsafe"]
22680#[inline(always)]
22681#[target_feature(enable = "neon")]
22682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22683#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22684#[cfg_attr(
22685    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22686    assert_instr(ld3, LANE = 0)
22687)]
22688#[rustc_legacy_const_generics(2)]
22689#[cfg_attr(
22690    not(target_arch = "arm"),
22691    stable(feature = "neon_intrinsics", since = "1.59.0")
22692)]
22693#[cfg_attr(
22694    target_arch = "arm",
22695    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22696)]
22697pub unsafe fn vld3_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x3_t) -> uint32x2x3_t {
22698    static_assert_uimm_bits!(LANE, 1);
22699    transmute(vld3_lane_s32::<LANE>(transmute(a), transmute(b)))
22700}
22701#[doc = "Load multiple 3-element structures to three registers"]
22702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u32)"]
22703#[doc = "## Safety"]
22704#[doc = "  * Neon intrinsic unsafe"]
22705#[inline(always)]
22706#[target_feature(enable = "neon")]
22707#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22708#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22709#[cfg_attr(
22710    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22711    assert_instr(ld3, LANE = 0)
22712)]
22713#[rustc_legacy_const_generics(2)]
22714#[cfg_attr(
22715    not(target_arch = "arm"),
22716    stable(feature = "neon_intrinsics", since = "1.59.0")
22717)]
22718#[cfg_attr(
22719    target_arch = "arm",
22720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22721)]
22722pub unsafe fn vld3q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x3_t) -> uint32x4x3_t {
22723    static_assert_uimm_bits!(LANE, 2);
22724    transmute(vld3q_lane_s32::<LANE>(transmute(a), transmute(b)))
22725}
22726#[doc = "Load multiple 3-element structures to three registers"]
22727#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p8)"]
22728#[doc = "## Safety"]
22729#[doc = "  * Neon intrinsic unsafe"]
22730#[inline(always)]
22731#[target_feature(enable = "neon")]
22732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22734#[cfg_attr(
22735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22736    assert_instr(ld3, LANE = 0)
22737)]
22738#[rustc_legacy_const_generics(2)]
22739#[cfg_attr(
22740    not(target_arch = "arm"),
22741    stable(feature = "neon_intrinsics", since = "1.59.0")
22742)]
22743#[cfg_attr(
22744    target_arch = "arm",
22745    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22746)]
22747pub unsafe fn vld3_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x3_t) -> poly8x8x3_t {
22748    static_assert_uimm_bits!(LANE, 3);
22749    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
22750}
22751#[doc = "Load multiple 3-element structures to three registers"]
22752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p16)"]
22753#[doc = "## Safety"]
22754#[doc = "  * Neon intrinsic unsafe"]
22755#[inline(always)]
22756#[target_feature(enable = "neon")]
22757#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22758#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22759#[cfg_attr(
22760    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22761    assert_instr(ld3, LANE = 0)
22762)]
22763#[rustc_legacy_const_generics(2)]
22764#[cfg_attr(
22765    not(target_arch = "arm"),
22766    stable(feature = "neon_intrinsics", since = "1.59.0")
22767)]
22768#[cfg_attr(
22769    target_arch = "arm",
22770    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22771)]
22772pub unsafe fn vld3_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x3_t) -> poly16x4x3_t {
22773    static_assert_uimm_bits!(LANE, 2);
22774    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
22775}
22776#[doc = "Load multiple 3-element structures to three registers"]
22777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_p16)"]
22778#[doc = "## Safety"]
22779#[doc = "  * Neon intrinsic unsafe"]
22780#[inline(always)]
22781#[target_feature(enable = "neon")]
22782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22784#[cfg_attr(
22785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22786    assert_instr(ld3, LANE = 0)
22787)]
22788#[rustc_legacy_const_generics(2)]
22789#[cfg_attr(
22790    not(target_arch = "arm"),
22791    stable(feature = "neon_intrinsics", since = "1.59.0")
22792)]
22793#[cfg_attr(
22794    target_arch = "arm",
22795    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22796)]
22797pub unsafe fn vld3q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x3_t) -> poly16x8x3_t {
22798    static_assert_uimm_bits!(LANE, 3);
22799    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
22800}
22801#[doc = "Load multiple 3-element structures to three registers"]
22802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p64)"]
22803#[doc = "## Safety"]
22804#[doc = "  * Neon intrinsic unsafe"]
22805#[inline(always)]
22806#[target_feature(enable = "neon,aes")]
22807#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
22808#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
22809#[cfg_attr(
22810    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22811    assert_instr(nop)
22812)]
22813#[cfg_attr(
22814    not(target_arch = "arm"),
22815    stable(feature = "neon_intrinsics", since = "1.59.0")
22816)]
22817#[cfg_attr(
22818    target_arch = "arm",
22819    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22820)]
22821pub unsafe fn vld3_p64(a: *const p64) -> poly64x1x3_t {
22822    transmute(vld3_s64(transmute(a)))
22823}
22824#[doc = "Load multiple 3-element structures to three registers"]
22825#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)"]
22826#[doc = "## Safety"]
22827#[doc = "  * Neon intrinsic unsafe"]
22828#[inline(always)]
22829#[target_feature(enable = "neon")]
22830#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22831#[cfg(not(target_arch = "arm"))]
22832#[cfg_attr(test, assert_instr(nop))]
22833pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
22834    crate::ptr::read_unaligned(a.cast())
22835}
22836#[doc = "Load multiple 3-element structures to three registers"]
22837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)"]
22838#[doc = "## Safety"]
22839#[doc = "  * Neon intrinsic unsafe"]
22840#[inline(always)]
22841#[cfg(target_arch = "arm")]
22842#[target_feature(enable = "neon,v7")]
22843#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22844#[cfg_attr(test, assert_instr(nop))]
22845pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
22846    unsafe extern "unadjusted" {
22847        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v1i64.p0")]
22848        fn _vld3_s64(ptr: *const i8, size: i32) -> int64x1x3_t;
22849    }
22850    _vld3_s64(a as *const i8, 8)
22851}
22852#[doc = "Load multiple 3-element structures to three registers"]
22853#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u64)"]
22854#[doc = "## Safety"]
22855#[doc = "  * Neon intrinsic unsafe"]
22856#[inline(always)]
22857#[target_feature(enable = "neon")]
22858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
22860#[cfg_attr(
22861    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22862    assert_instr(nop)
22863)]
22864#[cfg_attr(
22865    not(target_arch = "arm"),
22866    stable(feature = "neon_intrinsics", since = "1.59.0")
22867)]
22868#[cfg_attr(
22869    target_arch = "arm",
22870    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22871)]
22872pub unsafe fn vld3_u64(a: *const u64) -> uint64x1x3_t {
22873    transmute(vld3_s64(transmute(a)))
22874}
22875#[doc = "Load multiple 3-element structures to three registers"]
22876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u8)"]
22877#[doc = "## Safety"]
22878#[doc = "  * Neon intrinsic unsafe"]
22879#[inline(always)]
22880#[target_feature(enable = "neon")]
22881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22882#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22883#[cfg_attr(
22884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22885    assert_instr(ld3)
22886)]
22887#[cfg_attr(
22888    not(target_arch = "arm"),
22889    stable(feature = "neon_intrinsics", since = "1.59.0")
22890)]
22891#[cfg_attr(
22892    target_arch = "arm",
22893    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22894)]
22895pub unsafe fn vld3_u8(a: *const u8) -> uint8x8x3_t {
22896    transmute(vld3_s8(transmute(a)))
22897}
22898#[doc = "Load multiple 3-element structures to three registers"]
22899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u8)"]
22900#[doc = "## Safety"]
22901#[doc = "  * Neon intrinsic unsafe"]
22902#[inline(always)]
22903#[target_feature(enable = "neon")]
22904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22905#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22906#[cfg_attr(
22907    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22908    assert_instr(ld3)
22909)]
22910#[cfg_attr(
22911    not(target_arch = "arm"),
22912    stable(feature = "neon_intrinsics", since = "1.59.0")
22913)]
22914#[cfg_attr(
22915    target_arch = "arm",
22916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22917)]
22918pub unsafe fn vld3q_u8(a: *const u8) -> uint8x16x3_t {
22919    transmute(vld3q_s8(transmute(a)))
22920}
22921#[doc = "Load multiple 3-element structures to three registers"]
22922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u16)"]
22923#[doc = "## Safety"]
22924#[doc = "  * Neon intrinsic unsafe"]
22925#[inline(always)]
22926#[target_feature(enable = "neon")]
22927#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22928#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22929#[cfg_attr(
22930    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22931    assert_instr(ld3)
22932)]
22933#[cfg_attr(
22934    not(target_arch = "arm"),
22935    stable(feature = "neon_intrinsics", since = "1.59.0")
22936)]
22937#[cfg_attr(
22938    target_arch = "arm",
22939    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22940)]
22941pub unsafe fn vld3_u16(a: *const u16) -> uint16x4x3_t {
22942    transmute(vld3_s16(transmute(a)))
22943}
22944#[doc = "Load multiple 3-element structures to three registers"]
22945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u16)"]
22946#[doc = "## Safety"]
22947#[doc = "  * Neon intrinsic unsafe"]
22948#[inline(always)]
22949#[target_feature(enable = "neon")]
22950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22951#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22952#[cfg_attr(
22953    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22954    assert_instr(ld3)
22955)]
22956#[cfg_attr(
22957    not(target_arch = "arm"),
22958    stable(feature = "neon_intrinsics", since = "1.59.0")
22959)]
22960#[cfg_attr(
22961    target_arch = "arm",
22962    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22963)]
22964pub unsafe fn vld3q_u16(a: *const u16) -> uint16x8x3_t {
22965    transmute(vld3q_s16(transmute(a)))
22966}
22967#[doc = "Load multiple 3-element structures to three registers"]
22968#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u32)"]
22969#[doc = "## Safety"]
22970#[doc = "  * Neon intrinsic unsafe"]
22971#[inline(always)]
22972#[target_feature(enable = "neon")]
22973#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22974#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22975#[cfg_attr(
22976    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22977    assert_instr(ld3)
22978)]
22979#[cfg_attr(
22980    not(target_arch = "arm"),
22981    stable(feature = "neon_intrinsics", since = "1.59.0")
22982)]
22983#[cfg_attr(
22984    target_arch = "arm",
22985    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22986)]
22987pub unsafe fn vld3_u32(a: *const u32) -> uint32x2x3_t {
22988    transmute(vld3_s32(transmute(a)))
22989}
22990#[doc = "Load multiple 3-element structures to three registers"]
22991#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u32)"]
22992#[doc = "## Safety"]
22993#[doc = "  * Neon intrinsic unsafe"]
22994#[inline(always)]
22995#[target_feature(enable = "neon")]
22996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22998#[cfg_attr(
22999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23000    assert_instr(ld3)
23001)]
23002#[cfg_attr(
23003    not(target_arch = "arm"),
23004    stable(feature = "neon_intrinsics", since = "1.59.0")
23005)]
23006#[cfg_attr(
23007    target_arch = "arm",
23008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23009)]
23010pub unsafe fn vld3q_u32(a: *const u32) -> uint32x4x3_t {
23011    transmute(vld3q_s32(transmute(a)))
23012}
23013#[doc = "Load multiple 3-element structures to three registers"]
23014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p8)"]
23015#[doc = "## Safety"]
23016#[doc = "  * Neon intrinsic unsafe"]
23017#[inline(always)]
23018#[target_feature(enable = "neon")]
23019#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23020#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23021#[cfg_attr(
23022    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23023    assert_instr(ld3)
23024)]
23025#[cfg_attr(
23026    not(target_arch = "arm"),
23027    stable(feature = "neon_intrinsics", since = "1.59.0")
23028)]
23029#[cfg_attr(
23030    target_arch = "arm",
23031    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23032)]
23033pub unsafe fn vld3_p8(a: *const p8) -> poly8x8x3_t {
23034    transmute(vld3_s8(transmute(a)))
23035}
23036#[doc = "Load multiple 3-element structures to three registers"]
23037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p8)"]
23038#[doc = "## Safety"]
23039#[doc = "  * Neon intrinsic unsafe"]
23040#[inline(always)]
23041#[target_feature(enable = "neon")]
23042#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23043#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23044#[cfg_attr(
23045    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23046    assert_instr(ld3)
23047)]
23048#[cfg_attr(
23049    not(target_arch = "arm"),
23050    stable(feature = "neon_intrinsics", since = "1.59.0")
23051)]
23052#[cfg_attr(
23053    target_arch = "arm",
23054    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23055)]
23056pub unsafe fn vld3q_p8(a: *const p8) -> poly8x16x3_t {
23057    transmute(vld3q_s8(transmute(a)))
23058}
23059#[doc = "Load multiple 3-element structures to three registers"]
23060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p16)"]
23061#[doc = "## Safety"]
23062#[doc = "  * Neon intrinsic unsafe"]
23063#[inline(always)]
23064#[target_feature(enable = "neon")]
23065#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23066#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23067#[cfg_attr(
23068    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23069    assert_instr(ld3)
23070)]
23071#[cfg_attr(
23072    not(target_arch = "arm"),
23073    stable(feature = "neon_intrinsics", since = "1.59.0")
23074)]
23075#[cfg_attr(
23076    target_arch = "arm",
23077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23078)]
23079pub unsafe fn vld3_p16(a: *const p16) -> poly16x4x3_t {
23080    transmute(vld3_s16(transmute(a)))
23081}
23082#[doc = "Load multiple 3-element structures to three registers"]
23083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p16)"]
23084#[doc = "## Safety"]
23085#[doc = "  * Neon intrinsic unsafe"]
23086#[inline(always)]
23087#[target_feature(enable = "neon")]
23088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23089#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23090#[cfg_attr(
23091    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23092    assert_instr(ld3)
23093)]
23094#[cfg_attr(
23095    not(target_arch = "arm"),
23096    stable(feature = "neon_intrinsics", since = "1.59.0")
23097)]
23098#[cfg_attr(
23099    target_arch = "arm",
23100    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23101)]
23102pub unsafe fn vld3q_p16(a: *const p16) -> poly16x8x3_t {
23103    transmute(vld3q_s16(transmute(a)))
23104}
23105#[doc = "Load multiple 3-element structures to three registers"]
23106#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)"]
23107#[doc = "## Safety"]
23108#[doc = "  * Neon intrinsic unsafe"]
23109#[inline(always)]
23110#[cfg(target_arch = "arm")]
23111#[target_feature(enable = "neon,v7")]
23112#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
23113#[rustc_legacy_const_generics(2)]
23114#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23115pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
23116    static_assert_uimm_bits!(LANE, 2);
23117    unsafe extern "unadjusted" {
23118        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4f32.p0")]
23119        fn _vld3q_lane_f32(
23120            ptr: *const i8,
23121            a: float32x4_t,
23122            b: float32x4_t,
23123            c: float32x4_t,
23124            n: i32,
23125            size: i32,
23126        ) -> float32x4x3_t;
23127    }
23128    _vld3q_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
23129}
23130#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
23131#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f16)"]
23132#[doc = "## Safety"]
23133#[doc = "  * Neon intrinsic unsafe"]
23134#[inline(always)]
23135#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23136#[cfg(target_arch = "arm")]
23137#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23138#[target_feature(enable = "neon,fp16")]
23139#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23140#[cfg(not(target_arch = "arm64ec"))]
23141pub unsafe fn vld4_dup_f16(a: *const f16) -> float16x4x4_t {
23142    unsafe extern "unadjusted" {
23143        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4f16.p0")]
23144        fn _vld4_dup_f16(ptr: *const f16, size: i32) -> float16x4x4_t;
23145    }
23146    _vld4_dup_f16(a as _, 2)
23147}
23148#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
23149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f16)"]
23150#[doc = "## Safety"]
23151#[doc = "  * Neon intrinsic unsafe"]
23152#[inline(always)]
23153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23154#[cfg(target_arch = "arm")]
23155#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23156#[target_feature(enable = "neon,fp16")]
23157#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23158#[cfg(not(target_arch = "arm64ec"))]
23159pub unsafe fn vld4q_dup_f16(a: *const f16) -> float16x8x4_t {
23160    unsafe extern "unadjusted" {
23161        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8f16.p0")]
23162        fn _vld4q_dup_f16(ptr: *const f16, size: i32) -> float16x8x4_t;
23163    }
23164    _vld4q_dup_f16(a as _, 2)
23165}
23166#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
23167#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f16)"]
23168#[doc = "## Safety"]
23169#[doc = "  * Neon intrinsic unsafe"]
23170#[inline(always)]
23171#[cfg(not(target_arch = "arm"))]
23172#[cfg_attr(
23173    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23174    assert_instr(ld4r)
23175)]
23176#[target_feature(enable = "neon,fp16")]
23177#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23178#[cfg(not(target_arch = "arm64ec"))]
23179pub unsafe fn vld4_dup_f16(a: *const f16) -> float16x4x4_t {
23180    unsafe extern "unadjusted" {
23181        #[cfg_attr(
23182            any(target_arch = "aarch64", target_arch = "arm64ec"),
23183            link_name = "llvm.aarch64.neon.ld4r.v4f16.p0"
23184        )]
23185        fn _vld4_dup_f16(ptr: *const f16) -> float16x4x4_t;
23186    }
23187    _vld4_dup_f16(a as _)
23188}
23189#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
23190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f16)"]
23191#[doc = "## Safety"]
23192#[doc = "  * Neon intrinsic unsafe"]
23193#[inline(always)]
23194#[cfg(not(target_arch = "arm"))]
23195#[cfg_attr(
23196    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23197    assert_instr(ld4r)
23198)]
23199#[target_feature(enable = "neon,fp16")]
23200#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23201#[cfg(not(target_arch = "arm64ec"))]
23202pub unsafe fn vld4q_dup_f16(a: *const f16) -> float16x8x4_t {
23203    unsafe extern "unadjusted" {
23204        #[cfg_attr(
23205            any(target_arch = "aarch64", target_arch = "arm64ec"),
23206            link_name = "llvm.aarch64.neon.ld4r.v8f16.p0"
23207        )]
23208        fn _vld4q_dup_f16(ptr: *const f16) -> float16x8x4_t;
23209    }
23210    _vld4q_dup_f16(a as _)
23211}
23212#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)"]
23214#[doc = "## Safety"]
23215#[doc = "  * Neon intrinsic unsafe"]
23216#[inline(always)]
23217#[cfg(target_arch = "arm")]
23218#[target_feature(enable = "neon,v7")]
23219#[cfg_attr(test, assert_instr(vld4))]
23220#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23221pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
23222    unsafe extern "unadjusted" {
23223        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2f32.p0")]
23224        fn _vld4_dup_f32(ptr: *const i8, size: i32) -> float32x2x4_t;
23225    }
23226    _vld4_dup_f32(a as *const i8, 4)
23227}
23228#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23229#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)"]
23230#[doc = "## Safety"]
23231#[doc = "  * Neon intrinsic unsafe"]
23232#[inline(always)]
23233#[cfg(target_arch = "arm")]
23234#[target_feature(enable = "neon,v7")]
23235#[cfg_attr(test, assert_instr(vld4))]
23236#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23237pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
23238    unsafe extern "unadjusted" {
23239        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4f32.p0")]
23240        fn _vld4q_dup_f32(ptr: *const i8, size: i32) -> float32x4x4_t;
23241    }
23242    _vld4q_dup_f32(a as *const i8, 4)
23243}
23244#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)"]
23246#[doc = "## Safety"]
23247#[doc = "  * Neon intrinsic unsafe"]
23248#[inline(always)]
23249#[cfg(target_arch = "arm")]
23250#[target_feature(enable = "neon,v7")]
23251#[cfg_attr(test, assert_instr(vld4))]
23252#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23253pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
23254    unsafe extern "unadjusted" {
23255        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i8.p0")]
23256        fn _vld4_dup_s8(ptr: *const i8, size: i32) -> int8x8x4_t;
23257    }
23258    _vld4_dup_s8(a as *const i8, 1)
23259}
23260#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)"]
23262#[doc = "## Safety"]
23263#[doc = "  * Neon intrinsic unsafe"]
23264#[inline(always)]
23265#[cfg(target_arch = "arm")]
23266#[target_feature(enable = "neon,v7")]
23267#[cfg_attr(test, assert_instr(vld4))]
23268#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23269pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
23270    unsafe extern "unadjusted" {
23271        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v16i8.p0")]
23272        fn _vld4q_dup_s8(ptr: *const i8, size: i32) -> int8x16x4_t;
23273    }
23274    _vld4q_dup_s8(a as *const i8, 1)
23275}
23276#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23277#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s16)"]
23278#[doc = "## Safety"]
23279#[doc = "  * Neon intrinsic unsafe"]
23280#[inline(always)]
23281#[cfg(target_arch = "arm")]
23282#[target_feature(enable = "neon,v7")]
23283#[cfg_attr(test, assert_instr(vld4))]
23284#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23285pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
23286    unsafe extern "unadjusted" {
23287        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i16.p0")]
23288        fn _vld4_dup_s16(ptr: *const i8, size: i32) -> int16x4x4_t;
23289    }
23290    _vld4_dup_s16(a as *const i8, 2)
23291}
23292#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s16)"]
23294#[doc = "## Safety"]
23295#[doc = "  * Neon intrinsic unsafe"]
23296#[inline(always)]
23297#[cfg(target_arch = "arm")]
23298#[target_feature(enable = "neon,v7")]
23299#[cfg_attr(test, assert_instr(vld4))]
23300#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23301pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
23302    unsafe extern "unadjusted" {
23303        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i16.p0")]
23304        fn _vld4q_dup_s16(ptr: *const i8, size: i32) -> int16x8x4_t;
23305    }
23306    _vld4q_dup_s16(a as *const i8, 2)
23307}
23308#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)"]
23310#[doc = "## Safety"]
23311#[doc = "  * Neon intrinsic unsafe"]
23312#[inline(always)]
23313#[cfg(target_arch = "arm")]
23314#[target_feature(enable = "neon,v7")]
23315#[cfg_attr(test, assert_instr(vld4))]
23316#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23317pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
23318    unsafe extern "unadjusted" {
23319        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2i32.p0")]
23320        fn _vld4_dup_s32(ptr: *const i8, size: i32) -> int32x2x4_t;
23321    }
23322    _vld4_dup_s32(a as *const i8, 4)
23323}
23324#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)"]
23326#[doc = "## Safety"]
23327#[doc = "  * Neon intrinsic unsafe"]
23328#[inline(always)]
23329#[cfg(target_arch = "arm")]
23330#[target_feature(enable = "neon,v7")]
23331#[cfg_attr(test, assert_instr(vld4))]
23332#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23333pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
23334    unsafe extern "unadjusted" {
23335        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i32.p0")]
23336        fn _vld4q_dup_s32(ptr: *const i8, size: i32) -> int32x4x4_t;
23337    }
23338    _vld4q_dup_s32(a as *const i8, 4)
23339}
23340#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)"]
23342#[doc = "## Safety"]
23343#[doc = "  * Neon intrinsic unsafe"]
23344#[inline(always)]
23345#[target_feature(enable = "neon")]
23346#[cfg(not(target_arch = "arm"))]
23347#[cfg_attr(test, assert_instr(ld4r))]
23348#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23349pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
23350    unsafe extern "unadjusted" {
23351        #[cfg_attr(
23352            any(target_arch = "aarch64", target_arch = "arm64ec"),
23353            link_name = "llvm.aarch64.neon.ld4r.v2f32.p0.p0"
23354        )]
23355        fn _vld4_dup_f32(ptr: *const f32) -> float32x2x4_t;
23356    }
23357    _vld4_dup_f32(a as _)
23358}
23359#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)"]
23361#[doc = "## Safety"]
23362#[doc = "  * Neon intrinsic unsafe"]
23363#[inline(always)]
23364#[target_feature(enable = "neon")]
23365#[cfg(not(target_arch = "arm"))]
23366#[cfg_attr(test, assert_instr(ld4r))]
23367#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23368pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
23369    unsafe extern "unadjusted" {
23370        #[cfg_attr(
23371            any(target_arch = "aarch64", target_arch = "arm64ec"),
23372            link_name = "llvm.aarch64.neon.ld4r.v4f32.p0.p0"
23373        )]
23374        fn _vld4q_dup_f32(ptr: *const f32) -> float32x4x4_t;
23375    }
23376    _vld4q_dup_f32(a as _)
23377}
23378#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)"]
23380#[doc = "## Safety"]
23381#[doc = "  * Neon intrinsic unsafe"]
23382#[inline(always)]
23383#[target_feature(enable = "neon")]
23384#[cfg(not(target_arch = "arm"))]
23385#[cfg_attr(test, assert_instr(ld4r))]
23386#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23387pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
23388    unsafe extern "unadjusted" {
23389        #[cfg_attr(
23390            any(target_arch = "aarch64", target_arch = "arm64ec"),
23391            link_name = "llvm.aarch64.neon.ld4r.v8i8.p0.p0"
23392        )]
23393        fn _vld4_dup_s8(ptr: *const i8) -> int8x8x4_t;
23394    }
23395    _vld4_dup_s8(a as _)
23396}
23397#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)"]
23399#[doc = "## Safety"]
23400#[doc = "  * Neon intrinsic unsafe"]
23401#[inline(always)]
23402#[target_feature(enable = "neon")]
23403#[cfg(not(target_arch = "arm"))]
23404#[cfg_attr(test, assert_instr(ld4r))]
23405#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23406pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
23407    unsafe extern "unadjusted" {
23408        #[cfg_attr(
23409            any(target_arch = "aarch64", target_arch = "arm64ec"),
23410            link_name = "llvm.aarch64.neon.ld4r.v16i8.p0.p0"
23411        )]
23412        fn _vld4q_dup_s8(ptr: *const i8) -> int8x16x4_t;
23413    }
23414    _vld4q_dup_s8(a as _)
23415}
23416#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23417#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s16)"]
23418#[doc = "## Safety"]
23419#[doc = "  * Neon intrinsic unsafe"]
23420#[inline(always)]
23421#[target_feature(enable = "neon")]
23422#[cfg(not(target_arch = "arm"))]
23423#[cfg_attr(test, assert_instr(ld4r))]
23424#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23425pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
23426    unsafe extern "unadjusted" {
23427        #[cfg_attr(
23428            any(target_arch = "aarch64", target_arch = "arm64ec"),
23429            link_name = "llvm.aarch64.neon.ld4r.v4i16.p0.p0"
23430        )]
23431        fn _vld4_dup_s16(ptr: *const i16) -> int16x4x4_t;
23432    }
23433    _vld4_dup_s16(a as _)
23434}
23435#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s16)"]
23437#[doc = "## Safety"]
23438#[doc = "  * Neon intrinsic unsafe"]
23439#[inline(always)]
23440#[target_feature(enable = "neon")]
23441#[cfg(not(target_arch = "arm"))]
23442#[cfg_attr(test, assert_instr(ld4r))]
23443#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23444pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
23445    unsafe extern "unadjusted" {
23446        #[cfg_attr(
23447            any(target_arch = "aarch64", target_arch = "arm64ec"),
23448            link_name = "llvm.aarch64.neon.ld4r.v8i16.p0.p0"
23449        )]
23450        fn _vld4q_dup_s16(ptr: *const i16) -> int16x8x4_t;
23451    }
23452    _vld4q_dup_s16(a as _)
23453}
23454#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)"]
23456#[doc = "## Safety"]
23457#[doc = "  * Neon intrinsic unsafe"]
23458#[inline(always)]
23459#[target_feature(enable = "neon")]
23460#[cfg(not(target_arch = "arm"))]
23461#[cfg_attr(test, assert_instr(ld4r))]
23462#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23463pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
23464    unsafe extern "unadjusted" {
23465        #[cfg_attr(
23466            any(target_arch = "aarch64", target_arch = "arm64ec"),
23467            link_name = "llvm.aarch64.neon.ld4r.v2i32.p0.p0"
23468        )]
23469        fn _vld4_dup_s32(ptr: *const i32) -> int32x2x4_t;
23470    }
23471    _vld4_dup_s32(a as _)
23472}
23473#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)"]
23475#[doc = "## Safety"]
23476#[doc = "  * Neon intrinsic unsafe"]
23477#[inline(always)]
23478#[target_feature(enable = "neon")]
23479#[cfg(not(target_arch = "arm"))]
23480#[cfg_attr(test, assert_instr(ld4r))]
23481#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23482pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
23483    unsafe extern "unadjusted" {
23484        #[cfg_attr(
23485            any(target_arch = "aarch64", target_arch = "arm64ec"),
23486            link_name = "llvm.aarch64.neon.ld4r.v4i32.p0.p0"
23487        )]
23488        fn _vld4q_dup_s32(ptr: *const i32) -> int32x4x4_t;
23489    }
23490    _vld4q_dup_s32(a as _)
23491}
23492#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23493#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)"]
23494#[doc = "## Safety"]
23495#[doc = "  * Neon intrinsic unsafe"]
23496#[inline(always)]
23497#[target_feature(enable = "neon")]
23498#[cfg(not(target_arch = "arm"))]
23499#[cfg_attr(test, assert_instr(ld4r))]
23500#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23501pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
23502    unsafe extern "unadjusted" {
23503        #[cfg_attr(
23504            any(target_arch = "aarch64", target_arch = "arm64ec"),
23505            link_name = "llvm.aarch64.neon.ld4r.v1i64.p0.p0"
23506        )]
23507        fn _vld4_dup_s64(ptr: *const i64) -> int64x1x4_t;
23508    }
23509    _vld4_dup_s64(a as _)
23510}
23511#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23512#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p64)"]
23513#[doc = "## Safety"]
23514#[doc = "  * Neon intrinsic unsafe"]
23515#[inline(always)]
23516#[target_feature(enable = "neon,aes")]
23517#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
23518#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23519#[cfg_attr(
23520    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23521    assert_instr(ld4r)
23522)]
23523#[cfg_attr(
23524    not(target_arch = "arm"),
23525    stable(feature = "neon_intrinsics", since = "1.59.0")
23526)]
23527#[cfg_attr(
23528    target_arch = "arm",
23529    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23530)]
23531pub unsafe fn vld4_dup_p64(a: *const p64) -> poly64x1x4_t {
23532    transmute(vld4_dup_s64(transmute(a)))
23533}
23534#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)"]
23536#[doc = "## Safety"]
23537#[doc = "  * Neon intrinsic unsafe"]
23538#[inline(always)]
23539#[cfg(target_arch = "arm")]
23540#[target_feature(enable = "neon,v7")]
23541#[cfg_attr(test, assert_instr(nop))]
23542#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23543pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
23544    unsafe extern "unadjusted" {
23545        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v1i64.p0")]
23546        fn _vld4_dup_s64(ptr: *const i8, size: i32) -> int64x1x4_t;
23547    }
23548    _vld4_dup_s64(a as *const i8, 8)
23549}
23550#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u64)"]
23552#[doc = "## Safety"]
23553#[doc = "  * Neon intrinsic unsafe"]
23554#[inline(always)]
23555#[target_feature(enable = "neon")]
23556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23557#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23558#[cfg_attr(
23559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23560    assert_instr(ld4r)
23561)]
23562#[cfg_attr(
23563    not(target_arch = "arm"),
23564    stable(feature = "neon_intrinsics", since = "1.59.0")
23565)]
23566#[cfg_attr(
23567    target_arch = "arm",
23568    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23569)]
23570pub unsafe fn vld4_dup_u64(a: *const u64) -> uint64x1x4_t {
23571    transmute(vld4_dup_s64(transmute(a)))
23572}
23573#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23574#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u8)"]
23575#[doc = "## Safety"]
23576#[doc = "  * Neon intrinsic unsafe"]
23577#[inline(always)]
23578#[cfg(target_endian = "little")]
23579#[target_feature(enable = "neon")]
23580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23582#[cfg_attr(
23583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23584    assert_instr(ld4r)
23585)]
23586#[cfg_attr(
23587    not(target_arch = "arm"),
23588    stable(feature = "neon_intrinsics", since = "1.59.0")
23589)]
23590#[cfg_attr(
23591    target_arch = "arm",
23592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23593)]
23594pub unsafe fn vld4_dup_u8(a: *const u8) -> uint8x8x4_t {
23595    transmute(vld4_dup_s8(transmute(a)))
23596}
23597#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23598#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u8)"]
23599#[doc = "## Safety"]
23600#[doc = "  * Neon intrinsic unsafe"]
23601#[inline(always)]
23602#[cfg(target_endian = "big")]
23603#[target_feature(enable = "neon")]
23604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23605#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23606#[cfg_attr(
23607    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23608    assert_instr(ld4r)
23609)]
23610#[cfg_attr(
23611    not(target_arch = "arm"),
23612    stable(feature = "neon_intrinsics", since = "1.59.0")
23613)]
23614#[cfg_attr(
23615    target_arch = "arm",
23616    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23617)]
23618pub unsafe fn vld4_dup_u8(a: *const u8) -> uint8x8x4_t {
23619    let mut ret_val: uint8x8x4_t = transmute(vld4_dup_s8(transmute(a)));
23620    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23621    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23622    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23623    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
23624    ret_val
23625}
23626#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23627#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u8)"]
23628#[doc = "## Safety"]
23629#[doc = "  * Neon intrinsic unsafe"]
23630#[inline(always)]
23631#[cfg(target_endian = "little")]
23632#[target_feature(enable = "neon")]
23633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23634#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23635#[cfg_attr(
23636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23637    assert_instr(ld4r)
23638)]
23639#[cfg_attr(
23640    not(target_arch = "arm"),
23641    stable(feature = "neon_intrinsics", since = "1.59.0")
23642)]
23643#[cfg_attr(
23644    target_arch = "arm",
23645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23646)]
23647pub unsafe fn vld4q_dup_u8(a: *const u8) -> uint8x16x4_t {
23648    transmute(vld4q_dup_s8(transmute(a)))
23649}
23650#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u8)"]
23652#[doc = "## Safety"]
23653#[doc = "  * Neon intrinsic unsafe"]
23654#[inline(always)]
23655#[cfg(target_endian = "big")]
23656#[target_feature(enable = "neon")]
23657#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23658#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23659#[cfg_attr(
23660    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23661    assert_instr(ld4r)
23662)]
23663#[cfg_attr(
23664    not(target_arch = "arm"),
23665    stable(feature = "neon_intrinsics", since = "1.59.0")
23666)]
23667#[cfg_attr(
23668    target_arch = "arm",
23669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23670)]
23671pub unsafe fn vld4q_dup_u8(a: *const u8) -> uint8x16x4_t {
23672    let mut ret_val: uint8x16x4_t = transmute(vld4q_dup_s8(transmute(a)));
23673    ret_val.0 = unsafe {
23674        simd_shuffle!(
23675            ret_val.0,
23676            ret_val.0,
23677            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23678        )
23679    };
23680    ret_val.1 = unsafe {
23681        simd_shuffle!(
23682            ret_val.1,
23683            ret_val.1,
23684            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23685        )
23686    };
23687    ret_val.2 = unsafe {
23688        simd_shuffle!(
23689            ret_val.2,
23690            ret_val.2,
23691            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23692        )
23693    };
23694    ret_val.3 = unsafe {
23695        simd_shuffle!(
23696            ret_val.3,
23697            ret_val.3,
23698            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23699        )
23700    };
23701    ret_val
23702}
23703#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u16)"]
23705#[doc = "## Safety"]
23706#[doc = "  * Neon intrinsic unsafe"]
23707#[inline(always)]
23708#[cfg(target_endian = "little")]
23709#[target_feature(enable = "neon")]
23710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23711#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23712#[cfg_attr(
23713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23714    assert_instr(ld4r)
23715)]
23716#[cfg_attr(
23717    not(target_arch = "arm"),
23718    stable(feature = "neon_intrinsics", since = "1.59.0")
23719)]
23720#[cfg_attr(
23721    target_arch = "arm",
23722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23723)]
23724pub unsafe fn vld4_dup_u16(a: *const u16) -> uint16x4x4_t {
23725    transmute(vld4_dup_s16(transmute(a)))
23726}
23727#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u16)"]
23729#[doc = "## Safety"]
23730#[doc = "  * Neon intrinsic unsafe"]
23731#[inline(always)]
23732#[cfg(target_endian = "big")]
23733#[target_feature(enable = "neon")]
23734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23736#[cfg_attr(
23737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23738    assert_instr(ld4r)
23739)]
23740#[cfg_attr(
23741    not(target_arch = "arm"),
23742    stable(feature = "neon_intrinsics", since = "1.59.0")
23743)]
23744#[cfg_attr(
23745    target_arch = "arm",
23746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23747)]
23748pub unsafe fn vld4_dup_u16(a: *const u16) -> uint16x4x4_t {
23749    let mut ret_val: uint16x4x4_t = transmute(vld4_dup_s16(transmute(a)));
23750    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
23751    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
23752    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
23753    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
23754    ret_val
23755}
23756#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23757#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u16)"]
23758#[doc = "## Safety"]
23759#[doc = "  * Neon intrinsic unsafe"]
23760#[inline(always)]
23761#[cfg(target_endian = "little")]
23762#[target_feature(enable = "neon")]
23763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23765#[cfg_attr(
23766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23767    assert_instr(ld4r)
23768)]
23769#[cfg_attr(
23770    not(target_arch = "arm"),
23771    stable(feature = "neon_intrinsics", since = "1.59.0")
23772)]
23773#[cfg_attr(
23774    target_arch = "arm",
23775    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23776)]
23777pub unsafe fn vld4q_dup_u16(a: *const u16) -> uint16x8x4_t {
23778    transmute(vld4q_dup_s16(transmute(a)))
23779}
23780#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u16)"]
23782#[doc = "## Safety"]
23783#[doc = "  * Neon intrinsic unsafe"]
23784#[inline(always)]
23785#[cfg(target_endian = "big")]
23786#[target_feature(enable = "neon")]
23787#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23788#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23789#[cfg_attr(
23790    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23791    assert_instr(ld4r)
23792)]
23793#[cfg_attr(
23794    not(target_arch = "arm"),
23795    stable(feature = "neon_intrinsics", since = "1.59.0")
23796)]
23797#[cfg_attr(
23798    target_arch = "arm",
23799    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23800)]
23801pub unsafe fn vld4q_dup_u16(a: *const u16) -> uint16x8x4_t {
23802    let mut ret_val: uint16x8x4_t = transmute(vld4q_dup_s16(transmute(a)));
23803    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23804    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23805    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23806    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
23807    ret_val
23808}
23809#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u32)"]
23811#[doc = "## Safety"]
23812#[doc = "  * Neon intrinsic unsafe"]
23813#[inline(always)]
23814#[cfg(target_endian = "little")]
23815#[target_feature(enable = "neon")]
23816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23818#[cfg_attr(
23819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23820    assert_instr(ld4r)
23821)]
23822#[cfg_attr(
23823    not(target_arch = "arm"),
23824    stable(feature = "neon_intrinsics", since = "1.59.0")
23825)]
23826#[cfg_attr(
23827    target_arch = "arm",
23828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23829)]
23830pub unsafe fn vld4_dup_u32(a: *const u32) -> uint32x2x4_t {
23831    transmute(vld4_dup_s32(transmute(a)))
23832}
23833#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u32)"]
23835#[doc = "## Safety"]
23836#[doc = "  * Neon intrinsic unsafe"]
23837#[inline(always)]
23838#[cfg(target_endian = "big")]
23839#[target_feature(enable = "neon")]
23840#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23841#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23842#[cfg_attr(
23843    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23844    assert_instr(ld4r)
23845)]
23846#[cfg_attr(
23847    not(target_arch = "arm"),
23848    stable(feature = "neon_intrinsics", since = "1.59.0")
23849)]
23850#[cfg_attr(
23851    target_arch = "arm",
23852    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23853)]
23854pub unsafe fn vld4_dup_u32(a: *const u32) -> uint32x2x4_t {
23855    let mut ret_val: uint32x2x4_t = transmute(vld4_dup_s32(transmute(a)));
23856    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
23857    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
23858    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
23859    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
23860    ret_val
23861}
23862#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u32)"]
23864#[doc = "## Safety"]
23865#[doc = "  * Neon intrinsic unsafe"]
23866#[inline(always)]
23867#[cfg(target_endian = "little")]
23868#[target_feature(enable = "neon")]
23869#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23870#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23871#[cfg_attr(
23872    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23873    assert_instr(ld4r)
23874)]
23875#[cfg_attr(
23876    not(target_arch = "arm"),
23877    stable(feature = "neon_intrinsics", since = "1.59.0")
23878)]
23879#[cfg_attr(
23880    target_arch = "arm",
23881    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23882)]
23883pub unsafe fn vld4q_dup_u32(a: *const u32) -> uint32x4x4_t {
23884    transmute(vld4q_dup_s32(transmute(a)))
23885}
23886#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u32)"]
23888#[doc = "## Safety"]
23889#[doc = "  * Neon intrinsic unsafe"]
23890#[inline(always)]
23891#[cfg(target_endian = "big")]
23892#[target_feature(enable = "neon")]
23893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23894#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23895#[cfg_attr(
23896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23897    assert_instr(ld4r)
23898)]
23899#[cfg_attr(
23900    not(target_arch = "arm"),
23901    stable(feature = "neon_intrinsics", since = "1.59.0")
23902)]
23903#[cfg_attr(
23904    target_arch = "arm",
23905    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23906)]
23907pub unsafe fn vld4q_dup_u32(a: *const u32) -> uint32x4x4_t {
23908    let mut ret_val: uint32x4x4_t = transmute(vld4q_dup_s32(transmute(a)));
23909    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
23910    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
23911    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
23912    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
23913    ret_val
23914}
23915#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p8)"]
23917#[doc = "## Safety"]
23918#[doc = "  * Neon intrinsic unsafe"]
23919#[inline(always)]
23920#[cfg(target_endian = "little")]
23921#[target_feature(enable = "neon")]
23922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23924#[cfg_attr(
23925    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23926    assert_instr(ld4r)
23927)]
23928#[cfg_attr(
23929    not(target_arch = "arm"),
23930    stable(feature = "neon_intrinsics", since = "1.59.0")
23931)]
23932#[cfg_attr(
23933    target_arch = "arm",
23934    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23935)]
23936pub unsafe fn vld4_dup_p8(a: *const p8) -> poly8x8x4_t {
23937    transmute(vld4_dup_s8(transmute(a)))
23938}
23939#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p8)"]
23941#[doc = "## Safety"]
23942#[doc = "  * Neon intrinsic unsafe"]
23943#[inline(always)]
23944#[cfg(target_endian = "big")]
23945#[target_feature(enable = "neon")]
23946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23947#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23948#[cfg_attr(
23949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23950    assert_instr(ld4r)
23951)]
23952#[cfg_attr(
23953    not(target_arch = "arm"),
23954    stable(feature = "neon_intrinsics", since = "1.59.0")
23955)]
23956#[cfg_attr(
23957    target_arch = "arm",
23958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23959)]
23960pub unsafe fn vld4_dup_p8(a: *const p8) -> poly8x8x4_t {
23961    let mut ret_val: poly8x8x4_t = transmute(vld4_dup_s8(transmute(a)));
23962    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23963    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23964    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23965    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
23966    ret_val
23967}
23968#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p8)"]
23970#[doc = "## Safety"]
23971#[doc = "  * Neon intrinsic unsafe"]
23972#[inline(always)]
23973#[cfg(target_endian = "little")]
23974#[target_feature(enable = "neon")]
23975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23976#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23977#[cfg_attr(
23978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23979    assert_instr(ld4r)
23980)]
23981#[cfg_attr(
23982    not(target_arch = "arm"),
23983    stable(feature = "neon_intrinsics", since = "1.59.0")
23984)]
23985#[cfg_attr(
23986    target_arch = "arm",
23987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23988)]
23989pub unsafe fn vld4q_dup_p8(a: *const p8) -> poly8x16x4_t {
23990    transmute(vld4q_dup_s8(transmute(a)))
23991}
23992#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p8)"]
23994#[doc = "## Safety"]
23995#[doc = "  * Neon intrinsic unsafe"]
23996#[inline(always)]
23997#[cfg(target_endian = "big")]
23998#[target_feature(enable = "neon")]
23999#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24000#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24001#[cfg_attr(
24002    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24003    assert_instr(ld4r)
24004)]
24005#[cfg_attr(
24006    not(target_arch = "arm"),
24007    stable(feature = "neon_intrinsics", since = "1.59.0")
24008)]
24009#[cfg_attr(
24010    target_arch = "arm",
24011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24012)]
24013pub unsafe fn vld4q_dup_p8(a: *const p8) -> poly8x16x4_t {
24014    let mut ret_val: poly8x16x4_t = transmute(vld4q_dup_s8(transmute(a)));
24015    ret_val.0 = unsafe {
24016        simd_shuffle!(
24017            ret_val.0,
24018            ret_val.0,
24019            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24020        )
24021    };
24022    ret_val.1 = unsafe {
24023        simd_shuffle!(
24024            ret_val.1,
24025            ret_val.1,
24026            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24027        )
24028    };
24029    ret_val.2 = unsafe {
24030        simd_shuffle!(
24031            ret_val.2,
24032            ret_val.2,
24033            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24034        )
24035    };
24036    ret_val.3 = unsafe {
24037        simd_shuffle!(
24038            ret_val.3,
24039            ret_val.3,
24040            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24041        )
24042    };
24043    ret_val
24044}
24045#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p16)"]
24047#[doc = "## Safety"]
24048#[doc = "  * Neon intrinsic unsafe"]
24049#[inline(always)]
24050#[cfg(target_endian = "little")]
24051#[target_feature(enable = "neon")]
24052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24053#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24054#[cfg_attr(
24055    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24056    assert_instr(ld4r)
24057)]
24058#[cfg_attr(
24059    not(target_arch = "arm"),
24060    stable(feature = "neon_intrinsics", since = "1.59.0")
24061)]
24062#[cfg_attr(
24063    target_arch = "arm",
24064    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24065)]
24066pub unsafe fn vld4_dup_p16(a: *const p16) -> poly16x4x4_t {
24067    transmute(vld4_dup_s16(transmute(a)))
24068}
24069#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p16)"]
24071#[doc = "## Safety"]
24072#[doc = "  * Neon intrinsic unsafe"]
24073#[inline(always)]
24074#[cfg(target_endian = "big")]
24075#[target_feature(enable = "neon")]
24076#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24077#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24078#[cfg_attr(
24079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24080    assert_instr(ld4r)
24081)]
24082#[cfg_attr(
24083    not(target_arch = "arm"),
24084    stable(feature = "neon_intrinsics", since = "1.59.0")
24085)]
24086#[cfg_attr(
24087    target_arch = "arm",
24088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24089)]
24090pub unsafe fn vld4_dup_p16(a: *const p16) -> poly16x4x4_t {
24091    let mut ret_val: poly16x4x4_t = transmute(vld4_dup_s16(transmute(a)));
24092    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
24093    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
24094    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
24095    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
24096    ret_val
24097}
24098#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p16)"]
24100#[doc = "## Safety"]
24101#[doc = "  * Neon intrinsic unsafe"]
24102#[inline(always)]
24103#[cfg(target_endian = "little")]
24104#[target_feature(enable = "neon")]
24105#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24106#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24107#[cfg_attr(
24108    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24109    assert_instr(ld4r)
24110)]
24111#[cfg_attr(
24112    not(target_arch = "arm"),
24113    stable(feature = "neon_intrinsics", since = "1.59.0")
24114)]
24115#[cfg_attr(
24116    target_arch = "arm",
24117    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24118)]
24119pub unsafe fn vld4q_dup_p16(a: *const p16) -> poly16x8x4_t {
24120    transmute(vld4q_dup_s16(transmute(a)))
24121}
24122#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24123#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p16)"]
24124#[doc = "## Safety"]
24125#[doc = "  * Neon intrinsic unsafe"]
24126#[inline(always)]
24127#[cfg(target_endian = "big")]
24128#[target_feature(enable = "neon")]
24129#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24130#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24131#[cfg_attr(
24132    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24133    assert_instr(ld4r)
24134)]
24135#[cfg_attr(
24136    not(target_arch = "arm"),
24137    stable(feature = "neon_intrinsics", since = "1.59.0")
24138)]
24139#[cfg_attr(
24140    target_arch = "arm",
24141    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24142)]
24143pub unsafe fn vld4q_dup_p16(a: *const p16) -> poly16x8x4_t {
24144    let mut ret_val: poly16x8x4_t = transmute(vld4q_dup_s16(transmute(a)));
24145    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
24146    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
24147    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
24148    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
24149    ret_val
24150}
24151#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f16)"]
24153#[doc = "## Safety"]
24154#[doc = "  * Neon intrinsic unsafe"]
24155#[inline(always)]
24156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24157#[cfg(target_arch = "arm")]
24158#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24159#[target_feature(enable = "neon,fp16")]
24160#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24161#[cfg(not(target_arch = "arm64ec"))]
24162pub unsafe fn vld4_f16(a: *const f16) -> float16x4x4_t {
24163    unsafe extern "unadjusted" {
24164        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4f16.p0")]
24165        fn _vld4_f16(ptr: *const f16, size: i32) -> float16x4x4_t;
24166    }
24167    _vld4_f16(a as _, 2)
24168}
24169#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f16)"]
24171#[doc = "## Safety"]
24172#[doc = "  * Neon intrinsic unsafe"]
24173#[inline(always)]
24174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24175#[cfg(target_arch = "arm")]
24176#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24177#[target_feature(enable = "neon,fp16")]
24178#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24179#[cfg(not(target_arch = "arm64ec"))]
24180pub unsafe fn vld4q_f16(a: *const f16) -> float16x8x4_t {
24181    unsafe extern "unadjusted" {
24182        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8f16.p0")]
24183        fn _vld4q_f16(ptr: *const f16, size: i32) -> float16x8x4_t;
24184    }
24185    _vld4q_f16(a as _, 2)
24186}
24187#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f16)"]
24189#[doc = "## Safety"]
24190#[doc = "  * Neon intrinsic unsafe"]
24191#[inline(always)]
24192#[cfg(not(target_arch = "arm"))]
24193#[cfg_attr(
24194    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24195    assert_instr(ld4)
24196)]
24197#[target_feature(enable = "neon,fp16")]
24198#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24199#[cfg(not(target_arch = "arm64ec"))]
24200pub unsafe fn vld4_f16(a: *const f16) -> float16x4x4_t {
24201    crate::core_arch::macros::deinterleaving_load!(f16, 4, 4, a)
24202}
24203#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f16)"]
24205#[doc = "## Safety"]
24206#[doc = "  * Neon intrinsic unsafe"]
24207#[inline(always)]
24208#[cfg(not(target_arch = "arm"))]
24209#[cfg_attr(
24210    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24211    assert_instr(ld4)
24212)]
24213#[target_feature(enable = "neon,fp16")]
24214#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24215#[cfg(not(target_arch = "arm64ec"))]
24216pub unsafe fn vld4q_f16(a: *const f16) -> float16x8x4_t {
24217    crate::core_arch::macros::deinterleaving_load!(f16, 8, 4, a)
24218}
24219#[doc = "Load multiple 4-element structures to four registers"]
24220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)"]
24221#[doc = "## Safety"]
24222#[doc = "  * Neon intrinsic unsafe"]
24223#[inline(always)]
24224#[target_feature(enable = "neon")]
24225#[cfg(not(target_arch = "arm"))]
24226#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24227#[cfg_attr(test, assert_instr(ld4))]
24228pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
24229    crate::core_arch::macros::deinterleaving_load!(f32, 2, 4, a)
24230}
24231#[doc = "Load multiple 4-element structures to four registers"]
24232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)"]
24233#[doc = "## Safety"]
24234#[doc = "  * Neon intrinsic unsafe"]
24235#[inline(always)]
24236#[target_feature(enable = "neon")]
24237#[cfg(not(target_arch = "arm"))]
24238#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24239#[cfg_attr(test, assert_instr(ld4))]
24240pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
24241    crate::core_arch::macros::deinterleaving_load!(f32, 4, 4, a)
24242}
24243#[doc = "Load multiple 4-element structures to four registers"]
24244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)"]
24245#[doc = "## Safety"]
24246#[doc = "  * Neon intrinsic unsafe"]
24247#[inline(always)]
24248#[target_feature(enable = "neon")]
24249#[cfg(not(target_arch = "arm"))]
24250#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24251#[cfg_attr(test, assert_instr(ld4))]
24252pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
24253    crate::core_arch::macros::deinterleaving_load!(i8, 8, 4, a)
24254}
24255#[doc = "Load multiple 4-element structures to four registers"]
24256#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)"]
24257#[doc = "## Safety"]
24258#[doc = "  * Neon intrinsic unsafe"]
24259#[inline(always)]
24260#[target_feature(enable = "neon")]
24261#[cfg(not(target_arch = "arm"))]
24262#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24263#[cfg_attr(test, assert_instr(ld4))]
24264pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
24265    crate::core_arch::macros::deinterleaving_load!(i8, 16, 4, a)
24266}
24267#[doc = "Load multiple 4-element structures to four registers"]
24268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)"]
24269#[doc = "## Safety"]
24270#[doc = "  * Neon intrinsic unsafe"]
24271#[inline(always)]
24272#[target_feature(enable = "neon")]
24273#[cfg(not(target_arch = "arm"))]
24274#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24275#[cfg_attr(test, assert_instr(ld4))]
24276pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
24277    crate::core_arch::macros::deinterleaving_load!(i16, 4, 4, a)
24278}
24279#[doc = "Load multiple 4-element structures to four registers"]
24280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)"]
24281#[doc = "## Safety"]
24282#[doc = "  * Neon intrinsic unsafe"]
24283#[inline(always)]
24284#[target_feature(enable = "neon")]
24285#[cfg(not(target_arch = "arm"))]
24286#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24287#[cfg_attr(test, assert_instr(ld4))]
24288pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
24289    crate::core_arch::macros::deinterleaving_load!(i16, 8, 4, a)
24290}
24291#[doc = "Load multiple 4-element structures to four registers"]
24292#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)"]
24293#[doc = "## Safety"]
24294#[doc = "  * Neon intrinsic unsafe"]
24295#[inline(always)]
24296#[target_feature(enable = "neon")]
24297#[cfg(not(target_arch = "arm"))]
24298#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24299#[cfg_attr(test, assert_instr(ld4))]
24300pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
24301    crate::core_arch::macros::deinterleaving_load!(i32, 2, 4, a)
24302}
24303#[doc = "Load multiple 4-element structures to four registers"]
24304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)"]
24305#[doc = "## Safety"]
24306#[doc = "  * Neon intrinsic unsafe"]
24307#[inline(always)]
24308#[target_feature(enable = "neon")]
24309#[cfg(not(target_arch = "arm"))]
24310#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24311#[cfg_attr(test, assert_instr(ld4))]
24312pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
24313    crate::core_arch::macros::deinterleaving_load!(i32, 4, 4, a)
24314}
24315#[doc = "Load multiple 4-element structures to four registers"]
24316#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)"]
24317#[doc = "## Safety"]
24318#[doc = "  * Neon intrinsic unsafe"]
24319#[inline(always)]
24320#[target_feature(enable = "neon,v7")]
24321#[cfg(target_arch = "arm")]
24322#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24323#[cfg_attr(test, assert_instr(vld4))]
24324pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
24325    unsafe extern "unadjusted" {
24326        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2f32.p0")]
24327        fn _vld4_f32(ptr: *const i8, size: i32) -> float32x2x4_t;
24328    }
24329    _vld4_f32(a as *const i8, 4)
24330}
24331#[doc = "Load multiple 4-element structures to four registers"]
24332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)"]
24333#[doc = "## Safety"]
24334#[doc = "  * Neon intrinsic unsafe"]
24335#[inline(always)]
24336#[target_feature(enable = "neon,v7")]
24337#[cfg(target_arch = "arm")]
24338#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24339#[cfg_attr(test, assert_instr(vld4))]
24340pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
24341    unsafe extern "unadjusted" {
24342        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4f32.p0")]
24343        fn _vld4q_f32(ptr: *const i8, size: i32) -> float32x4x4_t;
24344    }
24345    _vld4q_f32(a as *const i8, 4)
24346}
24347#[doc = "Load multiple 4-element structures to four registers"]
24348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)"]
24349#[doc = "## Safety"]
24350#[doc = "  * Neon intrinsic unsafe"]
24351#[inline(always)]
24352#[target_feature(enable = "neon,v7")]
24353#[cfg(target_arch = "arm")]
24354#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24355#[cfg_attr(test, assert_instr(vld4))]
24356pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
24357    unsafe extern "unadjusted" {
24358        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i8.p0")]
24359        fn _vld4_s8(ptr: *const i8, size: i32) -> int8x8x4_t;
24360    }
24361    _vld4_s8(a as *const i8, 1)
24362}
24363#[doc = "Load multiple 4-element structures to four registers"]
24364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)"]
24365#[doc = "## Safety"]
24366#[doc = "  * Neon intrinsic unsafe"]
24367#[inline(always)]
24368#[target_feature(enable = "neon,v7")]
24369#[cfg(target_arch = "arm")]
24370#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24371#[cfg_attr(test, assert_instr(vld4))]
24372pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
24373    unsafe extern "unadjusted" {
24374        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v16i8.p0")]
24375        fn _vld4q_s8(ptr: *const i8, size: i32) -> int8x16x4_t;
24376    }
24377    _vld4q_s8(a as *const i8, 1)
24378}
24379#[doc = "Load multiple 4-element structures to four registers"]
24380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)"]
24381#[doc = "## Safety"]
24382#[doc = "  * Neon intrinsic unsafe"]
24383#[inline(always)]
24384#[target_feature(enable = "neon,v7")]
24385#[cfg(target_arch = "arm")]
24386#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24387#[cfg_attr(test, assert_instr(vld4))]
24388pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
24389    unsafe extern "unadjusted" {
24390        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i16.p0")]
24391        fn _vld4_s16(ptr: *const i8, size: i32) -> int16x4x4_t;
24392    }
24393    _vld4_s16(a as *const i8, 2)
24394}
24395#[doc = "Load multiple 4-element structures to four registers"]
24396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)"]
24397#[doc = "## Safety"]
24398#[doc = "  * Neon intrinsic unsafe"]
24399#[inline(always)]
24400#[target_feature(enable = "neon,v7")]
24401#[cfg(target_arch = "arm")]
24402#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24403#[cfg_attr(test, assert_instr(vld4))]
24404pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
24405    unsafe extern "unadjusted" {
24406        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i16.p0")]
24407        fn _vld4q_s16(ptr: *const i8, size: i32) -> int16x8x4_t;
24408    }
24409    _vld4q_s16(a as *const i8, 2)
24410}
24411#[doc = "Load multiple 4-element structures to four registers"]
24412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)"]
24413#[doc = "## Safety"]
24414#[doc = "  * Neon intrinsic unsafe"]
24415#[inline(always)]
24416#[target_feature(enable = "neon,v7")]
24417#[cfg(target_arch = "arm")]
24418#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24419#[cfg_attr(test, assert_instr(vld4))]
24420pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
24421    unsafe extern "unadjusted" {
24422        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2i32.p0")]
24423        fn _vld4_s32(ptr: *const i8, size: i32) -> int32x2x4_t;
24424    }
24425    _vld4_s32(a as *const i8, 4)
24426}
24427#[doc = "Load multiple 4-element structures to four registers"]
24428#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)"]
24429#[doc = "## Safety"]
24430#[doc = "  * Neon intrinsic unsafe"]
24431#[inline(always)]
24432#[target_feature(enable = "neon,v7")]
24433#[cfg(target_arch = "arm")]
24434#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24435#[cfg_attr(test, assert_instr(vld4))]
24436pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
24437    unsafe extern "unadjusted" {
24438        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i32.p0")]
24439        fn _vld4q_s32(ptr: *const i8, size: i32) -> int32x4x4_t;
24440    }
24441    _vld4q_s32(a as *const i8, 4)
24442}
24443#[doc = "Load multiple 4-element structures to two registers"]
24444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f16)"]
24445#[doc = "## Safety"]
24446#[doc = "  * Neon intrinsic unsafe"]
24447#[inline(always)]
24448#[target_feature(enable = "neon,v7")]
24449#[cfg(target_arch = "arm")]
24450#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
24451#[rustc_legacy_const_generics(2)]
24452#[target_feature(enable = "neon,fp16")]
24453#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24454#[cfg(not(target_arch = "arm64ec"))]
24455pub unsafe fn vld4_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x4_t) -> float16x4x4_t {
24456    static_assert_uimm_bits!(LANE, 2);
24457    unsafe extern "unadjusted" {
24458        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4f16.p0")]
24459        fn _vld4_lane_f16(
24460            ptr: *const f16,
24461            a: float16x4_t,
24462            b: float16x4_t,
24463            c: float16x4_t,
24464            d: float16x4_t,
24465            n: i32,
24466            size: i32,
24467        ) -> float16x4x4_t;
24468    }
24469    _vld4_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
24470}
24471#[doc = "Load multiple 4-element structures to two registers"]
24472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f16)"]
24473#[doc = "## Safety"]
24474#[doc = "  * Neon intrinsic unsafe"]
24475#[inline(always)]
24476#[target_feature(enable = "neon,v7")]
24477#[cfg(target_arch = "arm")]
24478#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
24479#[rustc_legacy_const_generics(2)]
24480#[target_feature(enable = "neon,fp16")]
24481#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24482#[cfg(not(target_arch = "arm64ec"))]
24483pub unsafe fn vld4q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x4_t) -> float16x8x4_t {
24484    static_assert_uimm_bits!(LANE, 3);
24485    unsafe extern "unadjusted" {
24486        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8f16.p0")]
24487        fn _vld4q_lane_f16(
24488            ptr: *const f16,
24489            a: float16x8_t,
24490            b: float16x8_t,
24491            c: float16x8_t,
24492            d: float16x8_t,
24493            n: i32,
24494            size: i32,
24495        ) -> float16x8x4_t;
24496    }
24497    _vld4q_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
24498}
24499#[doc = "Load multiple 4-element structures to two registers"]
24500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f16)"]
24501#[doc = "## Safety"]
24502#[doc = "  * Neon intrinsic unsafe"]
24503#[inline(always)]
24504#[cfg(not(target_arch = "arm"))]
24505#[cfg_attr(
24506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24507    assert_instr(ld4, LANE = 0)
24508)]
24509#[rustc_legacy_const_generics(2)]
24510#[target_feature(enable = "neon,fp16")]
24511#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24512#[cfg(not(target_arch = "arm64ec"))]
24513pub unsafe fn vld4_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x4_t) -> float16x4x4_t {
24514    static_assert_uimm_bits!(LANE, 2);
24515    unsafe extern "unadjusted" {
24516        #[cfg_attr(
24517            any(target_arch = "aarch64", target_arch = "arm64ec"),
24518            link_name = "llvm.aarch64.neon.ld4lane.v4f16.p0"
24519        )]
24520        fn _vld4_lane_f16(
24521            a: float16x4_t,
24522            b: float16x4_t,
24523            c: float16x4_t,
24524            d: float16x4_t,
24525            n: i64,
24526            ptr: *const f16,
24527        ) -> float16x4x4_t;
24528    }
24529    _vld4_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24530}
24531#[doc = "Load multiple 4-element structures to two registers"]
24532#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f16)"]
24533#[doc = "## Safety"]
24534#[doc = "  * Neon intrinsic unsafe"]
24535#[inline(always)]
24536#[cfg(not(target_arch = "arm"))]
24537#[cfg_attr(
24538    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24539    assert_instr(ld4, LANE = 0)
24540)]
24541#[rustc_legacy_const_generics(2)]
24542#[target_feature(enable = "neon,fp16")]
24543#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24544#[cfg(not(target_arch = "arm64ec"))]
24545pub unsafe fn vld4q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x4_t) -> float16x8x4_t {
24546    static_assert_uimm_bits!(LANE, 3);
24547    unsafe extern "unadjusted" {
24548        #[cfg_attr(
24549            any(target_arch = "aarch64", target_arch = "arm64ec"),
24550            link_name = "llvm.aarch64.neon.ld4lane.v8f16.p0"
24551        )]
24552        fn _vld4q_lane_f16(
24553            a: float16x8_t,
24554            b: float16x8_t,
24555            c: float16x8_t,
24556            d: float16x8_t,
24557            n: i64,
24558            ptr: *const f16,
24559        ) -> float16x8x4_t;
24560    }
24561    _vld4q_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24562}
24563#[doc = "Load multiple 4-element structures to four registers"]
24564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)"]
24565#[doc = "## Safety"]
24566#[doc = "  * Neon intrinsic unsafe"]
24567#[inline(always)]
24568#[target_feature(enable = "neon")]
24569#[cfg(not(target_arch = "arm"))]
24570#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24571#[rustc_legacy_const_generics(2)]
24572#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24573pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
24574    static_assert_uimm_bits!(LANE, 1);
24575    unsafe extern "unadjusted" {
24576        #[cfg_attr(
24577            any(target_arch = "aarch64", target_arch = "arm64ec"),
24578            link_name = "llvm.aarch64.neon.ld4lane.v2f32.p0"
24579        )]
24580        fn _vld4_lane_f32(
24581            a: float32x2_t,
24582            b: float32x2_t,
24583            c: float32x2_t,
24584            d: float32x2_t,
24585            n: i64,
24586            ptr: *const i8,
24587        ) -> float32x2x4_t;
24588    }
24589    _vld4_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24590}
24591#[doc = "Load multiple 4-element structures to four registers"]
24592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)"]
24593#[doc = "## Safety"]
24594#[doc = "  * Neon intrinsic unsafe"]
24595#[inline(always)]
24596#[target_feature(enable = "neon")]
24597#[cfg(not(target_arch = "arm"))]
24598#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24599#[rustc_legacy_const_generics(2)]
24600#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24601pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
24602    static_assert_uimm_bits!(LANE, 2);
24603    unsafe extern "unadjusted" {
24604        #[cfg_attr(
24605            any(target_arch = "aarch64", target_arch = "arm64ec"),
24606            link_name = "llvm.aarch64.neon.ld4lane.v4f32.p0"
24607        )]
24608        fn _vld4q_lane_f32(
24609            a: float32x4_t,
24610            b: float32x4_t,
24611            c: float32x4_t,
24612            d: float32x4_t,
24613            n: i64,
24614            ptr: *const i8,
24615        ) -> float32x4x4_t;
24616    }
24617    _vld4q_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24618}
24619#[doc = "Load multiple 4-element structures to four registers"]
24620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)"]
24621#[doc = "## Safety"]
24622#[doc = "  * Neon intrinsic unsafe"]
24623#[inline(always)]
24624#[target_feature(enable = "neon")]
24625#[cfg(not(target_arch = "arm"))]
24626#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24627#[rustc_legacy_const_generics(2)]
24628#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24629pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
24630    static_assert_uimm_bits!(LANE, 3);
24631    unsafe extern "unadjusted" {
24632        #[cfg_attr(
24633            any(target_arch = "aarch64", target_arch = "arm64ec"),
24634            link_name = "llvm.aarch64.neon.ld4lane.v8i8.p0"
24635        )]
24636        fn _vld4_lane_s8(
24637            a: int8x8_t,
24638            b: int8x8_t,
24639            c: int8x8_t,
24640            d: int8x8_t,
24641            n: i64,
24642            ptr: *const i8,
24643        ) -> int8x8x4_t;
24644    }
24645    _vld4_lane_s8(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24646}
24647#[doc = "Load multiple 4-element structures to four registers"]
24648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)"]
24649#[doc = "## Safety"]
24650#[doc = "  * Neon intrinsic unsafe"]
24651#[inline(always)]
24652#[target_feature(enable = "neon")]
24653#[cfg(not(target_arch = "arm"))]
24654#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24655#[rustc_legacy_const_generics(2)]
24656#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24657pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
24658    static_assert_uimm_bits!(LANE, 2);
24659    unsafe extern "unadjusted" {
24660        #[cfg_attr(
24661            any(target_arch = "aarch64", target_arch = "arm64ec"),
24662            link_name = "llvm.aarch64.neon.ld4lane.v4i16.p0"
24663        )]
24664        fn _vld4_lane_s16(
24665            a: int16x4_t,
24666            b: int16x4_t,
24667            c: int16x4_t,
24668            d: int16x4_t,
24669            n: i64,
24670            ptr: *const i8,
24671        ) -> int16x4x4_t;
24672    }
24673    _vld4_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24674}
24675#[doc = "Load multiple 4-element structures to four registers"]
24676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)"]
24677#[doc = "## Safety"]
24678#[doc = "  * Neon intrinsic unsafe"]
24679#[inline(always)]
24680#[target_feature(enable = "neon")]
24681#[cfg(not(target_arch = "arm"))]
24682#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24683#[rustc_legacy_const_generics(2)]
24684#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24685pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
24686    static_assert_uimm_bits!(LANE, 3);
24687    unsafe extern "unadjusted" {
24688        #[cfg_attr(
24689            any(target_arch = "aarch64", target_arch = "arm64ec"),
24690            link_name = "llvm.aarch64.neon.ld4lane.v8i16.p0"
24691        )]
24692        fn _vld4q_lane_s16(
24693            a: int16x8_t,
24694            b: int16x8_t,
24695            c: int16x8_t,
24696            d: int16x8_t,
24697            n: i64,
24698            ptr: *const i8,
24699        ) -> int16x8x4_t;
24700    }
24701    _vld4q_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24702}
24703#[doc = "Load multiple 4-element structures to four registers"]
24704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)"]
24705#[doc = "## Safety"]
24706#[doc = "  * Neon intrinsic unsafe"]
24707#[inline(always)]
24708#[target_feature(enable = "neon")]
24709#[cfg(not(target_arch = "arm"))]
24710#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24711#[rustc_legacy_const_generics(2)]
24712#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24713pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
24714    static_assert_uimm_bits!(LANE, 1);
24715    unsafe extern "unadjusted" {
24716        #[cfg_attr(
24717            any(target_arch = "aarch64", target_arch = "arm64ec"),
24718            link_name = "llvm.aarch64.neon.ld4lane.v2i32.p0"
24719        )]
24720        fn _vld4_lane_s32(
24721            a: int32x2_t,
24722            b: int32x2_t,
24723            c: int32x2_t,
24724            d: int32x2_t,
24725            n: i64,
24726            ptr: *const i8,
24727        ) -> int32x2x4_t;
24728    }
24729    _vld4_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24730}
24731#[doc = "Load multiple 4-element structures to four registers"]
24732#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)"]
24733#[doc = "## Safety"]
24734#[doc = "  * Neon intrinsic unsafe"]
24735#[inline(always)]
24736#[target_feature(enable = "neon")]
24737#[cfg(not(target_arch = "arm"))]
24738#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24739#[rustc_legacy_const_generics(2)]
24740#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24741pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
24742    static_assert_uimm_bits!(LANE, 2);
24743    unsafe extern "unadjusted" {
24744        #[cfg_attr(
24745            any(target_arch = "aarch64", target_arch = "arm64ec"),
24746            link_name = "llvm.aarch64.neon.ld4lane.v4i32.p0"
24747        )]
24748        fn _vld4q_lane_s32(
24749            a: int32x4_t,
24750            b: int32x4_t,
24751            c: int32x4_t,
24752            d: int32x4_t,
24753            n: i64,
24754            ptr: *const i8,
24755        ) -> int32x4x4_t;
24756    }
24757    _vld4q_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24758}
24759#[doc = "Load multiple 4-element structures to four registers"]
24760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)"]
24761#[doc = "## Safety"]
24762#[doc = "  * Neon intrinsic unsafe"]
24763#[inline(always)]
24764#[target_feature(enable = "neon,v7")]
24765#[cfg(target_arch = "arm")]
24766#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24767#[rustc_legacy_const_generics(2)]
24768#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24769pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
24770    static_assert_uimm_bits!(LANE, 1);
24771    unsafe extern "unadjusted" {
24772        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2f32.p0")]
24773        fn _vld4_lane_f32(
24774            ptr: *const i8,
24775            a: float32x2_t,
24776            b: float32x2_t,
24777            c: float32x2_t,
24778            d: float32x2_t,
24779            n: i32,
24780            size: i32,
24781        ) -> float32x2x4_t;
24782    }
24783    _vld4_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
24784}
24785#[doc = "Load multiple 4-element structures to four registers"]
24786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)"]
24787#[doc = "## Safety"]
24788#[doc = "  * Neon intrinsic unsafe"]
24789#[inline(always)]
24790#[target_feature(enable = "neon,v7")]
24791#[cfg(target_arch = "arm")]
24792#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24793#[rustc_legacy_const_generics(2)]
24794#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24795pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
24796    static_assert_uimm_bits!(LANE, 2);
24797    unsafe extern "unadjusted" {
24798        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4f32.p0")]
24799        fn _vld4q_lane_f32(
24800            ptr: *const i8,
24801            a: float32x4_t,
24802            b: float32x4_t,
24803            c: float32x4_t,
24804            d: float32x4_t,
24805            n: i32,
24806            size: i32,
24807        ) -> float32x4x4_t;
24808    }
24809    _vld4q_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
24810}
24811#[doc = "Load multiple 4-element structures to four registers"]
24812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)"]
24813#[doc = "## Safety"]
24814#[doc = "  * Neon intrinsic unsafe"]
24815#[inline(always)]
24816#[target_feature(enable = "neon,v7")]
24817#[cfg(target_arch = "arm")]
24818#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24819#[rustc_legacy_const_generics(2)]
24820#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24821pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
24822    static_assert_uimm_bits!(LANE, 3);
24823    unsafe extern "unadjusted" {
24824        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i8.p0")]
24825        fn _vld4_lane_s8(
24826            ptr: *const i8,
24827            a: int8x8_t,
24828            b: int8x8_t,
24829            c: int8x8_t,
24830            d: int8x8_t,
24831            n: i32,
24832            size: i32,
24833        ) -> int8x8x4_t;
24834    }
24835    _vld4_lane_s8(a as _, b.0, b.1, b.2, b.3, LANE, 1)
24836}
24837#[doc = "Load multiple 4-element structures to four registers"]
24838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)"]
24839#[doc = "## Safety"]
24840#[doc = "  * Neon intrinsic unsafe"]
24841#[inline(always)]
24842#[target_feature(enable = "neon,v7")]
24843#[cfg(target_arch = "arm")]
24844#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24845#[rustc_legacy_const_generics(2)]
24846#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24847pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
24848    static_assert_uimm_bits!(LANE, 2);
24849    unsafe extern "unadjusted" {
24850        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i16.p0")]
24851        fn _vld4_lane_s16(
24852            ptr: *const i8,
24853            a: int16x4_t,
24854            b: int16x4_t,
24855            c: int16x4_t,
24856            d: int16x4_t,
24857            n: i32,
24858            size: i32,
24859        ) -> int16x4x4_t;
24860    }
24861    _vld4_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
24862}
24863#[doc = "Load multiple 4-element structures to four registers"]
24864#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)"]
24865#[doc = "## Safety"]
24866#[doc = "  * Neon intrinsic unsafe"]
24867#[inline(always)]
24868#[target_feature(enable = "neon,v7")]
24869#[cfg(target_arch = "arm")]
24870#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24871#[rustc_legacy_const_generics(2)]
24872#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24873pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
24874    static_assert_uimm_bits!(LANE, 3);
24875    unsafe extern "unadjusted" {
24876        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i16.p0")]
24877        fn _vld4q_lane_s16(
24878            ptr: *const i8,
24879            a: int16x8_t,
24880            b: int16x8_t,
24881            c: int16x8_t,
24882            d: int16x8_t,
24883            n: i32,
24884            size: i32,
24885        ) -> int16x8x4_t;
24886    }
24887    _vld4q_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
24888}
24889#[doc = "Load multiple 4-element structures to four registers"]
24890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)"]
24891#[doc = "## Safety"]
24892#[doc = "  * Neon intrinsic unsafe"]
24893#[inline(always)]
24894#[target_feature(enable = "neon,v7")]
24895#[cfg(target_arch = "arm")]
24896#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24897#[rustc_legacy_const_generics(2)]
24898#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24899pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
24900    static_assert_uimm_bits!(LANE, 1);
24901    unsafe extern "unadjusted" {
24902        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2i32.p0")]
24903        fn _vld4_lane_s32(
24904            ptr: *const i8,
24905            a: int32x2_t,
24906            b: int32x2_t,
24907            c: int32x2_t,
24908            d: int32x2_t,
24909            n: i32,
24910            size: i32,
24911        ) -> int32x2x4_t;
24912    }
24913    _vld4_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
24914}
24915#[doc = "Load multiple 4-element structures to four registers"]
24916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)"]
24917#[doc = "## Safety"]
24918#[doc = "  * Neon intrinsic unsafe"]
24919#[inline(always)]
24920#[target_feature(enable = "neon,v7")]
24921#[cfg(target_arch = "arm")]
24922#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24923#[rustc_legacy_const_generics(2)]
24924#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24925pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
24926    static_assert_uimm_bits!(LANE, 2);
24927    unsafe extern "unadjusted" {
24928        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i32.p0")]
24929        fn _vld4q_lane_s32(
24930            ptr: *const i8,
24931            a: int32x4_t,
24932            b: int32x4_t,
24933            c: int32x4_t,
24934            d: int32x4_t,
24935            n: i32,
24936            size: i32,
24937        ) -> int32x4x4_t;
24938    }
24939    _vld4q_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
24940}
24941#[doc = "Load multiple 4-element structures to four registers"]
24942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u8)"]
24943#[doc = "## Safety"]
24944#[doc = "  * Neon intrinsic unsafe"]
24945#[inline(always)]
24946#[target_feature(enable = "neon")]
24947#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24948#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
24949#[cfg_attr(
24950    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24951    assert_instr(ld4, LANE = 0)
24952)]
24953#[rustc_legacy_const_generics(2)]
24954#[cfg_attr(
24955    not(target_arch = "arm"),
24956    stable(feature = "neon_intrinsics", since = "1.59.0")
24957)]
24958#[cfg_attr(
24959    target_arch = "arm",
24960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24961)]
24962pub unsafe fn vld4_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x4_t) -> uint8x8x4_t {
24963    static_assert_uimm_bits!(LANE, 3);
24964    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
24965}
24966#[doc = "Load multiple 4-element structures to four registers"]
24967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u16)"]
24968#[doc = "## Safety"]
24969#[doc = "  * Neon intrinsic unsafe"]
24970#[inline(always)]
24971#[target_feature(enable = "neon")]
24972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24973#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
24974#[cfg_attr(
24975    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24976    assert_instr(ld4, LANE = 0)
24977)]
24978#[rustc_legacy_const_generics(2)]
24979#[cfg_attr(
24980    not(target_arch = "arm"),
24981    stable(feature = "neon_intrinsics", since = "1.59.0")
24982)]
24983#[cfg_attr(
24984    target_arch = "arm",
24985    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24986)]
24987pub unsafe fn vld4_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x4_t) -> uint16x4x4_t {
24988    static_assert_uimm_bits!(LANE, 2);
24989    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
24990}
24991#[doc = "Load multiple 4-element structures to four registers"]
24992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u16)"]
24993#[doc = "## Safety"]
24994#[doc = "  * Neon intrinsic unsafe"]
24995#[inline(always)]
24996#[target_feature(enable = "neon")]
24997#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24998#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
24999#[cfg_attr(
25000    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25001    assert_instr(ld4, LANE = 0)
25002)]
25003#[rustc_legacy_const_generics(2)]
25004#[cfg_attr(
25005    not(target_arch = "arm"),
25006    stable(feature = "neon_intrinsics", since = "1.59.0")
25007)]
25008#[cfg_attr(
25009    target_arch = "arm",
25010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25011)]
25012pub unsafe fn vld4q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x4_t) -> uint16x8x4_t {
25013    static_assert_uimm_bits!(LANE, 3);
25014    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
25015}
25016#[doc = "Load multiple 4-element structures to four registers"]
25017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u32)"]
25018#[doc = "## Safety"]
25019#[doc = "  * Neon intrinsic unsafe"]
25020#[inline(always)]
25021#[target_feature(enable = "neon")]
25022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25024#[cfg_attr(
25025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25026    assert_instr(ld4, LANE = 0)
25027)]
25028#[rustc_legacy_const_generics(2)]
25029#[cfg_attr(
25030    not(target_arch = "arm"),
25031    stable(feature = "neon_intrinsics", since = "1.59.0")
25032)]
25033#[cfg_attr(
25034    target_arch = "arm",
25035    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25036)]
25037pub unsafe fn vld4_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x4_t) -> uint32x2x4_t {
25038    static_assert_uimm_bits!(LANE, 1);
25039    transmute(vld4_lane_s32::<LANE>(transmute(a), transmute(b)))
25040}
25041#[doc = "Load multiple 4-element structures to four registers"]
25042#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u32)"]
25043#[doc = "## Safety"]
25044#[doc = "  * Neon intrinsic unsafe"]
25045#[inline(always)]
25046#[target_feature(enable = "neon")]
25047#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25048#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25049#[cfg_attr(
25050    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25051    assert_instr(ld4, LANE = 0)
25052)]
25053#[rustc_legacy_const_generics(2)]
25054#[cfg_attr(
25055    not(target_arch = "arm"),
25056    stable(feature = "neon_intrinsics", since = "1.59.0")
25057)]
25058#[cfg_attr(
25059    target_arch = "arm",
25060    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25061)]
25062pub unsafe fn vld4q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x4_t) -> uint32x4x4_t {
25063    static_assert_uimm_bits!(LANE, 2);
25064    transmute(vld4q_lane_s32::<LANE>(transmute(a), transmute(b)))
25065}
25066#[doc = "Load multiple 4-element structures to four registers"]
25067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p8)"]
25068#[doc = "## Safety"]
25069#[doc = "  * Neon intrinsic unsafe"]
25070#[inline(always)]
25071#[target_feature(enable = "neon")]
25072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25073#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25074#[cfg_attr(
25075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25076    assert_instr(ld4, LANE = 0)
25077)]
25078#[rustc_legacy_const_generics(2)]
25079#[cfg_attr(
25080    not(target_arch = "arm"),
25081    stable(feature = "neon_intrinsics", since = "1.59.0")
25082)]
25083#[cfg_attr(
25084    target_arch = "arm",
25085    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25086)]
25087pub unsafe fn vld4_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x4_t) -> poly8x8x4_t {
25088    static_assert_uimm_bits!(LANE, 3);
25089    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
25090}
25091#[doc = "Load multiple 4-element structures to four registers"]
25092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p16)"]
25093#[doc = "## Safety"]
25094#[doc = "  * Neon intrinsic unsafe"]
25095#[inline(always)]
25096#[target_feature(enable = "neon")]
25097#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25098#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25099#[cfg_attr(
25100    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25101    assert_instr(ld4, LANE = 0)
25102)]
25103#[rustc_legacy_const_generics(2)]
25104#[cfg_attr(
25105    not(target_arch = "arm"),
25106    stable(feature = "neon_intrinsics", since = "1.59.0")
25107)]
25108#[cfg_attr(
25109    target_arch = "arm",
25110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25111)]
25112pub unsafe fn vld4_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x4_t) -> poly16x4x4_t {
25113    static_assert_uimm_bits!(LANE, 2);
25114    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
25115}
25116#[doc = "Load multiple 4-element structures to four registers"]
25117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_p16)"]
25118#[doc = "## Safety"]
25119#[doc = "  * Neon intrinsic unsafe"]
25120#[inline(always)]
25121#[target_feature(enable = "neon")]
25122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25124#[cfg_attr(
25125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25126    assert_instr(ld4, LANE = 0)
25127)]
25128#[rustc_legacy_const_generics(2)]
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 vld4q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x4_t) -> poly16x8x4_t {
25138    static_assert_uimm_bits!(LANE, 3);
25139    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
25140}
25141#[doc = "Load multiple 4-element structures to four registers"]
25142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p64)"]
25143#[doc = "## Safety"]
25144#[doc = "  * Neon intrinsic unsafe"]
25145#[inline(always)]
25146#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25147#[target_feature(enable = "neon,aes")]
25148#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25149#[cfg_attr(
25150    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25151    assert_instr(nop)
25152)]
25153#[cfg_attr(
25154    not(target_arch = "arm"),
25155    stable(feature = "neon_intrinsics", since = "1.59.0")
25156)]
25157#[cfg_attr(
25158    target_arch = "arm",
25159    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25160)]
25161pub unsafe fn vld4_p64(a: *const p64) -> poly64x1x4_t {
25162    transmute(vld4_s64(transmute(a)))
25163}
25164#[doc = "Load multiple 4-element structures to four registers"]
25165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)"]
25166#[doc = "## Safety"]
25167#[doc = "  * Neon intrinsic unsafe"]
25168#[inline(always)]
25169#[target_feature(enable = "neon")]
25170#[cfg(not(target_arch = "arm"))]
25171#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25172#[cfg_attr(test, assert_instr(nop))]
25173pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
25174    crate::ptr::read_unaligned(a.cast())
25175}
25176#[doc = "Load multiple 4-element structures to four registers"]
25177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)"]
25178#[doc = "## Safety"]
25179#[doc = "  * Neon intrinsic unsafe"]
25180#[inline(always)]
25181#[target_feature(enable = "neon,v7")]
25182#[cfg(target_arch = "arm")]
25183#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25184#[cfg_attr(test, assert_instr(nop))]
25185pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
25186    unsafe extern "unadjusted" {
25187        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v1i64.p0")]
25188        fn _vld4_s64(ptr: *const i8, size: i32) -> int64x1x4_t;
25189    }
25190    _vld4_s64(a as *const i8, 8)
25191}
25192#[doc = "Load multiple 4-element structures to four registers"]
25193#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u64)"]
25194#[doc = "## Safety"]
25195#[doc = "  * Neon intrinsic unsafe"]
25196#[inline(always)]
25197#[target_feature(enable = "neon")]
25198#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25199#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25200#[cfg_attr(
25201    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25202    assert_instr(nop)
25203)]
25204#[cfg_attr(
25205    not(target_arch = "arm"),
25206    stable(feature = "neon_intrinsics", since = "1.59.0")
25207)]
25208#[cfg_attr(
25209    target_arch = "arm",
25210    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25211)]
25212pub unsafe fn vld4_u64(a: *const u64) -> uint64x1x4_t {
25213    transmute(vld4_s64(transmute(a)))
25214}
25215#[doc = "Load multiple 4-element structures to four registers"]
25216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u8)"]
25217#[doc = "## Safety"]
25218#[doc = "  * Neon intrinsic unsafe"]
25219#[inline(always)]
25220#[target_feature(enable = "neon")]
25221#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25222#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25223#[cfg_attr(
25224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25225    assert_instr(ld4)
25226)]
25227#[cfg_attr(
25228    not(target_arch = "arm"),
25229    stable(feature = "neon_intrinsics", since = "1.59.0")
25230)]
25231#[cfg_attr(
25232    target_arch = "arm",
25233    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25234)]
25235pub unsafe fn vld4_u8(a: *const u8) -> uint8x8x4_t {
25236    transmute(vld4_s8(transmute(a)))
25237}
25238#[doc = "Load multiple 4-element structures to four registers"]
25239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u8)"]
25240#[doc = "## Safety"]
25241#[doc = "  * Neon intrinsic unsafe"]
25242#[inline(always)]
25243#[target_feature(enable = "neon")]
25244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25245#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25246#[cfg_attr(
25247    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25248    assert_instr(ld4)
25249)]
25250#[cfg_attr(
25251    not(target_arch = "arm"),
25252    stable(feature = "neon_intrinsics", since = "1.59.0")
25253)]
25254#[cfg_attr(
25255    target_arch = "arm",
25256    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25257)]
25258pub unsafe fn vld4q_u8(a: *const u8) -> uint8x16x4_t {
25259    transmute(vld4q_s8(transmute(a)))
25260}
25261#[doc = "Load multiple 4-element structures to four registers"]
25262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u16)"]
25263#[doc = "## Safety"]
25264#[doc = "  * Neon intrinsic unsafe"]
25265#[inline(always)]
25266#[target_feature(enable = "neon")]
25267#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25268#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25269#[cfg_attr(
25270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25271    assert_instr(ld4)
25272)]
25273#[cfg_attr(
25274    not(target_arch = "arm"),
25275    stable(feature = "neon_intrinsics", since = "1.59.0")
25276)]
25277#[cfg_attr(
25278    target_arch = "arm",
25279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25280)]
25281pub unsafe fn vld4_u16(a: *const u16) -> uint16x4x4_t {
25282    transmute(vld4_s16(transmute(a)))
25283}
25284#[doc = "Load multiple 4-element structures to four registers"]
25285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u16)"]
25286#[doc = "## Safety"]
25287#[doc = "  * Neon intrinsic unsafe"]
25288#[inline(always)]
25289#[target_feature(enable = "neon")]
25290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25291#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25292#[cfg_attr(
25293    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25294    assert_instr(ld4)
25295)]
25296#[cfg_attr(
25297    not(target_arch = "arm"),
25298    stable(feature = "neon_intrinsics", since = "1.59.0")
25299)]
25300#[cfg_attr(
25301    target_arch = "arm",
25302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25303)]
25304pub unsafe fn vld4q_u16(a: *const u16) -> uint16x8x4_t {
25305    transmute(vld4q_s16(transmute(a)))
25306}
25307#[doc = "Load multiple 4-element structures to four registers"]
25308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u32)"]
25309#[doc = "## Safety"]
25310#[doc = "  * Neon intrinsic unsafe"]
25311#[inline(always)]
25312#[target_feature(enable = "neon")]
25313#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25314#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25315#[cfg_attr(
25316    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25317    assert_instr(ld4)
25318)]
25319#[cfg_attr(
25320    not(target_arch = "arm"),
25321    stable(feature = "neon_intrinsics", since = "1.59.0")
25322)]
25323#[cfg_attr(
25324    target_arch = "arm",
25325    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25326)]
25327pub unsafe fn vld4_u32(a: *const u32) -> uint32x2x4_t {
25328    transmute(vld4_s32(transmute(a)))
25329}
25330#[doc = "Load multiple 4-element structures to four registers"]
25331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u32)"]
25332#[doc = "## Safety"]
25333#[doc = "  * Neon intrinsic unsafe"]
25334#[inline(always)]
25335#[target_feature(enable = "neon")]
25336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25337#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25338#[cfg_attr(
25339    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25340    assert_instr(ld4)
25341)]
25342#[cfg_attr(
25343    not(target_arch = "arm"),
25344    stable(feature = "neon_intrinsics", since = "1.59.0")
25345)]
25346#[cfg_attr(
25347    target_arch = "arm",
25348    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25349)]
25350pub unsafe fn vld4q_u32(a: *const u32) -> uint32x4x4_t {
25351    transmute(vld4q_s32(transmute(a)))
25352}
25353#[doc = "Load multiple 4-element structures to four registers"]
25354#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p8)"]
25355#[doc = "## Safety"]
25356#[doc = "  * Neon intrinsic unsafe"]
25357#[inline(always)]
25358#[target_feature(enable = "neon")]
25359#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25360#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25361#[cfg_attr(
25362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25363    assert_instr(ld4)
25364)]
25365#[cfg_attr(
25366    not(target_arch = "arm"),
25367    stable(feature = "neon_intrinsics", since = "1.59.0")
25368)]
25369#[cfg_attr(
25370    target_arch = "arm",
25371    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25372)]
25373pub unsafe fn vld4_p8(a: *const p8) -> poly8x8x4_t {
25374    transmute(vld4_s8(transmute(a)))
25375}
25376#[doc = "Load multiple 4-element structures to four registers"]
25377#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p8)"]
25378#[doc = "## Safety"]
25379#[doc = "  * Neon intrinsic unsafe"]
25380#[inline(always)]
25381#[target_feature(enable = "neon")]
25382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25383#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25384#[cfg_attr(
25385    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25386    assert_instr(ld4)
25387)]
25388#[cfg_attr(
25389    not(target_arch = "arm"),
25390    stable(feature = "neon_intrinsics", since = "1.59.0")
25391)]
25392#[cfg_attr(
25393    target_arch = "arm",
25394    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25395)]
25396pub unsafe fn vld4q_p8(a: *const p8) -> poly8x16x4_t {
25397    transmute(vld4q_s8(transmute(a)))
25398}
25399#[doc = "Load multiple 4-element structures to four registers"]
25400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p16)"]
25401#[doc = "## Safety"]
25402#[doc = "  * Neon intrinsic unsafe"]
25403#[inline(always)]
25404#[target_feature(enable = "neon")]
25405#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25406#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25407#[cfg_attr(
25408    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25409    assert_instr(ld4)
25410)]
25411#[cfg_attr(
25412    not(target_arch = "arm"),
25413    stable(feature = "neon_intrinsics", since = "1.59.0")
25414)]
25415#[cfg_attr(
25416    target_arch = "arm",
25417    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25418)]
25419pub unsafe fn vld4_p16(a: *const p16) -> poly16x4x4_t {
25420    transmute(vld4_s16(transmute(a)))
25421}
25422#[doc = "Load multiple 4-element structures to four registers"]
25423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p16)"]
25424#[doc = "## Safety"]
25425#[doc = "  * Neon intrinsic unsafe"]
25426#[inline(always)]
25427#[target_feature(enable = "neon")]
25428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25429#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25430#[cfg_attr(
25431    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25432    assert_instr(ld4)
25433)]
25434#[cfg_attr(
25435    not(target_arch = "arm"),
25436    stable(feature = "neon_intrinsics", since = "1.59.0")
25437)]
25438#[cfg_attr(
25439    target_arch = "arm",
25440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25441)]
25442pub unsafe fn vld4q_p16(a: *const p16) -> poly16x8x4_t {
25443    transmute(vld4q_s16(transmute(a)))
25444}
25445#[doc = "Store SIMD&FP register (immediate offset)"]
25446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vldrq_p128)"]
25447#[doc = "## Safety"]
25448#[doc = "  * Neon intrinsic unsafe"]
25449#[inline(always)]
25450#[target_feature(enable = "neon")]
25451#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25452#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25453#[cfg_attr(
25454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25455    assert_instr(nop)
25456)]
25457#[cfg_attr(
25458    not(target_arch = "arm"),
25459    stable(feature = "neon_intrinsics", since = "1.59.0")
25460)]
25461#[cfg_attr(
25462    target_arch = "arm",
25463    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25464)]
25465pub unsafe fn vldrq_p128(a: *const p128) -> p128 {
25466    *a
25467}
25468#[doc = "Maximum (vector)"]
25469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_f16)"]
25470#[inline(always)]
25471#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25472#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25473#[cfg_attr(
25474    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25475    assert_instr(fmax)
25476)]
25477#[target_feature(enable = "neon,fp16")]
25478#[cfg_attr(
25479    not(target_arch = "arm"),
25480    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
25481)]
25482#[cfg_attr(
25483    target_arch = "arm",
25484    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25485)]
25486#[cfg(not(target_arch = "arm64ec"))]
25487pub fn vmax_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
25488    unsafe extern "unadjusted" {
25489        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4f16")]
25490        #[cfg_attr(
25491            any(target_arch = "aarch64", target_arch = "arm64ec"),
25492            link_name = "llvm.aarch64.neon.fmax.v4f16"
25493        )]
25494        fn _vmax_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
25495    }
25496    unsafe { _vmax_f16(a, b) }
25497}
25498#[doc = "Maximum (vector)"]
25499#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_f16)"]
25500#[inline(always)]
25501#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25502#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25503#[cfg_attr(
25504    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25505    assert_instr(fmax)
25506)]
25507#[target_feature(enable = "neon,fp16")]
25508#[cfg_attr(
25509    not(target_arch = "arm"),
25510    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
25511)]
25512#[cfg_attr(
25513    target_arch = "arm",
25514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25515)]
25516#[cfg(not(target_arch = "arm64ec"))]
25517pub fn vmaxq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
25518    unsafe extern "unadjusted" {
25519        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v8f16")]
25520        #[cfg_attr(
25521            any(target_arch = "aarch64", target_arch = "arm64ec"),
25522            link_name = "llvm.aarch64.neon.fmax.v8f16"
25523        )]
25524        fn _vmaxq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
25525    }
25526    unsafe { _vmaxq_f16(a, b) }
25527}
25528#[doc = "Maximum (vector)"]
25529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_f32)"]
25530#[inline(always)]
25531#[target_feature(enable = "neon")]
25532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25533#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25534#[cfg_attr(
25535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25536    assert_instr(fmax)
25537)]
25538#[cfg_attr(
25539    not(target_arch = "arm"),
25540    stable(feature = "neon_intrinsics", since = "1.59.0")
25541)]
25542#[cfg_attr(
25543    target_arch = "arm",
25544    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25545)]
25546pub fn vmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
25547    unsafe extern "unadjusted" {
25548        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v2f32")]
25549        #[cfg_attr(
25550            any(target_arch = "aarch64", target_arch = "arm64ec"),
25551            link_name = "llvm.aarch64.neon.fmax.v2f32"
25552        )]
25553        fn _vmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
25554    }
25555    unsafe { _vmax_f32(a, b) }
25556}
25557#[doc = "Maximum (vector)"]
25558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_f32)"]
25559#[inline(always)]
25560#[target_feature(enable = "neon")]
25561#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25562#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25563#[cfg_attr(
25564    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25565    assert_instr(fmax)
25566)]
25567#[cfg_attr(
25568    not(target_arch = "arm"),
25569    stable(feature = "neon_intrinsics", since = "1.59.0")
25570)]
25571#[cfg_attr(
25572    target_arch = "arm",
25573    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25574)]
25575pub fn vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
25576    unsafe extern "unadjusted" {
25577        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4f32")]
25578        #[cfg_attr(
25579            any(target_arch = "aarch64", target_arch = "arm64ec"),
25580            link_name = "llvm.aarch64.neon.fmax.v4f32"
25581        )]
25582        fn _vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
25583    }
25584    unsafe { _vmaxq_f32(a, b) }
25585}
25586#[doc = "Maximum (vector)"]
25587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s8)"]
25588#[inline(always)]
25589#[target_feature(enable = "neon")]
25590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25592#[cfg_attr(
25593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25594    assert_instr(smax)
25595)]
25596#[cfg_attr(
25597    not(target_arch = "arm"),
25598    stable(feature = "neon_intrinsics", since = "1.59.0")
25599)]
25600#[cfg_attr(
25601    target_arch = "arm",
25602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25603)]
25604pub fn vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
25605    unsafe {
25606        let mask: int8x8_t = simd_ge(a, b);
25607        simd_select(mask, a, b)
25608    }
25609}
25610#[doc = "Maximum (vector)"]
25611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s8)"]
25612#[inline(always)]
25613#[target_feature(enable = "neon")]
25614#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25615#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25616#[cfg_attr(
25617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25618    assert_instr(smax)
25619)]
25620#[cfg_attr(
25621    not(target_arch = "arm"),
25622    stable(feature = "neon_intrinsics", since = "1.59.0")
25623)]
25624#[cfg_attr(
25625    target_arch = "arm",
25626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25627)]
25628pub fn vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
25629    unsafe {
25630        let mask: int8x16_t = simd_ge(a, b);
25631        simd_select(mask, a, b)
25632    }
25633}
25634#[doc = "Maximum (vector)"]
25635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s16)"]
25636#[inline(always)]
25637#[target_feature(enable = "neon")]
25638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25640#[cfg_attr(
25641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25642    assert_instr(smax)
25643)]
25644#[cfg_attr(
25645    not(target_arch = "arm"),
25646    stable(feature = "neon_intrinsics", since = "1.59.0")
25647)]
25648#[cfg_attr(
25649    target_arch = "arm",
25650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25651)]
25652pub fn vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
25653    unsafe {
25654        let mask: int16x4_t = simd_ge(a, b);
25655        simd_select(mask, a, b)
25656    }
25657}
25658#[doc = "Maximum (vector)"]
25659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s16)"]
25660#[inline(always)]
25661#[target_feature(enable = "neon")]
25662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25664#[cfg_attr(
25665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25666    assert_instr(smax)
25667)]
25668#[cfg_attr(
25669    not(target_arch = "arm"),
25670    stable(feature = "neon_intrinsics", since = "1.59.0")
25671)]
25672#[cfg_attr(
25673    target_arch = "arm",
25674    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25675)]
25676pub fn vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
25677    unsafe {
25678        let mask: int16x8_t = simd_ge(a, b);
25679        simd_select(mask, a, b)
25680    }
25681}
25682#[doc = "Maximum (vector)"]
25683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s32)"]
25684#[inline(always)]
25685#[target_feature(enable = "neon")]
25686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25688#[cfg_attr(
25689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25690    assert_instr(smax)
25691)]
25692#[cfg_attr(
25693    not(target_arch = "arm"),
25694    stable(feature = "neon_intrinsics", since = "1.59.0")
25695)]
25696#[cfg_attr(
25697    target_arch = "arm",
25698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25699)]
25700pub fn vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
25701    unsafe {
25702        let mask: int32x2_t = simd_ge(a, b);
25703        simd_select(mask, a, b)
25704    }
25705}
25706#[doc = "Maximum (vector)"]
25707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s32)"]
25708#[inline(always)]
25709#[target_feature(enable = "neon")]
25710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25711#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25712#[cfg_attr(
25713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25714    assert_instr(smax)
25715)]
25716#[cfg_attr(
25717    not(target_arch = "arm"),
25718    stable(feature = "neon_intrinsics", since = "1.59.0")
25719)]
25720#[cfg_attr(
25721    target_arch = "arm",
25722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25723)]
25724pub fn vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
25725    unsafe {
25726        let mask: int32x4_t = simd_ge(a, b);
25727        simd_select(mask, a, b)
25728    }
25729}
25730#[doc = "Maximum (vector)"]
25731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u8)"]
25732#[inline(always)]
25733#[target_feature(enable = "neon")]
25734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25736#[cfg_attr(
25737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25738    assert_instr(umax)
25739)]
25740#[cfg_attr(
25741    not(target_arch = "arm"),
25742    stable(feature = "neon_intrinsics", since = "1.59.0")
25743)]
25744#[cfg_attr(
25745    target_arch = "arm",
25746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25747)]
25748pub fn vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
25749    unsafe {
25750        let mask: uint8x8_t = simd_ge(a, b);
25751        simd_select(mask, a, b)
25752    }
25753}
25754#[doc = "Maximum (vector)"]
25755#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u8)"]
25756#[inline(always)]
25757#[target_feature(enable = "neon")]
25758#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25759#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25760#[cfg_attr(
25761    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25762    assert_instr(umax)
25763)]
25764#[cfg_attr(
25765    not(target_arch = "arm"),
25766    stable(feature = "neon_intrinsics", since = "1.59.0")
25767)]
25768#[cfg_attr(
25769    target_arch = "arm",
25770    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25771)]
25772pub fn vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
25773    unsafe {
25774        let mask: uint8x16_t = simd_ge(a, b);
25775        simd_select(mask, a, b)
25776    }
25777}
25778#[doc = "Maximum (vector)"]
25779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u16)"]
25780#[inline(always)]
25781#[target_feature(enable = "neon")]
25782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25784#[cfg_attr(
25785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25786    assert_instr(umax)
25787)]
25788#[cfg_attr(
25789    not(target_arch = "arm"),
25790    stable(feature = "neon_intrinsics", since = "1.59.0")
25791)]
25792#[cfg_attr(
25793    target_arch = "arm",
25794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25795)]
25796pub fn vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
25797    unsafe {
25798        let mask: uint16x4_t = simd_ge(a, b);
25799        simd_select(mask, a, b)
25800    }
25801}
25802#[doc = "Maximum (vector)"]
25803#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u16)"]
25804#[inline(always)]
25805#[target_feature(enable = "neon")]
25806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25807#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25808#[cfg_attr(
25809    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25810    assert_instr(umax)
25811)]
25812#[cfg_attr(
25813    not(target_arch = "arm"),
25814    stable(feature = "neon_intrinsics", since = "1.59.0")
25815)]
25816#[cfg_attr(
25817    target_arch = "arm",
25818    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25819)]
25820pub fn vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
25821    unsafe {
25822        let mask: uint16x8_t = simd_ge(a, b);
25823        simd_select(mask, a, b)
25824    }
25825}
25826#[doc = "Maximum (vector)"]
25827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u32)"]
25828#[inline(always)]
25829#[target_feature(enable = "neon")]
25830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25832#[cfg_attr(
25833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25834    assert_instr(umax)
25835)]
25836#[cfg_attr(
25837    not(target_arch = "arm"),
25838    stable(feature = "neon_intrinsics", since = "1.59.0")
25839)]
25840#[cfg_attr(
25841    target_arch = "arm",
25842    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25843)]
25844pub fn vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
25845    unsafe {
25846        let mask: uint32x2_t = simd_ge(a, b);
25847        simd_select(mask, a, b)
25848    }
25849}
25850#[doc = "Maximum (vector)"]
25851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u32)"]
25852#[inline(always)]
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(vmax))]
25856#[cfg_attr(
25857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25858    assert_instr(umax)
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 fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
25869    unsafe {
25870        let mask: uint32x4_t = simd_ge(a, b);
25871        simd_select(mask, a, b)
25872    }
25873}
25874#[doc = "Floating-point Maximum Number (vector)"]
25875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f16)"]
25876#[inline(always)]
25877#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
25878#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
25879#[cfg_attr(
25880    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25881    assert_instr(fmaxnm)
25882)]
25883#[target_feature(enable = "neon,fp16")]
25884#[cfg_attr(
25885    not(target_arch = "arm"),
25886    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
25887)]
25888#[cfg_attr(
25889    target_arch = "arm",
25890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25891)]
25892#[cfg(not(target_arch = "arm64ec"))]
25893pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
25894    unsafe extern "unadjusted" {
25895        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v4f16")]
25896        #[cfg_attr(
25897            any(target_arch = "aarch64", target_arch = "arm64ec"),
25898            link_name = "llvm.aarch64.neon.fmaxnm.v4f16"
25899        )]
25900        fn _vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
25901    }
25902    unsafe { _vmaxnm_f16(a, b) }
25903}
25904#[doc = "Floating-point Maximum Number (vector)"]
25905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f16)"]
25906#[inline(always)]
25907#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
25908#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
25909#[cfg_attr(
25910    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25911    assert_instr(fmaxnm)
25912)]
25913#[target_feature(enable = "neon,fp16")]
25914#[cfg_attr(
25915    not(target_arch = "arm"),
25916    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
25917)]
25918#[cfg_attr(
25919    target_arch = "arm",
25920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25921)]
25922#[cfg(not(target_arch = "arm64ec"))]
25923pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
25924    unsafe extern "unadjusted" {
25925        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v8f16")]
25926        #[cfg_attr(
25927            any(target_arch = "aarch64", target_arch = "arm64ec"),
25928            link_name = "llvm.aarch64.neon.fmaxnm.v8f16"
25929        )]
25930        fn _vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
25931    }
25932    unsafe { _vmaxnmq_f16(a, b) }
25933}
25934#[doc = "Floating-point Maximum Number (vector)"]
25935#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f32)"]
25936#[inline(always)]
25937#[target_feature(enable = "neon")]
25938#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
25939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
25940#[cfg_attr(
25941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25942    assert_instr(fmaxnm)
25943)]
25944#[cfg_attr(
25945    not(target_arch = "arm"),
25946    stable(feature = "neon_intrinsics", since = "1.59.0")
25947)]
25948#[cfg_attr(
25949    target_arch = "arm",
25950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25951)]
25952pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
25953    unsafe extern "unadjusted" {
25954        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v2f32")]
25955        #[cfg_attr(
25956            any(target_arch = "aarch64", target_arch = "arm64ec"),
25957            link_name = "llvm.aarch64.neon.fmaxnm.v2f32"
25958        )]
25959        fn _vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
25960    }
25961    unsafe { _vmaxnm_f32(a, b) }
25962}
25963#[doc = "Floating-point Maximum Number (vector)"]
25964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f32)"]
25965#[inline(always)]
25966#[target_feature(enable = "neon")]
25967#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
25968#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
25969#[cfg_attr(
25970    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25971    assert_instr(fmaxnm)
25972)]
25973#[cfg_attr(
25974    not(target_arch = "arm"),
25975    stable(feature = "neon_intrinsics", since = "1.59.0")
25976)]
25977#[cfg_attr(
25978    target_arch = "arm",
25979    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25980)]
25981pub fn vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
25982    unsafe extern "unadjusted" {
25983        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v4f32")]
25984        #[cfg_attr(
25985            any(target_arch = "aarch64", target_arch = "arm64ec"),
25986            link_name = "llvm.aarch64.neon.fmaxnm.v4f32"
25987        )]
25988        fn _vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
25989    }
25990    unsafe { _vmaxnmq_f32(a, b) }
25991}
25992#[doc = "Minimum (vector)"]
25993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f16)"]
25994#[inline(always)]
25995#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25996#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
25997#[cfg_attr(
25998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25999    assert_instr(fmin)
26000)]
26001#[target_feature(enable = "neon,fp16")]
26002#[cfg_attr(
26003    not(target_arch = "arm"),
26004    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26005)]
26006#[cfg_attr(
26007    target_arch = "arm",
26008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26009)]
26010#[cfg(not(target_arch = "arm64ec"))]
26011pub fn vmin_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
26012    unsafe extern "unadjusted" {
26013        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4f16")]
26014        #[cfg_attr(
26015            any(target_arch = "aarch64", target_arch = "arm64ec"),
26016            link_name = "llvm.aarch64.neon.fmin.v4f16"
26017        )]
26018        fn _vmin_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
26019    }
26020    unsafe { _vmin_f16(a, b) }
26021}
26022#[doc = "Minimum (vector)"]
26023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_f16)"]
26024#[inline(always)]
26025#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26026#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26027#[cfg_attr(
26028    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26029    assert_instr(fmin)
26030)]
26031#[target_feature(enable = "neon,fp16")]
26032#[cfg_attr(
26033    not(target_arch = "arm"),
26034    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26035)]
26036#[cfg_attr(
26037    target_arch = "arm",
26038    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26039)]
26040#[cfg(not(target_arch = "arm64ec"))]
26041pub fn vminq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
26042    unsafe extern "unadjusted" {
26043        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v8f16")]
26044        #[cfg_attr(
26045            any(target_arch = "aarch64", target_arch = "arm64ec"),
26046            link_name = "llvm.aarch64.neon.fmin.v8f16"
26047        )]
26048        fn _vminq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
26049    }
26050    unsafe { _vminq_f16(a, b) }
26051}
26052#[doc = "Minimum (vector)"]
26053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f32)"]
26054#[inline(always)]
26055#[target_feature(enable = "neon")]
26056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26058#[cfg_attr(
26059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26060    assert_instr(fmin)
26061)]
26062#[cfg_attr(
26063    not(target_arch = "arm"),
26064    stable(feature = "neon_intrinsics", since = "1.59.0")
26065)]
26066#[cfg_attr(
26067    target_arch = "arm",
26068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26069)]
26070pub fn vmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
26071    unsafe extern "unadjusted" {
26072        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v2f32")]
26073        #[cfg_attr(
26074            any(target_arch = "aarch64", target_arch = "arm64ec"),
26075            link_name = "llvm.aarch64.neon.fmin.v2f32"
26076        )]
26077        fn _vmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
26078    }
26079    unsafe { _vmin_f32(a, b) }
26080}
26081#[doc = "Minimum (vector)"]
26082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_f32)"]
26083#[inline(always)]
26084#[target_feature(enable = "neon")]
26085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26086#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26087#[cfg_attr(
26088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26089    assert_instr(fmin)
26090)]
26091#[cfg_attr(
26092    not(target_arch = "arm"),
26093    stable(feature = "neon_intrinsics", since = "1.59.0")
26094)]
26095#[cfg_attr(
26096    target_arch = "arm",
26097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26098)]
26099pub fn vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
26100    unsafe extern "unadjusted" {
26101        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4f32")]
26102        #[cfg_attr(
26103            any(target_arch = "aarch64", target_arch = "arm64ec"),
26104            link_name = "llvm.aarch64.neon.fmin.v4f32"
26105        )]
26106        fn _vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
26107    }
26108    unsafe { _vminq_f32(a, b) }
26109}
26110#[doc = "Minimum (vector)"]
26111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s8)"]
26112#[inline(always)]
26113#[target_feature(enable = "neon")]
26114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26116#[cfg_attr(
26117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26118    assert_instr(smin)
26119)]
26120#[cfg_attr(
26121    not(target_arch = "arm"),
26122    stable(feature = "neon_intrinsics", since = "1.59.0")
26123)]
26124#[cfg_attr(
26125    target_arch = "arm",
26126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26127)]
26128pub fn vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
26129    unsafe {
26130        let mask: int8x8_t = simd_le(a, b);
26131        simd_select(mask, a, b)
26132    }
26133}
26134#[doc = "Minimum (vector)"]
26135#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s8)"]
26136#[inline(always)]
26137#[target_feature(enable = "neon")]
26138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26139#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26140#[cfg_attr(
26141    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26142    assert_instr(smin)
26143)]
26144#[cfg_attr(
26145    not(target_arch = "arm"),
26146    stable(feature = "neon_intrinsics", since = "1.59.0")
26147)]
26148#[cfg_attr(
26149    target_arch = "arm",
26150    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26151)]
26152pub fn vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
26153    unsafe {
26154        let mask: int8x16_t = simd_le(a, b);
26155        simd_select(mask, a, b)
26156    }
26157}
26158#[doc = "Minimum (vector)"]
26159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s16)"]
26160#[inline(always)]
26161#[target_feature(enable = "neon")]
26162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26164#[cfg_attr(
26165    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26166    assert_instr(smin)
26167)]
26168#[cfg_attr(
26169    not(target_arch = "arm"),
26170    stable(feature = "neon_intrinsics", since = "1.59.0")
26171)]
26172#[cfg_attr(
26173    target_arch = "arm",
26174    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26175)]
26176pub fn vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
26177    unsafe {
26178        let mask: int16x4_t = simd_le(a, b);
26179        simd_select(mask, a, b)
26180    }
26181}
26182#[doc = "Minimum (vector)"]
26183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s16)"]
26184#[inline(always)]
26185#[target_feature(enable = "neon")]
26186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26187#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26188#[cfg_attr(
26189    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26190    assert_instr(smin)
26191)]
26192#[cfg_attr(
26193    not(target_arch = "arm"),
26194    stable(feature = "neon_intrinsics", since = "1.59.0")
26195)]
26196#[cfg_attr(
26197    target_arch = "arm",
26198    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26199)]
26200pub fn vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
26201    unsafe {
26202        let mask: int16x8_t = simd_le(a, b);
26203        simd_select(mask, a, b)
26204    }
26205}
26206#[doc = "Minimum (vector)"]
26207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s32)"]
26208#[inline(always)]
26209#[target_feature(enable = "neon")]
26210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26212#[cfg_attr(
26213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26214    assert_instr(smin)
26215)]
26216#[cfg_attr(
26217    not(target_arch = "arm"),
26218    stable(feature = "neon_intrinsics", since = "1.59.0")
26219)]
26220#[cfg_attr(
26221    target_arch = "arm",
26222    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26223)]
26224pub fn vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
26225    unsafe {
26226        let mask: int32x2_t = simd_le(a, b);
26227        simd_select(mask, a, b)
26228    }
26229}
26230#[doc = "Minimum (vector)"]
26231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s32)"]
26232#[inline(always)]
26233#[target_feature(enable = "neon")]
26234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26235#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26236#[cfg_attr(
26237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26238    assert_instr(smin)
26239)]
26240#[cfg_attr(
26241    not(target_arch = "arm"),
26242    stable(feature = "neon_intrinsics", since = "1.59.0")
26243)]
26244#[cfg_attr(
26245    target_arch = "arm",
26246    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26247)]
26248pub fn vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
26249    unsafe {
26250        let mask: int32x4_t = simd_le(a, b);
26251        simd_select(mask, a, b)
26252    }
26253}
26254#[doc = "Minimum (vector)"]
26255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u8)"]
26256#[inline(always)]
26257#[target_feature(enable = "neon")]
26258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26259#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26260#[cfg_attr(
26261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26262    assert_instr(umin)
26263)]
26264#[cfg_attr(
26265    not(target_arch = "arm"),
26266    stable(feature = "neon_intrinsics", since = "1.59.0")
26267)]
26268#[cfg_attr(
26269    target_arch = "arm",
26270    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26271)]
26272pub fn vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
26273    unsafe {
26274        let mask: uint8x8_t = simd_le(a, b);
26275        simd_select(mask, a, b)
26276    }
26277}
26278#[doc = "Minimum (vector)"]
26279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u8)"]
26280#[inline(always)]
26281#[target_feature(enable = "neon")]
26282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26284#[cfg_attr(
26285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26286    assert_instr(umin)
26287)]
26288#[cfg_attr(
26289    not(target_arch = "arm"),
26290    stable(feature = "neon_intrinsics", since = "1.59.0")
26291)]
26292#[cfg_attr(
26293    target_arch = "arm",
26294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26295)]
26296pub fn vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
26297    unsafe {
26298        let mask: uint8x16_t = simd_le(a, b);
26299        simd_select(mask, a, b)
26300    }
26301}
26302#[doc = "Minimum (vector)"]
26303#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u16)"]
26304#[inline(always)]
26305#[target_feature(enable = "neon")]
26306#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26307#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26308#[cfg_attr(
26309    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26310    assert_instr(umin)
26311)]
26312#[cfg_attr(
26313    not(target_arch = "arm"),
26314    stable(feature = "neon_intrinsics", since = "1.59.0")
26315)]
26316#[cfg_attr(
26317    target_arch = "arm",
26318    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26319)]
26320pub fn vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
26321    unsafe {
26322        let mask: uint16x4_t = simd_le(a, b);
26323        simd_select(mask, a, b)
26324    }
26325}
26326#[doc = "Minimum (vector)"]
26327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u16)"]
26328#[inline(always)]
26329#[target_feature(enable = "neon")]
26330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26332#[cfg_attr(
26333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26334    assert_instr(umin)
26335)]
26336#[cfg_attr(
26337    not(target_arch = "arm"),
26338    stable(feature = "neon_intrinsics", since = "1.59.0")
26339)]
26340#[cfg_attr(
26341    target_arch = "arm",
26342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26343)]
26344pub fn vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
26345    unsafe {
26346        let mask: uint16x8_t = simd_le(a, b);
26347        simd_select(mask, a, b)
26348    }
26349}
26350#[doc = "Minimum (vector)"]
26351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u32)"]
26352#[inline(always)]
26353#[target_feature(enable = "neon")]
26354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26356#[cfg_attr(
26357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26358    assert_instr(umin)
26359)]
26360#[cfg_attr(
26361    not(target_arch = "arm"),
26362    stable(feature = "neon_intrinsics", since = "1.59.0")
26363)]
26364#[cfg_attr(
26365    target_arch = "arm",
26366    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26367)]
26368pub fn vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
26369    unsafe {
26370        let mask: uint32x2_t = simd_le(a, b);
26371        simd_select(mask, a, b)
26372    }
26373}
26374#[doc = "Minimum (vector)"]
26375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u32)"]
26376#[inline(always)]
26377#[target_feature(enable = "neon")]
26378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26380#[cfg_attr(
26381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26382    assert_instr(umin)
26383)]
26384#[cfg_attr(
26385    not(target_arch = "arm"),
26386    stable(feature = "neon_intrinsics", since = "1.59.0")
26387)]
26388#[cfg_attr(
26389    target_arch = "arm",
26390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26391)]
26392pub fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
26393    unsafe {
26394        let mask: uint32x4_t = simd_le(a, b);
26395        simd_select(mask, a, b)
26396    }
26397}
26398#[doc = "Floating-point Minimum Number (vector)"]
26399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f16)"]
26400#[inline(always)]
26401#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26402#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
26403#[cfg_attr(
26404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26405    assert_instr(fminnm)
26406)]
26407#[target_feature(enable = "neon,fp16")]
26408#[cfg_attr(
26409    not(target_arch = "arm"),
26410    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26411)]
26412#[cfg_attr(
26413    target_arch = "arm",
26414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26415)]
26416#[cfg(not(target_arch = "arm64ec"))]
26417pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
26418    unsafe extern "unadjusted" {
26419        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v4f16")]
26420        #[cfg_attr(
26421            any(target_arch = "aarch64", target_arch = "arm64ec"),
26422            link_name = "llvm.aarch64.neon.fminnm.v4f16"
26423        )]
26424        fn _vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
26425    }
26426    unsafe { _vminnm_f16(a, b) }
26427}
26428#[doc = "Floating-point Minimum Number (vector)"]
26429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f16)"]
26430#[inline(always)]
26431#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26432#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
26433#[cfg_attr(
26434    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26435    assert_instr(fminnm)
26436)]
26437#[target_feature(enable = "neon,fp16")]
26438#[cfg_attr(
26439    not(target_arch = "arm"),
26440    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26441)]
26442#[cfg_attr(
26443    target_arch = "arm",
26444    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26445)]
26446#[cfg(not(target_arch = "arm64ec"))]
26447pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
26448    unsafe extern "unadjusted" {
26449        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v8f16")]
26450        #[cfg_attr(
26451            any(target_arch = "aarch64", target_arch = "arm64ec"),
26452            link_name = "llvm.aarch64.neon.fminnm.v8f16"
26453        )]
26454        fn _vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
26455    }
26456    unsafe { _vminnmq_f16(a, b) }
26457}
26458#[doc = "Floating-point Minimum Number (vector)"]
26459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f32)"]
26460#[inline(always)]
26461#[target_feature(enable = "neon")]
26462#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
26464#[cfg_attr(
26465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26466    assert_instr(fminnm)
26467)]
26468#[cfg_attr(
26469    not(target_arch = "arm"),
26470    stable(feature = "neon_intrinsics", since = "1.59.0")
26471)]
26472#[cfg_attr(
26473    target_arch = "arm",
26474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26475)]
26476pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
26477    unsafe extern "unadjusted" {
26478        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v2f32")]
26479        #[cfg_attr(
26480            any(target_arch = "aarch64", target_arch = "arm64ec"),
26481            link_name = "llvm.aarch64.neon.fminnm.v2f32"
26482        )]
26483        fn _vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
26484    }
26485    unsafe { _vminnm_f32(a, b) }
26486}
26487#[doc = "Floating-point Minimum Number (vector)"]
26488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f32)"]
26489#[inline(always)]
26490#[target_feature(enable = "neon")]
26491#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26492#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
26493#[cfg_attr(
26494    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26495    assert_instr(fminnm)
26496)]
26497#[cfg_attr(
26498    not(target_arch = "arm"),
26499    stable(feature = "neon_intrinsics", since = "1.59.0")
26500)]
26501#[cfg_attr(
26502    target_arch = "arm",
26503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26504)]
26505pub fn vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
26506    unsafe extern "unadjusted" {
26507        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v4f32")]
26508        #[cfg_attr(
26509            any(target_arch = "aarch64", target_arch = "arm64ec"),
26510            link_name = "llvm.aarch64.neon.fminnm.v4f32"
26511        )]
26512        fn _vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
26513    }
26514    unsafe { _vminnmq_f32(a, b) }
26515}
26516#[doc = "Floating-point multiply-add to accumulator"]
26517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f32)"]
26518#[inline(always)]
26519#[target_feature(enable = "neon")]
26520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26521#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
26522#[cfg_attr(
26523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26524    assert_instr(fmul)
26525)]
26526#[cfg_attr(
26527    not(target_arch = "arm"),
26528    stable(feature = "neon_intrinsics", since = "1.59.0")
26529)]
26530#[cfg_attr(
26531    target_arch = "arm",
26532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26533)]
26534pub fn vmla_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
26535    unsafe { simd_add(a, simd_mul(b, c)) }
26536}
26537#[doc = "Floating-point multiply-add to accumulator"]
26538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_f32)"]
26539#[inline(always)]
26540#[target_feature(enable = "neon")]
26541#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26542#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
26543#[cfg_attr(
26544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26545    assert_instr(fmul)
26546)]
26547#[cfg_attr(
26548    not(target_arch = "arm"),
26549    stable(feature = "neon_intrinsics", since = "1.59.0")
26550)]
26551#[cfg_attr(
26552    target_arch = "arm",
26553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26554)]
26555pub fn vmlaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
26556    unsafe { simd_add(a, simd_mul(b, c)) }
26557}
26558#[doc = "Vector multiply accumulate with scalar"]
26559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_f32)"]
26560#[inline(always)]
26561#[target_feature(enable = "neon")]
26562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26563#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
26564#[cfg_attr(
26565    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26566    assert_instr(fmul, LANE = 1)
26567)]
26568#[rustc_legacy_const_generics(3)]
26569#[cfg_attr(
26570    not(target_arch = "arm"),
26571    stable(feature = "neon_intrinsics", since = "1.59.0")
26572)]
26573#[cfg_attr(
26574    target_arch = "arm",
26575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26576)]
26577pub fn vmla_lane_f32<const LANE: i32>(
26578    a: float32x2_t,
26579    b: float32x2_t,
26580    c: float32x2_t,
26581) -> float32x2_t {
26582    static_assert_uimm_bits!(LANE, 1);
26583    unsafe { vmla_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
26584}
26585#[doc = "Vector multiply accumulate with scalar"]
26586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_f32)"]
26587#[inline(always)]
26588#[target_feature(enable = "neon")]
26589#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26590#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
26591#[cfg_attr(
26592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26593    assert_instr(fmul, LANE = 1)
26594)]
26595#[rustc_legacy_const_generics(3)]
26596#[cfg_attr(
26597    not(target_arch = "arm"),
26598    stable(feature = "neon_intrinsics", since = "1.59.0")
26599)]
26600#[cfg_attr(
26601    target_arch = "arm",
26602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26603)]
26604pub fn vmla_laneq_f32<const LANE: i32>(
26605    a: float32x2_t,
26606    b: float32x2_t,
26607    c: float32x4_t,
26608) -> float32x2_t {
26609    static_assert_uimm_bits!(LANE, 2);
26610    unsafe { vmla_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
26611}
26612#[doc = "Vector multiply accumulate with scalar"]
26613#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_f32)"]
26614#[inline(always)]
26615#[target_feature(enable = "neon")]
26616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26617#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
26618#[cfg_attr(
26619    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26620    assert_instr(fmul, LANE = 1)
26621)]
26622#[rustc_legacy_const_generics(3)]
26623#[cfg_attr(
26624    not(target_arch = "arm"),
26625    stable(feature = "neon_intrinsics", since = "1.59.0")
26626)]
26627#[cfg_attr(
26628    target_arch = "arm",
26629    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26630)]
26631pub fn vmlaq_lane_f32<const LANE: i32>(
26632    a: float32x4_t,
26633    b: float32x4_t,
26634    c: float32x2_t,
26635) -> float32x4_t {
26636    static_assert_uimm_bits!(LANE, 1);
26637    unsafe {
26638        vmlaq_f32(
26639            a,
26640            b,
26641            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26642        )
26643    }
26644}
26645#[doc = "Vector multiply accumulate with scalar"]
26646#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_f32)"]
26647#[inline(always)]
26648#[target_feature(enable = "neon")]
26649#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26650#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
26651#[cfg_attr(
26652    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26653    assert_instr(fmul, LANE = 1)
26654)]
26655#[rustc_legacy_const_generics(3)]
26656#[cfg_attr(
26657    not(target_arch = "arm"),
26658    stable(feature = "neon_intrinsics", since = "1.59.0")
26659)]
26660#[cfg_attr(
26661    target_arch = "arm",
26662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26663)]
26664pub fn vmlaq_laneq_f32<const LANE: i32>(
26665    a: float32x4_t,
26666    b: float32x4_t,
26667    c: float32x4_t,
26668) -> float32x4_t {
26669    static_assert_uimm_bits!(LANE, 2);
26670    unsafe {
26671        vmlaq_f32(
26672            a,
26673            b,
26674            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26675        )
26676    }
26677}
26678#[doc = "Vector multiply accumulate with scalar"]
26679#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s16)"]
26680#[inline(always)]
26681#[target_feature(enable = "neon")]
26682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26683#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26684#[cfg_attr(
26685    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26686    assert_instr(mla, LANE = 1)
26687)]
26688#[rustc_legacy_const_generics(3)]
26689#[cfg_attr(
26690    not(target_arch = "arm"),
26691    stable(feature = "neon_intrinsics", since = "1.59.0")
26692)]
26693#[cfg_attr(
26694    target_arch = "arm",
26695    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26696)]
26697pub fn vmla_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
26698    static_assert_uimm_bits!(LANE, 2);
26699    unsafe {
26700        vmla_s16(
26701            a,
26702            b,
26703            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26704        )
26705    }
26706}
26707#[doc = "Vector multiply accumulate with scalar"]
26708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u16)"]
26709#[inline(always)]
26710#[target_feature(enable = "neon")]
26711#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26712#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26713#[cfg_attr(
26714    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26715    assert_instr(mla, LANE = 1)
26716)]
26717#[rustc_legacy_const_generics(3)]
26718#[cfg_attr(
26719    not(target_arch = "arm"),
26720    stable(feature = "neon_intrinsics", since = "1.59.0")
26721)]
26722#[cfg_attr(
26723    target_arch = "arm",
26724    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26725)]
26726pub fn vmla_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
26727    static_assert_uimm_bits!(LANE, 2);
26728    unsafe {
26729        vmla_u16(
26730            a,
26731            b,
26732            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26733        )
26734    }
26735}
26736#[doc = "Vector multiply accumulate with scalar"]
26737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s16)"]
26738#[inline(always)]
26739#[target_feature(enable = "neon")]
26740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26741#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26742#[cfg_attr(
26743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26744    assert_instr(mla, LANE = 1)
26745)]
26746#[rustc_legacy_const_generics(3)]
26747#[cfg_attr(
26748    not(target_arch = "arm"),
26749    stable(feature = "neon_intrinsics", since = "1.59.0")
26750)]
26751#[cfg_attr(
26752    target_arch = "arm",
26753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26754)]
26755pub fn vmla_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
26756    static_assert_uimm_bits!(LANE, 3);
26757    unsafe {
26758        vmla_s16(
26759            a,
26760            b,
26761            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26762        )
26763    }
26764}
26765#[doc = "Vector multiply accumulate with scalar"]
26766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u16)"]
26767#[inline(always)]
26768#[target_feature(enable = "neon")]
26769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26770#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26771#[cfg_attr(
26772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26773    assert_instr(mla, LANE = 1)
26774)]
26775#[rustc_legacy_const_generics(3)]
26776#[cfg_attr(
26777    not(target_arch = "arm"),
26778    stable(feature = "neon_intrinsics", since = "1.59.0")
26779)]
26780#[cfg_attr(
26781    target_arch = "arm",
26782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26783)]
26784pub fn vmla_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
26785    static_assert_uimm_bits!(LANE, 3);
26786    unsafe {
26787        vmla_u16(
26788            a,
26789            b,
26790            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26791        )
26792    }
26793}
26794#[doc = "Vector multiply accumulate with scalar"]
26795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s16)"]
26796#[inline(always)]
26797#[target_feature(enable = "neon")]
26798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26799#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26800#[cfg_attr(
26801    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26802    assert_instr(mla, LANE = 1)
26803)]
26804#[rustc_legacy_const_generics(3)]
26805#[cfg_attr(
26806    not(target_arch = "arm"),
26807    stable(feature = "neon_intrinsics", since = "1.59.0")
26808)]
26809#[cfg_attr(
26810    target_arch = "arm",
26811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26812)]
26813pub fn vmlaq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
26814    static_assert_uimm_bits!(LANE, 2);
26815    unsafe {
26816        vmlaq_s16(
26817            a,
26818            b,
26819            simd_shuffle!(
26820                c,
26821                c,
26822                [
26823                    LANE as u32,
26824                    LANE as u32,
26825                    LANE as u32,
26826                    LANE as u32,
26827                    LANE as u32,
26828                    LANE as u32,
26829                    LANE as u32,
26830                    LANE as u32
26831                ]
26832            ),
26833        )
26834    }
26835}
26836#[doc = "Vector multiply accumulate with scalar"]
26837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u16)"]
26838#[inline(always)]
26839#[target_feature(enable = "neon")]
26840#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26841#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26842#[cfg_attr(
26843    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26844    assert_instr(mla, LANE = 1)
26845)]
26846#[rustc_legacy_const_generics(3)]
26847#[cfg_attr(
26848    not(target_arch = "arm"),
26849    stable(feature = "neon_intrinsics", since = "1.59.0")
26850)]
26851#[cfg_attr(
26852    target_arch = "arm",
26853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26854)]
26855pub fn vmlaq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
26856    static_assert_uimm_bits!(LANE, 2);
26857    unsafe {
26858        vmlaq_u16(
26859            a,
26860            b,
26861            simd_shuffle!(
26862                c,
26863                c,
26864                [
26865                    LANE as u32,
26866                    LANE as u32,
26867                    LANE as u32,
26868                    LANE as u32,
26869                    LANE as u32,
26870                    LANE as u32,
26871                    LANE as u32,
26872                    LANE as u32
26873                ]
26874            ),
26875        )
26876    }
26877}
26878#[doc = "Vector multiply accumulate with scalar"]
26879#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s16)"]
26880#[inline(always)]
26881#[target_feature(enable = "neon")]
26882#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26883#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26884#[cfg_attr(
26885    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26886    assert_instr(mla, LANE = 1)
26887)]
26888#[rustc_legacy_const_generics(3)]
26889#[cfg_attr(
26890    not(target_arch = "arm"),
26891    stable(feature = "neon_intrinsics", since = "1.59.0")
26892)]
26893#[cfg_attr(
26894    target_arch = "arm",
26895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26896)]
26897pub fn vmlaq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
26898    static_assert_uimm_bits!(LANE, 3);
26899    unsafe {
26900        vmlaq_s16(
26901            a,
26902            b,
26903            simd_shuffle!(
26904                c,
26905                c,
26906                [
26907                    LANE as u32,
26908                    LANE as u32,
26909                    LANE as u32,
26910                    LANE as u32,
26911                    LANE as u32,
26912                    LANE as u32,
26913                    LANE as u32,
26914                    LANE as u32
26915                ]
26916            ),
26917        )
26918    }
26919}
26920#[doc = "Vector multiply accumulate with scalar"]
26921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u16)"]
26922#[inline(always)]
26923#[target_feature(enable = "neon")]
26924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26925#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26926#[cfg_attr(
26927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26928    assert_instr(mla, LANE = 1)
26929)]
26930#[rustc_legacy_const_generics(3)]
26931#[cfg_attr(
26932    not(target_arch = "arm"),
26933    stable(feature = "neon_intrinsics", since = "1.59.0")
26934)]
26935#[cfg_attr(
26936    target_arch = "arm",
26937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26938)]
26939pub fn vmlaq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
26940    static_assert_uimm_bits!(LANE, 3);
26941    unsafe {
26942        vmlaq_u16(
26943            a,
26944            b,
26945            simd_shuffle!(
26946                c,
26947                c,
26948                [
26949                    LANE as u32,
26950                    LANE as u32,
26951                    LANE as u32,
26952                    LANE as u32,
26953                    LANE as u32,
26954                    LANE as u32,
26955                    LANE as u32,
26956                    LANE as u32
26957                ]
26958            ),
26959        )
26960    }
26961}
26962#[doc = "Vector multiply accumulate with scalar"]
26963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s32)"]
26964#[inline(always)]
26965#[target_feature(enable = "neon")]
26966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26967#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
26968#[cfg_attr(
26969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26970    assert_instr(mla, LANE = 1)
26971)]
26972#[rustc_legacy_const_generics(3)]
26973#[cfg_attr(
26974    not(target_arch = "arm"),
26975    stable(feature = "neon_intrinsics", since = "1.59.0")
26976)]
26977#[cfg_attr(
26978    target_arch = "arm",
26979    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26980)]
26981pub fn vmla_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
26982    static_assert_uimm_bits!(LANE, 1);
26983    unsafe { vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
26984}
26985#[doc = "Vector multiply accumulate with scalar"]
26986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u32)"]
26987#[inline(always)]
26988#[target_feature(enable = "neon")]
26989#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26990#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
26991#[cfg_attr(
26992    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26993    assert_instr(mla, LANE = 1)
26994)]
26995#[rustc_legacy_const_generics(3)]
26996#[cfg_attr(
26997    not(target_arch = "arm"),
26998    stable(feature = "neon_intrinsics", since = "1.59.0")
26999)]
27000#[cfg_attr(
27001    target_arch = "arm",
27002    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27003)]
27004pub fn vmla_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
27005    static_assert_uimm_bits!(LANE, 1);
27006    unsafe { vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27007}
27008#[doc = "Vector multiply accumulate with scalar"]
27009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s32)"]
27010#[inline(always)]
27011#[target_feature(enable = "neon")]
27012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27013#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27014#[cfg_attr(
27015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27016    assert_instr(mla, LANE = 1)
27017)]
27018#[rustc_legacy_const_generics(3)]
27019#[cfg_attr(
27020    not(target_arch = "arm"),
27021    stable(feature = "neon_intrinsics", since = "1.59.0")
27022)]
27023#[cfg_attr(
27024    target_arch = "arm",
27025    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27026)]
27027pub fn vmla_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
27028    static_assert_uimm_bits!(LANE, 2);
27029    unsafe { vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27030}
27031#[doc = "Vector multiply accumulate with scalar"]
27032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u32)"]
27033#[inline(always)]
27034#[target_feature(enable = "neon")]
27035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27036#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27037#[cfg_attr(
27038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27039    assert_instr(mla, LANE = 1)
27040)]
27041#[rustc_legacy_const_generics(3)]
27042#[cfg_attr(
27043    not(target_arch = "arm"),
27044    stable(feature = "neon_intrinsics", since = "1.59.0")
27045)]
27046#[cfg_attr(
27047    target_arch = "arm",
27048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27049)]
27050pub fn vmla_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
27051    static_assert_uimm_bits!(LANE, 2);
27052    unsafe { vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27053}
27054#[doc = "Vector multiply accumulate with scalar"]
27055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s32)"]
27056#[inline(always)]
27057#[target_feature(enable = "neon")]
27058#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27059#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27060#[cfg_attr(
27061    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27062    assert_instr(mla, LANE = 1)
27063)]
27064#[rustc_legacy_const_generics(3)]
27065#[cfg_attr(
27066    not(target_arch = "arm"),
27067    stable(feature = "neon_intrinsics", since = "1.59.0")
27068)]
27069#[cfg_attr(
27070    target_arch = "arm",
27071    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27072)]
27073pub fn vmlaq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
27074    static_assert_uimm_bits!(LANE, 1);
27075    unsafe {
27076        vmlaq_s32(
27077            a,
27078            b,
27079            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27080        )
27081    }
27082}
27083#[doc = "Vector multiply accumulate with scalar"]
27084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u32)"]
27085#[inline(always)]
27086#[target_feature(enable = "neon")]
27087#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27088#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27089#[cfg_attr(
27090    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27091    assert_instr(mla, LANE = 1)
27092)]
27093#[rustc_legacy_const_generics(3)]
27094#[cfg_attr(
27095    not(target_arch = "arm"),
27096    stable(feature = "neon_intrinsics", since = "1.59.0")
27097)]
27098#[cfg_attr(
27099    target_arch = "arm",
27100    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27101)]
27102pub fn vmlaq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
27103    static_assert_uimm_bits!(LANE, 1);
27104    unsafe {
27105        vmlaq_u32(
27106            a,
27107            b,
27108            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27109        )
27110    }
27111}
27112#[doc = "Vector multiply accumulate with scalar"]
27113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s32)"]
27114#[inline(always)]
27115#[target_feature(enable = "neon")]
27116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27117#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27118#[cfg_attr(
27119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27120    assert_instr(mla, LANE = 1)
27121)]
27122#[rustc_legacy_const_generics(3)]
27123#[cfg_attr(
27124    not(target_arch = "arm"),
27125    stable(feature = "neon_intrinsics", since = "1.59.0")
27126)]
27127#[cfg_attr(
27128    target_arch = "arm",
27129    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27130)]
27131pub fn vmlaq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
27132    static_assert_uimm_bits!(LANE, 2);
27133    unsafe {
27134        vmlaq_s32(
27135            a,
27136            b,
27137            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27138        )
27139    }
27140}
27141#[doc = "Vector multiply accumulate with scalar"]
27142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u32)"]
27143#[inline(always)]
27144#[target_feature(enable = "neon")]
27145#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27146#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27147#[cfg_attr(
27148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27149    assert_instr(mla, LANE = 1)
27150)]
27151#[rustc_legacy_const_generics(3)]
27152#[cfg_attr(
27153    not(target_arch = "arm"),
27154    stable(feature = "neon_intrinsics", since = "1.59.0")
27155)]
27156#[cfg_attr(
27157    target_arch = "arm",
27158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27159)]
27160pub fn vmlaq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
27161    static_assert_uimm_bits!(LANE, 2);
27162    unsafe {
27163        vmlaq_u32(
27164            a,
27165            b,
27166            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27167        )
27168    }
27169}
27170#[doc = "Vector multiply accumulate with scalar"]
27171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_f32)"]
27172#[inline(always)]
27173#[target_feature(enable = "neon")]
27174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27175#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
27176#[cfg_attr(
27177    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27178    assert_instr(fmul)
27179)]
27180#[cfg_attr(
27181    not(target_arch = "arm"),
27182    stable(feature = "neon_intrinsics", since = "1.59.0")
27183)]
27184#[cfg_attr(
27185    target_arch = "arm",
27186    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27187)]
27188pub fn vmla_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
27189    vmla_f32(a, b, vdup_n_f32(c))
27190}
27191#[doc = "Vector multiply accumulate with scalar"]
27192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_f32)"]
27193#[inline(always)]
27194#[target_feature(enable = "neon")]
27195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27196#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
27197#[cfg_attr(
27198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27199    assert_instr(fmul)
27200)]
27201#[cfg_attr(
27202    not(target_arch = "arm"),
27203    stable(feature = "neon_intrinsics", since = "1.59.0")
27204)]
27205#[cfg_attr(
27206    target_arch = "arm",
27207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27208)]
27209pub fn vmlaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
27210    vmlaq_f32(a, b, vdupq_n_f32(c))
27211}
27212#[doc = "Vector multiply accumulate with scalar"]
27213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s16)"]
27214#[inline(always)]
27215#[target_feature(enable = "neon")]
27216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27217#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27218#[cfg_attr(
27219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27220    assert_instr(mla)
27221)]
27222#[cfg_attr(
27223    not(target_arch = "arm"),
27224    stable(feature = "neon_intrinsics", since = "1.59.0")
27225)]
27226#[cfg_attr(
27227    target_arch = "arm",
27228    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27229)]
27230pub fn vmla_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
27231    vmla_s16(a, b, vdup_n_s16(c))
27232}
27233#[doc = "Vector multiply accumulate with scalar"]
27234#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_s16)"]
27235#[inline(always)]
27236#[target_feature(enable = "neon")]
27237#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27238#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27239#[cfg_attr(
27240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27241    assert_instr(mla)
27242)]
27243#[cfg_attr(
27244    not(target_arch = "arm"),
27245    stable(feature = "neon_intrinsics", since = "1.59.0")
27246)]
27247#[cfg_attr(
27248    target_arch = "arm",
27249    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27250)]
27251pub fn vmlaq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
27252    vmlaq_s16(a, b, vdupq_n_s16(c))
27253}
27254#[doc = "Vector multiply accumulate with scalar"]
27255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u16)"]
27256#[inline(always)]
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("vmla.i16"))]
27260#[cfg_attr(
27261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27262    assert_instr(mla)
27263)]
27264#[cfg_attr(
27265    not(target_arch = "arm"),
27266    stable(feature = "neon_intrinsics", since = "1.59.0")
27267)]
27268#[cfg_attr(
27269    target_arch = "arm",
27270    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27271)]
27272pub fn vmla_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
27273    vmla_u16(a, b, vdup_n_u16(c))
27274}
27275#[doc = "Vector multiply accumulate with scalar"]
27276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u16)"]
27277#[inline(always)]
27278#[target_feature(enable = "neon")]
27279#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27280#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27281#[cfg_attr(
27282    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27283    assert_instr(mla)
27284)]
27285#[cfg_attr(
27286    not(target_arch = "arm"),
27287    stable(feature = "neon_intrinsics", since = "1.59.0")
27288)]
27289#[cfg_attr(
27290    target_arch = "arm",
27291    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27292)]
27293pub fn vmlaq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
27294    vmlaq_u16(a, b, vdupq_n_u16(c))
27295}
27296#[doc = "Vector multiply accumulate with scalar"]
27297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s32)"]
27298#[inline(always)]
27299#[target_feature(enable = "neon")]
27300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27301#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27302#[cfg_attr(
27303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27304    assert_instr(mla)
27305)]
27306#[cfg_attr(
27307    not(target_arch = "arm"),
27308    stable(feature = "neon_intrinsics", since = "1.59.0")
27309)]
27310#[cfg_attr(
27311    target_arch = "arm",
27312    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27313)]
27314pub fn vmla_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
27315    vmla_s32(a, b, vdup_n_s32(c))
27316}
27317#[doc = "Vector multiply accumulate with scalar"]
27318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_s32)"]
27319#[inline(always)]
27320#[target_feature(enable = "neon")]
27321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27322#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27323#[cfg_attr(
27324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27325    assert_instr(mla)
27326)]
27327#[cfg_attr(
27328    not(target_arch = "arm"),
27329    stable(feature = "neon_intrinsics", since = "1.59.0")
27330)]
27331#[cfg_attr(
27332    target_arch = "arm",
27333    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27334)]
27335pub fn vmlaq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
27336    vmlaq_s32(a, b, vdupq_n_s32(c))
27337}
27338#[doc = "Vector multiply accumulate with scalar"]
27339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u32)"]
27340#[inline(always)]
27341#[target_feature(enable = "neon")]
27342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27343#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27344#[cfg_attr(
27345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27346    assert_instr(mla)
27347)]
27348#[cfg_attr(
27349    not(target_arch = "arm"),
27350    stable(feature = "neon_intrinsics", since = "1.59.0")
27351)]
27352#[cfg_attr(
27353    target_arch = "arm",
27354    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27355)]
27356pub fn vmla_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
27357    vmla_u32(a, b, vdup_n_u32(c))
27358}
27359#[doc = "Vector multiply accumulate with scalar"]
27360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u32)"]
27361#[inline(always)]
27362#[target_feature(enable = "neon")]
27363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27364#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27365#[cfg_attr(
27366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27367    assert_instr(mla)
27368)]
27369#[cfg_attr(
27370    not(target_arch = "arm"),
27371    stable(feature = "neon_intrinsics", since = "1.59.0")
27372)]
27373#[cfg_attr(
27374    target_arch = "arm",
27375    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27376)]
27377pub fn vmlaq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
27378    vmlaq_u32(a, b, vdupq_n_u32(c))
27379}
27380#[doc = "Multiply-add to accumulator"]
27381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s8)"]
27382#[inline(always)]
27383#[target_feature(enable = "neon")]
27384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27385#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
27386#[cfg_attr(
27387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27388    assert_instr(mla)
27389)]
27390#[cfg_attr(
27391    not(target_arch = "arm"),
27392    stable(feature = "neon_intrinsics", since = "1.59.0")
27393)]
27394#[cfg_attr(
27395    target_arch = "arm",
27396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27397)]
27398pub fn vmla_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
27399    unsafe { simd_add(a, simd_mul(b, c)) }
27400}
27401#[doc = "Multiply-add to accumulator"]
27402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s8)"]
27403#[inline(always)]
27404#[target_feature(enable = "neon")]
27405#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27406#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
27407#[cfg_attr(
27408    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27409    assert_instr(mla)
27410)]
27411#[cfg_attr(
27412    not(target_arch = "arm"),
27413    stable(feature = "neon_intrinsics", since = "1.59.0")
27414)]
27415#[cfg_attr(
27416    target_arch = "arm",
27417    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27418)]
27419pub fn vmlaq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
27420    unsafe { simd_add(a, simd_mul(b, c)) }
27421}
27422#[doc = "Multiply-add to accumulator"]
27423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s16)"]
27424#[inline(always)]
27425#[target_feature(enable = "neon")]
27426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27428#[cfg_attr(
27429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27430    assert_instr(mla)
27431)]
27432#[cfg_attr(
27433    not(target_arch = "arm"),
27434    stable(feature = "neon_intrinsics", since = "1.59.0")
27435)]
27436#[cfg_attr(
27437    target_arch = "arm",
27438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27439)]
27440pub fn vmla_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
27441    unsafe { simd_add(a, simd_mul(b, c)) }
27442}
27443#[doc = "Multiply-add to accumulator"]
27444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s16)"]
27445#[inline(always)]
27446#[target_feature(enable = "neon")]
27447#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27448#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27449#[cfg_attr(
27450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27451    assert_instr(mla)
27452)]
27453#[cfg_attr(
27454    not(target_arch = "arm"),
27455    stable(feature = "neon_intrinsics", since = "1.59.0")
27456)]
27457#[cfg_attr(
27458    target_arch = "arm",
27459    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27460)]
27461pub fn vmlaq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
27462    unsafe { simd_add(a, simd_mul(b, c)) }
27463}
27464#[doc = "Multiply-add to accumulator"]
27465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s32)"]
27466#[inline(always)]
27467#[target_feature(enable = "neon")]
27468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27469#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27470#[cfg_attr(
27471    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27472    assert_instr(mla)
27473)]
27474#[cfg_attr(
27475    not(target_arch = "arm"),
27476    stable(feature = "neon_intrinsics", since = "1.59.0")
27477)]
27478#[cfg_attr(
27479    target_arch = "arm",
27480    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27481)]
27482pub fn vmla_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
27483    unsafe { simd_add(a, simd_mul(b, c)) }
27484}
27485#[doc = "Multiply-add to accumulator"]
27486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s32)"]
27487#[inline(always)]
27488#[target_feature(enable = "neon")]
27489#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27490#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27491#[cfg_attr(
27492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27493    assert_instr(mla)
27494)]
27495#[cfg_attr(
27496    not(target_arch = "arm"),
27497    stable(feature = "neon_intrinsics", since = "1.59.0")
27498)]
27499#[cfg_attr(
27500    target_arch = "arm",
27501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27502)]
27503pub fn vmlaq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
27504    unsafe { simd_add(a, simd_mul(b, c)) }
27505}
27506#[doc = "Multiply-add to accumulator"]
27507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u8)"]
27508#[inline(always)]
27509#[target_feature(enable = "neon")]
27510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27511#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
27512#[cfg_attr(
27513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27514    assert_instr(mla)
27515)]
27516#[cfg_attr(
27517    not(target_arch = "arm"),
27518    stable(feature = "neon_intrinsics", since = "1.59.0")
27519)]
27520#[cfg_attr(
27521    target_arch = "arm",
27522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27523)]
27524pub fn vmla_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
27525    unsafe { simd_add(a, simd_mul(b, c)) }
27526}
27527#[doc = "Multiply-add to accumulator"]
27528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u8)"]
27529#[inline(always)]
27530#[target_feature(enable = "neon")]
27531#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27532#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
27533#[cfg_attr(
27534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27535    assert_instr(mla)
27536)]
27537#[cfg_attr(
27538    not(target_arch = "arm"),
27539    stable(feature = "neon_intrinsics", since = "1.59.0")
27540)]
27541#[cfg_attr(
27542    target_arch = "arm",
27543    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27544)]
27545pub fn vmlaq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
27546    unsafe { simd_add(a, simd_mul(b, c)) }
27547}
27548#[doc = "Multiply-add to accumulator"]
27549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u16)"]
27550#[inline(always)]
27551#[target_feature(enable = "neon")]
27552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27553#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27554#[cfg_attr(
27555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27556    assert_instr(mla)
27557)]
27558#[cfg_attr(
27559    not(target_arch = "arm"),
27560    stable(feature = "neon_intrinsics", since = "1.59.0")
27561)]
27562#[cfg_attr(
27563    target_arch = "arm",
27564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27565)]
27566pub fn vmla_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
27567    unsafe { simd_add(a, simd_mul(b, c)) }
27568}
27569#[doc = "Multiply-add to accumulator"]
27570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u16)"]
27571#[inline(always)]
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("vmla.i16"))]
27575#[cfg_attr(
27576    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27577    assert_instr(mla)
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 fn vmlaq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
27588    unsafe { simd_add(a, simd_mul(b, c)) }
27589}
27590#[doc = "Multiply-add to accumulator"]
27591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u32)"]
27592#[inline(always)]
27593#[target_feature(enable = "neon")]
27594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27595#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27596#[cfg_attr(
27597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27598    assert_instr(mla)
27599)]
27600#[cfg_attr(
27601    not(target_arch = "arm"),
27602    stable(feature = "neon_intrinsics", since = "1.59.0")
27603)]
27604#[cfg_attr(
27605    target_arch = "arm",
27606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27607)]
27608pub fn vmla_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
27609    unsafe { simd_add(a, simd_mul(b, c)) }
27610}
27611#[doc = "Multiply-add to accumulator"]
27612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u32)"]
27613#[inline(always)]
27614#[target_feature(enable = "neon")]
27615#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27616#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27617#[cfg_attr(
27618    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27619    assert_instr(mla)
27620)]
27621#[cfg_attr(
27622    not(target_arch = "arm"),
27623    stable(feature = "neon_intrinsics", since = "1.59.0")
27624)]
27625#[cfg_attr(
27626    target_arch = "arm",
27627    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27628)]
27629pub fn vmlaq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
27630    unsafe { simd_add(a, simd_mul(b, c)) }
27631}
27632#[doc = "Vector widening multiply accumulate with scalar"]
27633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s16)"]
27634#[inline(always)]
27635#[target_feature(enable = "neon")]
27636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27637#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
27638#[cfg_attr(
27639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27640    assert_instr(smlal, LANE = 1)
27641)]
27642#[rustc_legacy_const_generics(3)]
27643#[cfg_attr(
27644    not(target_arch = "arm"),
27645    stable(feature = "neon_intrinsics", since = "1.59.0")
27646)]
27647#[cfg_attr(
27648    target_arch = "arm",
27649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27650)]
27651pub fn vmlal_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
27652    static_assert_uimm_bits!(LANE, 2);
27653    unsafe {
27654        vmlal_s16(
27655            a,
27656            b,
27657            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27658        )
27659    }
27660}
27661#[doc = "Vector widening multiply accumulate with scalar"]
27662#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s16)"]
27663#[inline(always)]
27664#[target_feature(enable = "neon")]
27665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27666#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
27667#[cfg_attr(
27668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27669    assert_instr(smlal, LANE = 1)
27670)]
27671#[rustc_legacy_const_generics(3)]
27672#[cfg_attr(
27673    not(target_arch = "arm"),
27674    stable(feature = "neon_intrinsics", since = "1.59.0")
27675)]
27676#[cfg_attr(
27677    target_arch = "arm",
27678    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27679)]
27680pub fn vmlal_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
27681    static_assert_uimm_bits!(LANE, 3);
27682    unsafe {
27683        vmlal_s16(
27684            a,
27685            b,
27686            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27687        )
27688    }
27689}
27690#[doc = "Vector widening multiply accumulate with scalar"]
27691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s32)"]
27692#[inline(always)]
27693#[target_feature(enable = "neon")]
27694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27695#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
27696#[cfg_attr(
27697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27698    assert_instr(smlal, LANE = 1)
27699)]
27700#[rustc_legacy_const_generics(3)]
27701#[cfg_attr(
27702    not(target_arch = "arm"),
27703    stable(feature = "neon_intrinsics", since = "1.59.0")
27704)]
27705#[cfg_attr(
27706    target_arch = "arm",
27707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27708)]
27709pub fn vmlal_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
27710    static_assert_uimm_bits!(LANE, 1);
27711    unsafe { vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27712}
27713#[doc = "Vector widening multiply accumulate with scalar"]
27714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s32)"]
27715#[inline(always)]
27716#[target_feature(enable = "neon")]
27717#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27718#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
27719#[cfg_attr(
27720    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27721    assert_instr(smlal, LANE = 1)
27722)]
27723#[rustc_legacy_const_generics(3)]
27724#[cfg_attr(
27725    not(target_arch = "arm"),
27726    stable(feature = "neon_intrinsics", since = "1.59.0")
27727)]
27728#[cfg_attr(
27729    target_arch = "arm",
27730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27731)]
27732pub fn vmlal_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
27733    static_assert_uimm_bits!(LANE, 2);
27734    unsafe { vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27735}
27736#[doc = "Vector widening multiply accumulate with scalar"]
27737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u16)"]
27738#[inline(always)]
27739#[target_feature(enable = "neon")]
27740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27741#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
27742#[cfg_attr(
27743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27744    assert_instr(umlal, LANE = 1)
27745)]
27746#[rustc_legacy_const_generics(3)]
27747#[cfg_attr(
27748    not(target_arch = "arm"),
27749    stable(feature = "neon_intrinsics", since = "1.59.0")
27750)]
27751#[cfg_attr(
27752    target_arch = "arm",
27753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27754)]
27755pub fn vmlal_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
27756    static_assert_uimm_bits!(LANE, 2);
27757    unsafe {
27758        vmlal_u16(
27759            a,
27760            b,
27761            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27762        )
27763    }
27764}
27765#[doc = "Vector widening multiply accumulate with scalar"]
27766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u16)"]
27767#[inline(always)]
27768#[target_feature(enable = "neon")]
27769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27770#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
27771#[cfg_attr(
27772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27773    assert_instr(umlal, LANE = 1)
27774)]
27775#[rustc_legacy_const_generics(3)]
27776#[cfg_attr(
27777    not(target_arch = "arm"),
27778    stable(feature = "neon_intrinsics", since = "1.59.0")
27779)]
27780#[cfg_attr(
27781    target_arch = "arm",
27782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27783)]
27784pub fn vmlal_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
27785    static_assert_uimm_bits!(LANE, 3);
27786    unsafe {
27787        vmlal_u16(
27788            a,
27789            b,
27790            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27791        )
27792    }
27793}
27794#[doc = "Vector widening multiply accumulate with scalar"]
27795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u32)"]
27796#[inline(always)]
27797#[target_feature(enable = "neon")]
27798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27799#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
27800#[cfg_attr(
27801    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27802    assert_instr(umlal, LANE = 1)
27803)]
27804#[rustc_legacy_const_generics(3)]
27805#[cfg_attr(
27806    not(target_arch = "arm"),
27807    stable(feature = "neon_intrinsics", since = "1.59.0")
27808)]
27809#[cfg_attr(
27810    target_arch = "arm",
27811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27812)]
27813pub fn vmlal_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
27814    static_assert_uimm_bits!(LANE, 1);
27815    unsafe { vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27816}
27817#[doc = "Vector widening multiply accumulate with scalar"]
27818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u32)"]
27819#[inline(always)]
27820#[target_feature(enable = "neon")]
27821#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27822#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
27823#[cfg_attr(
27824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27825    assert_instr(umlal, LANE = 1)
27826)]
27827#[rustc_legacy_const_generics(3)]
27828#[cfg_attr(
27829    not(target_arch = "arm"),
27830    stable(feature = "neon_intrinsics", since = "1.59.0")
27831)]
27832#[cfg_attr(
27833    target_arch = "arm",
27834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27835)]
27836pub fn vmlal_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
27837    static_assert_uimm_bits!(LANE, 2);
27838    unsafe { vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27839}
27840#[doc = "Vector widening multiply accumulate with scalar"]
27841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s16)"]
27842#[inline(always)]
27843#[target_feature(enable = "neon")]
27844#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27845#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
27846#[cfg_attr(
27847    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27848    assert_instr(smlal)
27849)]
27850#[cfg_attr(
27851    not(target_arch = "arm"),
27852    stable(feature = "neon_intrinsics", since = "1.59.0")
27853)]
27854#[cfg_attr(
27855    target_arch = "arm",
27856    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27857)]
27858pub fn vmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
27859    vmlal_s16(a, b, vdup_n_s16(c))
27860}
27861#[doc = "Vector widening multiply accumulate with scalar"]
27862#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s32)"]
27863#[inline(always)]
27864#[target_feature(enable = "neon")]
27865#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27866#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
27867#[cfg_attr(
27868    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27869    assert_instr(smlal)
27870)]
27871#[cfg_attr(
27872    not(target_arch = "arm"),
27873    stable(feature = "neon_intrinsics", since = "1.59.0")
27874)]
27875#[cfg_attr(
27876    target_arch = "arm",
27877    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27878)]
27879pub fn vmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
27880    vmlal_s32(a, b, vdup_n_s32(c))
27881}
27882#[doc = "Vector widening multiply accumulate with scalar"]
27883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u16)"]
27884#[inline(always)]
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("vmlal.u16"))]
27888#[cfg_attr(
27889    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27890    assert_instr(umlal)
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 fn vmlal_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
27901    vmlal_u16(a, b, vdup_n_u16(c))
27902}
27903#[doc = "Vector widening multiply accumulate with scalar"]
27904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u32)"]
27905#[inline(always)]
27906#[target_feature(enable = "neon")]
27907#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27908#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32"))]
27909#[cfg_attr(
27910    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27911    assert_instr(umlal)
27912)]
27913#[cfg_attr(
27914    not(target_arch = "arm"),
27915    stable(feature = "neon_intrinsics", since = "1.59.0")
27916)]
27917#[cfg_attr(
27918    target_arch = "arm",
27919    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27920)]
27921pub fn vmlal_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
27922    vmlal_u32(a, b, vdup_n_u32(c))
27923}
27924#[doc = "Signed multiply-add long"]
27925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s8)"]
27926#[inline(always)]
27927#[target_feature(enable = "neon")]
27928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27929#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s8"))]
27930#[cfg_attr(
27931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27932    assert_instr(smlal)
27933)]
27934#[cfg_attr(
27935    not(target_arch = "arm"),
27936    stable(feature = "neon_intrinsics", since = "1.59.0")
27937)]
27938#[cfg_attr(
27939    target_arch = "arm",
27940    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27941)]
27942pub fn vmlal_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
27943    unsafe { simd_add(a, vmull_s8(b, c)) }
27944}
27945#[doc = "Signed multiply-add long"]
27946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s16)"]
27947#[inline(always)]
27948#[target_feature(enable = "neon")]
27949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27950#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
27951#[cfg_attr(
27952    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27953    assert_instr(smlal)
27954)]
27955#[cfg_attr(
27956    not(target_arch = "arm"),
27957    stable(feature = "neon_intrinsics", since = "1.59.0")
27958)]
27959#[cfg_attr(
27960    target_arch = "arm",
27961    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27962)]
27963pub fn vmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
27964    unsafe { simd_add(a, vmull_s16(b, c)) }
27965}
27966#[doc = "Signed multiply-add long"]
27967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s32)"]
27968#[inline(always)]
27969#[target_feature(enable = "neon")]
27970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27971#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
27972#[cfg_attr(
27973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27974    assert_instr(smlal)
27975)]
27976#[cfg_attr(
27977    not(target_arch = "arm"),
27978    stable(feature = "neon_intrinsics", since = "1.59.0")
27979)]
27980#[cfg_attr(
27981    target_arch = "arm",
27982    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27983)]
27984pub fn vmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
27985    unsafe { simd_add(a, vmull_s32(b, c)) }
27986}
27987#[doc = "Unsigned multiply-add long"]
27988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u8)"]
27989#[inline(always)]
27990#[target_feature(enable = "neon")]
27991#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27992#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u8"))]
27993#[cfg_attr(
27994    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27995    assert_instr(umlal)
27996)]
27997#[cfg_attr(
27998    not(target_arch = "arm"),
27999    stable(feature = "neon_intrinsics", since = "1.59.0")
28000)]
28001#[cfg_attr(
28002    target_arch = "arm",
28003    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28004)]
28005pub fn vmlal_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
28006    unsafe { simd_add(a, vmull_u8(b, c)) }
28007}
28008#[doc = "Unsigned multiply-add long"]
28009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u16)"]
28010#[inline(always)]
28011#[target_feature(enable = "neon")]
28012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28013#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16"))]
28014#[cfg_attr(
28015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28016    assert_instr(umlal)
28017)]
28018#[cfg_attr(
28019    not(target_arch = "arm"),
28020    stable(feature = "neon_intrinsics", since = "1.59.0")
28021)]
28022#[cfg_attr(
28023    target_arch = "arm",
28024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28025)]
28026pub fn vmlal_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
28027    unsafe { simd_add(a, vmull_u16(b, c)) }
28028}
28029#[doc = "Unsigned multiply-add long"]
28030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u32)"]
28031#[inline(always)]
28032#[target_feature(enable = "neon")]
28033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28034#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32"))]
28035#[cfg_attr(
28036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28037    assert_instr(umlal)
28038)]
28039#[cfg_attr(
28040    not(target_arch = "arm"),
28041    stable(feature = "neon_intrinsics", since = "1.59.0")
28042)]
28043#[cfg_attr(
28044    target_arch = "arm",
28045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28046)]
28047pub fn vmlal_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
28048    unsafe { simd_add(a, vmull_u32(b, c)) }
28049}
28050#[doc = "Floating-point multiply-subtract from accumulator"]
28051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_f32)"]
28052#[inline(always)]
28053#[target_feature(enable = "neon")]
28054#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28055#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
28056#[cfg_attr(
28057    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28058    assert_instr(fmul)
28059)]
28060#[cfg_attr(
28061    not(target_arch = "arm"),
28062    stable(feature = "neon_intrinsics", since = "1.59.0")
28063)]
28064#[cfg_attr(
28065    target_arch = "arm",
28066    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28067)]
28068pub fn vmls_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
28069    unsafe { simd_sub(a, simd_mul(b, c)) }
28070}
28071#[doc = "Floating-point multiply-subtract from accumulator"]
28072#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_f32)"]
28073#[inline(always)]
28074#[target_feature(enable = "neon")]
28075#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28076#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
28077#[cfg_attr(
28078    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28079    assert_instr(fmul)
28080)]
28081#[cfg_attr(
28082    not(target_arch = "arm"),
28083    stable(feature = "neon_intrinsics", since = "1.59.0")
28084)]
28085#[cfg_attr(
28086    target_arch = "arm",
28087    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28088)]
28089pub fn vmlsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
28090    unsafe { simd_sub(a, simd_mul(b, c)) }
28091}
28092#[doc = "Vector multiply subtract with scalar"]
28093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_f32)"]
28094#[inline(always)]
28095#[target_feature(enable = "neon")]
28096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28097#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
28098#[cfg_attr(
28099    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28100    assert_instr(fmul, LANE = 1)
28101)]
28102#[rustc_legacy_const_generics(3)]
28103#[cfg_attr(
28104    not(target_arch = "arm"),
28105    stable(feature = "neon_intrinsics", since = "1.59.0")
28106)]
28107#[cfg_attr(
28108    target_arch = "arm",
28109    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28110)]
28111pub fn vmls_lane_f32<const LANE: i32>(
28112    a: float32x2_t,
28113    b: float32x2_t,
28114    c: float32x2_t,
28115) -> float32x2_t {
28116    static_assert_uimm_bits!(LANE, 1);
28117    unsafe { vmls_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28118}
28119#[doc = "Vector multiply subtract with scalar"]
28120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_f32)"]
28121#[inline(always)]
28122#[target_feature(enable = "neon")]
28123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28124#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
28125#[cfg_attr(
28126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28127    assert_instr(fmul, LANE = 1)
28128)]
28129#[rustc_legacy_const_generics(3)]
28130#[cfg_attr(
28131    not(target_arch = "arm"),
28132    stable(feature = "neon_intrinsics", since = "1.59.0")
28133)]
28134#[cfg_attr(
28135    target_arch = "arm",
28136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28137)]
28138pub fn vmls_laneq_f32<const LANE: i32>(
28139    a: float32x2_t,
28140    b: float32x2_t,
28141    c: float32x4_t,
28142) -> float32x2_t {
28143    static_assert_uimm_bits!(LANE, 2);
28144    unsafe { vmls_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28145}
28146#[doc = "Vector multiply subtract with scalar"]
28147#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_f32)"]
28148#[inline(always)]
28149#[target_feature(enable = "neon")]
28150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28151#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
28152#[cfg_attr(
28153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28154    assert_instr(fmul, LANE = 1)
28155)]
28156#[rustc_legacy_const_generics(3)]
28157#[cfg_attr(
28158    not(target_arch = "arm"),
28159    stable(feature = "neon_intrinsics", since = "1.59.0")
28160)]
28161#[cfg_attr(
28162    target_arch = "arm",
28163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28164)]
28165pub fn vmlsq_lane_f32<const LANE: i32>(
28166    a: float32x4_t,
28167    b: float32x4_t,
28168    c: float32x2_t,
28169) -> float32x4_t {
28170    static_assert_uimm_bits!(LANE, 1);
28171    unsafe {
28172        vmlsq_f32(
28173            a,
28174            b,
28175            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28176        )
28177    }
28178}
28179#[doc = "Vector multiply subtract with scalar"]
28180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_f32)"]
28181#[inline(always)]
28182#[target_feature(enable = "neon")]
28183#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28184#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
28185#[cfg_attr(
28186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28187    assert_instr(fmul, LANE = 1)
28188)]
28189#[rustc_legacy_const_generics(3)]
28190#[cfg_attr(
28191    not(target_arch = "arm"),
28192    stable(feature = "neon_intrinsics", since = "1.59.0")
28193)]
28194#[cfg_attr(
28195    target_arch = "arm",
28196    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28197)]
28198pub fn vmlsq_laneq_f32<const LANE: i32>(
28199    a: float32x4_t,
28200    b: float32x4_t,
28201    c: float32x4_t,
28202) -> float32x4_t {
28203    static_assert_uimm_bits!(LANE, 2);
28204    unsafe {
28205        vmlsq_f32(
28206            a,
28207            b,
28208            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28209        )
28210    }
28211}
28212#[doc = "Vector multiply subtract with scalar"]
28213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s16)"]
28214#[inline(always)]
28215#[target_feature(enable = "neon")]
28216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28217#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28218#[cfg_attr(
28219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28220    assert_instr(mls, LANE = 1)
28221)]
28222#[rustc_legacy_const_generics(3)]
28223#[cfg_attr(
28224    not(target_arch = "arm"),
28225    stable(feature = "neon_intrinsics", since = "1.59.0")
28226)]
28227#[cfg_attr(
28228    target_arch = "arm",
28229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28230)]
28231pub fn vmls_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
28232    static_assert_uimm_bits!(LANE, 2);
28233    unsafe {
28234        vmls_s16(
28235            a,
28236            b,
28237            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28238        )
28239    }
28240}
28241#[doc = "Vector multiply subtract with scalar"]
28242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u16)"]
28243#[inline(always)]
28244#[target_feature(enable = "neon")]
28245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28246#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28247#[cfg_attr(
28248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28249    assert_instr(mls, LANE = 1)
28250)]
28251#[rustc_legacy_const_generics(3)]
28252#[cfg_attr(
28253    not(target_arch = "arm"),
28254    stable(feature = "neon_intrinsics", since = "1.59.0")
28255)]
28256#[cfg_attr(
28257    target_arch = "arm",
28258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28259)]
28260pub fn vmls_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
28261    static_assert_uimm_bits!(LANE, 2);
28262    unsafe {
28263        vmls_u16(
28264            a,
28265            b,
28266            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28267        )
28268    }
28269}
28270#[doc = "Vector multiply subtract with scalar"]
28271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s16)"]
28272#[inline(always)]
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("vmls.i16", LANE = 1))]
28276#[cfg_attr(
28277    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28278    assert_instr(mls, LANE = 1)
28279)]
28280#[rustc_legacy_const_generics(3)]
28281#[cfg_attr(
28282    not(target_arch = "arm"),
28283    stable(feature = "neon_intrinsics", since = "1.59.0")
28284)]
28285#[cfg_attr(
28286    target_arch = "arm",
28287    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28288)]
28289pub fn vmls_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
28290    static_assert_uimm_bits!(LANE, 3);
28291    unsafe {
28292        vmls_s16(
28293            a,
28294            b,
28295            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28296        )
28297    }
28298}
28299#[doc = "Vector multiply subtract with scalar"]
28300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u16)"]
28301#[inline(always)]
28302#[target_feature(enable = "neon")]
28303#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28304#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28305#[cfg_attr(
28306    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28307    assert_instr(mls, LANE = 1)
28308)]
28309#[rustc_legacy_const_generics(3)]
28310#[cfg_attr(
28311    not(target_arch = "arm"),
28312    stable(feature = "neon_intrinsics", since = "1.59.0")
28313)]
28314#[cfg_attr(
28315    target_arch = "arm",
28316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28317)]
28318pub fn vmls_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
28319    static_assert_uimm_bits!(LANE, 3);
28320    unsafe {
28321        vmls_u16(
28322            a,
28323            b,
28324            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28325        )
28326    }
28327}
28328#[doc = "Vector multiply subtract with scalar"]
28329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s16)"]
28330#[inline(always)]
28331#[target_feature(enable = "neon")]
28332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28333#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28334#[cfg_attr(
28335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28336    assert_instr(mls, LANE = 1)
28337)]
28338#[rustc_legacy_const_generics(3)]
28339#[cfg_attr(
28340    not(target_arch = "arm"),
28341    stable(feature = "neon_intrinsics", since = "1.59.0")
28342)]
28343#[cfg_attr(
28344    target_arch = "arm",
28345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28346)]
28347pub fn vmlsq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
28348    static_assert_uimm_bits!(LANE, 2);
28349    unsafe {
28350        vmlsq_s16(
28351            a,
28352            b,
28353            simd_shuffle!(
28354                c,
28355                c,
28356                [
28357                    LANE as u32,
28358                    LANE as u32,
28359                    LANE as u32,
28360                    LANE as u32,
28361                    LANE as u32,
28362                    LANE as u32,
28363                    LANE as u32,
28364                    LANE as u32
28365                ]
28366            ),
28367        )
28368    }
28369}
28370#[doc = "Vector multiply subtract with scalar"]
28371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u16)"]
28372#[inline(always)]
28373#[target_feature(enable = "neon")]
28374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28375#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28376#[cfg_attr(
28377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28378    assert_instr(mls, LANE = 1)
28379)]
28380#[rustc_legacy_const_generics(3)]
28381#[cfg_attr(
28382    not(target_arch = "arm"),
28383    stable(feature = "neon_intrinsics", since = "1.59.0")
28384)]
28385#[cfg_attr(
28386    target_arch = "arm",
28387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28388)]
28389pub fn vmlsq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
28390    static_assert_uimm_bits!(LANE, 2);
28391    unsafe {
28392        vmlsq_u16(
28393            a,
28394            b,
28395            simd_shuffle!(
28396                c,
28397                c,
28398                [
28399                    LANE as u32,
28400                    LANE as u32,
28401                    LANE as u32,
28402                    LANE as u32,
28403                    LANE as u32,
28404                    LANE as u32,
28405                    LANE as u32,
28406                    LANE as u32
28407                ]
28408            ),
28409        )
28410    }
28411}
28412#[doc = "Vector multiply subtract with scalar"]
28413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s16)"]
28414#[inline(always)]
28415#[target_feature(enable = "neon")]
28416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28417#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28418#[cfg_attr(
28419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28420    assert_instr(mls, LANE = 1)
28421)]
28422#[rustc_legacy_const_generics(3)]
28423#[cfg_attr(
28424    not(target_arch = "arm"),
28425    stable(feature = "neon_intrinsics", since = "1.59.0")
28426)]
28427#[cfg_attr(
28428    target_arch = "arm",
28429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28430)]
28431pub fn vmlsq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
28432    static_assert_uimm_bits!(LANE, 3);
28433    unsafe {
28434        vmlsq_s16(
28435            a,
28436            b,
28437            simd_shuffle!(
28438                c,
28439                c,
28440                [
28441                    LANE as u32,
28442                    LANE as u32,
28443                    LANE as u32,
28444                    LANE as u32,
28445                    LANE as u32,
28446                    LANE as u32,
28447                    LANE as u32,
28448                    LANE as u32
28449                ]
28450            ),
28451        )
28452    }
28453}
28454#[doc = "Vector multiply subtract with scalar"]
28455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u16)"]
28456#[inline(always)]
28457#[target_feature(enable = "neon")]
28458#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28459#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28460#[cfg_attr(
28461    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28462    assert_instr(mls, LANE = 1)
28463)]
28464#[rustc_legacy_const_generics(3)]
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 vmlsq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
28474    static_assert_uimm_bits!(LANE, 3);
28475    unsafe {
28476        vmlsq_u16(
28477            a,
28478            b,
28479            simd_shuffle!(
28480                c,
28481                c,
28482                [
28483                    LANE as u32,
28484                    LANE as u32,
28485                    LANE as u32,
28486                    LANE as u32,
28487                    LANE as u32,
28488                    LANE as u32,
28489                    LANE as u32,
28490                    LANE as u32
28491                ]
28492            ),
28493        )
28494    }
28495}
28496#[doc = "Vector multiply subtract with scalar"]
28497#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s32)"]
28498#[inline(always)]
28499#[target_feature(enable = "neon")]
28500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28501#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28502#[cfg_attr(
28503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28504    assert_instr(mls, LANE = 1)
28505)]
28506#[rustc_legacy_const_generics(3)]
28507#[cfg_attr(
28508    not(target_arch = "arm"),
28509    stable(feature = "neon_intrinsics", since = "1.59.0")
28510)]
28511#[cfg_attr(
28512    target_arch = "arm",
28513    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28514)]
28515pub fn vmls_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
28516    static_assert_uimm_bits!(LANE, 1);
28517    unsafe { vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28518}
28519#[doc = "Vector multiply subtract with scalar"]
28520#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u32)"]
28521#[inline(always)]
28522#[target_feature(enable = "neon")]
28523#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28524#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28525#[cfg_attr(
28526    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28527    assert_instr(mls, LANE = 1)
28528)]
28529#[rustc_legacy_const_generics(3)]
28530#[cfg_attr(
28531    not(target_arch = "arm"),
28532    stable(feature = "neon_intrinsics", since = "1.59.0")
28533)]
28534#[cfg_attr(
28535    target_arch = "arm",
28536    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28537)]
28538pub fn vmls_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
28539    static_assert_uimm_bits!(LANE, 1);
28540    unsafe { vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28541}
28542#[doc = "Vector multiply subtract with scalar"]
28543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s32)"]
28544#[inline(always)]
28545#[target_feature(enable = "neon")]
28546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28547#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28548#[cfg_attr(
28549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28550    assert_instr(mls, LANE = 1)
28551)]
28552#[rustc_legacy_const_generics(3)]
28553#[cfg_attr(
28554    not(target_arch = "arm"),
28555    stable(feature = "neon_intrinsics", since = "1.59.0")
28556)]
28557#[cfg_attr(
28558    target_arch = "arm",
28559    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28560)]
28561pub fn vmls_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
28562    static_assert_uimm_bits!(LANE, 2);
28563    unsafe { vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28564}
28565#[doc = "Vector multiply subtract with scalar"]
28566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u32)"]
28567#[inline(always)]
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("vmls.i32", LANE = 1))]
28571#[cfg_attr(
28572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28573    assert_instr(mls, LANE = 1)
28574)]
28575#[rustc_legacy_const_generics(3)]
28576#[cfg_attr(
28577    not(target_arch = "arm"),
28578    stable(feature = "neon_intrinsics", since = "1.59.0")
28579)]
28580#[cfg_attr(
28581    target_arch = "arm",
28582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28583)]
28584pub fn vmls_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
28585    static_assert_uimm_bits!(LANE, 2);
28586    unsafe { vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28587}
28588#[doc = "Vector multiply subtract with scalar"]
28589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s32)"]
28590#[inline(always)]
28591#[target_feature(enable = "neon")]
28592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28593#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28594#[cfg_attr(
28595    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28596    assert_instr(mls, LANE = 1)
28597)]
28598#[rustc_legacy_const_generics(3)]
28599#[cfg_attr(
28600    not(target_arch = "arm"),
28601    stable(feature = "neon_intrinsics", since = "1.59.0")
28602)]
28603#[cfg_attr(
28604    target_arch = "arm",
28605    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28606)]
28607pub fn vmlsq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
28608    static_assert_uimm_bits!(LANE, 1);
28609    unsafe {
28610        vmlsq_s32(
28611            a,
28612            b,
28613            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28614        )
28615    }
28616}
28617#[doc = "Vector multiply subtract with scalar"]
28618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u32)"]
28619#[inline(always)]
28620#[target_feature(enable = "neon")]
28621#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28622#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28623#[cfg_attr(
28624    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28625    assert_instr(mls, LANE = 1)
28626)]
28627#[rustc_legacy_const_generics(3)]
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 vmlsq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
28637    static_assert_uimm_bits!(LANE, 1);
28638    unsafe {
28639        vmlsq_u32(
28640            a,
28641            b,
28642            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28643        )
28644    }
28645}
28646#[doc = "Vector multiply subtract with scalar"]
28647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s32)"]
28648#[inline(always)]
28649#[target_feature(enable = "neon")]
28650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28651#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28652#[cfg_attr(
28653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28654    assert_instr(mls, LANE = 1)
28655)]
28656#[rustc_legacy_const_generics(3)]
28657#[cfg_attr(
28658    not(target_arch = "arm"),
28659    stable(feature = "neon_intrinsics", since = "1.59.0")
28660)]
28661#[cfg_attr(
28662    target_arch = "arm",
28663    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28664)]
28665pub fn vmlsq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
28666    static_assert_uimm_bits!(LANE, 2);
28667    unsafe {
28668        vmlsq_s32(
28669            a,
28670            b,
28671            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28672        )
28673    }
28674}
28675#[doc = "Vector multiply subtract with scalar"]
28676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u32)"]
28677#[inline(always)]
28678#[target_feature(enable = "neon")]
28679#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28680#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28681#[cfg_attr(
28682    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28683    assert_instr(mls, LANE = 1)
28684)]
28685#[rustc_legacy_const_generics(3)]
28686#[cfg_attr(
28687    not(target_arch = "arm"),
28688    stable(feature = "neon_intrinsics", since = "1.59.0")
28689)]
28690#[cfg_attr(
28691    target_arch = "arm",
28692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28693)]
28694pub fn vmlsq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
28695    static_assert_uimm_bits!(LANE, 2);
28696    unsafe {
28697        vmlsq_u32(
28698            a,
28699            b,
28700            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28701        )
28702    }
28703}
28704#[doc = "Vector multiply subtract with scalar"]
28705#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_f32)"]
28706#[inline(always)]
28707#[target_feature(enable = "neon")]
28708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28709#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
28710#[cfg_attr(
28711    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28712    assert_instr(fmul)
28713)]
28714#[cfg_attr(
28715    not(target_arch = "arm"),
28716    stable(feature = "neon_intrinsics", since = "1.59.0")
28717)]
28718#[cfg_attr(
28719    target_arch = "arm",
28720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28721)]
28722pub fn vmls_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
28723    vmls_f32(a, b, vdup_n_f32(c))
28724}
28725#[doc = "Vector multiply subtract with scalar"]
28726#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_f32)"]
28727#[inline(always)]
28728#[target_feature(enable = "neon")]
28729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28730#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
28731#[cfg_attr(
28732    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28733    assert_instr(fmul)
28734)]
28735#[cfg_attr(
28736    not(target_arch = "arm"),
28737    stable(feature = "neon_intrinsics", since = "1.59.0")
28738)]
28739#[cfg_attr(
28740    target_arch = "arm",
28741    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28742)]
28743pub fn vmlsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
28744    vmlsq_f32(a, b, vdupq_n_f32(c))
28745}
28746#[doc = "Vector multiply subtract with scalar"]
28747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s16)"]
28748#[inline(always)]
28749#[target_feature(enable = "neon")]
28750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28751#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28752#[cfg_attr(
28753    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28754    assert_instr(mls)
28755)]
28756#[cfg_attr(
28757    not(target_arch = "arm"),
28758    stable(feature = "neon_intrinsics", since = "1.59.0")
28759)]
28760#[cfg_attr(
28761    target_arch = "arm",
28762    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28763)]
28764pub fn vmls_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
28765    vmls_s16(a, b, vdup_n_s16(c))
28766}
28767#[doc = "Vector multiply subtract with scalar"]
28768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_s16)"]
28769#[inline(always)]
28770#[target_feature(enable = "neon")]
28771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28772#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28773#[cfg_attr(
28774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28775    assert_instr(mls)
28776)]
28777#[cfg_attr(
28778    not(target_arch = "arm"),
28779    stable(feature = "neon_intrinsics", since = "1.59.0")
28780)]
28781#[cfg_attr(
28782    target_arch = "arm",
28783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28784)]
28785pub fn vmlsq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
28786    vmlsq_s16(a, b, vdupq_n_s16(c))
28787}
28788#[doc = "Vector multiply subtract with scalar"]
28789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u16)"]
28790#[inline(always)]
28791#[target_feature(enable = "neon")]
28792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28793#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28794#[cfg_attr(
28795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28796    assert_instr(mls)
28797)]
28798#[cfg_attr(
28799    not(target_arch = "arm"),
28800    stable(feature = "neon_intrinsics", since = "1.59.0")
28801)]
28802#[cfg_attr(
28803    target_arch = "arm",
28804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28805)]
28806pub fn vmls_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
28807    vmls_u16(a, b, vdup_n_u16(c))
28808}
28809#[doc = "Vector multiply subtract with scalar"]
28810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u16)"]
28811#[inline(always)]
28812#[target_feature(enable = "neon")]
28813#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28814#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28815#[cfg_attr(
28816    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28817    assert_instr(mls)
28818)]
28819#[cfg_attr(
28820    not(target_arch = "arm"),
28821    stable(feature = "neon_intrinsics", since = "1.59.0")
28822)]
28823#[cfg_attr(
28824    target_arch = "arm",
28825    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28826)]
28827pub fn vmlsq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
28828    vmlsq_u16(a, b, vdupq_n_u16(c))
28829}
28830#[doc = "Vector multiply subtract with scalar"]
28831#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s32)"]
28832#[inline(always)]
28833#[target_feature(enable = "neon")]
28834#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28835#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
28836#[cfg_attr(
28837    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28838    assert_instr(mls)
28839)]
28840#[cfg_attr(
28841    not(target_arch = "arm"),
28842    stable(feature = "neon_intrinsics", since = "1.59.0")
28843)]
28844#[cfg_attr(
28845    target_arch = "arm",
28846    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28847)]
28848pub fn vmls_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
28849    vmls_s32(a, b, vdup_n_s32(c))
28850}
28851#[doc = "Vector multiply subtract with scalar"]
28852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_s32)"]
28853#[inline(always)]
28854#[target_feature(enable = "neon")]
28855#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28856#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
28857#[cfg_attr(
28858    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28859    assert_instr(mls)
28860)]
28861#[cfg_attr(
28862    not(target_arch = "arm"),
28863    stable(feature = "neon_intrinsics", since = "1.59.0")
28864)]
28865#[cfg_attr(
28866    target_arch = "arm",
28867    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28868)]
28869pub fn vmlsq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
28870    vmlsq_s32(a, b, vdupq_n_s32(c))
28871}
28872#[doc = "Vector multiply subtract with scalar"]
28873#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u32)"]
28874#[inline(always)]
28875#[target_feature(enable = "neon")]
28876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28877#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
28878#[cfg_attr(
28879    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28880    assert_instr(mls)
28881)]
28882#[cfg_attr(
28883    not(target_arch = "arm"),
28884    stable(feature = "neon_intrinsics", since = "1.59.0")
28885)]
28886#[cfg_attr(
28887    target_arch = "arm",
28888    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28889)]
28890pub fn vmls_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
28891    vmls_u32(a, b, vdup_n_u32(c))
28892}
28893#[doc = "Vector multiply subtract with scalar"]
28894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u32)"]
28895#[inline(always)]
28896#[target_feature(enable = "neon")]
28897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28898#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
28899#[cfg_attr(
28900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28901    assert_instr(mls)
28902)]
28903#[cfg_attr(
28904    not(target_arch = "arm"),
28905    stable(feature = "neon_intrinsics", since = "1.59.0")
28906)]
28907#[cfg_attr(
28908    target_arch = "arm",
28909    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28910)]
28911pub fn vmlsq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
28912    vmlsq_u32(a, b, vdupq_n_u32(c))
28913}
28914#[doc = "Multiply-subtract from accumulator"]
28915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s8)"]
28916#[inline(always)]
28917#[target_feature(enable = "neon")]
28918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28919#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
28920#[cfg_attr(
28921    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28922    assert_instr(mls)
28923)]
28924#[cfg_attr(
28925    not(target_arch = "arm"),
28926    stable(feature = "neon_intrinsics", since = "1.59.0")
28927)]
28928#[cfg_attr(
28929    target_arch = "arm",
28930    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28931)]
28932pub fn vmls_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
28933    unsafe { simd_sub(a, simd_mul(b, c)) }
28934}
28935#[doc = "Multiply-subtract from accumulator"]
28936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s8)"]
28937#[inline(always)]
28938#[target_feature(enable = "neon")]
28939#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28940#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
28941#[cfg_attr(
28942    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28943    assert_instr(mls)
28944)]
28945#[cfg_attr(
28946    not(target_arch = "arm"),
28947    stable(feature = "neon_intrinsics", since = "1.59.0")
28948)]
28949#[cfg_attr(
28950    target_arch = "arm",
28951    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28952)]
28953pub fn vmlsq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
28954    unsafe { simd_sub(a, simd_mul(b, c)) }
28955}
28956#[doc = "Multiply-subtract from accumulator"]
28957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s16)"]
28958#[inline(always)]
28959#[target_feature(enable = "neon")]
28960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28961#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28962#[cfg_attr(
28963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28964    assert_instr(mls)
28965)]
28966#[cfg_attr(
28967    not(target_arch = "arm"),
28968    stable(feature = "neon_intrinsics", since = "1.59.0")
28969)]
28970#[cfg_attr(
28971    target_arch = "arm",
28972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28973)]
28974pub fn vmls_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
28975    unsafe { simd_sub(a, simd_mul(b, c)) }
28976}
28977#[doc = "Multiply-subtract from accumulator"]
28978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s16)"]
28979#[inline(always)]
28980#[target_feature(enable = "neon")]
28981#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28982#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28983#[cfg_attr(
28984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28985    assert_instr(mls)
28986)]
28987#[cfg_attr(
28988    not(target_arch = "arm"),
28989    stable(feature = "neon_intrinsics", since = "1.59.0")
28990)]
28991#[cfg_attr(
28992    target_arch = "arm",
28993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28994)]
28995pub fn vmlsq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
28996    unsafe { simd_sub(a, simd_mul(b, c)) }
28997}
28998#[doc = "Multiply-subtract from accumulator"]
28999#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s32)"]
29000#[inline(always)]
29001#[target_feature(enable = "neon")]
29002#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29003#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
29004#[cfg_attr(
29005    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29006    assert_instr(mls)
29007)]
29008#[cfg_attr(
29009    not(target_arch = "arm"),
29010    stable(feature = "neon_intrinsics", since = "1.59.0")
29011)]
29012#[cfg_attr(
29013    target_arch = "arm",
29014    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29015)]
29016pub fn vmls_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
29017    unsafe { simd_sub(a, simd_mul(b, c)) }
29018}
29019#[doc = "Multiply-subtract from accumulator"]
29020#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s32)"]
29021#[inline(always)]
29022#[target_feature(enable = "neon")]
29023#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29024#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
29025#[cfg_attr(
29026    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29027    assert_instr(mls)
29028)]
29029#[cfg_attr(
29030    not(target_arch = "arm"),
29031    stable(feature = "neon_intrinsics", since = "1.59.0")
29032)]
29033#[cfg_attr(
29034    target_arch = "arm",
29035    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29036)]
29037pub fn vmlsq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
29038    unsafe { simd_sub(a, simd_mul(b, c)) }
29039}
29040#[doc = "Multiply-subtract from accumulator"]
29041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u8)"]
29042#[inline(always)]
29043#[target_feature(enable = "neon")]
29044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29045#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
29046#[cfg_attr(
29047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29048    assert_instr(mls)
29049)]
29050#[cfg_attr(
29051    not(target_arch = "arm"),
29052    stable(feature = "neon_intrinsics", since = "1.59.0")
29053)]
29054#[cfg_attr(
29055    target_arch = "arm",
29056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29057)]
29058pub fn vmls_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
29059    unsafe { simd_sub(a, simd_mul(b, c)) }
29060}
29061#[doc = "Multiply-subtract from accumulator"]
29062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u8)"]
29063#[inline(always)]
29064#[target_feature(enable = "neon")]
29065#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29066#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
29067#[cfg_attr(
29068    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29069    assert_instr(mls)
29070)]
29071#[cfg_attr(
29072    not(target_arch = "arm"),
29073    stable(feature = "neon_intrinsics", since = "1.59.0")
29074)]
29075#[cfg_attr(
29076    target_arch = "arm",
29077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29078)]
29079pub fn vmlsq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
29080    unsafe { simd_sub(a, simd_mul(b, c)) }
29081}
29082#[doc = "Multiply-subtract from accumulator"]
29083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u16)"]
29084#[inline(always)]
29085#[target_feature(enable = "neon")]
29086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29087#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
29088#[cfg_attr(
29089    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29090    assert_instr(mls)
29091)]
29092#[cfg_attr(
29093    not(target_arch = "arm"),
29094    stable(feature = "neon_intrinsics", since = "1.59.0")
29095)]
29096#[cfg_attr(
29097    target_arch = "arm",
29098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29099)]
29100pub fn vmls_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
29101    unsafe { simd_sub(a, simd_mul(b, c)) }
29102}
29103#[doc = "Multiply-subtract from accumulator"]
29104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u16)"]
29105#[inline(always)]
29106#[target_feature(enable = "neon")]
29107#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29108#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
29109#[cfg_attr(
29110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29111    assert_instr(mls)
29112)]
29113#[cfg_attr(
29114    not(target_arch = "arm"),
29115    stable(feature = "neon_intrinsics", since = "1.59.0")
29116)]
29117#[cfg_attr(
29118    target_arch = "arm",
29119    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29120)]
29121pub fn vmlsq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
29122    unsafe { simd_sub(a, simd_mul(b, c)) }
29123}
29124#[doc = "Multiply-subtract from accumulator"]
29125#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u32)"]
29126#[inline(always)]
29127#[target_feature(enable = "neon")]
29128#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29129#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
29130#[cfg_attr(
29131    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29132    assert_instr(mls)
29133)]
29134#[cfg_attr(
29135    not(target_arch = "arm"),
29136    stable(feature = "neon_intrinsics", since = "1.59.0")
29137)]
29138#[cfg_attr(
29139    target_arch = "arm",
29140    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29141)]
29142pub fn vmls_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
29143    unsafe { simd_sub(a, simd_mul(b, c)) }
29144}
29145#[doc = "Multiply-subtract from accumulator"]
29146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u32)"]
29147#[inline(always)]
29148#[target_feature(enable = "neon")]
29149#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29150#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
29151#[cfg_attr(
29152    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29153    assert_instr(mls)
29154)]
29155#[cfg_attr(
29156    not(target_arch = "arm"),
29157    stable(feature = "neon_intrinsics", since = "1.59.0")
29158)]
29159#[cfg_attr(
29160    target_arch = "arm",
29161    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29162)]
29163pub fn vmlsq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
29164    unsafe { simd_sub(a, simd_mul(b, c)) }
29165}
29166#[doc = "Vector widening multiply subtract with scalar"]
29167#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s16)"]
29168#[inline(always)]
29169#[target_feature(enable = "neon")]
29170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29171#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
29172#[cfg_attr(
29173    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29174    assert_instr(smlsl, LANE = 1)
29175)]
29176#[rustc_legacy_const_generics(3)]
29177#[cfg_attr(
29178    not(target_arch = "arm"),
29179    stable(feature = "neon_intrinsics", since = "1.59.0")
29180)]
29181#[cfg_attr(
29182    target_arch = "arm",
29183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29184)]
29185pub fn vmlsl_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
29186    static_assert_uimm_bits!(LANE, 2);
29187    unsafe {
29188        vmlsl_s16(
29189            a,
29190            b,
29191            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29192        )
29193    }
29194}
29195#[doc = "Vector widening multiply subtract with scalar"]
29196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s16)"]
29197#[inline(always)]
29198#[target_feature(enable = "neon")]
29199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29200#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
29201#[cfg_attr(
29202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29203    assert_instr(smlsl, LANE = 1)
29204)]
29205#[rustc_legacy_const_generics(3)]
29206#[cfg_attr(
29207    not(target_arch = "arm"),
29208    stable(feature = "neon_intrinsics", since = "1.59.0")
29209)]
29210#[cfg_attr(
29211    target_arch = "arm",
29212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29213)]
29214pub fn vmlsl_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
29215    static_assert_uimm_bits!(LANE, 3);
29216    unsafe {
29217        vmlsl_s16(
29218            a,
29219            b,
29220            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29221        )
29222    }
29223}
29224#[doc = "Vector widening multiply subtract with scalar"]
29225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s32)"]
29226#[inline(always)]
29227#[target_feature(enable = "neon")]
29228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29229#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
29230#[cfg_attr(
29231    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29232    assert_instr(smlsl, LANE = 1)
29233)]
29234#[rustc_legacy_const_generics(3)]
29235#[cfg_attr(
29236    not(target_arch = "arm"),
29237    stable(feature = "neon_intrinsics", since = "1.59.0")
29238)]
29239#[cfg_attr(
29240    target_arch = "arm",
29241    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29242)]
29243pub fn vmlsl_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
29244    static_assert_uimm_bits!(LANE, 1);
29245    unsafe { vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29246}
29247#[doc = "Vector widening multiply subtract with scalar"]
29248#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s32)"]
29249#[inline(always)]
29250#[target_feature(enable = "neon")]
29251#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29252#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
29253#[cfg_attr(
29254    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29255    assert_instr(smlsl, LANE = 1)
29256)]
29257#[rustc_legacy_const_generics(3)]
29258#[cfg_attr(
29259    not(target_arch = "arm"),
29260    stable(feature = "neon_intrinsics", since = "1.59.0")
29261)]
29262#[cfg_attr(
29263    target_arch = "arm",
29264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29265)]
29266pub fn vmlsl_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
29267    static_assert_uimm_bits!(LANE, 2);
29268    unsafe { vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29269}
29270#[doc = "Vector widening multiply subtract with scalar"]
29271#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u16)"]
29272#[inline(always)]
29273#[target_feature(enable = "neon")]
29274#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29275#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
29276#[cfg_attr(
29277    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29278    assert_instr(umlsl, LANE = 1)
29279)]
29280#[rustc_legacy_const_generics(3)]
29281#[cfg_attr(
29282    not(target_arch = "arm"),
29283    stable(feature = "neon_intrinsics", since = "1.59.0")
29284)]
29285#[cfg_attr(
29286    target_arch = "arm",
29287    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29288)]
29289pub fn vmlsl_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
29290    static_assert_uimm_bits!(LANE, 2);
29291    unsafe {
29292        vmlsl_u16(
29293            a,
29294            b,
29295            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29296        )
29297    }
29298}
29299#[doc = "Vector widening multiply subtract with scalar"]
29300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u16)"]
29301#[inline(always)]
29302#[target_feature(enable = "neon")]
29303#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29304#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
29305#[cfg_attr(
29306    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29307    assert_instr(umlsl, LANE = 1)
29308)]
29309#[rustc_legacy_const_generics(3)]
29310#[cfg_attr(
29311    not(target_arch = "arm"),
29312    stable(feature = "neon_intrinsics", since = "1.59.0")
29313)]
29314#[cfg_attr(
29315    target_arch = "arm",
29316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29317)]
29318pub fn vmlsl_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
29319    static_assert_uimm_bits!(LANE, 3);
29320    unsafe {
29321        vmlsl_u16(
29322            a,
29323            b,
29324            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29325        )
29326    }
29327}
29328#[doc = "Vector widening multiply subtract with scalar"]
29329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u32)"]
29330#[inline(always)]
29331#[target_feature(enable = "neon")]
29332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29333#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
29334#[cfg_attr(
29335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29336    assert_instr(umlsl, LANE = 1)
29337)]
29338#[rustc_legacy_const_generics(3)]
29339#[cfg_attr(
29340    not(target_arch = "arm"),
29341    stable(feature = "neon_intrinsics", since = "1.59.0")
29342)]
29343#[cfg_attr(
29344    target_arch = "arm",
29345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29346)]
29347pub fn vmlsl_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
29348    static_assert_uimm_bits!(LANE, 1);
29349    unsafe { vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29350}
29351#[doc = "Vector widening multiply subtract with scalar"]
29352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u32)"]
29353#[inline(always)]
29354#[target_feature(enable = "neon")]
29355#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29356#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
29357#[cfg_attr(
29358    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29359    assert_instr(umlsl, LANE = 1)
29360)]
29361#[rustc_legacy_const_generics(3)]
29362#[cfg_attr(
29363    not(target_arch = "arm"),
29364    stable(feature = "neon_intrinsics", since = "1.59.0")
29365)]
29366#[cfg_attr(
29367    target_arch = "arm",
29368    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29369)]
29370pub fn vmlsl_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
29371    static_assert_uimm_bits!(LANE, 2);
29372    unsafe { vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29373}
29374#[doc = "Vector widening multiply subtract with scalar"]
29375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s16)"]
29376#[inline(always)]
29377#[target_feature(enable = "neon")]
29378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29379#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
29380#[cfg_attr(
29381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29382    assert_instr(smlsl)
29383)]
29384#[cfg_attr(
29385    not(target_arch = "arm"),
29386    stable(feature = "neon_intrinsics", since = "1.59.0")
29387)]
29388#[cfg_attr(
29389    target_arch = "arm",
29390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29391)]
29392pub fn vmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
29393    vmlsl_s16(a, b, vdup_n_s16(c))
29394}
29395#[doc = "Vector widening multiply subtract with scalar"]
29396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s32)"]
29397#[inline(always)]
29398#[target_feature(enable = "neon")]
29399#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29400#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
29401#[cfg_attr(
29402    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29403    assert_instr(smlsl)
29404)]
29405#[cfg_attr(
29406    not(target_arch = "arm"),
29407    stable(feature = "neon_intrinsics", since = "1.59.0")
29408)]
29409#[cfg_attr(
29410    target_arch = "arm",
29411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29412)]
29413pub fn vmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
29414    vmlsl_s32(a, b, vdup_n_s32(c))
29415}
29416#[doc = "Vector widening multiply subtract with scalar"]
29417#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u16)"]
29418#[inline(always)]
29419#[target_feature(enable = "neon")]
29420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29421#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
29422#[cfg_attr(
29423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29424    assert_instr(umlsl)
29425)]
29426#[cfg_attr(
29427    not(target_arch = "arm"),
29428    stable(feature = "neon_intrinsics", since = "1.59.0")
29429)]
29430#[cfg_attr(
29431    target_arch = "arm",
29432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29433)]
29434pub fn vmlsl_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
29435    vmlsl_u16(a, b, vdup_n_u16(c))
29436}
29437#[doc = "Vector widening multiply subtract with scalar"]
29438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u32)"]
29439#[inline(always)]
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("vmlsl.u32"))]
29443#[cfg_attr(
29444    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29445    assert_instr(umlsl)
29446)]
29447#[cfg_attr(
29448    not(target_arch = "arm"),
29449    stable(feature = "neon_intrinsics", since = "1.59.0")
29450)]
29451#[cfg_attr(
29452    target_arch = "arm",
29453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29454)]
29455pub fn vmlsl_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
29456    vmlsl_u32(a, b, vdup_n_u32(c))
29457}
29458#[doc = "Signed multiply-subtract long"]
29459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s8)"]
29460#[inline(always)]
29461#[target_feature(enable = "neon")]
29462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29463#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s8"))]
29464#[cfg_attr(
29465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29466    assert_instr(smlsl)
29467)]
29468#[cfg_attr(
29469    not(target_arch = "arm"),
29470    stable(feature = "neon_intrinsics", since = "1.59.0")
29471)]
29472#[cfg_attr(
29473    target_arch = "arm",
29474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29475)]
29476pub fn vmlsl_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
29477    unsafe { simd_sub(a, vmull_s8(b, c)) }
29478}
29479#[doc = "Signed multiply-subtract long"]
29480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s16)"]
29481#[inline(always)]
29482#[target_feature(enable = "neon")]
29483#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29484#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
29485#[cfg_attr(
29486    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29487    assert_instr(smlsl)
29488)]
29489#[cfg_attr(
29490    not(target_arch = "arm"),
29491    stable(feature = "neon_intrinsics", since = "1.59.0")
29492)]
29493#[cfg_attr(
29494    target_arch = "arm",
29495    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29496)]
29497pub fn vmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
29498    unsafe { simd_sub(a, vmull_s16(b, c)) }
29499}
29500#[doc = "Signed multiply-subtract long"]
29501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s32)"]
29502#[inline(always)]
29503#[target_feature(enable = "neon")]
29504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29505#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
29506#[cfg_attr(
29507    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29508    assert_instr(smlsl)
29509)]
29510#[cfg_attr(
29511    not(target_arch = "arm"),
29512    stable(feature = "neon_intrinsics", since = "1.59.0")
29513)]
29514#[cfg_attr(
29515    target_arch = "arm",
29516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29517)]
29518pub fn vmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
29519    unsafe { simd_sub(a, vmull_s32(b, c)) }
29520}
29521#[doc = "Unsigned multiply-subtract long"]
29522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u8)"]
29523#[inline(always)]
29524#[target_feature(enable = "neon")]
29525#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29526#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u8"))]
29527#[cfg_attr(
29528    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29529    assert_instr(umlsl)
29530)]
29531#[cfg_attr(
29532    not(target_arch = "arm"),
29533    stable(feature = "neon_intrinsics", since = "1.59.0")
29534)]
29535#[cfg_attr(
29536    target_arch = "arm",
29537    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29538)]
29539pub fn vmlsl_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
29540    unsafe { simd_sub(a, vmull_u8(b, c)) }
29541}
29542#[doc = "Unsigned multiply-subtract long"]
29543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u16)"]
29544#[inline(always)]
29545#[target_feature(enable = "neon")]
29546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29547#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
29548#[cfg_attr(
29549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29550    assert_instr(umlsl)
29551)]
29552#[cfg_attr(
29553    not(target_arch = "arm"),
29554    stable(feature = "neon_intrinsics", since = "1.59.0")
29555)]
29556#[cfg_attr(
29557    target_arch = "arm",
29558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29559)]
29560pub fn vmlsl_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
29561    unsafe { simd_sub(a, vmull_u16(b, c)) }
29562}
29563#[doc = "Unsigned multiply-subtract long"]
29564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u32)"]
29565#[inline(always)]
29566#[target_feature(enable = "neon")]
29567#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29568#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32"))]
29569#[cfg_attr(
29570    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29571    assert_instr(umlsl)
29572)]
29573#[cfg_attr(
29574    not(target_arch = "arm"),
29575    stable(feature = "neon_intrinsics", since = "1.59.0")
29576)]
29577#[cfg_attr(
29578    target_arch = "arm",
29579    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29580)]
29581pub fn vmlsl_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
29582    unsafe { simd_sub(a, vmull_u32(b, c)) }
29583}
29584#[doc = "8-bit integer matrix multiply-accumulate"]
29585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmmlaq_s32)"]
29586#[inline(always)]
29587#[target_feature(enable = "neon,i8mm")]
29588#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
29589#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
29590#[cfg_attr(
29591    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29592    assert_instr(smmla)
29593)]
29594#[cfg_attr(
29595    not(target_arch = "arm"),
29596    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
29597)]
29598#[cfg_attr(
29599    target_arch = "arm",
29600    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29601)]
29602pub fn vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
29603    unsafe extern "unadjusted" {
29604        #[cfg_attr(
29605            any(target_arch = "aarch64", target_arch = "arm64ec"),
29606            link_name = "llvm.aarch64.neon.smmla.v4i32.v16i8"
29607        )]
29608        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.smmla.v4i32.v16i8")]
29609        fn _vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t;
29610    }
29611    unsafe { _vmmlaq_s32(a, b, c) }
29612}
29613#[doc = "8-bit integer matrix multiply-accumulate"]
29614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmmlaq_u32)"]
29615#[inline(always)]
29616#[target_feature(enable = "neon,i8mm")]
29617#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
29618#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
29619#[cfg_attr(
29620    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29621    assert_instr(ummla)
29622)]
29623#[cfg_attr(
29624    not(target_arch = "arm"),
29625    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
29626)]
29627#[cfg_attr(
29628    target_arch = "arm",
29629    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29630)]
29631pub fn vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
29632    unsafe extern "unadjusted" {
29633        #[cfg_attr(
29634            any(target_arch = "aarch64", target_arch = "arm64ec"),
29635            link_name = "llvm.aarch64.neon.ummla.v4i32.v16i8"
29636        )]
29637        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.ummla.v4i32.v16i8")]
29638        fn _vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t;
29639    }
29640    unsafe { _vmmlaq_u32(a, b, c) }
29641}
29642#[doc = "Duplicate element to vector"]
29643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_f16)"]
29644#[inline(always)]
29645#[target_feature(enable = "neon")]
29646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29647#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29648#[cfg_attr(
29649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29650    assert_instr(dup)
29651)]
29652#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
29653#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
29654#[cfg(not(target_arch = "arm64ec"))]
29655pub fn vmov_n_f16(a: f16) -> float16x4_t {
29656    vdup_n_f16(a)
29657}
29658#[doc = "Duplicate element to vector"]
29659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_f16)"]
29660#[inline(always)]
29661#[target_feature(enable = "neon")]
29662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29663#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29664#[cfg_attr(
29665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29666    assert_instr(dup)
29667)]
29668#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
29669#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
29670#[cfg(not(target_arch = "arm64ec"))]
29671pub fn vmovq_n_f16(a: f16) -> float16x8_t {
29672    vdupq_n_f16(a)
29673}
29674#[doc = "Duplicate vector element to vector or scalar"]
29675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_f32)"]
29676#[inline(always)]
29677#[target_feature(enable = "neon")]
29678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29679#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
29680#[cfg_attr(
29681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29682    assert_instr(dup)
29683)]
29684#[cfg_attr(
29685    not(target_arch = "arm"),
29686    stable(feature = "neon_intrinsics", since = "1.59.0")
29687)]
29688#[cfg_attr(
29689    target_arch = "arm",
29690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29691)]
29692pub fn vmov_n_f32(value: f32) -> float32x2_t {
29693    vdup_n_f32(value)
29694}
29695#[doc = "Duplicate vector element to vector or scalar"]
29696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_p16)"]
29697#[inline(always)]
29698#[target_feature(enable = "neon")]
29699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29700#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29701#[cfg_attr(
29702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29703    assert_instr(dup)
29704)]
29705#[cfg_attr(
29706    not(target_arch = "arm"),
29707    stable(feature = "neon_intrinsics", since = "1.59.0")
29708)]
29709#[cfg_attr(
29710    target_arch = "arm",
29711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29712)]
29713pub fn vmov_n_p16(value: p16) -> poly16x4_t {
29714    vdup_n_p16(value)
29715}
29716#[doc = "Duplicate vector element to vector or scalar"]
29717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_p8)"]
29718#[inline(always)]
29719#[target_feature(enable = "neon")]
29720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29721#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
29722#[cfg_attr(
29723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29724    assert_instr(dup)
29725)]
29726#[cfg_attr(
29727    not(target_arch = "arm"),
29728    stable(feature = "neon_intrinsics", since = "1.59.0")
29729)]
29730#[cfg_attr(
29731    target_arch = "arm",
29732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29733)]
29734pub fn vmov_n_p8(value: p8) -> poly8x8_t {
29735    vdup_n_p8(value)
29736}
29737#[doc = "Duplicate vector element to vector or scalar"]
29738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s16)"]
29739#[inline(always)]
29740#[target_feature(enable = "neon")]
29741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29742#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29743#[cfg_attr(
29744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29745    assert_instr(dup)
29746)]
29747#[cfg_attr(
29748    not(target_arch = "arm"),
29749    stable(feature = "neon_intrinsics", since = "1.59.0")
29750)]
29751#[cfg_attr(
29752    target_arch = "arm",
29753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29754)]
29755pub fn vmov_n_s16(value: i16) -> int16x4_t {
29756    vdup_n_s16(value)
29757}
29758#[doc = "Duplicate vector element to vector or scalar"]
29759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s32)"]
29760#[inline(always)]
29761#[target_feature(enable = "neon")]
29762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29763#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
29764#[cfg_attr(
29765    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29766    assert_instr(dup)
29767)]
29768#[cfg_attr(
29769    not(target_arch = "arm"),
29770    stable(feature = "neon_intrinsics", since = "1.59.0")
29771)]
29772#[cfg_attr(
29773    target_arch = "arm",
29774    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29775)]
29776pub fn vmov_n_s32(value: i32) -> int32x2_t {
29777    vdup_n_s32(value)
29778}
29779#[doc = "Duplicate vector element to vector or scalar"]
29780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s64)"]
29781#[inline(always)]
29782#[target_feature(enable = "neon")]
29783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29784#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
29785#[cfg_attr(
29786    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29787    assert_instr(fmov)
29788)]
29789#[cfg_attr(
29790    not(target_arch = "arm"),
29791    stable(feature = "neon_intrinsics", since = "1.59.0")
29792)]
29793#[cfg_attr(
29794    target_arch = "arm",
29795    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29796)]
29797pub fn vmov_n_s64(value: i64) -> int64x1_t {
29798    vdup_n_s64(value)
29799}
29800#[doc = "Duplicate vector element to vector or scalar"]
29801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s8)"]
29802#[inline(always)]
29803#[target_feature(enable = "neon")]
29804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29805#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
29806#[cfg_attr(
29807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29808    assert_instr(dup)
29809)]
29810#[cfg_attr(
29811    not(target_arch = "arm"),
29812    stable(feature = "neon_intrinsics", since = "1.59.0")
29813)]
29814#[cfg_attr(
29815    target_arch = "arm",
29816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29817)]
29818pub fn vmov_n_s8(value: i8) -> int8x8_t {
29819    vdup_n_s8(value)
29820}
29821#[doc = "Duplicate vector element to vector or scalar"]
29822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u16)"]
29823#[inline(always)]
29824#[target_feature(enable = "neon")]
29825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29826#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29827#[cfg_attr(
29828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29829    assert_instr(dup)
29830)]
29831#[cfg_attr(
29832    not(target_arch = "arm"),
29833    stable(feature = "neon_intrinsics", since = "1.59.0")
29834)]
29835#[cfg_attr(
29836    target_arch = "arm",
29837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29838)]
29839pub fn vmov_n_u16(value: u16) -> uint16x4_t {
29840    vdup_n_u16(value)
29841}
29842#[doc = "Duplicate vector element to vector or scalar"]
29843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u32)"]
29844#[inline(always)]
29845#[target_feature(enable = "neon")]
29846#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29847#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
29848#[cfg_attr(
29849    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29850    assert_instr(dup)
29851)]
29852#[cfg_attr(
29853    not(target_arch = "arm"),
29854    stable(feature = "neon_intrinsics", since = "1.59.0")
29855)]
29856#[cfg_attr(
29857    target_arch = "arm",
29858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29859)]
29860pub fn vmov_n_u32(value: u32) -> uint32x2_t {
29861    vdup_n_u32(value)
29862}
29863#[doc = "Duplicate vector element to vector or scalar"]
29864#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u64)"]
29865#[inline(always)]
29866#[target_feature(enable = "neon")]
29867#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29868#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
29869#[cfg_attr(
29870    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29871    assert_instr(fmov)
29872)]
29873#[cfg_attr(
29874    not(target_arch = "arm"),
29875    stable(feature = "neon_intrinsics", since = "1.59.0")
29876)]
29877#[cfg_attr(
29878    target_arch = "arm",
29879    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29880)]
29881pub fn vmov_n_u64(value: u64) -> uint64x1_t {
29882    vdup_n_u64(value)
29883}
29884#[doc = "Duplicate vector element to vector or scalar"]
29885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u8)"]
29886#[inline(always)]
29887#[target_feature(enable = "neon")]
29888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29889#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
29890#[cfg_attr(
29891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29892    assert_instr(dup)
29893)]
29894#[cfg_attr(
29895    not(target_arch = "arm"),
29896    stable(feature = "neon_intrinsics", since = "1.59.0")
29897)]
29898#[cfg_attr(
29899    target_arch = "arm",
29900    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29901)]
29902pub fn vmov_n_u8(value: u8) -> uint8x8_t {
29903    vdup_n_u8(value)
29904}
29905#[doc = "Duplicate vector element to vector or scalar"]
29906#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_f32)"]
29907#[inline(always)]
29908#[target_feature(enable = "neon")]
29909#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29910#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
29911#[cfg_attr(
29912    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29913    assert_instr(dup)
29914)]
29915#[cfg_attr(
29916    not(target_arch = "arm"),
29917    stable(feature = "neon_intrinsics", since = "1.59.0")
29918)]
29919#[cfg_attr(
29920    target_arch = "arm",
29921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29922)]
29923pub fn vmovq_n_f32(value: f32) -> float32x4_t {
29924    vdupq_n_f32(value)
29925}
29926#[doc = "Duplicate vector element to vector or scalar"]
29927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_p16)"]
29928#[inline(always)]
29929#[target_feature(enable = "neon")]
29930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29931#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29932#[cfg_attr(
29933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29934    assert_instr(dup)
29935)]
29936#[cfg_attr(
29937    not(target_arch = "arm"),
29938    stable(feature = "neon_intrinsics", since = "1.59.0")
29939)]
29940#[cfg_attr(
29941    target_arch = "arm",
29942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29943)]
29944pub fn vmovq_n_p16(value: p16) -> poly16x8_t {
29945    vdupq_n_p16(value)
29946}
29947#[doc = "Duplicate vector element to vector or scalar"]
29948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_p8)"]
29949#[inline(always)]
29950#[target_feature(enable = "neon")]
29951#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29952#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
29953#[cfg_attr(
29954    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29955    assert_instr(dup)
29956)]
29957#[cfg_attr(
29958    not(target_arch = "arm"),
29959    stable(feature = "neon_intrinsics", since = "1.59.0")
29960)]
29961#[cfg_attr(
29962    target_arch = "arm",
29963    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29964)]
29965pub fn vmovq_n_p8(value: p8) -> poly8x16_t {
29966    vdupq_n_p8(value)
29967}
29968#[doc = "Duplicate vector element to vector or scalar"]
29969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s16)"]
29970#[inline(always)]
29971#[target_feature(enable = "neon")]
29972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29973#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29974#[cfg_attr(
29975    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29976    assert_instr(dup)
29977)]
29978#[cfg_attr(
29979    not(target_arch = "arm"),
29980    stable(feature = "neon_intrinsics", since = "1.59.0")
29981)]
29982#[cfg_attr(
29983    target_arch = "arm",
29984    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29985)]
29986pub fn vmovq_n_s16(value: i16) -> int16x8_t {
29987    vdupq_n_s16(value)
29988}
29989#[doc = "Duplicate vector element to vector or scalar"]
29990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s32)"]
29991#[inline(always)]
29992#[target_feature(enable = "neon")]
29993#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29994#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
29995#[cfg_attr(
29996    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29997    assert_instr(dup)
29998)]
29999#[cfg_attr(
30000    not(target_arch = "arm"),
30001    stable(feature = "neon_intrinsics", since = "1.59.0")
30002)]
30003#[cfg_attr(
30004    target_arch = "arm",
30005    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30006)]
30007pub fn vmovq_n_s32(value: i32) -> int32x4_t {
30008    vdupq_n_s32(value)
30009}
30010#[doc = "Duplicate vector element to vector or scalar"]
30011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s64)"]
30012#[inline(always)]
30013#[target_feature(enable = "neon")]
30014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30015#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
30016#[cfg_attr(
30017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30018    assert_instr(dup)
30019)]
30020#[cfg_attr(
30021    not(target_arch = "arm"),
30022    stable(feature = "neon_intrinsics", since = "1.59.0")
30023)]
30024#[cfg_attr(
30025    target_arch = "arm",
30026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30027)]
30028pub fn vmovq_n_s64(value: i64) -> int64x2_t {
30029    vdupq_n_s64(value)
30030}
30031#[doc = "Duplicate vector element to vector or scalar"]
30032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s8)"]
30033#[inline(always)]
30034#[target_feature(enable = "neon")]
30035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30036#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
30037#[cfg_attr(
30038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30039    assert_instr(dup)
30040)]
30041#[cfg_attr(
30042    not(target_arch = "arm"),
30043    stable(feature = "neon_intrinsics", since = "1.59.0")
30044)]
30045#[cfg_attr(
30046    target_arch = "arm",
30047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30048)]
30049pub fn vmovq_n_s8(value: i8) -> int8x16_t {
30050    vdupq_n_s8(value)
30051}
30052#[doc = "Duplicate vector element to vector or scalar"]
30053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u16)"]
30054#[inline(always)]
30055#[target_feature(enable = "neon")]
30056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30057#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
30058#[cfg_attr(
30059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30060    assert_instr(dup)
30061)]
30062#[cfg_attr(
30063    not(target_arch = "arm"),
30064    stable(feature = "neon_intrinsics", since = "1.59.0")
30065)]
30066#[cfg_attr(
30067    target_arch = "arm",
30068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30069)]
30070pub fn vmovq_n_u16(value: u16) -> uint16x8_t {
30071    vdupq_n_u16(value)
30072}
30073#[doc = "Duplicate vector element to vector or scalar"]
30074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u32)"]
30075#[inline(always)]
30076#[target_feature(enable = "neon")]
30077#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30078#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
30079#[cfg_attr(
30080    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30081    assert_instr(dup)
30082)]
30083#[cfg_attr(
30084    not(target_arch = "arm"),
30085    stable(feature = "neon_intrinsics", since = "1.59.0")
30086)]
30087#[cfg_attr(
30088    target_arch = "arm",
30089    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30090)]
30091pub fn vmovq_n_u32(value: u32) -> uint32x4_t {
30092    vdupq_n_u32(value)
30093}
30094#[doc = "Duplicate vector element to vector or scalar"]
30095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u64)"]
30096#[inline(always)]
30097#[target_feature(enable = "neon")]
30098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30099#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
30100#[cfg_attr(
30101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30102    assert_instr(dup)
30103)]
30104#[cfg_attr(
30105    not(target_arch = "arm"),
30106    stable(feature = "neon_intrinsics", since = "1.59.0")
30107)]
30108#[cfg_attr(
30109    target_arch = "arm",
30110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30111)]
30112pub fn vmovq_n_u64(value: u64) -> uint64x2_t {
30113    vdupq_n_u64(value)
30114}
30115#[doc = "Duplicate vector element to vector or scalar"]
30116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u8)"]
30117#[inline(always)]
30118#[target_feature(enable = "neon")]
30119#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30120#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
30121#[cfg_attr(
30122    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30123    assert_instr(dup)
30124)]
30125#[cfg_attr(
30126    not(target_arch = "arm"),
30127    stable(feature = "neon_intrinsics", since = "1.59.0")
30128)]
30129#[cfg_attr(
30130    target_arch = "arm",
30131    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30132)]
30133pub fn vmovq_n_u8(value: u8) -> uint8x16_t {
30134    vdupq_n_u8(value)
30135}
30136#[doc = "Vector long move."]
30137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s16)"]
30138#[inline(always)]
30139#[target_feature(enable = "neon")]
30140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30141#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30142#[cfg_attr(
30143    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30144    assert_instr(sxtl)
30145)]
30146#[cfg_attr(
30147    not(target_arch = "arm"),
30148    stable(feature = "neon_intrinsics", since = "1.59.0")
30149)]
30150#[cfg_attr(
30151    target_arch = "arm",
30152    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30153)]
30154pub fn vmovl_s16(a: int16x4_t) -> int32x4_t {
30155    unsafe { simd_cast(a) }
30156}
30157#[doc = "Vector long move."]
30158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s32)"]
30159#[inline(always)]
30160#[target_feature(enable = "neon")]
30161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30163#[cfg_attr(
30164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30165    assert_instr(sxtl)
30166)]
30167#[cfg_attr(
30168    not(target_arch = "arm"),
30169    stable(feature = "neon_intrinsics", since = "1.59.0")
30170)]
30171#[cfg_attr(
30172    target_arch = "arm",
30173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30174)]
30175pub fn vmovl_s32(a: int32x2_t) -> int64x2_t {
30176    unsafe { simd_cast(a) }
30177}
30178#[doc = "Vector long move."]
30179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s8)"]
30180#[inline(always)]
30181#[target_feature(enable = "neon")]
30182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30184#[cfg_attr(
30185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30186    assert_instr(sxtl)
30187)]
30188#[cfg_attr(
30189    not(target_arch = "arm"),
30190    stable(feature = "neon_intrinsics", since = "1.59.0")
30191)]
30192#[cfg_attr(
30193    target_arch = "arm",
30194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30195)]
30196pub fn vmovl_s8(a: int8x8_t) -> int16x8_t {
30197    unsafe { simd_cast(a) }
30198}
30199#[doc = "Vector long move."]
30200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u16)"]
30201#[inline(always)]
30202#[target_feature(enable = "neon")]
30203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30204#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30205#[cfg_attr(
30206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30207    assert_instr(uxtl)
30208)]
30209#[cfg_attr(
30210    not(target_arch = "arm"),
30211    stable(feature = "neon_intrinsics", since = "1.59.0")
30212)]
30213#[cfg_attr(
30214    target_arch = "arm",
30215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30216)]
30217pub fn vmovl_u16(a: uint16x4_t) -> uint32x4_t {
30218    unsafe { simd_cast(a) }
30219}
30220#[doc = "Vector long move."]
30221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u32)"]
30222#[inline(always)]
30223#[target_feature(enable = "neon")]
30224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30226#[cfg_attr(
30227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30228    assert_instr(uxtl)
30229)]
30230#[cfg_attr(
30231    not(target_arch = "arm"),
30232    stable(feature = "neon_intrinsics", since = "1.59.0")
30233)]
30234#[cfg_attr(
30235    target_arch = "arm",
30236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30237)]
30238pub fn vmovl_u32(a: uint32x2_t) -> uint64x2_t {
30239    unsafe { simd_cast(a) }
30240}
30241#[doc = "Vector long move."]
30242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u8)"]
30243#[inline(always)]
30244#[target_feature(enable = "neon")]
30245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30247#[cfg_attr(
30248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30249    assert_instr(uxtl)
30250)]
30251#[cfg_attr(
30252    not(target_arch = "arm"),
30253    stable(feature = "neon_intrinsics", since = "1.59.0")
30254)]
30255#[cfg_attr(
30256    target_arch = "arm",
30257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30258)]
30259pub fn vmovl_u8(a: uint8x8_t) -> uint16x8_t {
30260    unsafe { simd_cast(a) }
30261}
30262#[doc = "Vector narrow integer."]
30263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s16)"]
30264#[inline(always)]
30265#[target_feature(enable = "neon")]
30266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30268#[cfg_attr(
30269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30270    assert_instr(xtn)
30271)]
30272#[cfg_attr(
30273    not(target_arch = "arm"),
30274    stable(feature = "neon_intrinsics", since = "1.59.0")
30275)]
30276#[cfg_attr(
30277    target_arch = "arm",
30278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30279)]
30280pub fn vmovn_s16(a: int16x8_t) -> int8x8_t {
30281    unsafe { simd_cast(a) }
30282}
30283#[doc = "Vector narrow integer."]
30284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s32)"]
30285#[inline(always)]
30286#[target_feature(enable = "neon")]
30287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30289#[cfg_attr(
30290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30291    assert_instr(xtn)
30292)]
30293#[cfg_attr(
30294    not(target_arch = "arm"),
30295    stable(feature = "neon_intrinsics", since = "1.59.0")
30296)]
30297#[cfg_attr(
30298    target_arch = "arm",
30299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30300)]
30301pub fn vmovn_s32(a: int32x4_t) -> int16x4_t {
30302    unsafe { simd_cast(a) }
30303}
30304#[doc = "Vector narrow integer."]
30305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s64)"]
30306#[inline(always)]
30307#[target_feature(enable = "neon")]
30308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30310#[cfg_attr(
30311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30312    assert_instr(xtn)
30313)]
30314#[cfg_attr(
30315    not(target_arch = "arm"),
30316    stable(feature = "neon_intrinsics", since = "1.59.0")
30317)]
30318#[cfg_attr(
30319    target_arch = "arm",
30320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30321)]
30322pub fn vmovn_s64(a: int64x2_t) -> int32x2_t {
30323    unsafe { simd_cast(a) }
30324}
30325#[doc = "Vector narrow integer."]
30326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u16)"]
30327#[inline(always)]
30328#[target_feature(enable = "neon")]
30329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30331#[cfg_attr(
30332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30333    assert_instr(xtn)
30334)]
30335#[cfg_attr(
30336    not(target_arch = "arm"),
30337    stable(feature = "neon_intrinsics", since = "1.59.0")
30338)]
30339#[cfg_attr(
30340    target_arch = "arm",
30341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30342)]
30343pub fn vmovn_u16(a: uint16x8_t) -> uint8x8_t {
30344    unsafe { simd_cast(a) }
30345}
30346#[doc = "Vector narrow integer."]
30347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u32)"]
30348#[inline(always)]
30349#[target_feature(enable = "neon")]
30350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30352#[cfg_attr(
30353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30354    assert_instr(xtn)
30355)]
30356#[cfg_attr(
30357    not(target_arch = "arm"),
30358    stable(feature = "neon_intrinsics", since = "1.59.0")
30359)]
30360#[cfg_attr(
30361    target_arch = "arm",
30362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30363)]
30364pub fn vmovn_u32(a: uint32x4_t) -> uint16x4_t {
30365    unsafe { simd_cast(a) }
30366}
30367#[doc = "Vector narrow integer."]
30368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u64)"]
30369#[inline(always)]
30370#[target_feature(enable = "neon")]
30371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30373#[cfg_attr(
30374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30375    assert_instr(xtn)
30376)]
30377#[cfg_attr(
30378    not(target_arch = "arm"),
30379    stable(feature = "neon_intrinsics", since = "1.59.0")
30380)]
30381#[cfg_attr(
30382    target_arch = "arm",
30383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30384)]
30385pub fn vmovn_u64(a: uint64x2_t) -> uint32x2_t {
30386    unsafe { simd_cast(a) }
30387}
30388#[doc = "Multiply"]
30389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_f16)"]
30390#[inline(always)]
30391#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
30392#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f16"))]
30393#[cfg_attr(
30394    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30395    assert_instr(fmul)
30396)]
30397#[target_feature(enable = "neon,fp16")]
30398#[cfg_attr(
30399    not(target_arch = "arm"),
30400    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
30401)]
30402#[cfg_attr(
30403    target_arch = "arm",
30404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30405)]
30406#[cfg(not(target_arch = "arm64ec"))]
30407pub fn vmul_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
30408    unsafe { simd_mul(a, b) }
30409}
30410#[doc = "Multiply"]
30411#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_f16)"]
30412#[inline(always)]
30413#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
30414#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f16"))]
30415#[cfg_attr(
30416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30417    assert_instr(fmul)
30418)]
30419#[target_feature(enable = "neon,fp16")]
30420#[cfg_attr(
30421    not(target_arch = "arm"),
30422    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
30423)]
30424#[cfg_attr(
30425    target_arch = "arm",
30426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30427)]
30428#[cfg(not(target_arch = "arm64ec"))]
30429pub fn vmulq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
30430    unsafe { simd_mul(a, b) }
30431}
30432#[doc = "Multiply"]
30433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_f32)"]
30434#[inline(always)]
30435#[target_feature(enable = "neon")]
30436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30437#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
30438#[cfg_attr(
30439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30440    assert_instr(fmul)
30441)]
30442#[cfg_attr(
30443    not(target_arch = "arm"),
30444    stable(feature = "neon_intrinsics", since = "1.59.0")
30445)]
30446#[cfg_attr(
30447    target_arch = "arm",
30448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30449)]
30450pub fn vmul_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
30451    unsafe { simd_mul(a, b) }
30452}
30453#[doc = "Multiply"]
30454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_f32)"]
30455#[inline(always)]
30456#[target_feature(enable = "neon")]
30457#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30458#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
30459#[cfg_attr(
30460    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30461    assert_instr(fmul)
30462)]
30463#[cfg_attr(
30464    not(target_arch = "arm"),
30465    stable(feature = "neon_intrinsics", since = "1.59.0")
30466)]
30467#[cfg_attr(
30468    target_arch = "arm",
30469    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30470)]
30471pub fn vmulq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
30472    unsafe { simd_mul(a, b) }
30473}
30474#[doc = "Multiply"]
30475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_f16)"]
30476#[inline(always)]
30477#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
30478#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30479#[cfg_attr(
30480    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30481    assert_instr(fmul, LANE = 1)
30482)]
30483#[rustc_legacy_const_generics(2)]
30484#[target_feature(enable = "neon,fp16")]
30485#[cfg_attr(
30486    not(target_arch = "arm"),
30487    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
30488)]
30489#[cfg_attr(
30490    target_arch = "arm",
30491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30492)]
30493#[cfg(not(target_arch = "arm64ec"))]
30494pub fn vmul_lane_f16<const LANE: i32>(a: float16x4_t, v: float16x4_t) -> float16x4_t {
30495    static_assert_uimm_bits!(LANE, 2);
30496    unsafe {
30497        simd_mul(
30498            a,
30499            simd_shuffle!(v, v, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30500        )
30501    }
30502}
30503#[doc = "Multiply"]
30504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_f16)"]
30505#[inline(always)]
30506#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
30507#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30508#[cfg_attr(
30509    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30510    assert_instr(fmul, LANE = 1)
30511)]
30512#[rustc_legacy_const_generics(2)]
30513#[target_feature(enable = "neon,fp16")]
30514#[cfg_attr(
30515    not(target_arch = "arm"),
30516    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
30517)]
30518#[cfg_attr(
30519    target_arch = "arm",
30520    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30521)]
30522#[cfg(not(target_arch = "arm64ec"))]
30523pub fn vmulq_lane_f16<const LANE: i32>(a: float16x8_t, v: float16x4_t) -> float16x8_t {
30524    static_assert_uimm_bits!(LANE, 2);
30525    unsafe {
30526        simd_mul(
30527            a,
30528            simd_shuffle!(
30529                v,
30530                v,
30531                [
30532                    LANE as u32,
30533                    LANE as u32,
30534                    LANE as u32,
30535                    LANE as u32,
30536                    LANE as u32,
30537                    LANE as u32,
30538                    LANE as u32,
30539                    LANE as u32
30540                ]
30541            ),
30542        )
30543    }
30544}
30545#[doc = "Floating-point multiply"]
30546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_f32)"]
30547#[inline(always)]
30548#[target_feature(enable = "neon")]
30549#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30550#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
30551#[cfg_attr(
30552    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30553    assert_instr(fmul, LANE = 0)
30554)]
30555#[rustc_legacy_const_generics(2)]
30556#[cfg_attr(
30557    not(target_arch = "arm"),
30558    stable(feature = "neon_intrinsics", since = "1.59.0")
30559)]
30560#[cfg_attr(
30561    target_arch = "arm",
30562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30563)]
30564pub fn vmul_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
30565    static_assert_uimm_bits!(LANE, 1);
30566    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
30567}
30568#[doc = "Floating-point multiply"]
30569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_f32)"]
30570#[inline(always)]
30571#[target_feature(enable = "neon")]
30572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30573#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
30574#[cfg_attr(
30575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30576    assert_instr(fmul, LANE = 0)
30577)]
30578#[rustc_legacy_const_generics(2)]
30579#[cfg_attr(
30580    not(target_arch = "arm"),
30581    stable(feature = "neon_intrinsics", since = "1.59.0")
30582)]
30583#[cfg_attr(
30584    target_arch = "arm",
30585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30586)]
30587pub fn vmul_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x4_t) -> float32x2_t {
30588    static_assert_uimm_bits!(LANE, 2);
30589    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
30590}
30591#[doc = "Floating-point multiply"]
30592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_f32)"]
30593#[inline(always)]
30594#[target_feature(enable = "neon")]
30595#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30596#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
30597#[cfg_attr(
30598    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30599    assert_instr(fmul, LANE = 0)
30600)]
30601#[rustc_legacy_const_generics(2)]
30602#[cfg_attr(
30603    not(target_arch = "arm"),
30604    stable(feature = "neon_intrinsics", since = "1.59.0")
30605)]
30606#[cfg_attr(
30607    target_arch = "arm",
30608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30609)]
30610pub fn vmulq_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x2_t) -> float32x4_t {
30611    static_assert_uimm_bits!(LANE, 1);
30612    unsafe {
30613        simd_mul(
30614            a,
30615            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30616        )
30617    }
30618}
30619#[doc = "Floating-point multiply"]
30620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_f32)"]
30621#[inline(always)]
30622#[target_feature(enable = "neon")]
30623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
30625#[cfg_attr(
30626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30627    assert_instr(fmul, LANE = 0)
30628)]
30629#[rustc_legacy_const_generics(2)]
30630#[cfg_attr(
30631    not(target_arch = "arm"),
30632    stable(feature = "neon_intrinsics", since = "1.59.0")
30633)]
30634#[cfg_attr(
30635    target_arch = "arm",
30636    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30637)]
30638pub fn vmulq_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
30639    static_assert_uimm_bits!(LANE, 2);
30640    unsafe {
30641        simd_mul(
30642            a,
30643            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30644        )
30645    }
30646}
30647#[doc = "Multiply"]
30648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s16)"]
30649#[inline(always)]
30650#[target_feature(enable = "neon")]
30651#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30652#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30653#[cfg_attr(
30654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30655    assert_instr(mul, LANE = 1)
30656)]
30657#[rustc_legacy_const_generics(2)]
30658#[cfg_attr(
30659    not(target_arch = "arm"),
30660    stable(feature = "neon_intrinsics", since = "1.59.0")
30661)]
30662#[cfg_attr(
30663    target_arch = "arm",
30664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30665)]
30666pub fn vmul_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
30667    static_assert_uimm_bits!(LANE, 2);
30668    unsafe {
30669        simd_mul(
30670            a,
30671            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30672        )
30673    }
30674}
30675#[doc = "Multiply"]
30676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s16)"]
30677#[inline(always)]
30678#[target_feature(enable = "neon")]
30679#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30680#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30681#[cfg_attr(
30682    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30683    assert_instr(mul, LANE = 1)
30684)]
30685#[rustc_legacy_const_generics(2)]
30686#[cfg_attr(
30687    not(target_arch = "arm"),
30688    stable(feature = "neon_intrinsics", since = "1.59.0")
30689)]
30690#[cfg_attr(
30691    target_arch = "arm",
30692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30693)]
30694pub fn vmulq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
30695    static_assert_uimm_bits!(LANE, 2);
30696    unsafe {
30697        simd_mul(
30698            a,
30699            simd_shuffle!(
30700                b,
30701                b,
30702                [
30703                    LANE as u32,
30704                    LANE as u32,
30705                    LANE as u32,
30706                    LANE as u32,
30707                    LANE as u32,
30708                    LANE as u32,
30709                    LANE as u32,
30710                    LANE as u32
30711                ]
30712            ),
30713        )
30714    }
30715}
30716#[doc = "Multiply"]
30717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s32)"]
30718#[inline(always)]
30719#[target_feature(enable = "neon")]
30720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30722#[cfg_attr(
30723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30724    assert_instr(mul, LANE = 1)
30725)]
30726#[rustc_legacy_const_generics(2)]
30727#[cfg_attr(
30728    not(target_arch = "arm"),
30729    stable(feature = "neon_intrinsics", since = "1.59.0")
30730)]
30731#[cfg_attr(
30732    target_arch = "arm",
30733    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30734)]
30735pub fn vmul_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
30736    static_assert_uimm_bits!(LANE, 1);
30737    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
30738}
30739#[doc = "Multiply"]
30740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s32)"]
30741#[inline(always)]
30742#[target_feature(enable = "neon")]
30743#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30744#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30745#[cfg_attr(
30746    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30747    assert_instr(mul, LANE = 1)
30748)]
30749#[rustc_legacy_const_generics(2)]
30750#[cfg_attr(
30751    not(target_arch = "arm"),
30752    stable(feature = "neon_intrinsics", since = "1.59.0")
30753)]
30754#[cfg_attr(
30755    target_arch = "arm",
30756    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30757)]
30758pub fn vmulq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
30759    static_assert_uimm_bits!(LANE, 1);
30760    unsafe {
30761        simd_mul(
30762            a,
30763            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30764        )
30765    }
30766}
30767#[doc = "Multiply"]
30768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u16)"]
30769#[inline(always)]
30770#[target_feature(enable = "neon")]
30771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30772#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30773#[cfg_attr(
30774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30775    assert_instr(mul, LANE = 1)
30776)]
30777#[rustc_legacy_const_generics(2)]
30778#[cfg_attr(
30779    not(target_arch = "arm"),
30780    stable(feature = "neon_intrinsics", since = "1.59.0")
30781)]
30782#[cfg_attr(
30783    target_arch = "arm",
30784    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30785)]
30786pub fn vmul_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
30787    static_assert_uimm_bits!(LANE, 2);
30788    unsafe {
30789        simd_mul(
30790            a,
30791            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30792        )
30793    }
30794}
30795#[doc = "Multiply"]
30796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u16)"]
30797#[inline(always)]
30798#[target_feature(enable = "neon")]
30799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30800#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30801#[cfg_attr(
30802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30803    assert_instr(mul, LANE = 1)
30804)]
30805#[rustc_legacy_const_generics(2)]
30806#[cfg_attr(
30807    not(target_arch = "arm"),
30808    stable(feature = "neon_intrinsics", since = "1.59.0")
30809)]
30810#[cfg_attr(
30811    target_arch = "arm",
30812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30813)]
30814pub fn vmulq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x4_t) -> uint16x8_t {
30815    static_assert_uimm_bits!(LANE, 2);
30816    unsafe {
30817        simd_mul(
30818            a,
30819            simd_shuffle!(
30820                b,
30821                b,
30822                [
30823                    LANE as u32,
30824                    LANE as u32,
30825                    LANE as u32,
30826                    LANE as u32,
30827                    LANE as u32,
30828                    LANE as u32,
30829                    LANE as u32,
30830                    LANE as u32
30831                ]
30832            ),
30833        )
30834    }
30835}
30836#[doc = "Multiply"]
30837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u32)"]
30838#[inline(always)]
30839#[target_feature(enable = "neon")]
30840#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30841#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30842#[cfg_attr(
30843    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30844    assert_instr(mul, LANE = 1)
30845)]
30846#[rustc_legacy_const_generics(2)]
30847#[cfg_attr(
30848    not(target_arch = "arm"),
30849    stable(feature = "neon_intrinsics", since = "1.59.0")
30850)]
30851#[cfg_attr(
30852    target_arch = "arm",
30853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30854)]
30855pub fn vmul_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
30856    static_assert_uimm_bits!(LANE, 1);
30857    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
30858}
30859#[doc = "Multiply"]
30860#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u32)"]
30861#[inline(always)]
30862#[target_feature(enable = "neon")]
30863#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30864#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30865#[cfg_attr(
30866    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30867    assert_instr(mul, LANE = 1)
30868)]
30869#[rustc_legacy_const_generics(2)]
30870#[cfg_attr(
30871    not(target_arch = "arm"),
30872    stable(feature = "neon_intrinsics", since = "1.59.0")
30873)]
30874#[cfg_attr(
30875    target_arch = "arm",
30876    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30877)]
30878pub fn vmulq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x2_t) -> uint32x4_t {
30879    static_assert_uimm_bits!(LANE, 1);
30880    unsafe {
30881        simd_mul(
30882            a,
30883            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30884        )
30885    }
30886}
30887#[doc = "Multiply"]
30888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s16)"]
30889#[inline(always)]
30890#[target_feature(enable = "neon")]
30891#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30892#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30893#[cfg_attr(
30894    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30895    assert_instr(mul, LANE = 1)
30896)]
30897#[rustc_legacy_const_generics(2)]
30898#[cfg_attr(
30899    not(target_arch = "arm"),
30900    stable(feature = "neon_intrinsics", since = "1.59.0")
30901)]
30902#[cfg_attr(
30903    target_arch = "arm",
30904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30905)]
30906pub fn vmul_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
30907    static_assert_uimm_bits!(LANE, 3);
30908    unsafe {
30909        simd_mul(
30910            a,
30911            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30912        )
30913    }
30914}
30915#[doc = "Multiply"]
30916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s16)"]
30917#[inline(always)]
30918#[target_feature(enable = "neon")]
30919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30921#[cfg_attr(
30922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30923    assert_instr(mul, LANE = 1)
30924)]
30925#[rustc_legacy_const_generics(2)]
30926#[cfg_attr(
30927    not(target_arch = "arm"),
30928    stable(feature = "neon_intrinsics", since = "1.59.0")
30929)]
30930#[cfg_attr(
30931    target_arch = "arm",
30932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30933)]
30934pub fn vmulq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
30935    static_assert_uimm_bits!(LANE, 3);
30936    unsafe {
30937        simd_mul(
30938            a,
30939            simd_shuffle!(
30940                b,
30941                b,
30942                [
30943                    LANE as u32,
30944                    LANE as u32,
30945                    LANE as u32,
30946                    LANE as u32,
30947                    LANE as u32,
30948                    LANE as u32,
30949                    LANE as u32,
30950                    LANE as u32
30951                ]
30952            ),
30953        )
30954    }
30955}
30956#[doc = "Multiply"]
30957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s32)"]
30958#[inline(always)]
30959#[target_feature(enable = "neon")]
30960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30962#[cfg_attr(
30963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30964    assert_instr(mul, LANE = 1)
30965)]
30966#[rustc_legacy_const_generics(2)]
30967#[cfg_attr(
30968    not(target_arch = "arm"),
30969    stable(feature = "neon_intrinsics", since = "1.59.0")
30970)]
30971#[cfg_attr(
30972    target_arch = "arm",
30973    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30974)]
30975pub fn vmul_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
30976    static_assert_uimm_bits!(LANE, 2);
30977    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
30978}
30979#[doc = "Multiply"]
30980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s32)"]
30981#[inline(always)]
30982#[target_feature(enable = "neon")]
30983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30984#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30985#[cfg_attr(
30986    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30987    assert_instr(mul, LANE = 1)
30988)]
30989#[rustc_legacy_const_generics(2)]
30990#[cfg_attr(
30991    not(target_arch = "arm"),
30992    stable(feature = "neon_intrinsics", since = "1.59.0")
30993)]
30994#[cfg_attr(
30995    target_arch = "arm",
30996    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30997)]
30998pub fn vmulq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
30999    static_assert_uimm_bits!(LANE, 2);
31000    unsafe {
31001        simd_mul(
31002            a,
31003            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31004        )
31005    }
31006}
31007#[doc = "Multiply"]
31008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u16)"]
31009#[inline(always)]
31010#[target_feature(enable = "neon")]
31011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31013#[cfg_attr(
31014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31015    assert_instr(mul, LANE = 1)
31016)]
31017#[rustc_legacy_const_generics(2)]
31018#[cfg_attr(
31019    not(target_arch = "arm"),
31020    stable(feature = "neon_intrinsics", since = "1.59.0")
31021)]
31022#[cfg_attr(
31023    target_arch = "arm",
31024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31025)]
31026pub fn vmul_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint16x4_t {
31027    static_assert_uimm_bits!(LANE, 3);
31028    unsafe {
31029        simd_mul(
31030            a,
31031            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31032        )
31033    }
31034}
31035#[doc = "Multiply"]
31036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u16)"]
31037#[inline(always)]
31038#[target_feature(enable = "neon")]
31039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31040#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31041#[cfg_attr(
31042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31043    assert_instr(mul, LANE = 1)
31044)]
31045#[rustc_legacy_const_generics(2)]
31046#[cfg_attr(
31047    not(target_arch = "arm"),
31048    stable(feature = "neon_intrinsics", since = "1.59.0")
31049)]
31050#[cfg_attr(
31051    target_arch = "arm",
31052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31053)]
31054pub fn vmulq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
31055    static_assert_uimm_bits!(LANE, 3);
31056    unsafe {
31057        simd_mul(
31058            a,
31059            simd_shuffle!(
31060                b,
31061                b,
31062                [
31063                    LANE as u32,
31064                    LANE as u32,
31065                    LANE as u32,
31066                    LANE as u32,
31067                    LANE as u32,
31068                    LANE as u32,
31069                    LANE as u32,
31070                    LANE as u32
31071                ]
31072            ),
31073        )
31074    }
31075}
31076#[doc = "Multiply"]
31077#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u32)"]
31078#[inline(always)]
31079#[target_feature(enable = "neon")]
31080#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31081#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31082#[cfg_attr(
31083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31084    assert_instr(mul, LANE = 1)
31085)]
31086#[rustc_legacy_const_generics(2)]
31087#[cfg_attr(
31088    not(target_arch = "arm"),
31089    stable(feature = "neon_intrinsics", since = "1.59.0")
31090)]
31091#[cfg_attr(
31092    target_arch = "arm",
31093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31094)]
31095pub fn vmul_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint32x2_t {
31096    static_assert_uimm_bits!(LANE, 2);
31097    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31098}
31099#[doc = "Multiply"]
31100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u32)"]
31101#[inline(always)]
31102#[target_feature(enable = "neon")]
31103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31105#[cfg_attr(
31106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31107    assert_instr(mul, LANE = 1)
31108)]
31109#[rustc_legacy_const_generics(2)]
31110#[cfg_attr(
31111    not(target_arch = "arm"),
31112    stable(feature = "neon_intrinsics", since = "1.59.0")
31113)]
31114#[cfg_attr(
31115    target_arch = "arm",
31116    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31117)]
31118pub fn vmulq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
31119    static_assert_uimm_bits!(LANE, 2);
31120    unsafe {
31121        simd_mul(
31122            a,
31123            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31124        )
31125    }
31126}
31127#[doc = "Vector multiply by scalar"]
31128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_f16)"]
31129#[inline(always)]
31130#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
31131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31132#[cfg_attr(
31133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31134    assert_instr(fmul)
31135)]
31136#[target_feature(enable = "neon,fp16")]
31137#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
31138#[cfg(not(target_arch = "arm64ec"))]
31139pub fn vmul_n_f16(a: float16x4_t, b: f16) -> float16x4_t {
31140    unsafe { simd_mul(a, vdup_n_f16(b)) }
31141}
31142#[doc = "Vector multiply by scalar"]
31143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_f16)"]
31144#[inline(always)]
31145#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
31146#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31147#[cfg_attr(
31148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31149    assert_instr(fmul)
31150)]
31151#[target_feature(enable = "neon,fp16")]
31152#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
31153#[cfg(not(target_arch = "arm64ec"))]
31154pub fn vmulq_n_f16(a: float16x8_t, b: f16) -> float16x8_t {
31155    unsafe { simd_mul(a, vdupq_n_f16(b)) }
31156}
31157#[doc = "Vector multiply by scalar"]
31158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_f32)"]
31159#[inline(always)]
31160#[target_feature(enable = "neon")]
31161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31163#[cfg_attr(
31164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31165    assert_instr(fmul)
31166)]
31167#[cfg_attr(
31168    not(target_arch = "arm"),
31169    stable(feature = "neon_intrinsics", since = "1.59.0")
31170)]
31171#[cfg_attr(
31172    target_arch = "arm",
31173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31174)]
31175pub fn vmul_n_f32(a: float32x2_t, b: f32) -> float32x2_t {
31176    unsafe { simd_mul(a, vdup_n_f32(b)) }
31177}
31178#[doc = "Vector multiply by scalar"]
31179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_f32)"]
31180#[inline(always)]
31181#[target_feature(enable = "neon")]
31182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31184#[cfg_attr(
31185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31186    assert_instr(fmul)
31187)]
31188#[cfg_attr(
31189    not(target_arch = "arm"),
31190    stable(feature = "neon_intrinsics", since = "1.59.0")
31191)]
31192#[cfg_attr(
31193    target_arch = "arm",
31194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31195)]
31196pub fn vmulq_n_f32(a: float32x4_t, b: f32) -> float32x4_t {
31197    unsafe { simd_mul(a, vdupq_n_f32(b)) }
31198}
31199#[doc = "Vector multiply by scalar"]
31200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s16)"]
31201#[inline(always)]
31202#[target_feature(enable = "neon")]
31203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31204#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31205#[cfg_attr(
31206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31207    assert_instr(mul)
31208)]
31209#[cfg_attr(
31210    not(target_arch = "arm"),
31211    stable(feature = "neon_intrinsics", since = "1.59.0")
31212)]
31213#[cfg_attr(
31214    target_arch = "arm",
31215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31216)]
31217pub fn vmul_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
31218    unsafe { simd_mul(a, vdup_n_s16(b)) }
31219}
31220#[doc = "Vector multiply by scalar"]
31221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s16)"]
31222#[inline(always)]
31223#[target_feature(enable = "neon")]
31224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31226#[cfg_attr(
31227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31228    assert_instr(mul)
31229)]
31230#[cfg_attr(
31231    not(target_arch = "arm"),
31232    stable(feature = "neon_intrinsics", since = "1.59.0")
31233)]
31234#[cfg_attr(
31235    target_arch = "arm",
31236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31237)]
31238pub fn vmulq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
31239    unsafe { simd_mul(a, vdupq_n_s16(b)) }
31240}
31241#[doc = "Vector multiply by scalar"]
31242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s32)"]
31243#[inline(always)]
31244#[target_feature(enable = "neon")]
31245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31247#[cfg_attr(
31248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31249    assert_instr(mul)
31250)]
31251#[cfg_attr(
31252    not(target_arch = "arm"),
31253    stable(feature = "neon_intrinsics", since = "1.59.0")
31254)]
31255#[cfg_attr(
31256    target_arch = "arm",
31257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31258)]
31259pub fn vmul_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
31260    unsafe { simd_mul(a, vdup_n_s32(b)) }
31261}
31262#[doc = "Vector multiply by scalar"]
31263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s32)"]
31264#[inline(always)]
31265#[target_feature(enable = "neon")]
31266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31268#[cfg_attr(
31269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31270    assert_instr(mul)
31271)]
31272#[cfg_attr(
31273    not(target_arch = "arm"),
31274    stable(feature = "neon_intrinsics", since = "1.59.0")
31275)]
31276#[cfg_attr(
31277    target_arch = "arm",
31278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31279)]
31280pub fn vmulq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
31281    unsafe { simd_mul(a, vdupq_n_s32(b)) }
31282}
31283#[doc = "Vector multiply by scalar"]
31284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u16)"]
31285#[inline(always)]
31286#[target_feature(enable = "neon")]
31287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31289#[cfg_attr(
31290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31291    assert_instr(mul)
31292)]
31293#[cfg_attr(
31294    not(target_arch = "arm"),
31295    stable(feature = "neon_intrinsics", since = "1.59.0")
31296)]
31297#[cfg_attr(
31298    target_arch = "arm",
31299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31300)]
31301pub fn vmul_n_u16(a: uint16x4_t, b: u16) -> uint16x4_t {
31302    unsafe { simd_mul(a, vdup_n_u16(b)) }
31303}
31304#[doc = "Vector multiply by scalar"]
31305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u16)"]
31306#[inline(always)]
31307#[target_feature(enable = "neon")]
31308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31310#[cfg_attr(
31311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31312    assert_instr(mul)
31313)]
31314#[cfg_attr(
31315    not(target_arch = "arm"),
31316    stable(feature = "neon_intrinsics", since = "1.59.0")
31317)]
31318#[cfg_attr(
31319    target_arch = "arm",
31320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31321)]
31322pub fn vmulq_n_u16(a: uint16x8_t, b: u16) -> uint16x8_t {
31323    unsafe { simd_mul(a, vdupq_n_u16(b)) }
31324}
31325#[doc = "Vector multiply by scalar"]
31326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u32)"]
31327#[inline(always)]
31328#[target_feature(enable = "neon")]
31329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31331#[cfg_attr(
31332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31333    assert_instr(mul)
31334)]
31335#[cfg_attr(
31336    not(target_arch = "arm"),
31337    stable(feature = "neon_intrinsics", since = "1.59.0")
31338)]
31339#[cfg_attr(
31340    target_arch = "arm",
31341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31342)]
31343pub fn vmul_n_u32(a: uint32x2_t, b: u32) -> uint32x2_t {
31344    unsafe { simd_mul(a, vdup_n_u32(b)) }
31345}
31346#[doc = "Vector multiply by scalar"]
31347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u32)"]
31348#[inline(always)]
31349#[target_feature(enable = "neon")]
31350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31352#[cfg_attr(
31353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31354    assert_instr(mul)
31355)]
31356#[cfg_attr(
31357    not(target_arch = "arm"),
31358    stable(feature = "neon_intrinsics", since = "1.59.0")
31359)]
31360#[cfg_attr(
31361    target_arch = "arm",
31362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31363)]
31364pub fn vmulq_n_u32(a: uint32x4_t, b: u32) -> uint32x4_t {
31365    unsafe { simd_mul(a, vdupq_n_u32(b)) }
31366}
31367#[doc = "Polynomial multiply"]
31368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_p8)"]
31369#[inline(always)]
31370#[target_feature(enable = "neon")]
31371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31373#[cfg_attr(
31374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31375    assert_instr(pmul)
31376)]
31377#[cfg_attr(
31378    not(target_arch = "arm"),
31379    stable(feature = "neon_intrinsics", since = "1.59.0")
31380)]
31381#[cfg_attr(
31382    target_arch = "arm",
31383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31384)]
31385pub fn vmul_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
31386    unsafe extern "unadjusted" {
31387        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v8i8")]
31388        #[cfg_attr(
31389            any(target_arch = "aarch64", target_arch = "arm64ec"),
31390            link_name = "llvm.aarch64.neon.pmul.v8i8"
31391        )]
31392        fn _vmul_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t;
31393    }
31394    unsafe { _vmul_p8(a, b) }
31395}
31396#[doc = "Polynomial multiply"]
31397#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_p8)"]
31398#[inline(always)]
31399#[target_feature(enable = "neon")]
31400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31402#[cfg_attr(
31403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31404    assert_instr(pmul)
31405)]
31406#[cfg_attr(
31407    not(target_arch = "arm"),
31408    stable(feature = "neon_intrinsics", since = "1.59.0")
31409)]
31410#[cfg_attr(
31411    target_arch = "arm",
31412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31413)]
31414pub fn vmulq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
31415    unsafe extern "unadjusted" {
31416        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v16i8")]
31417        #[cfg_attr(
31418            any(target_arch = "aarch64", target_arch = "arm64ec"),
31419            link_name = "llvm.aarch64.neon.pmul.v16i8"
31420        )]
31421        fn _vmulq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t;
31422    }
31423    unsafe { _vmulq_p8(a, b) }
31424}
31425#[doc = "Multiply"]
31426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s16)"]
31427#[inline(always)]
31428#[target_feature(enable = "neon")]
31429#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31430#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
31431#[cfg_attr(
31432    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31433    assert_instr(mul)
31434)]
31435#[cfg_attr(
31436    not(target_arch = "arm"),
31437    stable(feature = "neon_intrinsics", since = "1.59.0")
31438)]
31439#[cfg_attr(
31440    target_arch = "arm",
31441    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31442)]
31443pub fn vmul_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
31444    unsafe { simd_mul(a, b) }
31445}
31446#[doc = "Multiply"]
31447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s16)"]
31448#[inline(always)]
31449#[target_feature(enable = "neon")]
31450#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31451#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
31452#[cfg_attr(
31453    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31454    assert_instr(mul)
31455)]
31456#[cfg_attr(
31457    not(target_arch = "arm"),
31458    stable(feature = "neon_intrinsics", since = "1.59.0")
31459)]
31460#[cfg_attr(
31461    target_arch = "arm",
31462    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31463)]
31464pub fn vmulq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
31465    unsafe { simd_mul(a, b) }
31466}
31467#[doc = "Multiply"]
31468#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u16)"]
31469#[inline(always)]
31470#[target_feature(enable = "neon")]
31471#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31472#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
31473#[cfg_attr(
31474    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31475    assert_instr(mul)
31476)]
31477#[cfg_attr(
31478    not(target_arch = "arm"),
31479    stable(feature = "neon_intrinsics", since = "1.59.0")
31480)]
31481#[cfg_attr(
31482    target_arch = "arm",
31483    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31484)]
31485pub fn vmul_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
31486    unsafe { simd_mul(a, b) }
31487}
31488#[doc = "Multiply"]
31489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u16)"]
31490#[inline(always)]
31491#[target_feature(enable = "neon")]
31492#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31493#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
31494#[cfg_attr(
31495    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31496    assert_instr(mul)
31497)]
31498#[cfg_attr(
31499    not(target_arch = "arm"),
31500    stable(feature = "neon_intrinsics", since = "1.59.0")
31501)]
31502#[cfg_attr(
31503    target_arch = "arm",
31504    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31505)]
31506pub fn vmulq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
31507    unsafe { simd_mul(a, b) }
31508}
31509#[doc = "Multiply"]
31510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s32)"]
31511#[inline(always)]
31512#[target_feature(enable = "neon")]
31513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31514#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
31515#[cfg_attr(
31516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31517    assert_instr(mul)
31518)]
31519#[cfg_attr(
31520    not(target_arch = "arm"),
31521    stable(feature = "neon_intrinsics", since = "1.59.0")
31522)]
31523#[cfg_attr(
31524    target_arch = "arm",
31525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31526)]
31527pub fn vmul_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
31528    unsafe { simd_mul(a, b) }
31529}
31530#[doc = "Multiply"]
31531#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s32)"]
31532#[inline(always)]
31533#[target_feature(enable = "neon")]
31534#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31535#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
31536#[cfg_attr(
31537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31538    assert_instr(mul)
31539)]
31540#[cfg_attr(
31541    not(target_arch = "arm"),
31542    stable(feature = "neon_intrinsics", since = "1.59.0")
31543)]
31544#[cfg_attr(
31545    target_arch = "arm",
31546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31547)]
31548pub fn vmulq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
31549    unsafe { simd_mul(a, b) }
31550}
31551#[doc = "Multiply"]
31552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u32)"]
31553#[inline(always)]
31554#[target_feature(enable = "neon")]
31555#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31556#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
31557#[cfg_attr(
31558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31559    assert_instr(mul)
31560)]
31561#[cfg_attr(
31562    not(target_arch = "arm"),
31563    stable(feature = "neon_intrinsics", since = "1.59.0")
31564)]
31565#[cfg_attr(
31566    target_arch = "arm",
31567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31568)]
31569pub fn vmul_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
31570    unsafe { simd_mul(a, b) }
31571}
31572#[doc = "Multiply"]
31573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u32)"]
31574#[inline(always)]
31575#[target_feature(enable = "neon")]
31576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31577#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
31578#[cfg_attr(
31579    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31580    assert_instr(mul)
31581)]
31582#[cfg_attr(
31583    not(target_arch = "arm"),
31584    stable(feature = "neon_intrinsics", since = "1.59.0")
31585)]
31586#[cfg_attr(
31587    target_arch = "arm",
31588    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31589)]
31590pub fn vmulq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
31591    unsafe { simd_mul(a, b) }
31592}
31593#[doc = "Multiply"]
31594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s8)"]
31595#[inline(always)]
31596#[target_feature(enable = "neon")]
31597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31598#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
31599#[cfg_attr(
31600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31601    assert_instr(mul)
31602)]
31603#[cfg_attr(
31604    not(target_arch = "arm"),
31605    stable(feature = "neon_intrinsics", since = "1.59.0")
31606)]
31607#[cfg_attr(
31608    target_arch = "arm",
31609    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31610)]
31611pub fn vmul_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
31612    unsafe { simd_mul(a, b) }
31613}
31614#[doc = "Multiply"]
31615#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s8)"]
31616#[inline(always)]
31617#[target_feature(enable = "neon")]
31618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31619#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
31620#[cfg_attr(
31621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31622    assert_instr(mul)
31623)]
31624#[cfg_attr(
31625    not(target_arch = "arm"),
31626    stable(feature = "neon_intrinsics", since = "1.59.0")
31627)]
31628#[cfg_attr(
31629    target_arch = "arm",
31630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31631)]
31632pub fn vmulq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
31633    unsafe { simd_mul(a, b) }
31634}
31635#[doc = "Multiply"]
31636#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u8)"]
31637#[inline(always)]
31638#[target_feature(enable = "neon")]
31639#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31640#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
31641#[cfg_attr(
31642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31643    assert_instr(mul)
31644)]
31645#[cfg_attr(
31646    not(target_arch = "arm"),
31647    stable(feature = "neon_intrinsics", since = "1.59.0")
31648)]
31649#[cfg_attr(
31650    target_arch = "arm",
31651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31652)]
31653pub fn vmul_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
31654    unsafe { simd_mul(a, b) }
31655}
31656#[doc = "Multiply"]
31657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u8)"]
31658#[inline(always)]
31659#[target_feature(enable = "neon")]
31660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31661#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
31662#[cfg_attr(
31663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31664    assert_instr(mul)
31665)]
31666#[cfg_attr(
31667    not(target_arch = "arm"),
31668    stable(feature = "neon_intrinsics", since = "1.59.0")
31669)]
31670#[cfg_attr(
31671    target_arch = "arm",
31672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31673)]
31674pub fn vmulq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
31675    unsafe { simd_mul(a, b) }
31676}
31677#[doc = "Vector long multiply by scalar"]
31678#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_s16)"]
31679#[inline(always)]
31680#[target_feature(enable = "neon")]
31681#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31682#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31683#[cfg_attr(
31684    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31685    assert_instr(smull, LANE = 1)
31686)]
31687#[rustc_legacy_const_generics(2)]
31688#[cfg_attr(
31689    not(target_arch = "arm"),
31690    stable(feature = "neon_intrinsics", since = "1.59.0")
31691)]
31692#[cfg_attr(
31693    target_arch = "arm",
31694    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31695)]
31696pub fn vmull_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
31697    static_assert_uimm_bits!(LANE, 2);
31698    unsafe {
31699        vmull_s16(
31700            a,
31701            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31702        )
31703    }
31704}
31705#[doc = "Vector long multiply by scalar"]
31706#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s16)"]
31707#[inline(always)]
31708#[target_feature(enable = "neon")]
31709#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31710#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31711#[cfg_attr(
31712    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31713    assert_instr(smull, LANE = 1)
31714)]
31715#[rustc_legacy_const_generics(2)]
31716#[cfg_attr(
31717    not(target_arch = "arm"),
31718    stable(feature = "neon_intrinsics", since = "1.59.0")
31719)]
31720#[cfg_attr(
31721    target_arch = "arm",
31722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31723)]
31724pub fn vmull_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int32x4_t {
31725    static_assert_uimm_bits!(LANE, 3);
31726    unsafe {
31727        vmull_s16(
31728            a,
31729            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31730        )
31731    }
31732}
31733#[doc = "Vector long multiply by scalar"]
31734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_s32)"]
31735#[inline(always)]
31736#[target_feature(enable = "neon")]
31737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31738#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31739#[cfg_attr(
31740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31741    assert_instr(smull, LANE = 1)
31742)]
31743#[rustc_legacy_const_generics(2)]
31744#[cfg_attr(
31745    not(target_arch = "arm"),
31746    stable(feature = "neon_intrinsics", since = "1.59.0")
31747)]
31748#[cfg_attr(
31749    target_arch = "arm",
31750    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31751)]
31752pub fn vmull_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
31753    static_assert_uimm_bits!(LANE, 1);
31754    unsafe { vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31755}
31756#[doc = "Vector long multiply by scalar"]
31757#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s32)"]
31758#[inline(always)]
31759#[target_feature(enable = "neon")]
31760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31761#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31762#[cfg_attr(
31763    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31764    assert_instr(smull, LANE = 1)
31765)]
31766#[rustc_legacy_const_generics(2)]
31767#[cfg_attr(
31768    not(target_arch = "arm"),
31769    stable(feature = "neon_intrinsics", since = "1.59.0")
31770)]
31771#[cfg_attr(
31772    target_arch = "arm",
31773    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31774)]
31775pub fn vmull_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int64x2_t {
31776    static_assert_uimm_bits!(LANE, 2);
31777    unsafe { vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31778}
31779#[doc = "Vector long multiply by scalar"]
31780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u16)"]
31781#[inline(always)]
31782#[target_feature(enable = "neon")]
31783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31784#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31785#[cfg_attr(
31786    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31787    assert_instr(umull, LANE = 1)
31788)]
31789#[rustc_legacy_const_generics(2)]
31790#[cfg_attr(
31791    not(target_arch = "arm"),
31792    stable(feature = "neon_intrinsics", since = "1.59.0")
31793)]
31794#[cfg_attr(
31795    target_arch = "arm",
31796    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31797)]
31798pub fn vmull_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
31799    static_assert_uimm_bits!(LANE, 2);
31800    unsafe {
31801        vmull_u16(
31802            a,
31803            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31804        )
31805    }
31806}
31807#[doc = "Vector long multiply by scalar"]
31808#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u16)"]
31809#[inline(always)]
31810#[target_feature(enable = "neon")]
31811#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31812#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31813#[cfg_attr(
31814    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31815    assert_instr(umull, LANE = 1)
31816)]
31817#[rustc_legacy_const_generics(2)]
31818#[cfg_attr(
31819    not(target_arch = "arm"),
31820    stable(feature = "neon_intrinsics", since = "1.59.0")
31821)]
31822#[cfg_attr(
31823    target_arch = "arm",
31824    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31825)]
31826pub fn vmull_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint32x4_t {
31827    static_assert_uimm_bits!(LANE, 3);
31828    unsafe {
31829        vmull_u16(
31830            a,
31831            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31832        )
31833    }
31834}
31835#[doc = "Vector long multiply by scalar"]
31836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u32)"]
31837#[inline(always)]
31838#[target_feature(enable = "neon")]
31839#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31840#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31841#[cfg_attr(
31842    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31843    assert_instr(umull, LANE = 1)
31844)]
31845#[rustc_legacy_const_generics(2)]
31846#[cfg_attr(
31847    not(target_arch = "arm"),
31848    stable(feature = "neon_intrinsics", since = "1.59.0")
31849)]
31850#[cfg_attr(
31851    target_arch = "arm",
31852    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31853)]
31854pub fn vmull_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
31855    static_assert_uimm_bits!(LANE, 1);
31856    unsafe { vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31857}
31858#[doc = "Vector long multiply by scalar"]
31859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u32)"]
31860#[inline(always)]
31861#[target_feature(enable = "neon")]
31862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31864#[cfg_attr(
31865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31866    assert_instr(umull, LANE = 1)
31867)]
31868#[rustc_legacy_const_generics(2)]
31869#[cfg_attr(
31870    not(target_arch = "arm"),
31871    stable(feature = "neon_intrinsics", since = "1.59.0")
31872)]
31873#[cfg_attr(
31874    target_arch = "arm",
31875    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31876)]
31877pub fn vmull_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint64x2_t {
31878    static_assert_uimm_bits!(LANE, 2);
31879    unsafe { vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31880}
31881#[doc = "Vector long multiply with scalar"]
31882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s16)"]
31883#[inline(always)]
31884#[target_feature(enable = "neon")]
31885#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31886#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
31887#[cfg_attr(
31888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31889    assert_instr(smull)
31890)]
31891#[cfg_attr(
31892    not(target_arch = "arm"),
31893    stable(feature = "neon_intrinsics", since = "1.59.0")
31894)]
31895#[cfg_attr(
31896    target_arch = "arm",
31897    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31898)]
31899pub fn vmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
31900    vmull_s16(a, vdup_n_s16(b))
31901}
31902#[doc = "Vector long multiply with scalar"]
31903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s32)"]
31904#[inline(always)]
31905#[target_feature(enable = "neon")]
31906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
31908#[cfg_attr(
31909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31910    assert_instr(smull)
31911)]
31912#[cfg_attr(
31913    not(target_arch = "arm"),
31914    stable(feature = "neon_intrinsics", since = "1.59.0")
31915)]
31916#[cfg_attr(
31917    target_arch = "arm",
31918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31919)]
31920pub fn vmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
31921    vmull_s32(a, vdup_n_s32(b))
31922}
31923#[doc = "Vector long multiply with scalar"]
31924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u16)"]
31925#[inline(always)]
31926#[target_feature(enable = "neon")]
31927#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31928#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
31929#[cfg_attr(
31930    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31931    assert_instr(umull)
31932)]
31933#[cfg_attr(
31934    not(target_arch = "arm"),
31935    stable(feature = "neon_intrinsics", since = "1.59.0")
31936)]
31937#[cfg_attr(
31938    target_arch = "arm",
31939    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31940)]
31941pub fn vmull_n_u16(a: uint16x4_t, b: u16) -> uint32x4_t {
31942    vmull_u16(a, vdup_n_u16(b))
31943}
31944#[doc = "Vector long multiply with scalar"]
31945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u32)"]
31946#[inline(always)]
31947#[target_feature(enable = "neon")]
31948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
31950#[cfg_attr(
31951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31952    assert_instr(umull)
31953)]
31954#[cfg_attr(
31955    not(target_arch = "arm"),
31956    stable(feature = "neon_intrinsics", since = "1.59.0")
31957)]
31958#[cfg_attr(
31959    target_arch = "arm",
31960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31961)]
31962pub fn vmull_n_u32(a: uint32x2_t, b: u32) -> uint64x2_t {
31963    vmull_u32(a, vdup_n_u32(b))
31964}
31965#[doc = "Polynomial multiply long"]
31966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_p8)"]
31967#[inline(always)]
31968#[target_feature(enable = "neon")]
31969#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31970#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.p8"))]
31971#[cfg_attr(
31972    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31973    assert_instr(pmull)
31974)]
31975#[cfg_attr(
31976    not(target_arch = "arm"),
31977    stable(feature = "neon_intrinsics", since = "1.59.0")
31978)]
31979#[cfg_attr(
31980    target_arch = "arm",
31981    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31982)]
31983pub fn vmull_p8(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t {
31984    unsafe extern "unadjusted" {
31985        #[cfg_attr(
31986            any(target_arch = "aarch64", target_arch = "arm64ec"),
31987            link_name = "llvm.aarch64.neon.pmull.v8i16"
31988        )]
31989        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullp.v8i16")]
31990        fn _vmull_p8(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t;
31991    }
31992    unsafe { _vmull_p8(a, b) }
31993}
31994#[doc = "Signed multiply long"]
31995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s16)"]
31996#[inline(always)]
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("vmull.s16"))]
32000#[cfg_attr(
32001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32002    assert_instr(smull)
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 vmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
32013    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32014}
32015#[doc = "Signed multiply long"]
32016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s32)"]
32017#[inline(always)]
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("vmull.s32"))]
32021#[cfg_attr(
32022    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32023    assert_instr(smull)
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 vmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
32034    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32035}
32036#[doc = "Signed multiply long"]
32037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s8)"]
32038#[inline(always)]
32039#[target_feature(enable = "neon")]
32040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32041#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s8"))]
32042#[cfg_attr(
32043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32044    assert_instr(smull)
32045)]
32046#[cfg_attr(
32047    not(target_arch = "arm"),
32048    stable(feature = "neon_intrinsics", since = "1.59.0")
32049)]
32050#[cfg_attr(
32051    target_arch = "arm",
32052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32053)]
32054pub fn vmull_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
32055    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32056}
32057#[doc = "Unsigned multiply long"]
32058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u8)"]
32059#[inline(always)]
32060#[target_feature(enable = "neon")]
32061#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32062#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u8"))]
32063#[cfg_attr(
32064    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32065    assert_instr(umull)
32066)]
32067#[cfg_attr(
32068    not(target_arch = "arm"),
32069    stable(feature = "neon_intrinsics", since = "1.59.0")
32070)]
32071#[cfg_attr(
32072    target_arch = "arm",
32073    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32074)]
32075pub fn vmull_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
32076    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32077}
32078#[doc = "Unsigned multiply long"]
32079#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u16)"]
32080#[inline(always)]
32081#[target_feature(enable = "neon")]
32082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32083#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u16"))]
32084#[cfg_attr(
32085    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32086    assert_instr(umull)
32087)]
32088#[cfg_attr(
32089    not(target_arch = "arm"),
32090    stable(feature = "neon_intrinsics", since = "1.59.0")
32091)]
32092#[cfg_attr(
32093    target_arch = "arm",
32094    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32095)]
32096pub fn vmull_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
32097    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32098}
32099#[doc = "Unsigned multiply long"]
32100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u32)"]
32101#[inline(always)]
32102#[target_feature(enable = "neon")]
32103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32104#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u32"))]
32105#[cfg_attr(
32106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32107    assert_instr(umull)
32108)]
32109#[cfg_attr(
32110    not(target_arch = "arm"),
32111    stable(feature = "neon_intrinsics", since = "1.59.0")
32112)]
32113#[cfg_attr(
32114    target_arch = "arm",
32115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32116)]
32117pub fn vmull_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
32118    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32119}
32120#[doc = "Vector bitwise not."]
32121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_p8)"]
32122#[inline(always)]
32123#[target_feature(enable = "neon")]
32124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32125#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32126#[cfg_attr(
32127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32128    assert_instr(mvn)
32129)]
32130#[cfg_attr(
32131    not(target_arch = "arm"),
32132    stable(feature = "neon_intrinsics", since = "1.59.0")
32133)]
32134#[cfg_attr(
32135    target_arch = "arm",
32136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32137)]
32138pub fn vmvn_p8(a: poly8x8_t) -> poly8x8_t {
32139    let b = poly8x8_t::splat(255);
32140    unsafe { simd_xor(a, b) }
32141}
32142#[doc = "Vector bitwise not."]
32143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s16)"]
32144#[inline(always)]
32145#[target_feature(enable = "neon")]
32146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32148#[cfg_attr(
32149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32150    assert_instr(mvn)
32151)]
32152#[cfg_attr(
32153    not(target_arch = "arm"),
32154    stable(feature = "neon_intrinsics", since = "1.59.0")
32155)]
32156#[cfg_attr(
32157    target_arch = "arm",
32158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32159)]
32160pub fn vmvn_s16(a: int16x4_t) -> int16x4_t {
32161    let b = int16x4_t::splat(-1);
32162    unsafe { simd_xor(a, b) }
32163}
32164#[doc = "Vector bitwise not."]
32165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s32)"]
32166#[inline(always)]
32167#[target_feature(enable = "neon")]
32168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32170#[cfg_attr(
32171    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32172    assert_instr(mvn)
32173)]
32174#[cfg_attr(
32175    not(target_arch = "arm"),
32176    stable(feature = "neon_intrinsics", since = "1.59.0")
32177)]
32178#[cfg_attr(
32179    target_arch = "arm",
32180    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32181)]
32182pub fn vmvn_s32(a: int32x2_t) -> int32x2_t {
32183    let b = int32x2_t::splat(-1);
32184    unsafe { simd_xor(a, b) }
32185}
32186#[doc = "Vector bitwise not."]
32187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s8)"]
32188#[inline(always)]
32189#[target_feature(enable = "neon")]
32190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32192#[cfg_attr(
32193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32194    assert_instr(mvn)
32195)]
32196#[cfg_attr(
32197    not(target_arch = "arm"),
32198    stable(feature = "neon_intrinsics", since = "1.59.0")
32199)]
32200#[cfg_attr(
32201    target_arch = "arm",
32202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32203)]
32204pub fn vmvn_s8(a: int8x8_t) -> int8x8_t {
32205    let b = int8x8_t::splat(-1);
32206    unsafe { simd_xor(a, b) }
32207}
32208#[doc = "Vector bitwise not."]
32209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u16)"]
32210#[inline(always)]
32211#[target_feature(enable = "neon")]
32212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32214#[cfg_attr(
32215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32216    assert_instr(mvn)
32217)]
32218#[cfg_attr(
32219    not(target_arch = "arm"),
32220    stable(feature = "neon_intrinsics", since = "1.59.0")
32221)]
32222#[cfg_attr(
32223    target_arch = "arm",
32224    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32225)]
32226pub fn vmvn_u16(a: uint16x4_t) -> uint16x4_t {
32227    let b = uint16x4_t::splat(65_535);
32228    unsafe { simd_xor(a, b) }
32229}
32230#[doc = "Vector bitwise not."]
32231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u32)"]
32232#[inline(always)]
32233#[target_feature(enable = "neon")]
32234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32235#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32236#[cfg_attr(
32237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32238    assert_instr(mvn)
32239)]
32240#[cfg_attr(
32241    not(target_arch = "arm"),
32242    stable(feature = "neon_intrinsics", since = "1.59.0")
32243)]
32244#[cfg_attr(
32245    target_arch = "arm",
32246    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32247)]
32248pub fn vmvn_u32(a: uint32x2_t) -> uint32x2_t {
32249    let b = uint32x2_t::splat(4_294_967_295);
32250    unsafe { simd_xor(a, b) }
32251}
32252#[doc = "Vector bitwise not."]
32253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u8)"]
32254#[inline(always)]
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(vmvn))]
32258#[cfg_attr(
32259    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32260    assert_instr(mvn)
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 vmvn_u8(a: uint8x8_t) -> uint8x8_t {
32271    let b = uint8x8_t::splat(255);
32272    unsafe { simd_xor(a, b) }
32273}
32274#[doc = "Vector bitwise not."]
32275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_p8)"]
32276#[inline(always)]
32277#[target_feature(enable = "neon")]
32278#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32279#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32280#[cfg_attr(
32281    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32282    assert_instr(mvn)
32283)]
32284#[cfg_attr(
32285    not(target_arch = "arm"),
32286    stable(feature = "neon_intrinsics", since = "1.59.0")
32287)]
32288#[cfg_attr(
32289    target_arch = "arm",
32290    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32291)]
32292pub fn vmvnq_p8(a: poly8x16_t) -> poly8x16_t {
32293    let b = poly8x16_t::splat(255);
32294    unsafe { simd_xor(a, b) }
32295}
32296#[doc = "Vector bitwise not."]
32297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s16)"]
32298#[inline(always)]
32299#[target_feature(enable = "neon")]
32300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32301#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32302#[cfg_attr(
32303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32304    assert_instr(mvn)
32305)]
32306#[cfg_attr(
32307    not(target_arch = "arm"),
32308    stable(feature = "neon_intrinsics", since = "1.59.0")
32309)]
32310#[cfg_attr(
32311    target_arch = "arm",
32312    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32313)]
32314pub fn vmvnq_s16(a: int16x8_t) -> int16x8_t {
32315    let b = int16x8_t::splat(-1);
32316    unsafe { simd_xor(a, b) }
32317}
32318#[doc = "Vector bitwise not."]
32319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s32)"]
32320#[inline(always)]
32321#[target_feature(enable = "neon")]
32322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32323#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32324#[cfg_attr(
32325    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32326    assert_instr(mvn)
32327)]
32328#[cfg_attr(
32329    not(target_arch = "arm"),
32330    stable(feature = "neon_intrinsics", since = "1.59.0")
32331)]
32332#[cfg_attr(
32333    target_arch = "arm",
32334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32335)]
32336pub fn vmvnq_s32(a: int32x4_t) -> int32x4_t {
32337    let b = int32x4_t::splat(-1);
32338    unsafe { simd_xor(a, b) }
32339}
32340#[doc = "Vector bitwise not."]
32341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s8)"]
32342#[inline(always)]
32343#[target_feature(enable = "neon")]
32344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32346#[cfg_attr(
32347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32348    assert_instr(mvn)
32349)]
32350#[cfg_attr(
32351    not(target_arch = "arm"),
32352    stable(feature = "neon_intrinsics", since = "1.59.0")
32353)]
32354#[cfg_attr(
32355    target_arch = "arm",
32356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32357)]
32358pub fn vmvnq_s8(a: int8x16_t) -> int8x16_t {
32359    let b = int8x16_t::splat(-1);
32360    unsafe { simd_xor(a, b) }
32361}
32362#[doc = "Vector bitwise not."]
32363#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u16)"]
32364#[inline(always)]
32365#[target_feature(enable = "neon")]
32366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32368#[cfg_attr(
32369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32370    assert_instr(mvn)
32371)]
32372#[cfg_attr(
32373    not(target_arch = "arm"),
32374    stable(feature = "neon_intrinsics", since = "1.59.0")
32375)]
32376#[cfg_attr(
32377    target_arch = "arm",
32378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32379)]
32380pub fn vmvnq_u16(a: uint16x8_t) -> uint16x8_t {
32381    let b = uint16x8_t::splat(65_535);
32382    unsafe { simd_xor(a, b) }
32383}
32384#[doc = "Vector bitwise not."]
32385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u32)"]
32386#[inline(always)]
32387#[target_feature(enable = "neon")]
32388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32390#[cfg_attr(
32391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32392    assert_instr(mvn)
32393)]
32394#[cfg_attr(
32395    not(target_arch = "arm"),
32396    stable(feature = "neon_intrinsics", since = "1.59.0")
32397)]
32398#[cfg_attr(
32399    target_arch = "arm",
32400    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32401)]
32402pub fn vmvnq_u32(a: uint32x4_t) -> uint32x4_t {
32403    let b = uint32x4_t::splat(4_294_967_295);
32404    unsafe { simd_xor(a, b) }
32405}
32406#[doc = "Vector bitwise not."]
32407#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u8)"]
32408#[inline(always)]
32409#[target_feature(enable = "neon")]
32410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32412#[cfg_attr(
32413    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32414    assert_instr(mvn)
32415)]
32416#[cfg_attr(
32417    not(target_arch = "arm"),
32418    stable(feature = "neon_intrinsics", since = "1.59.0")
32419)]
32420#[cfg_attr(
32421    target_arch = "arm",
32422    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32423)]
32424pub fn vmvnq_u8(a: uint8x16_t) -> uint8x16_t {
32425    let b = uint8x16_t::splat(255);
32426    unsafe { simd_xor(a, b) }
32427}
32428#[doc = "Negate"]
32429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_f16)"]
32430#[inline(always)]
32431#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32432#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f16"))]
32433#[cfg_attr(
32434    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32435    assert_instr(fneg)
32436)]
32437#[target_feature(enable = "neon,fp16")]
32438#[cfg_attr(
32439    not(target_arch = "arm"),
32440    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
32441)]
32442#[cfg_attr(
32443    target_arch = "arm",
32444    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32445)]
32446#[cfg(not(target_arch = "arm64ec"))]
32447pub fn vneg_f16(a: float16x4_t) -> float16x4_t {
32448    unsafe { simd_neg(a) }
32449}
32450#[doc = "Negate"]
32451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_f16)"]
32452#[inline(always)]
32453#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32454#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f16"))]
32455#[cfg_attr(
32456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32457    assert_instr(fneg)
32458)]
32459#[target_feature(enable = "neon,fp16")]
32460#[cfg_attr(
32461    not(target_arch = "arm"),
32462    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
32463)]
32464#[cfg_attr(
32465    target_arch = "arm",
32466    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32467)]
32468#[cfg(not(target_arch = "arm64ec"))]
32469pub fn vnegq_f16(a: float16x8_t) -> float16x8_t {
32470    unsafe { simd_neg(a) }
32471}
32472#[doc = "Negate"]
32473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_f32)"]
32474#[inline(always)]
32475#[target_feature(enable = "neon")]
32476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
32478#[cfg_attr(
32479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32480    assert_instr(fneg)
32481)]
32482#[cfg_attr(
32483    not(target_arch = "arm"),
32484    stable(feature = "neon_intrinsics", since = "1.59.0")
32485)]
32486#[cfg_attr(
32487    target_arch = "arm",
32488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32489)]
32490pub fn vneg_f32(a: float32x2_t) -> float32x2_t {
32491    unsafe { simd_neg(a) }
32492}
32493#[doc = "Negate"]
32494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_f32)"]
32495#[inline(always)]
32496#[target_feature(enable = "neon")]
32497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32498#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
32499#[cfg_attr(
32500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32501    assert_instr(fneg)
32502)]
32503#[cfg_attr(
32504    not(target_arch = "arm"),
32505    stable(feature = "neon_intrinsics", since = "1.59.0")
32506)]
32507#[cfg_attr(
32508    target_arch = "arm",
32509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32510)]
32511pub fn vnegq_f32(a: float32x4_t) -> float32x4_t {
32512    unsafe { simd_neg(a) }
32513}
32514#[doc = "Negate"]
32515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s8)"]
32516#[inline(always)]
32517#[target_feature(enable = "neon")]
32518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32519#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
32520#[cfg_attr(
32521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32522    assert_instr(neg)
32523)]
32524#[cfg_attr(
32525    not(target_arch = "arm"),
32526    stable(feature = "neon_intrinsics", since = "1.59.0")
32527)]
32528#[cfg_attr(
32529    target_arch = "arm",
32530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32531)]
32532pub fn vneg_s8(a: int8x8_t) -> int8x8_t {
32533    unsafe { simd_neg(a) }
32534}
32535#[doc = "Negate"]
32536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s8)"]
32537#[inline(always)]
32538#[target_feature(enable = "neon")]
32539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32540#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
32541#[cfg_attr(
32542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32543    assert_instr(neg)
32544)]
32545#[cfg_attr(
32546    not(target_arch = "arm"),
32547    stable(feature = "neon_intrinsics", since = "1.59.0")
32548)]
32549#[cfg_attr(
32550    target_arch = "arm",
32551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32552)]
32553pub fn vnegq_s8(a: int8x16_t) -> int8x16_t {
32554    unsafe { simd_neg(a) }
32555}
32556#[doc = "Negate"]
32557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s16)"]
32558#[inline(always)]
32559#[target_feature(enable = "neon")]
32560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32561#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
32562#[cfg_attr(
32563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32564    assert_instr(neg)
32565)]
32566#[cfg_attr(
32567    not(target_arch = "arm"),
32568    stable(feature = "neon_intrinsics", since = "1.59.0")
32569)]
32570#[cfg_attr(
32571    target_arch = "arm",
32572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32573)]
32574pub fn vneg_s16(a: int16x4_t) -> int16x4_t {
32575    unsafe { simd_neg(a) }
32576}
32577#[doc = "Negate"]
32578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s16)"]
32579#[inline(always)]
32580#[target_feature(enable = "neon")]
32581#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32582#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
32583#[cfg_attr(
32584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32585    assert_instr(neg)
32586)]
32587#[cfg_attr(
32588    not(target_arch = "arm"),
32589    stable(feature = "neon_intrinsics", since = "1.59.0")
32590)]
32591#[cfg_attr(
32592    target_arch = "arm",
32593    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32594)]
32595pub fn vnegq_s16(a: int16x8_t) -> int16x8_t {
32596    unsafe { simd_neg(a) }
32597}
32598#[doc = "Negate"]
32599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s32)"]
32600#[inline(always)]
32601#[target_feature(enable = "neon")]
32602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32603#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
32604#[cfg_attr(
32605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32606    assert_instr(neg)
32607)]
32608#[cfg_attr(
32609    not(target_arch = "arm"),
32610    stable(feature = "neon_intrinsics", since = "1.59.0")
32611)]
32612#[cfg_attr(
32613    target_arch = "arm",
32614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32615)]
32616pub fn vneg_s32(a: int32x2_t) -> int32x2_t {
32617    unsafe { simd_neg(a) }
32618}
32619#[doc = "Negate"]
32620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s32)"]
32621#[inline(always)]
32622#[target_feature(enable = "neon")]
32623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32624#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
32625#[cfg_attr(
32626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32627    assert_instr(neg)
32628)]
32629#[cfg_attr(
32630    not(target_arch = "arm"),
32631    stable(feature = "neon_intrinsics", since = "1.59.0")
32632)]
32633#[cfg_attr(
32634    target_arch = "arm",
32635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32636)]
32637pub fn vnegq_s32(a: int32x4_t) -> int32x4_t {
32638    unsafe { simd_neg(a) }
32639}
32640#[doc = "Vector bitwise inclusive OR NOT"]
32641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s16)"]
32642#[inline(always)]
32643#[target_feature(enable = "neon")]
32644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32646#[cfg_attr(
32647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32648    assert_instr(orn)
32649)]
32650#[cfg_attr(
32651    not(target_arch = "arm"),
32652    stable(feature = "neon_intrinsics", since = "1.59.0")
32653)]
32654#[cfg_attr(
32655    target_arch = "arm",
32656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32657)]
32658pub fn vorn_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
32659    let c = int16x4_t::splat(-1);
32660    unsafe { simd_or(simd_xor(b, c), a) }
32661}
32662#[doc = "Vector bitwise inclusive OR NOT"]
32663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s32)"]
32664#[inline(always)]
32665#[target_feature(enable = "neon")]
32666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32668#[cfg_attr(
32669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32670    assert_instr(orn)
32671)]
32672#[cfg_attr(
32673    not(target_arch = "arm"),
32674    stable(feature = "neon_intrinsics", since = "1.59.0")
32675)]
32676#[cfg_attr(
32677    target_arch = "arm",
32678    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32679)]
32680pub fn vorn_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
32681    let c = int32x2_t::splat(-1);
32682    unsafe { simd_or(simd_xor(b, c), a) }
32683}
32684#[doc = "Vector bitwise inclusive OR NOT"]
32685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s64)"]
32686#[inline(always)]
32687#[target_feature(enable = "neon")]
32688#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32689#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32690#[cfg_attr(
32691    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32692    assert_instr(orn)
32693)]
32694#[cfg_attr(
32695    not(target_arch = "arm"),
32696    stable(feature = "neon_intrinsics", since = "1.59.0")
32697)]
32698#[cfg_attr(
32699    target_arch = "arm",
32700    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32701)]
32702pub fn vorn_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
32703    let c = int64x1_t::splat(-1);
32704    unsafe { simd_or(simd_xor(b, c), a) }
32705}
32706#[doc = "Vector bitwise inclusive OR NOT"]
32707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s8)"]
32708#[inline(always)]
32709#[target_feature(enable = "neon")]
32710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32711#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32712#[cfg_attr(
32713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32714    assert_instr(orn)
32715)]
32716#[cfg_attr(
32717    not(target_arch = "arm"),
32718    stable(feature = "neon_intrinsics", since = "1.59.0")
32719)]
32720#[cfg_attr(
32721    target_arch = "arm",
32722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32723)]
32724pub fn vorn_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
32725    let c = int8x8_t::splat(-1);
32726    unsafe { simd_or(simd_xor(b, c), a) }
32727}
32728#[doc = "Vector bitwise inclusive OR NOT"]
32729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s16)"]
32730#[inline(always)]
32731#[target_feature(enable = "neon")]
32732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32734#[cfg_attr(
32735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32736    assert_instr(orn)
32737)]
32738#[cfg_attr(
32739    not(target_arch = "arm"),
32740    stable(feature = "neon_intrinsics", since = "1.59.0")
32741)]
32742#[cfg_attr(
32743    target_arch = "arm",
32744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32745)]
32746pub fn vornq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
32747    let c = int16x8_t::splat(-1);
32748    unsafe { simd_or(simd_xor(b, c), a) }
32749}
32750#[doc = "Vector bitwise inclusive OR NOT"]
32751#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s32)"]
32752#[inline(always)]
32753#[target_feature(enable = "neon")]
32754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32755#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32756#[cfg_attr(
32757    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32758    assert_instr(orn)
32759)]
32760#[cfg_attr(
32761    not(target_arch = "arm"),
32762    stable(feature = "neon_intrinsics", since = "1.59.0")
32763)]
32764#[cfg_attr(
32765    target_arch = "arm",
32766    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32767)]
32768pub fn vornq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
32769    let c = int32x4_t::splat(-1);
32770    unsafe { simd_or(simd_xor(b, c), a) }
32771}
32772#[doc = "Vector bitwise inclusive OR NOT"]
32773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s64)"]
32774#[inline(always)]
32775#[target_feature(enable = "neon")]
32776#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32777#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32778#[cfg_attr(
32779    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32780    assert_instr(orn)
32781)]
32782#[cfg_attr(
32783    not(target_arch = "arm"),
32784    stable(feature = "neon_intrinsics", since = "1.59.0")
32785)]
32786#[cfg_attr(
32787    target_arch = "arm",
32788    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32789)]
32790pub fn vornq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
32791    let c = int64x2_t::splat(-1);
32792    unsafe { simd_or(simd_xor(b, c), a) }
32793}
32794#[doc = "Vector bitwise inclusive OR NOT"]
32795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s8)"]
32796#[inline(always)]
32797#[target_feature(enable = "neon")]
32798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32799#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32800#[cfg_attr(
32801    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32802    assert_instr(orn)
32803)]
32804#[cfg_attr(
32805    not(target_arch = "arm"),
32806    stable(feature = "neon_intrinsics", since = "1.59.0")
32807)]
32808#[cfg_attr(
32809    target_arch = "arm",
32810    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32811)]
32812pub fn vornq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
32813    let c = int8x16_t::splat(-1);
32814    unsafe { simd_or(simd_xor(b, c), a) }
32815}
32816#[doc = "Vector bitwise inclusive OR NOT"]
32817#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u16)"]
32818#[inline(always)]
32819#[target_feature(enable = "neon")]
32820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32822#[cfg_attr(
32823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32824    assert_instr(orn)
32825)]
32826#[cfg_attr(
32827    not(target_arch = "arm"),
32828    stable(feature = "neon_intrinsics", since = "1.59.0")
32829)]
32830#[cfg_attr(
32831    target_arch = "arm",
32832    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32833)]
32834pub fn vorn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
32835    let c = int16x4_t::splat(-1);
32836    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32837}
32838#[doc = "Vector bitwise inclusive OR NOT"]
32839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u32)"]
32840#[inline(always)]
32841#[target_feature(enable = "neon")]
32842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32844#[cfg_attr(
32845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32846    assert_instr(orn)
32847)]
32848#[cfg_attr(
32849    not(target_arch = "arm"),
32850    stable(feature = "neon_intrinsics", since = "1.59.0")
32851)]
32852#[cfg_attr(
32853    target_arch = "arm",
32854    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32855)]
32856pub fn vorn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
32857    let c = int32x2_t::splat(-1);
32858    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32859}
32860#[doc = "Vector bitwise inclusive OR NOT"]
32861#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u64)"]
32862#[inline(always)]
32863#[target_feature(enable = "neon")]
32864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32865#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32866#[cfg_attr(
32867    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32868    assert_instr(orn)
32869)]
32870#[cfg_attr(
32871    not(target_arch = "arm"),
32872    stable(feature = "neon_intrinsics", since = "1.59.0")
32873)]
32874#[cfg_attr(
32875    target_arch = "arm",
32876    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32877)]
32878pub fn vorn_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
32879    let c = int64x1_t::splat(-1);
32880    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32881}
32882#[doc = "Vector bitwise inclusive OR NOT"]
32883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u8)"]
32884#[inline(always)]
32885#[target_feature(enable = "neon")]
32886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32888#[cfg_attr(
32889    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32890    assert_instr(orn)
32891)]
32892#[cfg_attr(
32893    not(target_arch = "arm"),
32894    stable(feature = "neon_intrinsics", since = "1.59.0")
32895)]
32896#[cfg_attr(
32897    target_arch = "arm",
32898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32899)]
32900pub fn vorn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
32901    let c = int8x8_t::splat(-1);
32902    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32903}
32904#[doc = "Vector bitwise inclusive OR NOT"]
32905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u16)"]
32906#[inline(always)]
32907#[target_feature(enable = "neon")]
32908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32909#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32910#[cfg_attr(
32911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32912    assert_instr(orn)
32913)]
32914#[cfg_attr(
32915    not(target_arch = "arm"),
32916    stable(feature = "neon_intrinsics", since = "1.59.0")
32917)]
32918#[cfg_attr(
32919    target_arch = "arm",
32920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32921)]
32922pub fn vornq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
32923    let c = int16x8_t::splat(-1);
32924    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32925}
32926#[doc = "Vector bitwise inclusive OR NOT"]
32927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u32)"]
32928#[inline(always)]
32929#[target_feature(enable = "neon")]
32930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32932#[cfg_attr(
32933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32934    assert_instr(orn)
32935)]
32936#[cfg_attr(
32937    not(target_arch = "arm"),
32938    stable(feature = "neon_intrinsics", since = "1.59.0")
32939)]
32940#[cfg_attr(
32941    target_arch = "arm",
32942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32943)]
32944pub fn vornq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
32945    let c = int32x4_t::splat(-1);
32946    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32947}
32948#[doc = "Vector bitwise inclusive OR NOT"]
32949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u64)"]
32950#[inline(always)]
32951#[target_feature(enable = "neon")]
32952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32954#[cfg_attr(
32955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32956    assert_instr(orn)
32957)]
32958#[cfg_attr(
32959    not(target_arch = "arm"),
32960    stable(feature = "neon_intrinsics", since = "1.59.0")
32961)]
32962#[cfg_attr(
32963    target_arch = "arm",
32964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32965)]
32966pub fn vornq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
32967    let c = int64x2_t::splat(-1);
32968    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32969}
32970#[doc = "Vector bitwise inclusive OR NOT"]
32971#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u8)"]
32972#[inline(always)]
32973#[target_feature(enable = "neon")]
32974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32975#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32976#[cfg_attr(
32977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32978    assert_instr(orn)
32979)]
32980#[cfg_attr(
32981    not(target_arch = "arm"),
32982    stable(feature = "neon_intrinsics", since = "1.59.0")
32983)]
32984#[cfg_attr(
32985    target_arch = "arm",
32986    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32987)]
32988pub fn vornq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
32989    let c = int8x16_t::splat(-1);
32990    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32991}
32992#[doc = "Vector bitwise or (immediate, inclusive)"]
32993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s8)"]
32994#[inline(always)]
32995#[target_feature(enable = "neon")]
32996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
32998#[cfg_attr(
32999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33000    assert_instr(orr)
33001)]
33002#[cfg_attr(
33003    not(target_arch = "arm"),
33004    stable(feature = "neon_intrinsics", since = "1.59.0")
33005)]
33006#[cfg_attr(
33007    target_arch = "arm",
33008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33009)]
33010pub fn vorr_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
33011    unsafe { simd_or(a, b) }
33012}
33013#[doc = "Vector bitwise or (immediate, inclusive)"]
33014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s8)"]
33015#[inline(always)]
33016#[target_feature(enable = "neon")]
33017#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33018#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33019#[cfg_attr(
33020    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33021    assert_instr(orr)
33022)]
33023#[cfg_attr(
33024    not(target_arch = "arm"),
33025    stable(feature = "neon_intrinsics", since = "1.59.0")
33026)]
33027#[cfg_attr(
33028    target_arch = "arm",
33029    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33030)]
33031pub fn vorrq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
33032    unsafe { simd_or(a, b) }
33033}
33034#[doc = "Vector bitwise or (immediate, inclusive)"]
33035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s16)"]
33036#[inline(always)]
33037#[target_feature(enable = "neon")]
33038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33040#[cfg_attr(
33041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33042    assert_instr(orr)
33043)]
33044#[cfg_attr(
33045    not(target_arch = "arm"),
33046    stable(feature = "neon_intrinsics", since = "1.59.0")
33047)]
33048#[cfg_attr(
33049    target_arch = "arm",
33050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33051)]
33052pub fn vorr_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
33053    unsafe { simd_or(a, b) }
33054}
33055#[doc = "Vector bitwise or (immediate, inclusive)"]
33056#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s16)"]
33057#[inline(always)]
33058#[target_feature(enable = "neon")]
33059#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33060#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33061#[cfg_attr(
33062    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33063    assert_instr(orr)
33064)]
33065#[cfg_attr(
33066    not(target_arch = "arm"),
33067    stable(feature = "neon_intrinsics", since = "1.59.0")
33068)]
33069#[cfg_attr(
33070    target_arch = "arm",
33071    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33072)]
33073pub fn vorrq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
33074    unsafe { simd_or(a, b) }
33075}
33076#[doc = "Vector bitwise or (immediate, inclusive)"]
33077#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s32)"]
33078#[inline(always)]
33079#[target_feature(enable = "neon")]
33080#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33081#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33082#[cfg_attr(
33083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33084    assert_instr(orr)
33085)]
33086#[cfg_attr(
33087    not(target_arch = "arm"),
33088    stable(feature = "neon_intrinsics", since = "1.59.0")
33089)]
33090#[cfg_attr(
33091    target_arch = "arm",
33092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33093)]
33094pub fn vorr_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
33095    unsafe { simd_or(a, b) }
33096}
33097#[doc = "Vector bitwise or (immediate, inclusive)"]
33098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s32)"]
33099#[inline(always)]
33100#[target_feature(enable = "neon")]
33101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33103#[cfg_attr(
33104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33105    assert_instr(orr)
33106)]
33107#[cfg_attr(
33108    not(target_arch = "arm"),
33109    stable(feature = "neon_intrinsics", since = "1.59.0")
33110)]
33111#[cfg_attr(
33112    target_arch = "arm",
33113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33114)]
33115pub fn vorrq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
33116    unsafe { simd_or(a, b) }
33117}
33118#[doc = "Vector bitwise or (immediate, inclusive)"]
33119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s64)"]
33120#[inline(always)]
33121#[target_feature(enable = "neon")]
33122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33124#[cfg_attr(
33125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33126    assert_instr(orr)
33127)]
33128#[cfg_attr(
33129    not(target_arch = "arm"),
33130    stable(feature = "neon_intrinsics", since = "1.59.0")
33131)]
33132#[cfg_attr(
33133    target_arch = "arm",
33134    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33135)]
33136pub fn vorr_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
33137    unsafe { simd_or(a, b) }
33138}
33139#[doc = "Vector bitwise or (immediate, inclusive)"]
33140#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s64)"]
33141#[inline(always)]
33142#[target_feature(enable = "neon")]
33143#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33144#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33145#[cfg_attr(
33146    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33147    assert_instr(orr)
33148)]
33149#[cfg_attr(
33150    not(target_arch = "arm"),
33151    stable(feature = "neon_intrinsics", since = "1.59.0")
33152)]
33153#[cfg_attr(
33154    target_arch = "arm",
33155    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33156)]
33157pub fn vorrq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
33158    unsafe { simd_or(a, b) }
33159}
33160#[doc = "Vector bitwise or (immediate, inclusive)"]
33161#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u8)"]
33162#[inline(always)]
33163#[target_feature(enable = "neon")]
33164#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33165#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33166#[cfg_attr(
33167    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33168    assert_instr(orr)
33169)]
33170#[cfg_attr(
33171    not(target_arch = "arm"),
33172    stable(feature = "neon_intrinsics", since = "1.59.0")
33173)]
33174#[cfg_attr(
33175    target_arch = "arm",
33176    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33177)]
33178pub fn vorr_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
33179    unsafe { simd_or(a, b) }
33180}
33181#[doc = "Vector bitwise or (immediate, inclusive)"]
33182#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u8)"]
33183#[inline(always)]
33184#[target_feature(enable = "neon")]
33185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33186#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33187#[cfg_attr(
33188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33189    assert_instr(orr)
33190)]
33191#[cfg_attr(
33192    not(target_arch = "arm"),
33193    stable(feature = "neon_intrinsics", since = "1.59.0")
33194)]
33195#[cfg_attr(
33196    target_arch = "arm",
33197    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33198)]
33199pub fn vorrq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
33200    unsafe { simd_or(a, b) }
33201}
33202#[doc = "Vector bitwise or (immediate, inclusive)"]
33203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u16)"]
33204#[inline(always)]
33205#[target_feature(enable = "neon")]
33206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33207#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33208#[cfg_attr(
33209    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33210    assert_instr(orr)
33211)]
33212#[cfg_attr(
33213    not(target_arch = "arm"),
33214    stable(feature = "neon_intrinsics", since = "1.59.0")
33215)]
33216#[cfg_attr(
33217    target_arch = "arm",
33218    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33219)]
33220pub fn vorr_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
33221    unsafe { simd_or(a, b) }
33222}
33223#[doc = "Vector bitwise or (immediate, inclusive)"]
33224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u16)"]
33225#[inline(always)]
33226#[target_feature(enable = "neon")]
33227#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33228#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33229#[cfg_attr(
33230    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33231    assert_instr(orr)
33232)]
33233#[cfg_attr(
33234    not(target_arch = "arm"),
33235    stable(feature = "neon_intrinsics", since = "1.59.0")
33236)]
33237#[cfg_attr(
33238    target_arch = "arm",
33239    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33240)]
33241pub fn vorrq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
33242    unsafe { simd_or(a, b) }
33243}
33244#[doc = "Vector bitwise or (immediate, inclusive)"]
33245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u32)"]
33246#[inline(always)]
33247#[target_feature(enable = "neon")]
33248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33250#[cfg_attr(
33251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33252    assert_instr(orr)
33253)]
33254#[cfg_attr(
33255    not(target_arch = "arm"),
33256    stable(feature = "neon_intrinsics", since = "1.59.0")
33257)]
33258#[cfg_attr(
33259    target_arch = "arm",
33260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33261)]
33262pub fn vorr_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
33263    unsafe { simd_or(a, b) }
33264}
33265#[doc = "Vector bitwise or (immediate, inclusive)"]
33266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u32)"]
33267#[inline(always)]
33268#[target_feature(enable = "neon")]
33269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33270#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33271#[cfg_attr(
33272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33273    assert_instr(orr)
33274)]
33275#[cfg_attr(
33276    not(target_arch = "arm"),
33277    stable(feature = "neon_intrinsics", since = "1.59.0")
33278)]
33279#[cfg_attr(
33280    target_arch = "arm",
33281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33282)]
33283pub fn vorrq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
33284    unsafe { simd_or(a, b) }
33285}
33286#[doc = "Vector bitwise or (immediate, inclusive)"]
33287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u64)"]
33288#[inline(always)]
33289#[target_feature(enable = "neon")]
33290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33291#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33292#[cfg_attr(
33293    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33294    assert_instr(orr)
33295)]
33296#[cfg_attr(
33297    not(target_arch = "arm"),
33298    stable(feature = "neon_intrinsics", since = "1.59.0")
33299)]
33300#[cfg_attr(
33301    target_arch = "arm",
33302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33303)]
33304pub fn vorr_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
33305    unsafe { simd_or(a, b) }
33306}
33307#[doc = "Vector bitwise or (immediate, inclusive)"]
33308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u64)"]
33309#[inline(always)]
33310#[target_feature(enable = "neon")]
33311#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33312#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33313#[cfg_attr(
33314    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33315    assert_instr(orr)
33316)]
33317#[cfg_attr(
33318    not(target_arch = "arm"),
33319    stable(feature = "neon_intrinsics", since = "1.59.0")
33320)]
33321#[cfg_attr(
33322    target_arch = "arm",
33323    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33324)]
33325pub fn vorrq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
33326    unsafe { simd_or(a, b) }
33327}
33328#[doc = "Signed Add and Accumulate Long Pairwise."]
33329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s8)"]
33330#[inline(always)]
33331#[target_feature(enable = "neon")]
33332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33333#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s8"))]
33334#[cfg_attr(
33335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33336    assert_instr(sadalp)
33337)]
33338#[cfg_attr(
33339    not(target_arch = "arm"),
33340    stable(feature = "neon_intrinsics", since = "1.59.0")
33341)]
33342#[cfg_attr(
33343    target_arch = "arm",
33344    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33345)]
33346pub fn vpadal_s8(a: int16x4_t, b: int8x8_t) -> int16x4_t {
33347    let x: int16x4_t;
33348    #[cfg(target_arch = "arm")]
33349    {
33350        x = priv_vpadal_s8(a, b);
33351    }
33352    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33353    unsafe {
33354        x = simd_add(vpaddl_s8(b), a);
33355    };
33356    x
33357}
33358#[doc = "Signed Add and Accumulate Long Pairwise."]
33359#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s8)"]
33360#[inline(always)]
33361#[target_feature(enable = "neon")]
33362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33363#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s8"))]
33364#[cfg_attr(
33365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33366    assert_instr(sadalp)
33367)]
33368#[cfg_attr(
33369    not(target_arch = "arm"),
33370    stable(feature = "neon_intrinsics", since = "1.59.0")
33371)]
33372#[cfg_attr(
33373    target_arch = "arm",
33374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33375)]
33376pub fn vpadalq_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t {
33377    let x: int16x8_t;
33378    #[cfg(target_arch = "arm")]
33379    {
33380        x = priv_vpadalq_s8(a, b);
33381    }
33382    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33383    unsafe {
33384        x = simd_add(vpaddlq_s8(b), a);
33385    };
33386    x
33387}
33388#[doc = "Signed Add and Accumulate Long Pairwise."]
33389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s16)"]
33390#[inline(always)]
33391#[target_feature(enable = "neon")]
33392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33393#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s16"))]
33394#[cfg_attr(
33395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33396    assert_instr(sadalp)
33397)]
33398#[cfg_attr(
33399    not(target_arch = "arm"),
33400    stable(feature = "neon_intrinsics", since = "1.59.0")
33401)]
33402#[cfg_attr(
33403    target_arch = "arm",
33404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33405)]
33406pub fn vpadal_s16(a: int32x2_t, b: int16x4_t) -> int32x2_t {
33407    let x: int32x2_t;
33408    #[cfg(target_arch = "arm")]
33409    {
33410        x = priv_vpadal_s16(a, b);
33411    }
33412    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33413    unsafe {
33414        x = simd_add(vpaddl_s16(b), a);
33415    };
33416    x
33417}
33418#[doc = "Signed Add and Accumulate Long Pairwise."]
33419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s16)"]
33420#[inline(always)]
33421#[target_feature(enable = "neon")]
33422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33423#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s16"))]
33424#[cfg_attr(
33425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33426    assert_instr(sadalp)
33427)]
33428#[cfg_attr(
33429    not(target_arch = "arm"),
33430    stable(feature = "neon_intrinsics", since = "1.59.0")
33431)]
33432#[cfg_attr(
33433    target_arch = "arm",
33434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33435)]
33436pub fn vpadalq_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t {
33437    let x: int32x4_t;
33438    #[cfg(target_arch = "arm")]
33439    {
33440        x = priv_vpadalq_s16(a, b);
33441    }
33442    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33443    unsafe {
33444        x = simd_add(vpaddlq_s16(b), a);
33445    };
33446    x
33447}
33448#[doc = "Signed Add and Accumulate Long Pairwise."]
33449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s32)"]
33450#[inline(always)]
33451#[target_feature(enable = "neon")]
33452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33453#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
33454#[cfg_attr(
33455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33456    assert_instr(sadalp)
33457)]
33458#[cfg_attr(
33459    not(target_arch = "arm"),
33460    stable(feature = "neon_intrinsics", since = "1.59.0")
33461)]
33462#[cfg_attr(
33463    target_arch = "arm",
33464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33465)]
33466pub fn vpadal_s32(a: int64x1_t, b: int32x2_t) -> int64x1_t {
33467    let x: int64x1_t;
33468    #[cfg(target_arch = "arm")]
33469    {
33470        x = priv_vpadal_s32(a, b);
33471    }
33472    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33473    unsafe {
33474        x = simd_add(vpaddl_s32(b), a);
33475    };
33476    x
33477}
33478#[doc = "Signed Add and Accumulate Long Pairwise."]
33479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s32)"]
33480#[inline(always)]
33481#[target_feature(enable = "neon")]
33482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33483#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
33484#[cfg_attr(
33485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33486    assert_instr(sadalp)
33487)]
33488#[cfg_attr(
33489    not(target_arch = "arm"),
33490    stable(feature = "neon_intrinsics", since = "1.59.0")
33491)]
33492#[cfg_attr(
33493    target_arch = "arm",
33494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33495)]
33496pub fn vpadalq_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t {
33497    let x: int64x2_t;
33498    #[cfg(target_arch = "arm")]
33499    {
33500        x = priv_vpadalq_s32(a, b);
33501    }
33502    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33503    unsafe {
33504        x = simd_add(vpaddlq_s32(b), a);
33505    };
33506    x
33507}
33508#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u8)"]
33510#[inline(always)]
33511#[target_feature(enable = "neon")]
33512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33513#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u8"))]
33514#[cfg_attr(
33515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33516    assert_instr(uadalp)
33517)]
33518#[cfg_attr(
33519    not(target_arch = "arm"),
33520    stable(feature = "neon_intrinsics", since = "1.59.0")
33521)]
33522#[cfg_attr(
33523    target_arch = "arm",
33524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33525)]
33526pub fn vpadal_u8(a: uint16x4_t, b: uint8x8_t) -> uint16x4_t {
33527    let x: uint16x4_t;
33528    #[cfg(target_arch = "arm")]
33529    {
33530        x = priv_vpadal_u8(a, b);
33531    }
33532    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33533    unsafe {
33534        x = simd_add(vpaddl_u8(b), a);
33535    };
33536    x
33537}
33538#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u8)"]
33540#[inline(always)]
33541#[target_feature(enable = "neon")]
33542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33543#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u8"))]
33544#[cfg_attr(
33545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33546    assert_instr(uadalp)
33547)]
33548#[cfg_attr(
33549    not(target_arch = "arm"),
33550    stable(feature = "neon_intrinsics", since = "1.59.0")
33551)]
33552#[cfg_attr(
33553    target_arch = "arm",
33554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33555)]
33556pub fn vpadalq_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t {
33557    let x: uint16x8_t;
33558    #[cfg(target_arch = "arm")]
33559    {
33560        x = priv_vpadalq_u8(a, b);
33561    }
33562    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33563    unsafe {
33564        x = simd_add(vpaddlq_u8(b), a);
33565    };
33566    x
33567}
33568#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u16)"]
33570#[inline(always)]
33571#[target_feature(enable = "neon")]
33572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33573#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
33574#[cfg_attr(
33575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33576    assert_instr(uadalp)
33577)]
33578#[cfg_attr(
33579    not(target_arch = "arm"),
33580    stable(feature = "neon_intrinsics", since = "1.59.0")
33581)]
33582#[cfg_attr(
33583    target_arch = "arm",
33584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33585)]
33586pub fn vpadal_u16(a: uint32x2_t, b: uint16x4_t) -> uint32x2_t {
33587    let x: uint32x2_t;
33588    #[cfg(target_arch = "arm")]
33589    {
33590        x = priv_vpadal_u16(a, b);
33591    }
33592    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33593    unsafe {
33594        x = simd_add(vpaddl_u16(b), a);
33595    };
33596    x
33597}
33598#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u16)"]
33600#[inline(always)]
33601#[target_feature(enable = "neon")]
33602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33603#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
33604#[cfg_attr(
33605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33606    assert_instr(uadalp)
33607)]
33608#[cfg_attr(
33609    not(target_arch = "arm"),
33610    stable(feature = "neon_intrinsics", since = "1.59.0")
33611)]
33612#[cfg_attr(
33613    target_arch = "arm",
33614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33615)]
33616pub fn vpadalq_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t {
33617    let x: uint32x4_t;
33618    #[cfg(target_arch = "arm")]
33619    {
33620        x = priv_vpadalq_u16(a, b);
33621    }
33622    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33623    unsafe {
33624        x = simd_add(vpaddlq_u16(b), a);
33625    };
33626    x
33627}
33628#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u32)"]
33630#[inline(always)]
33631#[target_feature(enable = "neon")]
33632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33633#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
33634#[cfg_attr(
33635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33636    assert_instr(uadalp)
33637)]
33638#[cfg_attr(
33639    not(target_arch = "arm"),
33640    stable(feature = "neon_intrinsics", since = "1.59.0")
33641)]
33642#[cfg_attr(
33643    target_arch = "arm",
33644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33645)]
33646pub fn vpadal_u32(a: uint64x1_t, b: uint32x2_t) -> uint64x1_t {
33647    let x: uint64x1_t;
33648    #[cfg(target_arch = "arm")]
33649    {
33650        x = priv_vpadal_u32(a, b);
33651    }
33652    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33653    unsafe {
33654        x = simd_add(vpaddl_u32(b), a);
33655    };
33656    x
33657}
33658#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u32)"]
33660#[inline(always)]
33661#[target_feature(enable = "neon")]
33662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33663#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
33664#[cfg_attr(
33665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33666    assert_instr(uadalp)
33667)]
33668#[cfg_attr(
33669    not(target_arch = "arm"),
33670    stable(feature = "neon_intrinsics", since = "1.59.0")
33671)]
33672#[cfg_attr(
33673    target_arch = "arm",
33674    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33675)]
33676pub fn vpadalq_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t {
33677    let x: uint64x2_t;
33678    #[cfg(target_arch = "arm")]
33679    {
33680        x = priv_vpadalq_u32(a, b);
33681    }
33682    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33683    unsafe {
33684        x = simd_add(vpaddlq_u32(b), a);
33685    };
33686    x
33687}
33688#[doc = "Floating-point add pairwise"]
33689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_f16)"]
33690#[inline(always)]
33691#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
33692#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33693#[cfg_attr(
33694    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33695    assert_instr(faddp)
33696)]
33697#[target_feature(enable = "neon,fp16")]
33698#[cfg_attr(
33699    not(target_arch = "arm"),
33700    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
33701)]
33702#[cfg_attr(
33703    target_arch = "arm",
33704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33705)]
33706#[cfg(not(target_arch = "arm64ec"))]
33707pub fn vpadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
33708    unsafe extern "unadjusted" {
33709        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v4f16")]
33710        #[cfg_attr(
33711            any(target_arch = "aarch64", target_arch = "arm64ec"),
33712            link_name = "llvm.aarch64.neon.faddp.v4f16"
33713        )]
33714        fn _vpadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
33715    }
33716    unsafe { _vpadd_f16(a, b) }
33717}
33718#[doc = "Floating-point add pairwise"]
33719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_f32)"]
33720#[inline(always)]
33721#[target_feature(enable = "neon")]
33722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33724#[cfg_attr(
33725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33726    assert_instr(faddp)
33727)]
33728#[cfg_attr(
33729    not(target_arch = "arm"),
33730    stable(feature = "neon_intrinsics", since = "1.59.0")
33731)]
33732#[cfg_attr(
33733    target_arch = "arm",
33734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33735)]
33736pub fn vpadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
33737    unsafe extern "unadjusted" {
33738        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v2f32")]
33739        #[cfg_attr(
33740            any(target_arch = "aarch64", target_arch = "arm64ec"),
33741            link_name = "llvm.aarch64.neon.faddp.v2f32"
33742        )]
33743        fn _vpadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
33744    }
33745    unsafe { _vpadd_f32(a, b) }
33746}
33747#[doc = "Add pairwise."]
33748#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s8)"]
33749#[inline(always)]
33750#[target_feature(enable = "neon")]
33751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33753#[cfg_attr(
33754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33755    assert_instr(addp)
33756)]
33757#[cfg_attr(
33758    not(target_arch = "arm"),
33759    stable(feature = "neon_intrinsics", since = "1.59.0")
33760)]
33761#[cfg_attr(
33762    target_arch = "arm",
33763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33764)]
33765pub fn vpadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
33766    unsafe extern "unadjusted" {
33767        #[cfg_attr(
33768            any(target_arch = "aarch64", target_arch = "arm64ec"),
33769            link_name = "llvm.aarch64.neon.addp.v8i8"
33770        )]
33771        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v8i8")]
33772        fn _vpadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
33773    }
33774    unsafe { _vpadd_s8(a, b) }
33775}
33776#[doc = "Add pairwise."]
33777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s16)"]
33778#[inline(always)]
33779#[target_feature(enable = "neon")]
33780#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33781#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33782#[cfg_attr(
33783    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33784    assert_instr(addp)
33785)]
33786#[cfg_attr(
33787    not(target_arch = "arm"),
33788    stable(feature = "neon_intrinsics", since = "1.59.0")
33789)]
33790#[cfg_attr(
33791    target_arch = "arm",
33792    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33793)]
33794pub fn vpadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
33795    unsafe extern "unadjusted" {
33796        #[cfg_attr(
33797            any(target_arch = "aarch64", target_arch = "arm64ec"),
33798            link_name = "llvm.aarch64.neon.addp.v4i16"
33799        )]
33800        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v4i16")]
33801        fn _vpadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
33802    }
33803    unsafe { _vpadd_s16(a, b) }
33804}
33805#[doc = "Add pairwise."]
33806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s32)"]
33807#[inline(always)]
33808#[target_feature(enable = "neon")]
33809#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33810#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33811#[cfg_attr(
33812    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33813    assert_instr(addp)
33814)]
33815#[cfg_attr(
33816    not(target_arch = "arm"),
33817    stable(feature = "neon_intrinsics", since = "1.59.0")
33818)]
33819#[cfg_attr(
33820    target_arch = "arm",
33821    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33822)]
33823pub fn vpadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
33824    unsafe extern "unadjusted" {
33825        #[cfg_attr(
33826            any(target_arch = "aarch64", target_arch = "arm64ec"),
33827            link_name = "llvm.aarch64.neon.addp.v2i32"
33828        )]
33829        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v2i32")]
33830        fn _vpadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
33831    }
33832    unsafe { _vpadd_s32(a, b) }
33833}
33834#[doc = "Add pairwise."]
33835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u8)"]
33836#[inline(always)]
33837#[cfg(target_endian = "little")]
33838#[target_feature(enable = "neon")]
33839#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33840#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33841#[cfg_attr(
33842    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33843    assert_instr(addp)
33844)]
33845#[cfg_attr(
33846    not(target_arch = "arm"),
33847    stable(feature = "neon_intrinsics", since = "1.59.0")
33848)]
33849#[cfg_attr(
33850    target_arch = "arm",
33851    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33852)]
33853pub fn vpadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
33854    unsafe { transmute(vpadd_s8(transmute(a), transmute(b))) }
33855}
33856#[doc = "Add pairwise."]
33857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u8)"]
33858#[inline(always)]
33859#[cfg(target_endian = "big")]
33860#[target_feature(enable = "neon")]
33861#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33862#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33863#[cfg_attr(
33864    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33865    assert_instr(addp)
33866)]
33867#[cfg_attr(
33868    not(target_arch = "arm"),
33869    stable(feature = "neon_intrinsics", since = "1.59.0")
33870)]
33871#[cfg_attr(
33872    target_arch = "arm",
33873    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33874)]
33875pub fn vpadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
33876    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
33877    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
33878    unsafe {
33879        let ret_val: uint8x8_t = transmute(vpadd_s8(transmute(a), transmute(b)));
33880        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
33881    }
33882}
33883#[doc = "Add pairwise."]
33884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u16)"]
33885#[inline(always)]
33886#[cfg(target_endian = "little")]
33887#[target_feature(enable = "neon")]
33888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33890#[cfg_attr(
33891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33892    assert_instr(addp)
33893)]
33894#[cfg_attr(
33895    not(target_arch = "arm"),
33896    stable(feature = "neon_intrinsics", since = "1.59.0")
33897)]
33898#[cfg_attr(
33899    target_arch = "arm",
33900    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33901)]
33902pub fn vpadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
33903    unsafe { transmute(vpadd_s16(transmute(a), transmute(b))) }
33904}
33905#[doc = "Add pairwise."]
33906#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u16)"]
33907#[inline(always)]
33908#[cfg(target_endian = "big")]
33909#[target_feature(enable = "neon")]
33910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33912#[cfg_attr(
33913    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33914    assert_instr(addp)
33915)]
33916#[cfg_attr(
33917    not(target_arch = "arm"),
33918    stable(feature = "neon_intrinsics", since = "1.59.0")
33919)]
33920#[cfg_attr(
33921    target_arch = "arm",
33922    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33923)]
33924pub fn vpadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
33925    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
33926    let b: uint16x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
33927    unsafe {
33928        let ret_val: uint16x4_t = transmute(vpadd_s16(transmute(a), transmute(b)));
33929        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
33930    }
33931}
33932#[doc = "Add pairwise."]
33933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u32)"]
33934#[inline(always)]
33935#[cfg(target_endian = "little")]
33936#[target_feature(enable = "neon")]
33937#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33938#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33939#[cfg_attr(
33940    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33941    assert_instr(addp)
33942)]
33943#[cfg_attr(
33944    not(target_arch = "arm"),
33945    stable(feature = "neon_intrinsics", since = "1.59.0")
33946)]
33947#[cfg_attr(
33948    target_arch = "arm",
33949    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33950)]
33951pub fn vpadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
33952    unsafe { transmute(vpadd_s32(transmute(a), transmute(b))) }
33953}
33954#[doc = "Add pairwise."]
33955#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u32)"]
33956#[inline(always)]
33957#[cfg(target_endian = "big")]
33958#[target_feature(enable = "neon")]
33959#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33960#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33961#[cfg_attr(
33962    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33963    assert_instr(addp)
33964)]
33965#[cfg_attr(
33966    not(target_arch = "arm"),
33967    stable(feature = "neon_intrinsics", since = "1.59.0")
33968)]
33969#[cfg_attr(
33970    target_arch = "arm",
33971    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33972)]
33973pub fn vpadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
33974    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
33975    let b: uint32x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
33976    unsafe {
33977        let ret_val: uint32x2_t = transmute(vpadd_s32(transmute(a), transmute(b)));
33978        simd_shuffle!(ret_val, ret_val, [1, 0])
33979    }
33980}
33981#[doc = "Signed Add and Accumulate Long Pairwise."]
33982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s8)"]
33983#[inline(always)]
33984#[target_feature(enable = "neon")]
33985#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33986#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s8"))]
33987#[cfg_attr(
33988    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33989    assert_instr(saddlp)
33990)]
33991#[cfg_attr(
33992    not(target_arch = "arm"),
33993    stable(feature = "neon_intrinsics", since = "1.59.0")
33994)]
33995#[cfg_attr(
33996    target_arch = "arm",
33997    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33998)]
33999pub fn vpaddl_s8(a: int8x8_t) -> int16x4_t {
34000    unsafe extern "unadjusted" {
34001        #[cfg_attr(
34002            any(target_arch = "aarch64", target_arch = "arm64ec"),
34003            link_name = "llvm.aarch64.neon.saddlp.v4i16.v8i8"
34004        )]
34005        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v4i16.v8i8")]
34006        fn _vpaddl_s8(a: int8x8_t) -> int16x4_t;
34007    }
34008    unsafe { _vpaddl_s8(a) }
34009}
34010#[doc = "Signed Add and Accumulate Long Pairwise."]
34011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s8)"]
34012#[inline(always)]
34013#[target_feature(enable = "neon")]
34014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34015#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s8"))]
34016#[cfg_attr(
34017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34018    assert_instr(saddlp)
34019)]
34020#[cfg_attr(
34021    not(target_arch = "arm"),
34022    stable(feature = "neon_intrinsics", since = "1.59.0")
34023)]
34024#[cfg_attr(
34025    target_arch = "arm",
34026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34027)]
34028pub fn vpaddlq_s8(a: int8x16_t) -> int16x8_t {
34029    unsafe extern "unadjusted" {
34030        #[cfg_attr(
34031            any(target_arch = "aarch64", target_arch = "arm64ec"),
34032            link_name = "llvm.aarch64.neon.saddlp.v8i16.v16i8"
34033        )]
34034        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v8i16.v16i8")]
34035        fn _vpaddlq_s8(a: int8x16_t) -> int16x8_t;
34036    }
34037    unsafe { _vpaddlq_s8(a) }
34038}
34039#[doc = "Signed Add and Accumulate Long Pairwise."]
34040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s16)"]
34041#[inline(always)]
34042#[target_feature(enable = "neon")]
34043#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34044#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s16"))]
34045#[cfg_attr(
34046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34047    assert_instr(saddlp)
34048)]
34049#[cfg_attr(
34050    not(target_arch = "arm"),
34051    stable(feature = "neon_intrinsics", since = "1.59.0")
34052)]
34053#[cfg_attr(
34054    target_arch = "arm",
34055    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34056)]
34057pub fn vpaddl_s16(a: int16x4_t) -> int32x2_t {
34058    unsafe extern "unadjusted" {
34059        #[cfg_attr(
34060            any(target_arch = "aarch64", target_arch = "arm64ec"),
34061            link_name = "llvm.aarch64.neon.saddlp.v2i32.v4i16"
34062        )]
34063        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v2i32.v4i16")]
34064        fn _vpaddl_s16(a: int16x4_t) -> int32x2_t;
34065    }
34066    unsafe { _vpaddl_s16(a) }
34067}
34068#[doc = "Signed Add and Accumulate Long Pairwise."]
34069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s16)"]
34070#[inline(always)]
34071#[target_feature(enable = "neon")]
34072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34073#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s16"))]
34074#[cfg_attr(
34075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34076    assert_instr(saddlp)
34077)]
34078#[cfg_attr(
34079    not(target_arch = "arm"),
34080    stable(feature = "neon_intrinsics", since = "1.59.0")
34081)]
34082#[cfg_attr(
34083    target_arch = "arm",
34084    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34085)]
34086pub fn vpaddlq_s16(a: int16x8_t) -> int32x4_t {
34087    unsafe extern "unadjusted" {
34088        #[cfg_attr(
34089            any(target_arch = "aarch64", target_arch = "arm64ec"),
34090            link_name = "llvm.aarch64.neon.saddlp.v4i32.v8i16"
34091        )]
34092        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v4i32.v8i16")]
34093        fn _vpaddlq_s16(a: int16x8_t) -> int32x4_t;
34094    }
34095    unsafe { _vpaddlq_s16(a) }
34096}
34097#[doc = "Signed Add and Accumulate Long Pairwise."]
34098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s32)"]
34099#[inline(always)]
34100#[target_feature(enable = "neon")]
34101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34102#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s32"))]
34103#[cfg_attr(
34104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34105    assert_instr(saddlp)
34106)]
34107#[cfg_attr(
34108    not(target_arch = "arm"),
34109    stable(feature = "neon_intrinsics", since = "1.59.0")
34110)]
34111#[cfg_attr(
34112    target_arch = "arm",
34113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34114)]
34115pub fn vpaddl_s32(a: int32x2_t) -> int64x1_t {
34116    unsafe extern "unadjusted" {
34117        #[cfg_attr(
34118            any(target_arch = "aarch64", target_arch = "arm64ec"),
34119            link_name = "llvm.aarch64.neon.saddlp.v1i64.v2i32"
34120        )]
34121        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v1i64.v2i32")]
34122        fn _vpaddl_s32(a: int32x2_t) -> int64x1_t;
34123    }
34124    unsafe { _vpaddl_s32(a) }
34125}
34126#[doc = "Signed Add and Accumulate Long Pairwise."]
34127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s32)"]
34128#[inline(always)]
34129#[target_feature(enable = "neon")]
34130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34131#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s32"))]
34132#[cfg_attr(
34133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34134    assert_instr(saddlp)
34135)]
34136#[cfg_attr(
34137    not(target_arch = "arm"),
34138    stable(feature = "neon_intrinsics", since = "1.59.0")
34139)]
34140#[cfg_attr(
34141    target_arch = "arm",
34142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34143)]
34144pub fn vpaddlq_s32(a: int32x4_t) -> int64x2_t {
34145    unsafe extern "unadjusted" {
34146        #[cfg_attr(
34147            any(target_arch = "aarch64", target_arch = "arm64ec"),
34148            link_name = "llvm.aarch64.neon.saddlp.v2i64.v4i32"
34149        )]
34150        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v2i64.v4i32")]
34151        fn _vpaddlq_s32(a: int32x4_t) -> int64x2_t;
34152    }
34153    unsafe { _vpaddlq_s32(a) }
34154}
34155#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u8)"]
34157#[inline(always)]
34158#[target_feature(enable = "neon")]
34159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34160#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u8"))]
34161#[cfg_attr(
34162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34163    assert_instr(uaddlp)
34164)]
34165#[cfg_attr(
34166    not(target_arch = "arm"),
34167    stable(feature = "neon_intrinsics", since = "1.59.0")
34168)]
34169#[cfg_attr(
34170    target_arch = "arm",
34171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34172)]
34173pub fn vpaddl_u8(a: uint8x8_t) -> uint16x4_t {
34174    unsafe extern "unadjusted" {
34175        #[cfg_attr(
34176            any(target_arch = "aarch64", target_arch = "arm64ec"),
34177            link_name = "llvm.aarch64.neon.uaddlp.v4i16.v8i8"
34178        )]
34179        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v4i16.v8i8")]
34180        fn _vpaddl_u8(a: uint8x8_t) -> uint16x4_t;
34181    }
34182    unsafe { _vpaddl_u8(a) }
34183}
34184#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u8)"]
34186#[inline(always)]
34187#[target_feature(enable = "neon")]
34188#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34189#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u8"))]
34190#[cfg_attr(
34191    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34192    assert_instr(uaddlp)
34193)]
34194#[cfg_attr(
34195    not(target_arch = "arm"),
34196    stable(feature = "neon_intrinsics", since = "1.59.0")
34197)]
34198#[cfg_attr(
34199    target_arch = "arm",
34200    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34201)]
34202pub fn vpaddlq_u8(a: uint8x16_t) -> uint16x8_t {
34203    unsafe extern "unadjusted" {
34204        #[cfg_attr(
34205            any(target_arch = "aarch64", target_arch = "arm64ec"),
34206            link_name = "llvm.aarch64.neon.uaddlp.v8i16.v16i8"
34207        )]
34208        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v8i16.v16i8")]
34209        fn _vpaddlq_u8(a: uint8x16_t) -> uint16x8_t;
34210    }
34211    unsafe { _vpaddlq_u8(a) }
34212}
34213#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u16)"]
34215#[inline(always)]
34216#[target_feature(enable = "neon")]
34217#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34218#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u16"))]
34219#[cfg_attr(
34220    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34221    assert_instr(uaddlp)
34222)]
34223#[cfg_attr(
34224    not(target_arch = "arm"),
34225    stable(feature = "neon_intrinsics", since = "1.59.0")
34226)]
34227#[cfg_attr(
34228    target_arch = "arm",
34229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34230)]
34231pub fn vpaddl_u16(a: uint16x4_t) -> uint32x2_t {
34232    unsafe extern "unadjusted" {
34233        #[cfg_attr(
34234            any(target_arch = "aarch64", target_arch = "arm64ec"),
34235            link_name = "llvm.aarch64.neon.uaddlp.v2i32.v4i16"
34236        )]
34237        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v2i32.v4i16")]
34238        fn _vpaddl_u16(a: uint16x4_t) -> uint32x2_t;
34239    }
34240    unsafe { _vpaddl_u16(a) }
34241}
34242#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u16)"]
34244#[inline(always)]
34245#[target_feature(enable = "neon")]
34246#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34247#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u16"))]
34248#[cfg_attr(
34249    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34250    assert_instr(uaddlp)
34251)]
34252#[cfg_attr(
34253    not(target_arch = "arm"),
34254    stable(feature = "neon_intrinsics", since = "1.59.0")
34255)]
34256#[cfg_attr(
34257    target_arch = "arm",
34258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34259)]
34260pub fn vpaddlq_u16(a: uint16x8_t) -> uint32x4_t {
34261    unsafe extern "unadjusted" {
34262        #[cfg_attr(
34263            any(target_arch = "aarch64", target_arch = "arm64ec"),
34264            link_name = "llvm.aarch64.neon.uaddlp.v4i32.v8i16"
34265        )]
34266        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v4i32.v8i16")]
34267        fn _vpaddlq_u16(a: uint16x8_t) -> uint32x4_t;
34268    }
34269    unsafe { _vpaddlq_u16(a) }
34270}
34271#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34272#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u32)"]
34273#[inline(always)]
34274#[target_feature(enable = "neon")]
34275#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34276#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u32"))]
34277#[cfg_attr(
34278    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34279    assert_instr(uaddlp)
34280)]
34281#[cfg_attr(
34282    not(target_arch = "arm"),
34283    stable(feature = "neon_intrinsics", since = "1.59.0")
34284)]
34285#[cfg_attr(
34286    target_arch = "arm",
34287    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34288)]
34289pub fn vpaddl_u32(a: uint32x2_t) -> uint64x1_t {
34290    unsafe extern "unadjusted" {
34291        #[cfg_attr(
34292            any(target_arch = "aarch64", target_arch = "arm64ec"),
34293            link_name = "llvm.aarch64.neon.uaddlp.v1i64.v2i32"
34294        )]
34295        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v1i64.v2i32")]
34296        fn _vpaddl_u32(a: uint32x2_t) -> uint64x1_t;
34297    }
34298    unsafe { _vpaddl_u32(a) }
34299}
34300#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34301#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u32)"]
34302#[inline(always)]
34303#[target_feature(enable = "neon")]
34304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34305#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u32"))]
34306#[cfg_attr(
34307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34308    assert_instr(uaddlp)
34309)]
34310#[cfg_attr(
34311    not(target_arch = "arm"),
34312    stable(feature = "neon_intrinsics", since = "1.59.0")
34313)]
34314#[cfg_attr(
34315    target_arch = "arm",
34316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34317)]
34318pub fn vpaddlq_u32(a: uint32x4_t) -> uint64x2_t {
34319    unsafe extern "unadjusted" {
34320        #[cfg_attr(
34321            any(target_arch = "aarch64", target_arch = "arm64ec"),
34322            link_name = "llvm.aarch64.neon.uaddlp.v2i64.v4i32"
34323        )]
34324        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v2i64.v4i32")]
34325        fn _vpaddlq_u32(a: uint32x4_t) -> uint64x2_t;
34326    }
34327    unsafe { _vpaddlq_u32(a) }
34328}
34329#[doc = "Folding maximum of adjacent pairs"]
34330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_f32)"]
34331#[inline(always)]
34332#[target_feature(enable = "neon")]
34333#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34334#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34335#[cfg_attr(
34336    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34337    assert_instr(fmaxp)
34338)]
34339#[cfg_attr(
34340    not(target_arch = "arm"),
34341    stable(feature = "neon_intrinsics", since = "1.59.0")
34342)]
34343#[cfg_attr(
34344    target_arch = "arm",
34345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34346)]
34347pub fn vpmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
34348    unsafe extern "unadjusted" {
34349        #[cfg_attr(
34350            any(target_arch = "aarch64", target_arch = "arm64ec"),
34351            link_name = "llvm.aarch64.neon.fmaxp.v2f32"
34352        )]
34353        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v2f32")]
34354        fn _vpmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
34355    }
34356    unsafe { _vpmax_f32(a, b) }
34357}
34358#[doc = "Folding maximum of adjacent pairs"]
34359#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s8)"]
34360#[inline(always)]
34361#[target_feature(enable = "neon")]
34362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34364#[cfg_attr(
34365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34366    assert_instr(smaxp)
34367)]
34368#[cfg_attr(
34369    not(target_arch = "arm"),
34370    stable(feature = "neon_intrinsics", since = "1.59.0")
34371)]
34372#[cfg_attr(
34373    target_arch = "arm",
34374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34375)]
34376pub fn vpmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
34377    unsafe extern "unadjusted" {
34378        #[cfg_attr(
34379            any(target_arch = "aarch64", target_arch = "arm64ec"),
34380            link_name = "llvm.aarch64.neon.smaxp.v8i8"
34381        )]
34382        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v8i8")]
34383        fn _vpmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
34384    }
34385    unsafe { _vpmax_s8(a, b) }
34386}
34387#[doc = "Folding maximum of adjacent pairs"]
34388#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s16)"]
34389#[inline(always)]
34390#[target_feature(enable = "neon")]
34391#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34392#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34393#[cfg_attr(
34394    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34395    assert_instr(smaxp)
34396)]
34397#[cfg_attr(
34398    not(target_arch = "arm"),
34399    stable(feature = "neon_intrinsics", since = "1.59.0")
34400)]
34401#[cfg_attr(
34402    target_arch = "arm",
34403    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34404)]
34405pub fn vpmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
34406    unsafe extern "unadjusted" {
34407        #[cfg_attr(
34408            any(target_arch = "aarch64", target_arch = "arm64ec"),
34409            link_name = "llvm.aarch64.neon.smaxp.v4i16"
34410        )]
34411        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v4i16")]
34412        fn _vpmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
34413    }
34414    unsafe { _vpmax_s16(a, b) }
34415}
34416#[doc = "Folding maximum of adjacent pairs"]
34417#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s32)"]
34418#[inline(always)]
34419#[target_feature(enable = "neon")]
34420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34422#[cfg_attr(
34423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34424    assert_instr(smaxp)
34425)]
34426#[cfg_attr(
34427    not(target_arch = "arm"),
34428    stable(feature = "neon_intrinsics", since = "1.59.0")
34429)]
34430#[cfg_attr(
34431    target_arch = "arm",
34432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34433)]
34434pub fn vpmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
34435    unsafe extern "unadjusted" {
34436        #[cfg_attr(
34437            any(target_arch = "aarch64", target_arch = "arm64ec"),
34438            link_name = "llvm.aarch64.neon.smaxp.v2i32"
34439        )]
34440        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v2i32")]
34441        fn _vpmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
34442    }
34443    unsafe { _vpmax_s32(a, b) }
34444}
34445#[doc = "Folding maximum of adjacent pairs"]
34446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u8)"]
34447#[inline(always)]
34448#[target_feature(enable = "neon")]
34449#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34450#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34451#[cfg_attr(
34452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34453    assert_instr(umaxp)
34454)]
34455#[cfg_attr(
34456    not(target_arch = "arm"),
34457    stable(feature = "neon_intrinsics", since = "1.59.0")
34458)]
34459#[cfg_attr(
34460    target_arch = "arm",
34461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34462)]
34463pub fn vpmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
34464    unsafe extern "unadjusted" {
34465        #[cfg_attr(
34466            any(target_arch = "aarch64", target_arch = "arm64ec"),
34467            link_name = "llvm.aarch64.neon.umaxp.v8i8"
34468        )]
34469        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v8i8")]
34470        fn _vpmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
34471    }
34472    unsafe { _vpmax_u8(a, b) }
34473}
34474#[doc = "Folding maximum of adjacent pairs"]
34475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u16)"]
34476#[inline(always)]
34477#[target_feature(enable = "neon")]
34478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34480#[cfg_attr(
34481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34482    assert_instr(umaxp)
34483)]
34484#[cfg_attr(
34485    not(target_arch = "arm"),
34486    stable(feature = "neon_intrinsics", since = "1.59.0")
34487)]
34488#[cfg_attr(
34489    target_arch = "arm",
34490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34491)]
34492pub fn vpmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
34493    unsafe extern "unadjusted" {
34494        #[cfg_attr(
34495            any(target_arch = "aarch64", target_arch = "arm64ec"),
34496            link_name = "llvm.aarch64.neon.umaxp.v4i16"
34497        )]
34498        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v4i16")]
34499        fn _vpmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
34500    }
34501    unsafe { _vpmax_u16(a, b) }
34502}
34503#[doc = "Folding maximum of adjacent pairs"]
34504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u32)"]
34505#[inline(always)]
34506#[target_feature(enable = "neon")]
34507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34508#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34509#[cfg_attr(
34510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34511    assert_instr(umaxp)
34512)]
34513#[cfg_attr(
34514    not(target_arch = "arm"),
34515    stable(feature = "neon_intrinsics", since = "1.59.0")
34516)]
34517#[cfg_attr(
34518    target_arch = "arm",
34519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34520)]
34521pub fn vpmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
34522    unsafe extern "unadjusted" {
34523        #[cfg_attr(
34524            any(target_arch = "aarch64", target_arch = "arm64ec"),
34525            link_name = "llvm.aarch64.neon.umaxp.v2i32"
34526        )]
34527        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v2i32")]
34528        fn _vpmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
34529    }
34530    unsafe { _vpmax_u32(a, b) }
34531}
34532#[doc = "Folding minimum of adjacent pairs"]
34533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_f32)"]
34534#[inline(always)]
34535#[target_feature(enable = "neon")]
34536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34537#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34538#[cfg_attr(
34539    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34540    assert_instr(fminp)
34541)]
34542#[cfg_attr(
34543    not(target_arch = "arm"),
34544    stable(feature = "neon_intrinsics", since = "1.59.0")
34545)]
34546#[cfg_attr(
34547    target_arch = "arm",
34548    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34549)]
34550pub fn vpmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
34551    unsafe extern "unadjusted" {
34552        #[cfg_attr(
34553            any(target_arch = "aarch64", target_arch = "arm64ec"),
34554            link_name = "llvm.aarch64.neon.fminp.v2f32"
34555        )]
34556        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v2f32")]
34557        fn _vpmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
34558    }
34559    unsafe { _vpmin_f32(a, b) }
34560}
34561#[doc = "Folding minimum of adjacent pairs"]
34562#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s8)"]
34563#[inline(always)]
34564#[target_feature(enable = "neon")]
34565#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34566#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34567#[cfg_attr(
34568    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34569    assert_instr(sminp)
34570)]
34571#[cfg_attr(
34572    not(target_arch = "arm"),
34573    stable(feature = "neon_intrinsics", since = "1.59.0")
34574)]
34575#[cfg_attr(
34576    target_arch = "arm",
34577    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34578)]
34579pub fn vpmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
34580    unsafe extern "unadjusted" {
34581        #[cfg_attr(
34582            any(target_arch = "aarch64", target_arch = "arm64ec"),
34583            link_name = "llvm.aarch64.neon.sminp.v8i8"
34584        )]
34585        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v8i8")]
34586        fn _vpmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
34587    }
34588    unsafe { _vpmin_s8(a, b) }
34589}
34590#[doc = "Folding minimum of adjacent pairs"]
34591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s16)"]
34592#[inline(always)]
34593#[target_feature(enable = "neon")]
34594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34596#[cfg_attr(
34597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34598    assert_instr(sminp)
34599)]
34600#[cfg_attr(
34601    not(target_arch = "arm"),
34602    stable(feature = "neon_intrinsics", since = "1.59.0")
34603)]
34604#[cfg_attr(
34605    target_arch = "arm",
34606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34607)]
34608pub fn vpmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
34609    unsafe extern "unadjusted" {
34610        #[cfg_attr(
34611            any(target_arch = "aarch64", target_arch = "arm64ec"),
34612            link_name = "llvm.aarch64.neon.sminp.v4i16"
34613        )]
34614        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v4i16")]
34615        fn _vpmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
34616    }
34617    unsafe { _vpmin_s16(a, b) }
34618}
34619#[doc = "Folding minimum of adjacent pairs"]
34620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s32)"]
34621#[inline(always)]
34622#[target_feature(enable = "neon")]
34623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34625#[cfg_attr(
34626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34627    assert_instr(sminp)
34628)]
34629#[cfg_attr(
34630    not(target_arch = "arm"),
34631    stable(feature = "neon_intrinsics", since = "1.59.0")
34632)]
34633#[cfg_attr(
34634    target_arch = "arm",
34635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34636)]
34637pub fn vpmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
34638    unsafe extern "unadjusted" {
34639        #[cfg_attr(
34640            any(target_arch = "aarch64", target_arch = "arm64ec"),
34641            link_name = "llvm.aarch64.neon.sminp.v2i32"
34642        )]
34643        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v2i32")]
34644        fn _vpmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
34645    }
34646    unsafe { _vpmin_s32(a, b) }
34647}
34648#[doc = "Folding minimum of adjacent pairs"]
34649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u8)"]
34650#[inline(always)]
34651#[target_feature(enable = "neon")]
34652#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34654#[cfg_attr(
34655    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34656    assert_instr(uminp)
34657)]
34658#[cfg_attr(
34659    not(target_arch = "arm"),
34660    stable(feature = "neon_intrinsics", since = "1.59.0")
34661)]
34662#[cfg_attr(
34663    target_arch = "arm",
34664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34665)]
34666pub fn vpmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
34667    unsafe extern "unadjusted" {
34668        #[cfg_attr(
34669            any(target_arch = "aarch64", target_arch = "arm64ec"),
34670            link_name = "llvm.aarch64.neon.uminp.v8i8"
34671        )]
34672        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v8i8")]
34673        fn _vpmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
34674    }
34675    unsafe { _vpmin_u8(a, b) }
34676}
34677#[doc = "Folding minimum of adjacent pairs"]
34678#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u16)"]
34679#[inline(always)]
34680#[target_feature(enable = "neon")]
34681#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34682#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34683#[cfg_attr(
34684    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34685    assert_instr(uminp)
34686)]
34687#[cfg_attr(
34688    not(target_arch = "arm"),
34689    stable(feature = "neon_intrinsics", since = "1.59.0")
34690)]
34691#[cfg_attr(
34692    target_arch = "arm",
34693    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34694)]
34695pub fn vpmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
34696    unsafe extern "unadjusted" {
34697        #[cfg_attr(
34698            any(target_arch = "aarch64", target_arch = "arm64ec"),
34699            link_name = "llvm.aarch64.neon.uminp.v4i16"
34700        )]
34701        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v4i16")]
34702        fn _vpmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
34703    }
34704    unsafe { _vpmin_u16(a, b) }
34705}
34706#[doc = "Folding minimum of adjacent pairs"]
34707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u32)"]
34708#[inline(always)]
34709#[target_feature(enable = "neon")]
34710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34711#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34712#[cfg_attr(
34713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34714    assert_instr(uminp)
34715)]
34716#[cfg_attr(
34717    not(target_arch = "arm"),
34718    stable(feature = "neon_intrinsics", since = "1.59.0")
34719)]
34720#[cfg_attr(
34721    target_arch = "arm",
34722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34723)]
34724pub fn vpmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
34725    unsafe extern "unadjusted" {
34726        #[cfg_attr(
34727            any(target_arch = "aarch64", target_arch = "arm64ec"),
34728            link_name = "llvm.aarch64.neon.uminp.v2i32"
34729        )]
34730        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v2i32")]
34731        fn _vpmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
34732    }
34733    unsafe { _vpmin_u32(a, b) }
34734}
34735#[doc = "Signed saturating Absolute value"]
34736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s8)"]
34737#[inline(always)]
34738#[target_feature(enable = "neon")]
34739#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34740#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s8"))]
34741#[cfg_attr(
34742    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34743    assert_instr(sqabs)
34744)]
34745#[cfg_attr(
34746    not(target_arch = "arm"),
34747    stable(feature = "neon_intrinsics", since = "1.59.0")
34748)]
34749#[cfg_attr(
34750    target_arch = "arm",
34751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34752)]
34753pub fn vqabs_s8(a: int8x8_t) -> int8x8_t {
34754    unsafe extern "unadjusted" {
34755        #[cfg_attr(
34756            any(target_arch = "aarch64", target_arch = "arm64ec"),
34757            link_name = "llvm.aarch64.neon.sqabs.v8i8"
34758        )]
34759        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i8")]
34760        fn _vqabs_s8(a: int8x8_t) -> int8x8_t;
34761    }
34762    unsafe { _vqabs_s8(a) }
34763}
34764#[doc = "Signed saturating Absolute value"]
34765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s8)"]
34766#[inline(always)]
34767#[target_feature(enable = "neon")]
34768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34769#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s8"))]
34770#[cfg_attr(
34771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34772    assert_instr(sqabs)
34773)]
34774#[cfg_attr(
34775    not(target_arch = "arm"),
34776    stable(feature = "neon_intrinsics", since = "1.59.0")
34777)]
34778#[cfg_attr(
34779    target_arch = "arm",
34780    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34781)]
34782pub fn vqabsq_s8(a: int8x16_t) -> int8x16_t {
34783    unsafe extern "unadjusted" {
34784        #[cfg_attr(
34785            any(target_arch = "aarch64", target_arch = "arm64ec"),
34786            link_name = "llvm.aarch64.neon.sqabs.v16i8"
34787        )]
34788        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v16i8")]
34789        fn _vqabsq_s8(a: int8x16_t) -> int8x16_t;
34790    }
34791    unsafe { _vqabsq_s8(a) }
34792}
34793#[doc = "Signed saturating Absolute value"]
34794#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s16)"]
34795#[inline(always)]
34796#[target_feature(enable = "neon")]
34797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34798#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
34799#[cfg_attr(
34800    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34801    assert_instr(sqabs)
34802)]
34803#[cfg_attr(
34804    not(target_arch = "arm"),
34805    stable(feature = "neon_intrinsics", since = "1.59.0")
34806)]
34807#[cfg_attr(
34808    target_arch = "arm",
34809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34810)]
34811pub fn vqabs_s16(a: int16x4_t) -> int16x4_t {
34812    unsafe extern "unadjusted" {
34813        #[cfg_attr(
34814            any(target_arch = "aarch64", target_arch = "arm64ec"),
34815            link_name = "llvm.aarch64.neon.sqabs.v4i16"
34816        )]
34817        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i16")]
34818        fn _vqabs_s16(a: int16x4_t) -> int16x4_t;
34819    }
34820    unsafe { _vqabs_s16(a) }
34821}
34822#[doc = "Signed saturating Absolute value"]
34823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s16)"]
34824#[inline(always)]
34825#[target_feature(enable = "neon")]
34826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34827#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
34828#[cfg_attr(
34829    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34830    assert_instr(sqabs)
34831)]
34832#[cfg_attr(
34833    not(target_arch = "arm"),
34834    stable(feature = "neon_intrinsics", since = "1.59.0")
34835)]
34836#[cfg_attr(
34837    target_arch = "arm",
34838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34839)]
34840pub fn vqabsq_s16(a: int16x8_t) -> int16x8_t {
34841    unsafe extern "unadjusted" {
34842        #[cfg_attr(
34843            any(target_arch = "aarch64", target_arch = "arm64ec"),
34844            link_name = "llvm.aarch64.neon.sqabs.v8i16"
34845        )]
34846        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i16")]
34847        fn _vqabsq_s16(a: int16x8_t) -> int16x8_t;
34848    }
34849    unsafe { _vqabsq_s16(a) }
34850}
34851#[doc = "Signed saturating Absolute value"]
34852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s32)"]
34853#[inline(always)]
34854#[target_feature(enable = "neon")]
34855#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34856#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
34857#[cfg_attr(
34858    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34859    assert_instr(sqabs)
34860)]
34861#[cfg_attr(
34862    not(target_arch = "arm"),
34863    stable(feature = "neon_intrinsics", since = "1.59.0")
34864)]
34865#[cfg_attr(
34866    target_arch = "arm",
34867    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34868)]
34869pub fn vqabs_s32(a: int32x2_t) -> int32x2_t {
34870    unsafe extern "unadjusted" {
34871        #[cfg_attr(
34872            any(target_arch = "aarch64", target_arch = "arm64ec"),
34873            link_name = "llvm.aarch64.neon.sqabs.v2i32"
34874        )]
34875        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v2i32")]
34876        fn _vqabs_s32(a: int32x2_t) -> int32x2_t;
34877    }
34878    unsafe { _vqabs_s32(a) }
34879}
34880#[doc = "Signed saturating Absolute value"]
34881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s32)"]
34882#[inline(always)]
34883#[target_feature(enable = "neon")]
34884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34885#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
34886#[cfg_attr(
34887    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34888    assert_instr(sqabs)
34889)]
34890#[cfg_attr(
34891    not(target_arch = "arm"),
34892    stable(feature = "neon_intrinsics", since = "1.59.0")
34893)]
34894#[cfg_attr(
34895    target_arch = "arm",
34896    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34897)]
34898pub fn vqabsq_s32(a: int32x4_t) -> int32x4_t {
34899    unsafe extern "unadjusted" {
34900        #[cfg_attr(
34901            any(target_arch = "aarch64", target_arch = "arm64ec"),
34902            link_name = "llvm.aarch64.neon.sqabs.v4i32"
34903        )]
34904        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i32")]
34905        fn _vqabsq_s32(a: int32x4_t) -> int32x4_t;
34906    }
34907    unsafe { _vqabsq_s32(a) }
34908}
34909#[doc = "Saturating add"]
34910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s8)"]
34911#[inline(always)]
34912#[target_feature(enable = "neon")]
34913#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34914#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
34915#[cfg_attr(
34916    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34917    assert_instr(sqadd)
34918)]
34919#[cfg_attr(
34920    not(target_arch = "arm"),
34921    stable(feature = "neon_intrinsics", since = "1.59.0")
34922)]
34923#[cfg_attr(
34924    target_arch = "arm",
34925    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34926)]
34927pub fn vqadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
34928    unsafe { simd_saturating_add(a, b) }
34929}
34930#[doc = "Saturating add"]
34931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s8)"]
34932#[inline(always)]
34933#[target_feature(enable = "neon")]
34934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34935#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
34936#[cfg_attr(
34937    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34938    assert_instr(sqadd)
34939)]
34940#[cfg_attr(
34941    not(target_arch = "arm"),
34942    stable(feature = "neon_intrinsics", since = "1.59.0")
34943)]
34944#[cfg_attr(
34945    target_arch = "arm",
34946    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34947)]
34948pub fn vqaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
34949    unsafe { simd_saturating_add(a, b) }
34950}
34951#[doc = "Saturating add"]
34952#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s16)"]
34953#[inline(always)]
34954#[target_feature(enable = "neon")]
34955#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34956#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s16"))]
34957#[cfg_attr(
34958    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34959    assert_instr(sqadd)
34960)]
34961#[cfg_attr(
34962    not(target_arch = "arm"),
34963    stable(feature = "neon_intrinsics", since = "1.59.0")
34964)]
34965#[cfg_attr(
34966    target_arch = "arm",
34967    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34968)]
34969pub fn vqadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
34970    unsafe { simd_saturating_add(a, b) }
34971}
34972#[doc = "Saturating add"]
34973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s16)"]
34974#[inline(always)]
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("vqadd.s16"))]
34978#[cfg_attr(
34979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34980    assert_instr(sqadd)
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 vqaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
34991    unsafe { simd_saturating_add(a, b) }
34992}
34993#[doc = "Saturating add"]
34994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s32)"]
34995#[inline(always)]
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("vqadd.s32"))]
34999#[cfg_attr(
35000    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35001    assert_instr(sqadd)
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 vqadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
35012    unsafe { simd_saturating_add(a, b) }
35013}
35014#[doc = "Saturating add"]
35015#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s32)"]
35016#[inline(always)]
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("vqadd.s32"))]
35020#[cfg_attr(
35021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35022    assert_instr(sqadd)
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 vqaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
35033    unsafe { simd_saturating_add(a, b) }
35034}
35035#[doc = "Saturating add"]
35036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s64)"]
35037#[inline(always)]
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("vqadd.s64"))]
35041#[cfg_attr(
35042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35043    assert_instr(sqadd)
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 vqadd_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
35054    unsafe { simd_saturating_add(a, b) }
35055}
35056#[doc = "Saturating add"]
35057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s64)"]
35058#[inline(always)]
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("vqadd.s64"))]
35062#[cfg_attr(
35063    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35064    assert_instr(sqadd)
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 vqaddq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
35075    unsafe { simd_saturating_add(a, b) }
35076}
35077#[doc = "Saturating add"]
35078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u8)"]
35079#[inline(always)]
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("vqadd.u8"))]
35083#[cfg_attr(
35084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35085    assert_instr(uqadd)
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 vqadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
35096    unsafe { simd_saturating_add(a, b) }
35097}
35098#[doc = "Saturating add"]
35099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u8)"]
35100#[inline(always)]
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("vqadd.u8"))]
35104#[cfg_attr(
35105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35106    assert_instr(uqadd)
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 vqaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
35117    unsafe { simd_saturating_add(a, b) }
35118}
35119#[doc = "Saturating add"]
35120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u16)"]
35121#[inline(always)]
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("vqadd.u16"))]
35125#[cfg_attr(
35126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35127    assert_instr(uqadd)
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 vqadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
35138    unsafe { simd_saturating_add(a, b) }
35139}
35140#[doc = "Saturating add"]
35141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u16)"]
35142#[inline(always)]
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("vqadd.u16"))]
35146#[cfg_attr(
35147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35148    assert_instr(uqadd)
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 vqaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
35159    unsafe { simd_saturating_add(a, b) }
35160}
35161#[doc = "Saturating add"]
35162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u32)"]
35163#[inline(always)]
35164#[target_feature(enable = "neon")]
35165#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35166#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u32"))]
35167#[cfg_attr(
35168    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35169    assert_instr(uqadd)
35170)]
35171#[cfg_attr(
35172    not(target_arch = "arm"),
35173    stable(feature = "neon_intrinsics", since = "1.59.0")
35174)]
35175#[cfg_attr(
35176    target_arch = "arm",
35177    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35178)]
35179pub fn vqadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
35180    unsafe { simd_saturating_add(a, b) }
35181}
35182#[doc = "Saturating add"]
35183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u32)"]
35184#[inline(always)]
35185#[target_feature(enable = "neon")]
35186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35187#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u32"))]
35188#[cfg_attr(
35189    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35190    assert_instr(uqadd)
35191)]
35192#[cfg_attr(
35193    not(target_arch = "arm"),
35194    stable(feature = "neon_intrinsics", since = "1.59.0")
35195)]
35196#[cfg_attr(
35197    target_arch = "arm",
35198    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35199)]
35200pub fn vqaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
35201    unsafe { simd_saturating_add(a, b) }
35202}
35203#[doc = "Saturating add"]
35204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u64)"]
35205#[inline(always)]
35206#[target_feature(enable = "neon")]
35207#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35208#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
35209#[cfg_attr(
35210    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35211    assert_instr(uqadd)
35212)]
35213#[cfg_attr(
35214    not(target_arch = "arm"),
35215    stable(feature = "neon_intrinsics", since = "1.59.0")
35216)]
35217#[cfg_attr(
35218    target_arch = "arm",
35219    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35220)]
35221pub fn vqadd_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
35222    unsafe { simd_saturating_add(a, b) }
35223}
35224#[doc = "Saturating add"]
35225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u64)"]
35226#[inline(always)]
35227#[target_feature(enable = "neon")]
35228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35229#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
35230#[cfg_attr(
35231    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35232    assert_instr(uqadd)
35233)]
35234#[cfg_attr(
35235    not(target_arch = "arm"),
35236    stable(feature = "neon_intrinsics", since = "1.59.0")
35237)]
35238#[cfg_attr(
35239    target_arch = "arm",
35240    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35241)]
35242pub fn vqaddq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
35243    unsafe { simd_saturating_add(a, b) }
35244}
35245#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
35246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s16)"]
35247#[inline(always)]
35248#[target_feature(enable = "neon")]
35249#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35250#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 2))]
35251#[cfg_attr(
35252    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35253    assert_instr(sqdmlal, N = 2)
35254)]
35255#[rustc_legacy_const_generics(3)]
35256#[cfg_attr(
35257    not(target_arch = "arm"),
35258    stable(feature = "neon_intrinsics", since = "1.59.0")
35259)]
35260#[cfg_attr(
35261    target_arch = "arm",
35262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35263)]
35264pub fn vqdmlal_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
35265    static_assert_uimm_bits!(N, 2);
35266    vqaddq_s32(a, vqdmull_lane_s16::<N>(b, c))
35267}
35268#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
35269#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s32)"]
35270#[inline(always)]
35271#[target_feature(enable = "neon")]
35272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 1))]
35274#[cfg_attr(
35275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35276    assert_instr(sqdmlal, N = 1)
35277)]
35278#[rustc_legacy_const_generics(3)]
35279#[cfg_attr(
35280    not(target_arch = "arm"),
35281    stable(feature = "neon_intrinsics", since = "1.59.0")
35282)]
35283#[cfg_attr(
35284    target_arch = "arm",
35285    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35286)]
35287pub fn vqdmlal_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
35288    static_assert_uimm_bits!(N, 1);
35289    vqaddq_s64(a, vqdmull_lane_s32::<N>(b, c))
35290}
35291#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
35292#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s16)"]
35293#[inline(always)]
35294#[target_feature(enable = "neon")]
35295#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35296#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
35297#[cfg_attr(
35298    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35299    assert_instr(sqdmlal)
35300)]
35301#[cfg_attr(
35302    not(target_arch = "arm"),
35303    stable(feature = "neon_intrinsics", since = "1.59.0")
35304)]
35305#[cfg_attr(
35306    target_arch = "arm",
35307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35308)]
35309pub fn vqdmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
35310    vqaddq_s32(a, vqdmull_n_s16(b, c))
35311}
35312#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
35313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s32)"]
35314#[inline(always)]
35315#[target_feature(enable = "neon")]
35316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
35318#[cfg_attr(
35319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35320    assert_instr(sqdmlal)
35321)]
35322#[cfg_attr(
35323    not(target_arch = "arm"),
35324    stable(feature = "neon_intrinsics", since = "1.59.0")
35325)]
35326#[cfg_attr(
35327    target_arch = "arm",
35328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35329)]
35330pub fn vqdmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
35331    vqaddq_s64(a, vqdmull_n_s32(b, c))
35332}
35333#[doc = "Signed saturating doubling multiply-add long"]
35334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s16)"]
35335#[inline(always)]
35336#[target_feature(enable = "neon")]
35337#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35338#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
35339#[cfg_attr(
35340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35341    assert_instr(sqdmlal)
35342)]
35343#[cfg_attr(
35344    not(target_arch = "arm"),
35345    stable(feature = "neon_intrinsics", since = "1.59.0")
35346)]
35347#[cfg_attr(
35348    target_arch = "arm",
35349    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35350)]
35351pub fn vqdmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
35352    vqaddq_s32(a, vqdmull_s16(b, c))
35353}
35354#[doc = "Signed saturating doubling multiply-add long"]
35355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s32)"]
35356#[inline(always)]
35357#[target_feature(enable = "neon")]
35358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35359#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
35360#[cfg_attr(
35361    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35362    assert_instr(sqdmlal)
35363)]
35364#[cfg_attr(
35365    not(target_arch = "arm"),
35366    stable(feature = "neon_intrinsics", since = "1.59.0")
35367)]
35368#[cfg_attr(
35369    target_arch = "arm",
35370    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35371)]
35372pub fn vqdmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
35373    vqaddq_s64(a, vqdmull_s32(b, c))
35374}
35375#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
35376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s16)"]
35377#[inline(always)]
35378#[target_feature(enable = "neon")]
35379#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35380#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 2))]
35381#[cfg_attr(
35382    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35383    assert_instr(sqdmlsl, N = 2)
35384)]
35385#[rustc_legacy_const_generics(3)]
35386#[cfg_attr(
35387    not(target_arch = "arm"),
35388    stable(feature = "neon_intrinsics", since = "1.59.0")
35389)]
35390#[cfg_attr(
35391    target_arch = "arm",
35392    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35393)]
35394pub fn vqdmlsl_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
35395    static_assert_uimm_bits!(N, 2);
35396    vqsubq_s32(a, vqdmull_lane_s16::<N>(b, c))
35397}
35398#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
35399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s32)"]
35400#[inline(always)]
35401#[target_feature(enable = "neon")]
35402#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35403#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 1))]
35404#[cfg_attr(
35405    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35406    assert_instr(sqdmlsl, N = 1)
35407)]
35408#[rustc_legacy_const_generics(3)]
35409#[cfg_attr(
35410    not(target_arch = "arm"),
35411    stable(feature = "neon_intrinsics", since = "1.59.0")
35412)]
35413#[cfg_attr(
35414    target_arch = "arm",
35415    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35416)]
35417pub fn vqdmlsl_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
35418    static_assert_uimm_bits!(N, 1);
35419    vqsubq_s64(a, vqdmull_lane_s32::<N>(b, c))
35420}
35421#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
35422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s16)"]
35423#[inline(always)]
35424#[target_feature(enable = "neon")]
35425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35426#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
35427#[cfg_attr(
35428    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35429    assert_instr(sqdmlsl)
35430)]
35431#[cfg_attr(
35432    not(target_arch = "arm"),
35433    stable(feature = "neon_intrinsics", since = "1.59.0")
35434)]
35435#[cfg_attr(
35436    target_arch = "arm",
35437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35438)]
35439pub fn vqdmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
35440    vqsubq_s32(a, vqdmull_n_s16(b, c))
35441}
35442#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
35443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s32)"]
35444#[inline(always)]
35445#[target_feature(enable = "neon")]
35446#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35447#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
35448#[cfg_attr(
35449    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35450    assert_instr(sqdmlsl)
35451)]
35452#[cfg_attr(
35453    not(target_arch = "arm"),
35454    stable(feature = "neon_intrinsics", since = "1.59.0")
35455)]
35456#[cfg_attr(
35457    target_arch = "arm",
35458    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35459)]
35460pub fn vqdmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
35461    vqsubq_s64(a, vqdmull_n_s32(b, c))
35462}
35463#[doc = "Signed saturating doubling multiply-subtract long"]
35464#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s16)"]
35465#[inline(always)]
35466#[target_feature(enable = "neon")]
35467#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35468#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
35469#[cfg_attr(
35470    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35471    assert_instr(sqdmlsl)
35472)]
35473#[cfg_attr(
35474    not(target_arch = "arm"),
35475    stable(feature = "neon_intrinsics", since = "1.59.0")
35476)]
35477#[cfg_attr(
35478    target_arch = "arm",
35479    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35480)]
35481pub fn vqdmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
35482    vqsubq_s32(a, vqdmull_s16(b, c))
35483}
35484#[doc = "Signed saturating doubling multiply-subtract long"]
35485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s32)"]
35486#[inline(always)]
35487#[target_feature(enable = "neon")]
35488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35489#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
35490#[cfg_attr(
35491    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35492    assert_instr(sqdmlsl)
35493)]
35494#[cfg_attr(
35495    not(target_arch = "arm"),
35496    stable(feature = "neon_intrinsics", since = "1.59.0")
35497)]
35498#[cfg_attr(
35499    target_arch = "arm",
35500    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35501)]
35502pub fn vqdmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
35503    vqsubq_s64(a, vqdmull_s32(b, c))
35504}
35505#[doc = "Vector saturating doubling multiply high by scalar"]
35506#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s16)"]
35507#[inline(always)]
35508#[target_feature(enable = "neon")]
35509#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35510#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
35511#[cfg_attr(
35512    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35513    assert_instr(sqdmulh, LANE = 0)
35514)]
35515#[rustc_legacy_const_generics(2)]
35516#[cfg_attr(
35517    not(target_arch = "arm"),
35518    stable(feature = "neon_intrinsics", since = "1.59.0")
35519)]
35520#[cfg_attr(
35521    target_arch = "arm",
35522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35523)]
35524pub fn vqdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
35525    static_assert_uimm_bits!(LANE, 3);
35526    unsafe { vqdmulh_s16(a, vdup_n_s16(simd_extract!(b, LANE as u32))) }
35527}
35528#[doc = "Vector saturating doubling multiply high by scalar"]
35529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s16)"]
35530#[inline(always)]
35531#[target_feature(enable = "neon")]
35532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35533#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
35534#[cfg_attr(
35535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35536    assert_instr(sqdmulh, LANE = 0)
35537)]
35538#[rustc_legacy_const_generics(2)]
35539#[cfg_attr(
35540    not(target_arch = "arm"),
35541    stable(feature = "neon_intrinsics", since = "1.59.0")
35542)]
35543#[cfg_attr(
35544    target_arch = "arm",
35545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35546)]
35547pub fn vqdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
35548    static_assert_uimm_bits!(LANE, 3);
35549    unsafe { vqdmulhq_s16(a, vdupq_n_s16(simd_extract!(b, LANE as u32))) }
35550}
35551#[doc = "Vector saturating doubling multiply high by scalar"]
35552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s32)"]
35553#[inline(always)]
35554#[target_feature(enable = "neon")]
35555#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35556#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
35557#[cfg_attr(
35558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35559    assert_instr(sqdmulh, LANE = 0)
35560)]
35561#[rustc_legacy_const_generics(2)]
35562#[cfg_attr(
35563    not(target_arch = "arm"),
35564    stable(feature = "neon_intrinsics", since = "1.59.0")
35565)]
35566#[cfg_attr(
35567    target_arch = "arm",
35568    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35569)]
35570pub fn vqdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
35571    static_assert_uimm_bits!(LANE, 2);
35572    unsafe { vqdmulh_s32(a, vdup_n_s32(simd_extract!(b, LANE as u32))) }
35573}
35574#[doc = "Vector saturating doubling multiply high by scalar"]
35575#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s32)"]
35576#[inline(always)]
35577#[target_feature(enable = "neon")]
35578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35579#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
35580#[cfg_attr(
35581    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35582    assert_instr(sqdmulh, LANE = 0)
35583)]
35584#[rustc_legacy_const_generics(2)]
35585#[cfg_attr(
35586    not(target_arch = "arm"),
35587    stable(feature = "neon_intrinsics", since = "1.59.0")
35588)]
35589#[cfg_attr(
35590    target_arch = "arm",
35591    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35592)]
35593pub fn vqdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
35594    static_assert_uimm_bits!(LANE, 2);
35595    unsafe { vqdmulhq_s32(a, vdupq_n_s32(simd_extract!(b, LANE as u32))) }
35596}
35597#[doc = "Vector saturating doubling multiply high with scalar"]
35598#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s16)"]
35599#[inline(always)]
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(vqdmulh))]
35603#[cfg_attr(
35604    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35605    assert_instr(sqdmulh)
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 vqdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
35616    let b: int16x4_t = vdup_n_s16(b);
35617    vqdmulh_s16(a, b)
35618}
35619#[doc = "Vector saturating doubling multiply high with scalar"]
35620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s16)"]
35621#[inline(always)]
35622#[target_feature(enable = "neon")]
35623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35625#[cfg_attr(
35626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35627    assert_instr(sqdmulh)
35628)]
35629#[cfg_attr(
35630    not(target_arch = "arm"),
35631    stable(feature = "neon_intrinsics", since = "1.59.0")
35632)]
35633#[cfg_attr(
35634    target_arch = "arm",
35635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35636)]
35637pub fn vqdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
35638    let b: int16x8_t = vdupq_n_s16(b);
35639    vqdmulhq_s16(a, b)
35640}
35641#[doc = "Vector saturating doubling multiply high with scalar"]
35642#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s32)"]
35643#[inline(always)]
35644#[target_feature(enable = "neon")]
35645#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35646#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35647#[cfg_attr(
35648    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35649    assert_instr(sqdmulh)
35650)]
35651#[cfg_attr(
35652    not(target_arch = "arm"),
35653    stable(feature = "neon_intrinsics", since = "1.59.0")
35654)]
35655#[cfg_attr(
35656    target_arch = "arm",
35657    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35658)]
35659pub fn vqdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
35660    let b: int32x2_t = vdup_n_s32(b);
35661    vqdmulh_s32(a, b)
35662}
35663#[doc = "Vector saturating doubling multiply high with scalar"]
35664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s32)"]
35665#[inline(always)]
35666#[target_feature(enable = "neon")]
35667#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35668#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35669#[cfg_attr(
35670    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35671    assert_instr(sqdmulh)
35672)]
35673#[cfg_attr(
35674    not(target_arch = "arm"),
35675    stable(feature = "neon_intrinsics", since = "1.59.0")
35676)]
35677#[cfg_attr(
35678    target_arch = "arm",
35679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35680)]
35681pub fn vqdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
35682    let b: int32x4_t = vdupq_n_s32(b);
35683    vqdmulhq_s32(a, b)
35684}
35685#[doc = "Signed saturating doubling multiply returning high half"]
35686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s16)"]
35687#[inline(always)]
35688#[target_feature(enable = "neon")]
35689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35691#[cfg_attr(
35692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35693    assert_instr(sqdmulh)
35694)]
35695#[cfg_attr(
35696    not(target_arch = "arm"),
35697    stable(feature = "neon_intrinsics", since = "1.59.0")
35698)]
35699#[cfg_attr(
35700    target_arch = "arm",
35701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35702)]
35703pub fn vqdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
35704    unsafe extern "unadjusted" {
35705        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i16")]
35706        #[cfg_attr(
35707            any(target_arch = "aarch64", target_arch = "arm64ec"),
35708            link_name = "llvm.aarch64.neon.sqdmulh.v4i16"
35709        )]
35710        fn _vqdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
35711    }
35712    unsafe { _vqdmulh_s16(a, b) }
35713}
35714#[doc = "Signed saturating doubling multiply returning high half"]
35715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s16)"]
35716#[inline(always)]
35717#[target_feature(enable = "neon")]
35718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35720#[cfg_attr(
35721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35722    assert_instr(sqdmulh)
35723)]
35724#[cfg_attr(
35725    not(target_arch = "arm"),
35726    stable(feature = "neon_intrinsics", since = "1.59.0")
35727)]
35728#[cfg_attr(
35729    target_arch = "arm",
35730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35731)]
35732pub fn vqdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
35733    unsafe extern "unadjusted" {
35734        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v8i16")]
35735        #[cfg_attr(
35736            any(target_arch = "aarch64", target_arch = "arm64ec"),
35737            link_name = "llvm.aarch64.neon.sqdmulh.v8i16"
35738        )]
35739        fn _vqdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
35740    }
35741    unsafe { _vqdmulhq_s16(a, b) }
35742}
35743#[doc = "Signed saturating doubling multiply returning high half"]
35744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s32)"]
35745#[inline(always)]
35746#[target_feature(enable = "neon")]
35747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35749#[cfg_attr(
35750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35751    assert_instr(sqdmulh)
35752)]
35753#[cfg_attr(
35754    not(target_arch = "arm"),
35755    stable(feature = "neon_intrinsics", since = "1.59.0")
35756)]
35757#[cfg_attr(
35758    target_arch = "arm",
35759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35760)]
35761pub fn vqdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
35762    unsafe extern "unadjusted" {
35763        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v2i32")]
35764        #[cfg_attr(
35765            any(target_arch = "aarch64", target_arch = "arm64ec"),
35766            link_name = "llvm.aarch64.neon.sqdmulh.v2i32"
35767        )]
35768        fn _vqdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
35769    }
35770    unsafe { _vqdmulh_s32(a, b) }
35771}
35772#[doc = "Signed saturating doubling multiply returning high half"]
35773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s32)"]
35774#[inline(always)]
35775#[target_feature(enable = "neon")]
35776#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35777#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35778#[cfg_attr(
35779    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35780    assert_instr(sqdmulh)
35781)]
35782#[cfg_attr(
35783    not(target_arch = "arm"),
35784    stable(feature = "neon_intrinsics", since = "1.59.0")
35785)]
35786#[cfg_attr(
35787    target_arch = "arm",
35788    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35789)]
35790pub fn vqdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
35791    unsafe extern "unadjusted" {
35792        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i32")]
35793        #[cfg_attr(
35794            any(target_arch = "aarch64", target_arch = "arm64ec"),
35795            link_name = "llvm.aarch64.neon.sqdmulh.v4i32"
35796        )]
35797        fn _vqdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
35798    }
35799    unsafe { _vqdmulhq_s32(a, b) }
35800}
35801#[doc = "Vector saturating doubling long multiply by scalar"]
35802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s16)"]
35803#[inline(always)]
35804#[target_feature(enable = "neon")]
35805#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35806#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 2))]
35807#[cfg_attr(
35808    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35809    assert_instr(sqdmull, N = 2)
35810)]
35811#[rustc_legacy_const_generics(2)]
35812#[cfg_attr(
35813    not(target_arch = "arm"),
35814    stable(feature = "neon_intrinsics", since = "1.59.0")
35815)]
35816#[cfg_attr(
35817    target_arch = "arm",
35818    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35819)]
35820pub fn vqdmull_lane_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
35821    static_assert_uimm_bits!(N, 2);
35822    unsafe {
35823        let b: int16x4_t = simd_shuffle!(b, b, [N as u32; 4]);
35824        vqdmull_s16(a, b)
35825    }
35826}
35827#[doc = "Vector saturating doubling long multiply by scalar"]
35828#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s32)"]
35829#[inline(always)]
35830#[target_feature(enable = "neon")]
35831#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35832#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 1))]
35833#[cfg_attr(
35834    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35835    assert_instr(sqdmull, N = 1)
35836)]
35837#[rustc_legacy_const_generics(2)]
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 vqdmull_lane_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
35847    static_assert_uimm_bits!(N, 1);
35848    unsafe {
35849        let b: int32x2_t = simd_shuffle!(b, b, [N as u32; 2]);
35850        vqdmull_s32(a, b)
35851    }
35852}
35853#[doc = "Vector saturating doubling long multiply with scalar"]
35854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s16)"]
35855#[inline(always)]
35856#[target_feature(enable = "neon")]
35857#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35858#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
35859#[cfg_attr(
35860    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35861    assert_instr(sqdmull)
35862)]
35863#[cfg_attr(
35864    not(target_arch = "arm"),
35865    stable(feature = "neon_intrinsics", since = "1.59.0")
35866)]
35867#[cfg_attr(
35868    target_arch = "arm",
35869    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35870)]
35871pub fn vqdmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
35872    vqdmull_s16(a, vdup_n_s16(b))
35873}
35874#[doc = "Vector saturating doubling long multiply with scalar"]
35875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s32)"]
35876#[inline(always)]
35877#[target_feature(enable = "neon")]
35878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
35880#[cfg_attr(
35881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35882    assert_instr(sqdmull)
35883)]
35884#[cfg_attr(
35885    not(target_arch = "arm"),
35886    stable(feature = "neon_intrinsics", since = "1.59.0")
35887)]
35888#[cfg_attr(
35889    target_arch = "arm",
35890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35891)]
35892pub fn vqdmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
35893    vqdmull_s32(a, vdup_n_s32(b))
35894}
35895#[doc = "Signed saturating doubling multiply long"]
35896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s16)"]
35897#[inline(always)]
35898#[target_feature(enable = "neon")]
35899#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35900#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
35901#[cfg_attr(
35902    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35903    assert_instr(sqdmull)
35904)]
35905#[cfg_attr(
35906    not(target_arch = "arm"),
35907    stable(feature = "neon_intrinsics", since = "1.59.0")
35908)]
35909#[cfg_attr(
35910    target_arch = "arm",
35911    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35912)]
35913pub fn vqdmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
35914    unsafe extern "unadjusted" {
35915        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v4i32")]
35916        #[cfg_attr(
35917            any(target_arch = "aarch64", target_arch = "arm64ec"),
35918            link_name = "llvm.aarch64.neon.sqdmull.v4i32"
35919        )]
35920        fn _vqdmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t;
35921    }
35922    unsafe { _vqdmull_s16(a, b) }
35923}
35924#[doc = "Signed saturating doubling multiply long"]
35925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s32)"]
35926#[inline(always)]
35927#[target_feature(enable = "neon")]
35928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35929#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
35930#[cfg_attr(
35931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35932    assert_instr(sqdmull)
35933)]
35934#[cfg_attr(
35935    not(target_arch = "arm"),
35936    stable(feature = "neon_intrinsics", since = "1.59.0")
35937)]
35938#[cfg_attr(
35939    target_arch = "arm",
35940    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35941)]
35942pub fn vqdmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
35943    unsafe extern "unadjusted" {
35944        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v2i64")]
35945        #[cfg_attr(
35946            any(target_arch = "aarch64", target_arch = "arm64ec"),
35947            link_name = "llvm.aarch64.neon.sqdmull.v2i64"
35948        )]
35949        fn _vqdmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t;
35950    }
35951    unsafe { _vqdmull_s32(a, b) }
35952}
35953#[doc = "Signed saturating extract narrow"]
35954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s16)"]
35955#[inline(always)]
35956#[target_feature(enable = "neon")]
35957#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35958#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
35959#[cfg_attr(
35960    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35961    assert_instr(sqxtn)
35962)]
35963#[cfg_attr(
35964    not(target_arch = "arm"),
35965    stable(feature = "neon_intrinsics", since = "1.59.0")
35966)]
35967#[cfg_attr(
35968    target_arch = "arm",
35969    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35970)]
35971pub fn vqmovn_s16(a: int16x8_t) -> int8x8_t {
35972    unsafe extern "unadjusted" {
35973        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v8i8")]
35974        #[cfg_attr(
35975            any(target_arch = "aarch64", target_arch = "arm64ec"),
35976            link_name = "llvm.aarch64.neon.sqxtn.v8i8"
35977        )]
35978        fn _vqmovn_s16(a: int16x8_t) -> int8x8_t;
35979    }
35980    unsafe { _vqmovn_s16(a) }
35981}
35982#[doc = "Signed saturating extract narrow"]
35983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s32)"]
35984#[inline(always)]
35985#[target_feature(enable = "neon")]
35986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
35988#[cfg_attr(
35989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35990    assert_instr(sqxtn)
35991)]
35992#[cfg_attr(
35993    not(target_arch = "arm"),
35994    stable(feature = "neon_intrinsics", since = "1.59.0")
35995)]
35996#[cfg_attr(
35997    target_arch = "arm",
35998    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35999)]
36000pub fn vqmovn_s32(a: int32x4_t) -> int16x4_t {
36001    unsafe extern "unadjusted" {
36002        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v4i16")]
36003        #[cfg_attr(
36004            any(target_arch = "aarch64", target_arch = "arm64ec"),
36005            link_name = "llvm.aarch64.neon.sqxtn.v4i16"
36006        )]
36007        fn _vqmovn_s32(a: int32x4_t) -> int16x4_t;
36008    }
36009    unsafe { _vqmovn_s32(a) }
36010}
36011#[doc = "Signed saturating extract narrow"]
36012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s64)"]
36013#[inline(always)]
36014#[target_feature(enable = "neon")]
36015#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36016#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
36017#[cfg_attr(
36018    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36019    assert_instr(sqxtn)
36020)]
36021#[cfg_attr(
36022    not(target_arch = "arm"),
36023    stable(feature = "neon_intrinsics", since = "1.59.0")
36024)]
36025#[cfg_attr(
36026    target_arch = "arm",
36027    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36028)]
36029pub fn vqmovn_s64(a: int64x2_t) -> int32x2_t {
36030    unsafe extern "unadjusted" {
36031        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v2i32")]
36032        #[cfg_attr(
36033            any(target_arch = "aarch64", target_arch = "arm64ec"),
36034            link_name = "llvm.aarch64.neon.sqxtn.v2i32"
36035        )]
36036        fn _vqmovn_s64(a: int64x2_t) -> int32x2_t;
36037    }
36038    unsafe { _vqmovn_s64(a) }
36039}
36040#[doc = "Unsigned saturating extract narrow"]
36041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u16)"]
36042#[inline(always)]
36043#[target_feature(enable = "neon")]
36044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36045#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
36046#[cfg_attr(
36047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36048    assert_instr(uqxtn)
36049)]
36050#[cfg_attr(
36051    not(target_arch = "arm"),
36052    stable(feature = "neon_intrinsics", since = "1.59.0")
36053)]
36054#[cfg_attr(
36055    target_arch = "arm",
36056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36057)]
36058pub fn vqmovn_u16(a: uint16x8_t) -> uint8x8_t {
36059    unsafe extern "unadjusted" {
36060        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v8i8")]
36061        #[cfg_attr(
36062            any(target_arch = "aarch64", target_arch = "arm64ec"),
36063            link_name = "llvm.aarch64.neon.uqxtn.v8i8"
36064        )]
36065        fn _vqmovn_u16(a: uint16x8_t) -> uint8x8_t;
36066    }
36067    unsafe { _vqmovn_u16(a) }
36068}
36069#[doc = "Unsigned saturating extract narrow"]
36070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u32)"]
36071#[inline(always)]
36072#[target_feature(enable = "neon")]
36073#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36074#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
36075#[cfg_attr(
36076    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36077    assert_instr(uqxtn)
36078)]
36079#[cfg_attr(
36080    not(target_arch = "arm"),
36081    stable(feature = "neon_intrinsics", since = "1.59.0")
36082)]
36083#[cfg_attr(
36084    target_arch = "arm",
36085    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36086)]
36087pub fn vqmovn_u32(a: uint32x4_t) -> uint16x4_t {
36088    unsafe extern "unadjusted" {
36089        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v4i16")]
36090        #[cfg_attr(
36091            any(target_arch = "aarch64", target_arch = "arm64ec"),
36092            link_name = "llvm.aarch64.neon.uqxtn.v4i16"
36093        )]
36094        fn _vqmovn_u32(a: uint32x4_t) -> uint16x4_t;
36095    }
36096    unsafe { _vqmovn_u32(a) }
36097}
36098#[doc = "Unsigned saturating extract narrow"]
36099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u64)"]
36100#[inline(always)]
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(vqmovn))]
36104#[cfg_attr(
36105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36106    assert_instr(uqxtn)
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 vqmovn_u64(a: uint64x2_t) -> uint32x2_t {
36117    unsafe extern "unadjusted" {
36118        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v2i32")]
36119        #[cfg_attr(
36120            any(target_arch = "aarch64", target_arch = "arm64ec"),
36121            link_name = "llvm.aarch64.neon.uqxtn.v2i32"
36122        )]
36123        fn _vqmovn_u64(a: uint64x2_t) -> uint32x2_t;
36124    }
36125    unsafe { _vqmovn_u64(a) }
36126}
36127#[doc = "Signed saturating extract unsigned narrow"]
36128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s16)"]
36129#[inline(always)]
36130#[target_feature(enable = "neon")]
36131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36132#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
36133#[cfg_attr(
36134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36135    assert_instr(sqxtun)
36136)]
36137#[cfg_attr(
36138    not(target_arch = "arm"),
36139    stable(feature = "neon_intrinsics", since = "1.59.0")
36140)]
36141#[cfg_attr(
36142    target_arch = "arm",
36143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36144)]
36145pub fn vqmovun_s16(a: int16x8_t) -> uint8x8_t {
36146    unsafe extern "unadjusted" {
36147        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v8i8")]
36148        #[cfg_attr(
36149            any(target_arch = "aarch64", target_arch = "arm64ec"),
36150            link_name = "llvm.aarch64.neon.sqxtun.v8i8"
36151        )]
36152        fn _vqmovun_s16(a: int16x8_t) -> uint8x8_t;
36153    }
36154    unsafe { _vqmovun_s16(a) }
36155}
36156#[doc = "Signed saturating extract unsigned narrow"]
36157#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s32)"]
36158#[inline(always)]
36159#[target_feature(enable = "neon")]
36160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36161#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
36162#[cfg_attr(
36163    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36164    assert_instr(sqxtun)
36165)]
36166#[cfg_attr(
36167    not(target_arch = "arm"),
36168    stable(feature = "neon_intrinsics", since = "1.59.0")
36169)]
36170#[cfg_attr(
36171    target_arch = "arm",
36172    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36173)]
36174pub fn vqmovun_s32(a: int32x4_t) -> uint16x4_t {
36175    unsafe extern "unadjusted" {
36176        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v4i16")]
36177        #[cfg_attr(
36178            any(target_arch = "aarch64", target_arch = "arm64ec"),
36179            link_name = "llvm.aarch64.neon.sqxtun.v4i16"
36180        )]
36181        fn _vqmovun_s32(a: int32x4_t) -> uint16x4_t;
36182    }
36183    unsafe { _vqmovun_s32(a) }
36184}
36185#[doc = "Signed saturating extract unsigned narrow"]
36186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s64)"]
36187#[inline(always)]
36188#[target_feature(enable = "neon")]
36189#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36190#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
36191#[cfg_attr(
36192    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36193    assert_instr(sqxtun)
36194)]
36195#[cfg_attr(
36196    not(target_arch = "arm"),
36197    stable(feature = "neon_intrinsics", since = "1.59.0")
36198)]
36199#[cfg_attr(
36200    target_arch = "arm",
36201    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36202)]
36203pub fn vqmovun_s64(a: int64x2_t) -> uint32x2_t {
36204    unsafe extern "unadjusted" {
36205        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v2i32")]
36206        #[cfg_attr(
36207            any(target_arch = "aarch64", target_arch = "arm64ec"),
36208            link_name = "llvm.aarch64.neon.sqxtun.v2i32"
36209        )]
36210        fn _vqmovun_s64(a: int64x2_t) -> uint32x2_t;
36211    }
36212    unsafe { _vqmovun_s64(a) }
36213}
36214#[doc = "Signed saturating negate"]
36215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s8)"]
36216#[inline(always)]
36217#[target_feature(enable = "neon")]
36218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36219#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
36220#[cfg_attr(
36221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36222    assert_instr(sqneg)
36223)]
36224#[cfg_attr(
36225    not(target_arch = "arm"),
36226    stable(feature = "neon_intrinsics", since = "1.59.0")
36227)]
36228#[cfg_attr(
36229    target_arch = "arm",
36230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36231)]
36232pub fn vqneg_s8(a: int8x8_t) -> int8x8_t {
36233    unsafe extern "unadjusted" {
36234        #[cfg_attr(
36235            any(target_arch = "aarch64", target_arch = "arm64ec"),
36236            link_name = "llvm.aarch64.neon.sqneg.v8i8"
36237        )]
36238        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i8")]
36239        fn _vqneg_s8(a: int8x8_t) -> int8x8_t;
36240    }
36241    unsafe { _vqneg_s8(a) }
36242}
36243#[doc = "Signed saturating negate"]
36244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s8)"]
36245#[inline(always)]
36246#[target_feature(enable = "neon")]
36247#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36248#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
36249#[cfg_attr(
36250    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36251    assert_instr(sqneg)
36252)]
36253#[cfg_attr(
36254    not(target_arch = "arm"),
36255    stable(feature = "neon_intrinsics", since = "1.59.0")
36256)]
36257#[cfg_attr(
36258    target_arch = "arm",
36259    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36260)]
36261pub fn vqnegq_s8(a: int8x16_t) -> int8x16_t {
36262    unsafe extern "unadjusted" {
36263        #[cfg_attr(
36264            any(target_arch = "aarch64", target_arch = "arm64ec"),
36265            link_name = "llvm.aarch64.neon.sqneg.v16i8"
36266        )]
36267        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v16i8")]
36268        fn _vqnegq_s8(a: int8x16_t) -> int8x16_t;
36269    }
36270    unsafe { _vqnegq_s8(a) }
36271}
36272#[doc = "Signed saturating negate"]
36273#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s16)"]
36274#[inline(always)]
36275#[target_feature(enable = "neon")]
36276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36277#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
36278#[cfg_attr(
36279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36280    assert_instr(sqneg)
36281)]
36282#[cfg_attr(
36283    not(target_arch = "arm"),
36284    stable(feature = "neon_intrinsics", since = "1.59.0")
36285)]
36286#[cfg_attr(
36287    target_arch = "arm",
36288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36289)]
36290pub fn vqneg_s16(a: int16x4_t) -> int16x4_t {
36291    unsafe extern "unadjusted" {
36292        #[cfg_attr(
36293            any(target_arch = "aarch64", target_arch = "arm64ec"),
36294            link_name = "llvm.aarch64.neon.sqneg.v4i16"
36295        )]
36296        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i16")]
36297        fn _vqneg_s16(a: int16x4_t) -> int16x4_t;
36298    }
36299    unsafe { _vqneg_s16(a) }
36300}
36301#[doc = "Signed saturating negate"]
36302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s16)"]
36303#[inline(always)]
36304#[target_feature(enable = "neon")]
36305#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36306#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
36307#[cfg_attr(
36308    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36309    assert_instr(sqneg)
36310)]
36311#[cfg_attr(
36312    not(target_arch = "arm"),
36313    stable(feature = "neon_intrinsics", since = "1.59.0")
36314)]
36315#[cfg_attr(
36316    target_arch = "arm",
36317    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36318)]
36319pub fn vqnegq_s16(a: int16x8_t) -> int16x8_t {
36320    unsafe extern "unadjusted" {
36321        #[cfg_attr(
36322            any(target_arch = "aarch64", target_arch = "arm64ec"),
36323            link_name = "llvm.aarch64.neon.sqneg.v8i16"
36324        )]
36325        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i16")]
36326        fn _vqnegq_s16(a: int16x8_t) -> int16x8_t;
36327    }
36328    unsafe { _vqnegq_s16(a) }
36329}
36330#[doc = "Signed saturating negate"]
36331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s32)"]
36332#[inline(always)]
36333#[target_feature(enable = "neon")]
36334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36335#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
36336#[cfg_attr(
36337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36338    assert_instr(sqneg)
36339)]
36340#[cfg_attr(
36341    not(target_arch = "arm"),
36342    stable(feature = "neon_intrinsics", since = "1.59.0")
36343)]
36344#[cfg_attr(
36345    target_arch = "arm",
36346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36347)]
36348pub fn vqneg_s32(a: int32x2_t) -> int32x2_t {
36349    unsafe extern "unadjusted" {
36350        #[cfg_attr(
36351            any(target_arch = "aarch64", target_arch = "arm64ec"),
36352            link_name = "llvm.aarch64.neon.sqneg.v2i32"
36353        )]
36354        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v2i32")]
36355        fn _vqneg_s32(a: int32x2_t) -> int32x2_t;
36356    }
36357    unsafe { _vqneg_s32(a) }
36358}
36359#[doc = "Signed saturating negate"]
36360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s32)"]
36361#[inline(always)]
36362#[target_feature(enable = "neon")]
36363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36364#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
36365#[cfg_attr(
36366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36367    assert_instr(sqneg)
36368)]
36369#[cfg_attr(
36370    not(target_arch = "arm"),
36371    stable(feature = "neon_intrinsics", since = "1.59.0")
36372)]
36373#[cfg_attr(
36374    target_arch = "arm",
36375    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36376)]
36377pub fn vqnegq_s32(a: int32x4_t) -> int32x4_t {
36378    unsafe extern "unadjusted" {
36379        #[cfg_attr(
36380            any(target_arch = "aarch64", target_arch = "arm64ec"),
36381            link_name = "llvm.aarch64.neon.sqneg.v4i32"
36382        )]
36383        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i32")]
36384        fn _vqnegq_s32(a: int32x4_t) -> int32x4_t;
36385    }
36386    unsafe { _vqnegq_s32(a) }
36387}
36388#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s16)"]
36390#[inline(always)]
36391#[target_feature(enable = "neon")]
36392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36394#[cfg_attr(
36395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36396    assert_instr(sqrdmulh, LANE = 1)
36397)]
36398#[rustc_legacy_const_generics(2)]
36399#[cfg_attr(
36400    not(target_arch = "arm"),
36401    stable(feature = "neon_intrinsics", since = "1.59.0")
36402)]
36403#[cfg_attr(
36404    target_arch = "arm",
36405    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36406)]
36407pub fn vqrdmulh_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36408    static_assert_uimm_bits!(LANE, 2);
36409    unsafe {
36410        let b: int16x4_t =
36411            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
36412        vqrdmulh_s16(a, b)
36413    }
36414}
36415#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36416#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s32)"]
36417#[inline(always)]
36418#[target_feature(enable = "neon")]
36419#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36420#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36421#[cfg_attr(
36422    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36423    assert_instr(sqrdmulh, LANE = 1)
36424)]
36425#[rustc_legacy_const_generics(2)]
36426#[cfg_attr(
36427    not(target_arch = "arm"),
36428    stable(feature = "neon_intrinsics", since = "1.59.0")
36429)]
36430#[cfg_attr(
36431    target_arch = "arm",
36432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36433)]
36434pub fn vqrdmulh_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
36435    static_assert_uimm_bits!(LANE, 1);
36436    unsafe {
36437        let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
36438        vqrdmulh_s32(a, b)
36439    }
36440}
36441#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s16)"]
36443#[inline(always)]
36444#[target_feature(enable = "neon")]
36445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36447#[cfg_attr(
36448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36449    assert_instr(sqrdmulh, LANE = 1)
36450)]
36451#[rustc_legacy_const_generics(2)]
36452#[cfg_attr(
36453    not(target_arch = "arm"),
36454    stable(feature = "neon_intrinsics", since = "1.59.0")
36455)]
36456#[cfg_attr(
36457    target_arch = "arm",
36458    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36459)]
36460pub fn vqrdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
36461    static_assert_uimm_bits!(LANE, 3);
36462    unsafe {
36463        let b: int16x4_t =
36464            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
36465        vqrdmulh_s16(a, b)
36466    }
36467}
36468#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s32)"]
36470#[inline(always)]
36471#[target_feature(enable = "neon")]
36472#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36473#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36474#[cfg_attr(
36475    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36476    assert_instr(sqrdmulh, LANE = 1)
36477)]
36478#[rustc_legacy_const_generics(2)]
36479#[cfg_attr(
36480    not(target_arch = "arm"),
36481    stable(feature = "neon_intrinsics", since = "1.59.0")
36482)]
36483#[cfg_attr(
36484    target_arch = "arm",
36485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36486)]
36487pub fn vqrdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
36488    static_assert_uimm_bits!(LANE, 2);
36489    unsafe {
36490        let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
36491        vqrdmulh_s32(a, b)
36492    }
36493}
36494#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s16)"]
36496#[inline(always)]
36497#[target_feature(enable = "neon")]
36498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36500#[cfg_attr(
36501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36502    assert_instr(sqrdmulh, LANE = 1)
36503)]
36504#[rustc_legacy_const_generics(2)]
36505#[cfg_attr(
36506    not(target_arch = "arm"),
36507    stable(feature = "neon_intrinsics", since = "1.59.0")
36508)]
36509#[cfg_attr(
36510    target_arch = "arm",
36511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36512)]
36513pub fn vqrdmulhq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
36514    static_assert_uimm_bits!(LANE, 2);
36515    unsafe {
36516        let b: int16x8_t = simd_shuffle!(
36517            b,
36518            b,
36519            [
36520                LANE as u32,
36521                LANE as u32,
36522                LANE as u32,
36523                LANE as u32,
36524                LANE as u32,
36525                LANE as u32,
36526                LANE as u32,
36527                LANE as u32
36528            ]
36529        );
36530        vqrdmulhq_s16(a, b)
36531    }
36532}
36533#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s32)"]
36535#[inline(always)]
36536#[target_feature(enable = "neon")]
36537#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36538#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36539#[cfg_attr(
36540    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36541    assert_instr(sqrdmulh, LANE = 1)
36542)]
36543#[rustc_legacy_const_generics(2)]
36544#[cfg_attr(
36545    not(target_arch = "arm"),
36546    stable(feature = "neon_intrinsics", since = "1.59.0")
36547)]
36548#[cfg_attr(
36549    target_arch = "arm",
36550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36551)]
36552pub fn vqrdmulhq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
36553    static_assert_uimm_bits!(LANE, 1);
36554    unsafe {
36555        let b: int32x4_t =
36556            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
36557        vqrdmulhq_s32(a, b)
36558    }
36559}
36560#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s16)"]
36562#[inline(always)]
36563#[target_feature(enable = "neon")]
36564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36565#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36566#[cfg_attr(
36567    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36568    assert_instr(sqrdmulh, LANE = 1)
36569)]
36570#[rustc_legacy_const_generics(2)]
36571#[cfg_attr(
36572    not(target_arch = "arm"),
36573    stable(feature = "neon_intrinsics", since = "1.59.0")
36574)]
36575#[cfg_attr(
36576    target_arch = "arm",
36577    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36578)]
36579pub fn vqrdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
36580    static_assert_uimm_bits!(LANE, 3);
36581    unsafe {
36582        let b: int16x8_t = simd_shuffle!(
36583            b,
36584            b,
36585            [
36586                LANE as u32,
36587                LANE as u32,
36588                LANE as u32,
36589                LANE as u32,
36590                LANE as u32,
36591                LANE as u32,
36592                LANE as u32,
36593                LANE as u32
36594            ]
36595        );
36596        vqrdmulhq_s16(a, b)
36597    }
36598}
36599#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36600#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s32)"]
36601#[inline(always)]
36602#[target_feature(enable = "neon")]
36603#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36604#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36605#[cfg_attr(
36606    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36607    assert_instr(sqrdmulh, LANE = 1)
36608)]
36609#[rustc_legacy_const_generics(2)]
36610#[cfg_attr(
36611    not(target_arch = "arm"),
36612    stable(feature = "neon_intrinsics", since = "1.59.0")
36613)]
36614#[cfg_attr(
36615    target_arch = "arm",
36616    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36617)]
36618pub fn vqrdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
36619    static_assert_uimm_bits!(LANE, 2);
36620    unsafe {
36621        let b: int32x4_t =
36622            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
36623        vqrdmulhq_s32(a, b)
36624    }
36625}
36626#[doc = "Vector saturating rounding doubling multiply high with scalar"]
36627#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s16)"]
36628#[inline(always)]
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(vqrdmulh))]
36632#[cfg_attr(
36633    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36634    assert_instr(sqrdmulh)
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 vqrdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
36645    vqrdmulh_s16(a, vdup_n_s16(b))
36646}
36647#[doc = "Vector saturating rounding doubling multiply high with scalar"]
36648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s16)"]
36649#[inline(always)]
36650#[target_feature(enable = "neon")]
36651#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36652#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36653#[cfg_attr(
36654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36655    assert_instr(sqrdmulh)
36656)]
36657#[cfg_attr(
36658    not(target_arch = "arm"),
36659    stable(feature = "neon_intrinsics", since = "1.59.0")
36660)]
36661#[cfg_attr(
36662    target_arch = "arm",
36663    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36664)]
36665pub fn vqrdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
36666    vqrdmulhq_s16(a, vdupq_n_s16(b))
36667}
36668#[doc = "Vector saturating rounding doubling multiply high with scalar"]
36669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s32)"]
36670#[inline(always)]
36671#[target_feature(enable = "neon")]
36672#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36673#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36674#[cfg_attr(
36675    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36676    assert_instr(sqrdmulh)
36677)]
36678#[cfg_attr(
36679    not(target_arch = "arm"),
36680    stable(feature = "neon_intrinsics", since = "1.59.0")
36681)]
36682#[cfg_attr(
36683    target_arch = "arm",
36684    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36685)]
36686pub fn vqrdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
36687    vqrdmulh_s32(a, vdup_n_s32(b))
36688}
36689#[doc = "Vector saturating rounding doubling multiply high with scalar"]
36690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s32)"]
36691#[inline(always)]
36692#[target_feature(enable = "neon")]
36693#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36694#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36695#[cfg_attr(
36696    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36697    assert_instr(sqrdmulh)
36698)]
36699#[cfg_attr(
36700    not(target_arch = "arm"),
36701    stable(feature = "neon_intrinsics", since = "1.59.0")
36702)]
36703#[cfg_attr(
36704    target_arch = "arm",
36705    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36706)]
36707pub fn vqrdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
36708    vqrdmulhq_s32(a, vdupq_n_s32(b))
36709}
36710#[doc = "Signed saturating rounding doubling multiply returning high half"]
36711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s16)"]
36712#[inline(always)]
36713#[target_feature(enable = "neon")]
36714#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36715#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36716#[cfg_attr(
36717    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36718    assert_instr(sqrdmulh)
36719)]
36720#[cfg_attr(
36721    not(target_arch = "arm"),
36722    stable(feature = "neon_intrinsics", since = "1.59.0")
36723)]
36724#[cfg_attr(
36725    target_arch = "arm",
36726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36727)]
36728pub fn vqrdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36729    unsafe extern "unadjusted" {
36730        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i16")]
36731        #[cfg_attr(
36732            any(target_arch = "aarch64", target_arch = "arm64ec"),
36733            link_name = "llvm.aarch64.neon.sqrdmulh.v4i16"
36734        )]
36735        fn _vqrdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
36736    }
36737    unsafe { _vqrdmulh_s16(a, b) }
36738}
36739#[doc = "Signed saturating rounding doubling multiply returning high half"]
36740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s16)"]
36741#[inline(always)]
36742#[target_feature(enable = "neon")]
36743#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36744#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36745#[cfg_attr(
36746    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36747    assert_instr(sqrdmulh)
36748)]
36749#[cfg_attr(
36750    not(target_arch = "arm"),
36751    stable(feature = "neon_intrinsics", since = "1.59.0")
36752)]
36753#[cfg_attr(
36754    target_arch = "arm",
36755    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36756)]
36757pub fn vqrdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
36758    unsafe extern "unadjusted" {
36759        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v8i16")]
36760        #[cfg_attr(
36761            any(target_arch = "aarch64", target_arch = "arm64ec"),
36762            link_name = "llvm.aarch64.neon.sqrdmulh.v8i16"
36763        )]
36764        fn _vqrdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
36765    }
36766    unsafe { _vqrdmulhq_s16(a, b) }
36767}
36768#[doc = "Signed saturating rounding doubling multiply returning high half"]
36769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s32)"]
36770#[inline(always)]
36771#[target_feature(enable = "neon")]
36772#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36773#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36774#[cfg_attr(
36775    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36776    assert_instr(sqrdmulh)
36777)]
36778#[cfg_attr(
36779    not(target_arch = "arm"),
36780    stable(feature = "neon_intrinsics", since = "1.59.0")
36781)]
36782#[cfg_attr(
36783    target_arch = "arm",
36784    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36785)]
36786pub fn vqrdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
36787    unsafe extern "unadjusted" {
36788        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v2i32")]
36789        #[cfg_attr(
36790            any(target_arch = "aarch64", target_arch = "arm64ec"),
36791            link_name = "llvm.aarch64.neon.sqrdmulh.v2i32"
36792        )]
36793        fn _vqrdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
36794    }
36795    unsafe { _vqrdmulh_s32(a, b) }
36796}
36797#[doc = "Signed saturating rounding doubling multiply returning high half"]
36798#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s32)"]
36799#[inline(always)]
36800#[target_feature(enable = "neon")]
36801#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36802#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36803#[cfg_attr(
36804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36805    assert_instr(sqrdmulh)
36806)]
36807#[cfg_attr(
36808    not(target_arch = "arm"),
36809    stable(feature = "neon_intrinsics", since = "1.59.0")
36810)]
36811#[cfg_attr(
36812    target_arch = "arm",
36813    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36814)]
36815pub fn vqrdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
36816    unsafe extern "unadjusted" {
36817        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i32")]
36818        #[cfg_attr(
36819            any(target_arch = "aarch64", target_arch = "arm64ec"),
36820            link_name = "llvm.aarch64.neon.sqrdmulh.v4i32"
36821        )]
36822        fn _vqrdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
36823    }
36824    unsafe { _vqrdmulhq_s32(a, b) }
36825}
36826#[doc = "Signed saturating rounding shift left"]
36827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s8)"]
36828#[inline(always)]
36829#[target_feature(enable = "neon")]
36830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36832#[cfg_attr(
36833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36834    assert_instr(sqrshl)
36835)]
36836#[cfg_attr(
36837    not(target_arch = "arm"),
36838    stable(feature = "neon_intrinsics", since = "1.59.0")
36839)]
36840#[cfg_attr(
36841    target_arch = "arm",
36842    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36843)]
36844pub fn vqrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
36845    unsafe extern "unadjusted" {
36846        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i8")]
36847        #[cfg_attr(
36848            any(target_arch = "aarch64", target_arch = "arm64ec"),
36849            link_name = "llvm.aarch64.neon.sqrshl.v8i8"
36850        )]
36851        fn _vqrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
36852    }
36853    unsafe { _vqrshl_s8(a, b) }
36854}
36855#[doc = "Signed saturating rounding shift left"]
36856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s8)"]
36857#[inline(always)]
36858#[target_feature(enable = "neon")]
36859#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36860#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36861#[cfg_attr(
36862    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36863    assert_instr(sqrshl)
36864)]
36865#[cfg_attr(
36866    not(target_arch = "arm"),
36867    stable(feature = "neon_intrinsics", since = "1.59.0")
36868)]
36869#[cfg_attr(
36870    target_arch = "arm",
36871    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36872)]
36873pub fn vqrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
36874    unsafe extern "unadjusted" {
36875        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v16i8")]
36876        #[cfg_attr(
36877            any(target_arch = "aarch64", target_arch = "arm64ec"),
36878            link_name = "llvm.aarch64.neon.sqrshl.v16i8"
36879        )]
36880        fn _vqrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
36881    }
36882    unsafe { _vqrshlq_s8(a, b) }
36883}
36884#[doc = "Signed saturating rounding shift left"]
36885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s16)"]
36886#[inline(always)]
36887#[target_feature(enable = "neon")]
36888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36890#[cfg_attr(
36891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36892    assert_instr(sqrshl)
36893)]
36894#[cfg_attr(
36895    not(target_arch = "arm"),
36896    stable(feature = "neon_intrinsics", since = "1.59.0")
36897)]
36898#[cfg_attr(
36899    target_arch = "arm",
36900    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36901)]
36902pub fn vqrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36903    unsafe extern "unadjusted" {
36904        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i16")]
36905        #[cfg_attr(
36906            any(target_arch = "aarch64", target_arch = "arm64ec"),
36907            link_name = "llvm.aarch64.neon.sqrshl.v4i16"
36908        )]
36909        fn _vqrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
36910    }
36911    unsafe { _vqrshl_s16(a, b) }
36912}
36913#[doc = "Signed saturating rounding shift left"]
36914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s16)"]
36915#[inline(always)]
36916#[target_feature(enable = "neon")]
36917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36918#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36919#[cfg_attr(
36920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36921    assert_instr(sqrshl)
36922)]
36923#[cfg_attr(
36924    not(target_arch = "arm"),
36925    stable(feature = "neon_intrinsics", since = "1.59.0")
36926)]
36927#[cfg_attr(
36928    target_arch = "arm",
36929    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36930)]
36931pub fn vqrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
36932    unsafe extern "unadjusted" {
36933        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i16")]
36934        #[cfg_attr(
36935            any(target_arch = "aarch64", target_arch = "arm64ec"),
36936            link_name = "llvm.aarch64.neon.sqrshl.v8i16"
36937        )]
36938        fn _vqrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
36939    }
36940    unsafe { _vqrshlq_s16(a, b) }
36941}
36942#[doc = "Signed saturating rounding shift left"]
36943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s32)"]
36944#[inline(always)]
36945#[target_feature(enable = "neon")]
36946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36947#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36948#[cfg_attr(
36949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36950    assert_instr(sqrshl)
36951)]
36952#[cfg_attr(
36953    not(target_arch = "arm"),
36954    stable(feature = "neon_intrinsics", since = "1.59.0")
36955)]
36956#[cfg_attr(
36957    target_arch = "arm",
36958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36959)]
36960pub fn vqrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
36961    unsafe extern "unadjusted" {
36962        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i32")]
36963        #[cfg_attr(
36964            any(target_arch = "aarch64", target_arch = "arm64ec"),
36965            link_name = "llvm.aarch64.neon.sqrshl.v2i32"
36966        )]
36967        fn _vqrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
36968    }
36969    unsafe { _vqrshl_s32(a, b) }
36970}
36971#[doc = "Signed saturating rounding shift left"]
36972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s32)"]
36973#[inline(always)]
36974#[target_feature(enable = "neon")]
36975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36976#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36977#[cfg_attr(
36978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36979    assert_instr(sqrshl)
36980)]
36981#[cfg_attr(
36982    not(target_arch = "arm"),
36983    stable(feature = "neon_intrinsics", since = "1.59.0")
36984)]
36985#[cfg_attr(
36986    target_arch = "arm",
36987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36988)]
36989pub fn vqrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
36990    unsafe extern "unadjusted" {
36991        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i32")]
36992        #[cfg_attr(
36993            any(target_arch = "aarch64", target_arch = "arm64ec"),
36994            link_name = "llvm.aarch64.neon.sqrshl.v4i32"
36995        )]
36996        fn _vqrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
36997    }
36998    unsafe { _vqrshlq_s32(a, b) }
36999}
37000#[doc = "Signed saturating rounding shift left"]
37001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s64)"]
37002#[inline(always)]
37003#[target_feature(enable = "neon")]
37004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37005#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37006#[cfg_attr(
37007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37008    assert_instr(sqrshl)
37009)]
37010#[cfg_attr(
37011    not(target_arch = "arm"),
37012    stable(feature = "neon_intrinsics", since = "1.59.0")
37013)]
37014#[cfg_attr(
37015    target_arch = "arm",
37016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37017)]
37018pub fn vqrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
37019    unsafe extern "unadjusted" {
37020        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v1i64")]
37021        #[cfg_attr(
37022            any(target_arch = "aarch64", target_arch = "arm64ec"),
37023            link_name = "llvm.aarch64.neon.sqrshl.v1i64"
37024        )]
37025        fn _vqrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
37026    }
37027    unsafe { _vqrshl_s64(a, b) }
37028}
37029#[doc = "Signed saturating rounding shift left"]
37030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s64)"]
37031#[inline(always)]
37032#[target_feature(enable = "neon")]
37033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37034#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37035#[cfg_attr(
37036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37037    assert_instr(sqrshl)
37038)]
37039#[cfg_attr(
37040    not(target_arch = "arm"),
37041    stable(feature = "neon_intrinsics", since = "1.59.0")
37042)]
37043#[cfg_attr(
37044    target_arch = "arm",
37045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37046)]
37047pub fn vqrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
37048    unsafe extern "unadjusted" {
37049        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i64")]
37050        #[cfg_attr(
37051            any(target_arch = "aarch64", target_arch = "arm64ec"),
37052            link_name = "llvm.aarch64.neon.sqrshl.v2i64"
37053        )]
37054        fn _vqrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
37055    }
37056    unsafe { _vqrshlq_s64(a, b) }
37057}
37058#[doc = "Unsigned signed saturating rounding shift left"]
37059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u8)"]
37060#[inline(always)]
37061#[target_feature(enable = "neon")]
37062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37063#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37064#[cfg_attr(
37065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37066    assert_instr(uqrshl)
37067)]
37068#[cfg_attr(
37069    not(target_arch = "arm"),
37070    stable(feature = "neon_intrinsics", since = "1.59.0")
37071)]
37072#[cfg_attr(
37073    target_arch = "arm",
37074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37075)]
37076pub fn vqrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
37077    unsafe extern "unadjusted" {
37078        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i8")]
37079        #[cfg_attr(
37080            any(target_arch = "aarch64", target_arch = "arm64ec"),
37081            link_name = "llvm.aarch64.neon.uqrshl.v8i8"
37082        )]
37083        fn _vqrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
37084    }
37085    unsafe { _vqrshl_u8(a, b) }
37086}
37087#[doc = "Unsigned signed saturating rounding shift left"]
37088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u8)"]
37089#[inline(always)]
37090#[target_feature(enable = "neon")]
37091#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37092#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37093#[cfg_attr(
37094    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37095    assert_instr(uqrshl)
37096)]
37097#[cfg_attr(
37098    not(target_arch = "arm"),
37099    stable(feature = "neon_intrinsics", since = "1.59.0")
37100)]
37101#[cfg_attr(
37102    target_arch = "arm",
37103    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37104)]
37105pub fn vqrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
37106    unsafe extern "unadjusted" {
37107        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v16i8")]
37108        #[cfg_attr(
37109            any(target_arch = "aarch64", target_arch = "arm64ec"),
37110            link_name = "llvm.aarch64.neon.uqrshl.v16i8"
37111        )]
37112        fn _vqrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
37113    }
37114    unsafe { _vqrshlq_u8(a, b) }
37115}
37116#[doc = "Unsigned signed saturating rounding shift left"]
37117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u16)"]
37118#[inline(always)]
37119#[target_feature(enable = "neon")]
37120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37121#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37122#[cfg_attr(
37123    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37124    assert_instr(uqrshl)
37125)]
37126#[cfg_attr(
37127    not(target_arch = "arm"),
37128    stable(feature = "neon_intrinsics", since = "1.59.0")
37129)]
37130#[cfg_attr(
37131    target_arch = "arm",
37132    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37133)]
37134pub fn vqrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
37135    unsafe extern "unadjusted" {
37136        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i16")]
37137        #[cfg_attr(
37138            any(target_arch = "aarch64", target_arch = "arm64ec"),
37139            link_name = "llvm.aarch64.neon.uqrshl.v4i16"
37140        )]
37141        fn _vqrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
37142    }
37143    unsafe { _vqrshl_u16(a, b) }
37144}
37145#[doc = "Unsigned signed saturating rounding shift left"]
37146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u16)"]
37147#[inline(always)]
37148#[target_feature(enable = "neon")]
37149#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37150#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37151#[cfg_attr(
37152    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37153    assert_instr(uqrshl)
37154)]
37155#[cfg_attr(
37156    not(target_arch = "arm"),
37157    stable(feature = "neon_intrinsics", since = "1.59.0")
37158)]
37159#[cfg_attr(
37160    target_arch = "arm",
37161    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37162)]
37163pub fn vqrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
37164    unsafe extern "unadjusted" {
37165        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i16")]
37166        #[cfg_attr(
37167            any(target_arch = "aarch64", target_arch = "arm64ec"),
37168            link_name = "llvm.aarch64.neon.uqrshl.v8i16"
37169        )]
37170        fn _vqrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
37171    }
37172    unsafe { _vqrshlq_u16(a, b) }
37173}
37174#[doc = "Unsigned signed saturating rounding shift left"]
37175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u32)"]
37176#[inline(always)]
37177#[target_feature(enable = "neon")]
37178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37180#[cfg_attr(
37181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37182    assert_instr(uqrshl)
37183)]
37184#[cfg_attr(
37185    not(target_arch = "arm"),
37186    stable(feature = "neon_intrinsics", since = "1.59.0")
37187)]
37188#[cfg_attr(
37189    target_arch = "arm",
37190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37191)]
37192pub fn vqrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
37193    unsafe extern "unadjusted" {
37194        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i32")]
37195        #[cfg_attr(
37196            any(target_arch = "aarch64", target_arch = "arm64ec"),
37197            link_name = "llvm.aarch64.neon.uqrshl.v2i32"
37198        )]
37199        fn _vqrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
37200    }
37201    unsafe { _vqrshl_u32(a, b) }
37202}
37203#[doc = "Unsigned signed saturating rounding shift left"]
37204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u32)"]
37205#[inline(always)]
37206#[target_feature(enable = "neon")]
37207#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37208#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37209#[cfg_attr(
37210    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37211    assert_instr(uqrshl)
37212)]
37213#[cfg_attr(
37214    not(target_arch = "arm"),
37215    stable(feature = "neon_intrinsics", since = "1.59.0")
37216)]
37217#[cfg_attr(
37218    target_arch = "arm",
37219    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37220)]
37221pub fn vqrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
37222    unsafe extern "unadjusted" {
37223        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i32")]
37224        #[cfg_attr(
37225            any(target_arch = "aarch64", target_arch = "arm64ec"),
37226            link_name = "llvm.aarch64.neon.uqrshl.v4i32"
37227        )]
37228        fn _vqrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
37229    }
37230    unsafe { _vqrshlq_u32(a, b) }
37231}
37232#[doc = "Unsigned signed saturating rounding shift left"]
37233#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u64)"]
37234#[inline(always)]
37235#[target_feature(enable = "neon")]
37236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37237#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37238#[cfg_attr(
37239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37240    assert_instr(uqrshl)
37241)]
37242#[cfg_attr(
37243    not(target_arch = "arm"),
37244    stable(feature = "neon_intrinsics", since = "1.59.0")
37245)]
37246#[cfg_attr(
37247    target_arch = "arm",
37248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37249)]
37250pub fn vqrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
37251    unsafe extern "unadjusted" {
37252        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v1i64")]
37253        #[cfg_attr(
37254            any(target_arch = "aarch64", target_arch = "arm64ec"),
37255            link_name = "llvm.aarch64.neon.uqrshl.v1i64"
37256        )]
37257        fn _vqrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
37258    }
37259    unsafe { _vqrshl_u64(a, b) }
37260}
37261#[doc = "Unsigned signed saturating rounding shift left"]
37262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u64)"]
37263#[inline(always)]
37264#[target_feature(enable = "neon")]
37265#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37266#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37267#[cfg_attr(
37268    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37269    assert_instr(uqrshl)
37270)]
37271#[cfg_attr(
37272    not(target_arch = "arm"),
37273    stable(feature = "neon_intrinsics", since = "1.59.0")
37274)]
37275#[cfg_attr(
37276    target_arch = "arm",
37277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37278)]
37279pub fn vqrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
37280    unsafe extern "unadjusted" {
37281        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i64")]
37282        #[cfg_attr(
37283            any(target_arch = "aarch64", target_arch = "arm64ec"),
37284            link_name = "llvm.aarch64.neon.uqrshl.v2i64"
37285        )]
37286        fn _vqrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
37287    }
37288    unsafe { _vqrshlq_u64(a, b) }
37289}
37290#[doc = "Signed saturating rounded shift right narrow"]
37291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"]
37292#[inline(always)]
37293#[cfg(target_arch = "arm")]
37294#[target_feature(enable = "neon,v7")]
37295#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37296#[rustc_legacy_const_generics(1)]
37297#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37298pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
37299    static_assert!(N >= 1 && N <= 8);
37300    unsafe extern "unadjusted" {
37301        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v8i8")]
37302        fn _vqrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
37303    }
37304    unsafe { _vqrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
37305}
37306#[doc = "Signed saturating rounded shift right narrow"]
37307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"]
37308#[inline(always)]
37309#[cfg(target_arch = "arm")]
37310#[target_feature(enable = "neon,v7")]
37311#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37312#[rustc_legacy_const_generics(1)]
37313#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37314pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
37315    static_assert!(N >= 1 && N <= 16);
37316    unsafe extern "unadjusted" {
37317        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v4i16")]
37318        fn _vqrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
37319    }
37320    unsafe { _vqrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
37321}
37322#[doc = "Signed saturating rounded shift right narrow"]
37323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"]
37324#[inline(always)]
37325#[cfg(target_arch = "arm")]
37326#[target_feature(enable = "neon,v7")]
37327#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37328#[rustc_legacy_const_generics(1)]
37329#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37330pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
37331    static_assert!(N >= 1 && N <= 32);
37332    unsafe extern "unadjusted" {
37333        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v2i32")]
37334        fn _vqrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
37335    }
37336    unsafe { _vqrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
37337}
37338#[doc = "Signed saturating rounded shift right narrow"]
37339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"]
37340#[inline(always)]
37341#[target_feature(enable = "neon")]
37342#[cfg(not(target_arch = "arm"))]
37343#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
37344#[rustc_legacy_const_generics(1)]
37345#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37346pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
37347    static_assert!(N >= 1 && N <= 8);
37348    unsafe extern "unadjusted" {
37349        #[cfg_attr(
37350            any(target_arch = "aarch64", target_arch = "arm64ec"),
37351            link_name = "llvm.aarch64.neon.sqrshrn.v8i8"
37352        )]
37353        fn _vqrshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
37354    }
37355    unsafe { _vqrshrn_n_s16(a, N) }
37356}
37357#[doc = "Signed saturating rounded shift right narrow"]
37358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"]
37359#[inline(always)]
37360#[target_feature(enable = "neon")]
37361#[cfg(not(target_arch = "arm"))]
37362#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
37363#[rustc_legacy_const_generics(1)]
37364#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37365pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
37366    static_assert!(N >= 1 && N <= 16);
37367    unsafe extern "unadjusted" {
37368        #[cfg_attr(
37369            any(target_arch = "aarch64", target_arch = "arm64ec"),
37370            link_name = "llvm.aarch64.neon.sqrshrn.v4i16"
37371        )]
37372        fn _vqrshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
37373    }
37374    unsafe { _vqrshrn_n_s32(a, N) }
37375}
37376#[doc = "Signed saturating rounded shift right narrow"]
37377#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"]
37378#[inline(always)]
37379#[target_feature(enable = "neon")]
37380#[cfg(not(target_arch = "arm"))]
37381#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
37382#[rustc_legacy_const_generics(1)]
37383#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37384pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
37385    static_assert!(N >= 1 && N <= 32);
37386    unsafe extern "unadjusted" {
37387        #[cfg_attr(
37388            any(target_arch = "aarch64", target_arch = "arm64ec"),
37389            link_name = "llvm.aarch64.neon.sqrshrn.v2i32"
37390        )]
37391        fn _vqrshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
37392    }
37393    unsafe { _vqrshrn_n_s64(a, N) }
37394}
37395#[doc = "Unsigned signed saturating rounded shift right narrow"]
37396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)"]
37397#[inline(always)]
37398#[cfg(target_arch = "arm")]
37399#[target_feature(enable = "neon,v7")]
37400#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37401#[rustc_legacy_const_generics(1)]
37402#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37403pub fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
37404    static_assert!(N >= 1 && N <= 8);
37405    unsafe extern "unadjusted" {
37406        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v8i8")]
37407        fn _vqrshrn_n_u16(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
37408    }
37409    unsafe { _vqrshrn_n_u16(a, const { uint16x8_t([-N as u16; 8]) }) }
37410}
37411#[doc = "Unsigned signed saturating rounded shift right narrow"]
37412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)"]
37413#[inline(always)]
37414#[cfg(target_arch = "arm")]
37415#[target_feature(enable = "neon,v7")]
37416#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37417#[rustc_legacy_const_generics(1)]
37418#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37419pub fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
37420    static_assert!(N >= 1 && N <= 16);
37421    unsafe extern "unadjusted" {
37422        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v4i16")]
37423        fn _vqrshrn_n_u32(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
37424    }
37425    unsafe { _vqrshrn_n_u32(a, const { uint32x4_t([-N as u32; 4]) }) }
37426}
37427#[doc = "Unsigned signed saturating rounded shift right narrow"]
37428#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)"]
37429#[inline(always)]
37430#[cfg(target_arch = "arm")]
37431#[target_feature(enable = "neon,v7")]
37432#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37433#[rustc_legacy_const_generics(1)]
37434#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37435pub fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
37436    static_assert!(N >= 1 && N <= 32);
37437    unsafe extern "unadjusted" {
37438        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v2i32")]
37439        fn _vqrshrn_n_u64(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
37440    }
37441    unsafe { _vqrshrn_n_u64(a, const { uint64x2_t([-N as u64; 2]) }) }
37442}
37443#[doc = "Unsigned signed saturating rounded shift right narrow"]
37444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)"]
37445#[inline(always)]
37446#[target_feature(enable = "neon")]
37447#[cfg(not(target_arch = "arm"))]
37448#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
37449#[rustc_legacy_const_generics(1)]
37450#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37451pub fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
37452    static_assert!(N >= 1 && N <= 8);
37453    unsafe extern "unadjusted" {
37454        #[cfg_attr(
37455            any(target_arch = "aarch64", target_arch = "arm64ec"),
37456            link_name = "llvm.aarch64.neon.uqrshrn.v8i8"
37457        )]
37458        fn _vqrshrn_n_u16(a: uint16x8_t, n: i32) -> uint8x8_t;
37459    }
37460    unsafe { _vqrshrn_n_u16(a, N) }
37461}
37462#[doc = "Unsigned signed saturating rounded shift right narrow"]
37463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)"]
37464#[inline(always)]
37465#[target_feature(enable = "neon")]
37466#[cfg(not(target_arch = "arm"))]
37467#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
37468#[rustc_legacy_const_generics(1)]
37469#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37470pub fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
37471    static_assert!(N >= 1 && N <= 16);
37472    unsafe extern "unadjusted" {
37473        #[cfg_attr(
37474            any(target_arch = "aarch64", target_arch = "arm64ec"),
37475            link_name = "llvm.aarch64.neon.uqrshrn.v4i16"
37476        )]
37477        fn _vqrshrn_n_u32(a: uint32x4_t, n: i32) -> uint16x4_t;
37478    }
37479    unsafe { _vqrshrn_n_u32(a, N) }
37480}
37481#[doc = "Unsigned signed saturating rounded shift right narrow"]
37482#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)"]
37483#[inline(always)]
37484#[target_feature(enable = "neon")]
37485#[cfg(not(target_arch = "arm"))]
37486#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
37487#[rustc_legacy_const_generics(1)]
37488#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37489pub fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
37490    static_assert!(N >= 1 && N <= 32);
37491    unsafe extern "unadjusted" {
37492        #[cfg_attr(
37493            any(target_arch = "aarch64", target_arch = "arm64ec"),
37494            link_name = "llvm.aarch64.neon.uqrshrn.v2i32"
37495        )]
37496        fn _vqrshrn_n_u64(a: uint64x2_t, n: i32) -> uint32x2_t;
37497    }
37498    unsafe { _vqrshrn_n_u64(a, N) }
37499}
37500#[doc = "Signed saturating rounded shift right unsigned narrow"]
37501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"]
37502#[inline(always)]
37503#[cfg(target_arch = "arm")]
37504#[target_feature(enable = "neon,v7")]
37505#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
37506#[rustc_legacy_const_generics(1)]
37507#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37508pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
37509    static_assert!(N >= 1 && N <= 8);
37510    unsafe extern "unadjusted" {
37511        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v8i8")]
37512        fn _vqrshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
37513    }
37514    unsafe { _vqrshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
37515}
37516#[doc = "Signed saturating rounded shift right unsigned narrow"]
37517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"]
37518#[inline(always)]
37519#[cfg(target_arch = "arm")]
37520#[target_feature(enable = "neon,v7")]
37521#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
37522#[rustc_legacy_const_generics(1)]
37523#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37524pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
37525    static_assert!(N >= 1 && N <= 16);
37526    unsafe extern "unadjusted" {
37527        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v4i16")]
37528        fn _vqrshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
37529    }
37530    unsafe { _vqrshrun_n_s32(a, const { int32x4_t([-N; 4]) }) }
37531}
37532#[doc = "Signed saturating rounded shift right unsigned narrow"]
37533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"]
37534#[inline(always)]
37535#[cfg(target_arch = "arm")]
37536#[target_feature(enable = "neon,v7")]
37537#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
37538#[rustc_legacy_const_generics(1)]
37539#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37540pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
37541    static_assert!(N >= 1 && N <= 32);
37542    unsafe extern "unadjusted" {
37543        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v2i32")]
37544        fn _vqrshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
37545    }
37546    unsafe { _vqrshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
37547}
37548#[doc = "Signed saturating rounded shift right unsigned narrow"]
37549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"]
37550#[inline(always)]
37551#[target_feature(enable = "neon")]
37552#[cfg(not(target_arch = "arm"))]
37553#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
37554#[rustc_legacy_const_generics(1)]
37555#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37556pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
37557    static_assert!(N >= 1 && N <= 8);
37558    unsafe extern "unadjusted" {
37559        #[cfg_attr(
37560            any(target_arch = "aarch64", target_arch = "arm64ec"),
37561            link_name = "llvm.aarch64.neon.sqrshrun.v8i8"
37562        )]
37563        fn _vqrshrun_n_s16(a: int16x8_t, n: i32) -> uint8x8_t;
37564    }
37565    unsafe { _vqrshrun_n_s16(a, N) }
37566}
37567#[doc = "Signed saturating rounded shift right unsigned narrow"]
37568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"]
37569#[inline(always)]
37570#[target_feature(enable = "neon")]
37571#[cfg(not(target_arch = "arm"))]
37572#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
37573#[rustc_legacy_const_generics(1)]
37574#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37575pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
37576    static_assert!(N >= 1 && N <= 16);
37577    unsafe extern "unadjusted" {
37578        #[cfg_attr(
37579            any(target_arch = "aarch64", target_arch = "arm64ec"),
37580            link_name = "llvm.aarch64.neon.sqrshrun.v4i16"
37581        )]
37582        fn _vqrshrun_n_s32(a: int32x4_t, n: i32) -> uint16x4_t;
37583    }
37584    unsafe { _vqrshrun_n_s32(a, N) }
37585}
37586#[doc = "Signed saturating rounded shift right unsigned narrow"]
37587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"]
37588#[inline(always)]
37589#[target_feature(enable = "neon")]
37590#[cfg(not(target_arch = "arm"))]
37591#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
37592#[rustc_legacy_const_generics(1)]
37593#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37594pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
37595    static_assert!(N >= 1 && N <= 32);
37596    unsafe extern "unadjusted" {
37597        #[cfg_attr(
37598            any(target_arch = "aarch64", target_arch = "arm64ec"),
37599            link_name = "llvm.aarch64.neon.sqrshrun.v2i32"
37600        )]
37601        fn _vqrshrun_n_s64(a: int64x2_t, n: i32) -> uint32x2_t;
37602    }
37603    unsafe { _vqrshrun_n_s64(a, N) }
37604}
37605#[doc = "Signed saturating shift left"]
37606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s8)"]
37607#[inline(always)]
37608#[target_feature(enable = "neon")]
37609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37611#[cfg_attr(
37612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37613    assert_instr(sqshl, N = 2)
37614)]
37615#[rustc_legacy_const_generics(1)]
37616#[cfg_attr(
37617    not(target_arch = "arm"),
37618    stable(feature = "neon_intrinsics", since = "1.59.0")
37619)]
37620#[cfg_attr(
37621    target_arch = "arm",
37622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37623)]
37624pub fn vqshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
37625    static_assert_uimm_bits!(N, 3);
37626    vqshl_s8(a, vdup_n_s8(N as _))
37627}
37628#[doc = "Signed saturating shift left"]
37629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s8)"]
37630#[inline(always)]
37631#[target_feature(enable = "neon")]
37632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37633#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37634#[cfg_attr(
37635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37636    assert_instr(sqshl, N = 2)
37637)]
37638#[rustc_legacy_const_generics(1)]
37639#[cfg_attr(
37640    not(target_arch = "arm"),
37641    stable(feature = "neon_intrinsics", since = "1.59.0")
37642)]
37643#[cfg_attr(
37644    target_arch = "arm",
37645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37646)]
37647pub fn vqshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
37648    static_assert_uimm_bits!(N, 3);
37649    vqshlq_s8(a, vdupq_n_s8(N as _))
37650}
37651#[doc = "Signed saturating shift left"]
37652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s16)"]
37653#[inline(always)]
37654#[target_feature(enable = "neon")]
37655#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37657#[cfg_attr(
37658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37659    assert_instr(sqshl, N = 2)
37660)]
37661#[rustc_legacy_const_generics(1)]
37662#[cfg_attr(
37663    not(target_arch = "arm"),
37664    stable(feature = "neon_intrinsics", since = "1.59.0")
37665)]
37666#[cfg_attr(
37667    target_arch = "arm",
37668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37669)]
37670pub fn vqshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
37671    static_assert_uimm_bits!(N, 4);
37672    vqshl_s16(a, vdup_n_s16(N as _))
37673}
37674#[doc = "Signed saturating shift left"]
37675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s16)"]
37676#[inline(always)]
37677#[target_feature(enable = "neon")]
37678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37680#[cfg_attr(
37681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37682    assert_instr(sqshl, N = 2)
37683)]
37684#[rustc_legacy_const_generics(1)]
37685#[cfg_attr(
37686    not(target_arch = "arm"),
37687    stable(feature = "neon_intrinsics", since = "1.59.0")
37688)]
37689#[cfg_attr(
37690    target_arch = "arm",
37691    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37692)]
37693pub fn vqshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
37694    static_assert_uimm_bits!(N, 4);
37695    vqshlq_s16(a, vdupq_n_s16(N as _))
37696}
37697#[doc = "Signed saturating shift left"]
37698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s32)"]
37699#[inline(always)]
37700#[target_feature(enable = "neon")]
37701#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37702#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37703#[cfg_attr(
37704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37705    assert_instr(sqshl, N = 2)
37706)]
37707#[rustc_legacy_const_generics(1)]
37708#[cfg_attr(
37709    not(target_arch = "arm"),
37710    stable(feature = "neon_intrinsics", since = "1.59.0")
37711)]
37712#[cfg_attr(
37713    target_arch = "arm",
37714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37715)]
37716pub fn vqshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
37717    static_assert_uimm_bits!(N, 5);
37718    vqshl_s32(a, vdup_n_s32(N as _))
37719}
37720#[doc = "Signed saturating shift left"]
37721#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s32)"]
37722#[inline(always)]
37723#[target_feature(enable = "neon")]
37724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37726#[cfg_attr(
37727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37728    assert_instr(sqshl, N = 2)
37729)]
37730#[rustc_legacy_const_generics(1)]
37731#[cfg_attr(
37732    not(target_arch = "arm"),
37733    stable(feature = "neon_intrinsics", since = "1.59.0")
37734)]
37735#[cfg_attr(
37736    target_arch = "arm",
37737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37738)]
37739pub fn vqshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
37740    static_assert_uimm_bits!(N, 5);
37741    vqshlq_s32(a, vdupq_n_s32(N as _))
37742}
37743#[doc = "Signed saturating shift left"]
37744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s64)"]
37745#[inline(always)]
37746#[target_feature(enable = "neon")]
37747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37749#[cfg_attr(
37750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37751    assert_instr(sqshl, N = 2)
37752)]
37753#[rustc_legacy_const_generics(1)]
37754#[cfg_attr(
37755    not(target_arch = "arm"),
37756    stable(feature = "neon_intrinsics", since = "1.59.0")
37757)]
37758#[cfg_attr(
37759    target_arch = "arm",
37760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37761)]
37762pub fn vqshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
37763    static_assert_uimm_bits!(N, 6);
37764    vqshl_s64(a, vdup_n_s64(N as _))
37765}
37766#[doc = "Signed saturating shift left"]
37767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s64)"]
37768#[inline(always)]
37769#[target_feature(enable = "neon")]
37770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37772#[cfg_attr(
37773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37774    assert_instr(sqshl, N = 2)
37775)]
37776#[rustc_legacy_const_generics(1)]
37777#[cfg_attr(
37778    not(target_arch = "arm"),
37779    stable(feature = "neon_intrinsics", since = "1.59.0")
37780)]
37781#[cfg_attr(
37782    target_arch = "arm",
37783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37784)]
37785pub fn vqshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
37786    static_assert_uimm_bits!(N, 6);
37787    vqshlq_s64(a, vdupq_n_s64(N as _))
37788}
37789#[doc = "Unsigned saturating shift left"]
37790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u8)"]
37791#[inline(always)]
37792#[target_feature(enable = "neon")]
37793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37794#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37795#[cfg_attr(
37796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37797    assert_instr(uqshl, N = 2)
37798)]
37799#[rustc_legacy_const_generics(1)]
37800#[cfg_attr(
37801    not(target_arch = "arm"),
37802    stable(feature = "neon_intrinsics", since = "1.59.0")
37803)]
37804#[cfg_attr(
37805    target_arch = "arm",
37806    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37807)]
37808pub fn vqshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
37809    static_assert_uimm_bits!(N, 3);
37810    vqshl_u8(a, vdup_n_s8(N as _))
37811}
37812#[doc = "Unsigned saturating shift left"]
37813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u8)"]
37814#[inline(always)]
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(vqshl, N = 2))]
37818#[cfg_attr(
37819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37820    assert_instr(uqshl, N = 2)
37821)]
37822#[rustc_legacy_const_generics(1)]
37823#[cfg_attr(
37824    not(target_arch = "arm"),
37825    stable(feature = "neon_intrinsics", since = "1.59.0")
37826)]
37827#[cfg_attr(
37828    target_arch = "arm",
37829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37830)]
37831pub fn vqshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
37832    static_assert_uimm_bits!(N, 3);
37833    vqshlq_u8(a, vdupq_n_s8(N as _))
37834}
37835#[doc = "Unsigned saturating shift left"]
37836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u16)"]
37837#[inline(always)]
37838#[target_feature(enable = "neon")]
37839#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37840#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37841#[cfg_attr(
37842    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37843    assert_instr(uqshl, N = 2)
37844)]
37845#[rustc_legacy_const_generics(1)]
37846#[cfg_attr(
37847    not(target_arch = "arm"),
37848    stable(feature = "neon_intrinsics", since = "1.59.0")
37849)]
37850#[cfg_attr(
37851    target_arch = "arm",
37852    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37853)]
37854pub fn vqshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
37855    static_assert_uimm_bits!(N, 4);
37856    vqshl_u16(a, vdup_n_s16(N as _))
37857}
37858#[doc = "Unsigned saturating shift left"]
37859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u16)"]
37860#[inline(always)]
37861#[target_feature(enable = "neon")]
37862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37864#[cfg_attr(
37865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37866    assert_instr(uqshl, N = 2)
37867)]
37868#[rustc_legacy_const_generics(1)]
37869#[cfg_attr(
37870    not(target_arch = "arm"),
37871    stable(feature = "neon_intrinsics", since = "1.59.0")
37872)]
37873#[cfg_attr(
37874    target_arch = "arm",
37875    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37876)]
37877pub fn vqshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
37878    static_assert_uimm_bits!(N, 4);
37879    vqshlq_u16(a, vdupq_n_s16(N as _))
37880}
37881#[doc = "Unsigned saturating shift left"]
37882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u32)"]
37883#[inline(always)]
37884#[target_feature(enable = "neon")]
37885#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37886#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37887#[cfg_attr(
37888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37889    assert_instr(uqshl, N = 2)
37890)]
37891#[rustc_legacy_const_generics(1)]
37892#[cfg_attr(
37893    not(target_arch = "arm"),
37894    stable(feature = "neon_intrinsics", since = "1.59.0")
37895)]
37896#[cfg_attr(
37897    target_arch = "arm",
37898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37899)]
37900pub fn vqshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
37901    static_assert_uimm_bits!(N, 5);
37902    vqshl_u32(a, vdup_n_s32(N as _))
37903}
37904#[doc = "Unsigned saturating shift left"]
37905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u32)"]
37906#[inline(always)]
37907#[target_feature(enable = "neon")]
37908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37909#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37910#[cfg_attr(
37911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37912    assert_instr(uqshl, N = 2)
37913)]
37914#[rustc_legacy_const_generics(1)]
37915#[cfg_attr(
37916    not(target_arch = "arm"),
37917    stable(feature = "neon_intrinsics", since = "1.59.0")
37918)]
37919#[cfg_attr(
37920    target_arch = "arm",
37921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37922)]
37923pub fn vqshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
37924    static_assert_uimm_bits!(N, 5);
37925    vqshlq_u32(a, vdupq_n_s32(N as _))
37926}
37927#[doc = "Unsigned saturating shift left"]
37928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u64)"]
37929#[inline(always)]
37930#[target_feature(enable = "neon")]
37931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37933#[cfg_attr(
37934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37935    assert_instr(uqshl, N = 2)
37936)]
37937#[rustc_legacy_const_generics(1)]
37938#[cfg_attr(
37939    not(target_arch = "arm"),
37940    stable(feature = "neon_intrinsics", since = "1.59.0")
37941)]
37942#[cfg_attr(
37943    target_arch = "arm",
37944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37945)]
37946pub fn vqshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
37947    static_assert_uimm_bits!(N, 6);
37948    vqshl_u64(a, vdup_n_s64(N as _))
37949}
37950#[doc = "Unsigned saturating shift left"]
37951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u64)"]
37952#[inline(always)]
37953#[target_feature(enable = "neon")]
37954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37956#[cfg_attr(
37957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37958    assert_instr(uqshl, N = 2)
37959)]
37960#[rustc_legacy_const_generics(1)]
37961#[cfg_attr(
37962    not(target_arch = "arm"),
37963    stable(feature = "neon_intrinsics", since = "1.59.0")
37964)]
37965#[cfg_attr(
37966    target_arch = "arm",
37967    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37968)]
37969pub fn vqshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
37970    static_assert_uimm_bits!(N, 6);
37971    vqshlq_u64(a, vdupq_n_s64(N as _))
37972}
37973#[doc = "Signed saturating shift left"]
37974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s8)"]
37975#[inline(always)]
37976#[target_feature(enable = "neon")]
37977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37978#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
37979#[cfg_attr(
37980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37981    assert_instr(sqshl)
37982)]
37983#[cfg_attr(
37984    not(target_arch = "arm"),
37985    stable(feature = "neon_intrinsics", since = "1.59.0")
37986)]
37987#[cfg_attr(
37988    target_arch = "arm",
37989    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37990)]
37991pub fn vqshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
37992    unsafe extern "unadjusted" {
37993        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i8")]
37994        #[cfg_attr(
37995            any(target_arch = "aarch64", target_arch = "arm64ec"),
37996            link_name = "llvm.aarch64.neon.sqshl.v8i8"
37997        )]
37998        fn _vqshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
37999    }
38000    unsafe { _vqshl_s8(a, b) }
38001}
38002#[doc = "Signed saturating shift left"]
38003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s8)"]
38004#[inline(always)]
38005#[target_feature(enable = "neon")]
38006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38008#[cfg_attr(
38009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38010    assert_instr(sqshl)
38011)]
38012#[cfg_attr(
38013    not(target_arch = "arm"),
38014    stable(feature = "neon_intrinsics", since = "1.59.0")
38015)]
38016#[cfg_attr(
38017    target_arch = "arm",
38018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38019)]
38020pub fn vqshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
38021    unsafe extern "unadjusted" {
38022        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v16i8")]
38023        #[cfg_attr(
38024            any(target_arch = "aarch64", target_arch = "arm64ec"),
38025            link_name = "llvm.aarch64.neon.sqshl.v16i8"
38026        )]
38027        fn _vqshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
38028    }
38029    unsafe { _vqshlq_s8(a, b) }
38030}
38031#[doc = "Signed saturating shift left"]
38032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s16)"]
38033#[inline(always)]
38034#[target_feature(enable = "neon")]
38035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38037#[cfg_attr(
38038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38039    assert_instr(sqshl)
38040)]
38041#[cfg_attr(
38042    not(target_arch = "arm"),
38043    stable(feature = "neon_intrinsics", since = "1.59.0")
38044)]
38045#[cfg_attr(
38046    target_arch = "arm",
38047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38048)]
38049pub fn vqshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
38050    unsafe extern "unadjusted" {
38051        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i16")]
38052        #[cfg_attr(
38053            any(target_arch = "aarch64", target_arch = "arm64ec"),
38054            link_name = "llvm.aarch64.neon.sqshl.v4i16"
38055        )]
38056        fn _vqshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
38057    }
38058    unsafe { _vqshl_s16(a, b) }
38059}
38060#[doc = "Signed saturating shift left"]
38061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s16)"]
38062#[inline(always)]
38063#[target_feature(enable = "neon")]
38064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38066#[cfg_attr(
38067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38068    assert_instr(sqshl)
38069)]
38070#[cfg_attr(
38071    not(target_arch = "arm"),
38072    stable(feature = "neon_intrinsics", since = "1.59.0")
38073)]
38074#[cfg_attr(
38075    target_arch = "arm",
38076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38077)]
38078pub fn vqshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
38079    unsafe extern "unadjusted" {
38080        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i16")]
38081        #[cfg_attr(
38082            any(target_arch = "aarch64", target_arch = "arm64ec"),
38083            link_name = "llvm.aarch64.neon.sqshl.v8i16"
38084        )]
38085        fn _vqshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
38086    }
38087    unsafe { _vqshlq_s16(a, b) }
38088}
38089#[doc = "Signed saturating shift left"]
38090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s32)"]
38091#[inline(always)]
38092#[target_feature(enable = "neon")]
38093#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38094#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38095#[cfg_attr(
38096    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38097    assert_instr(sqshl)
38098)]
38099#[cfg_attr(
38100    not(target_arch = "arm"),
38101    stable(feature = "neon_intrinsics", since = "1.59.0")
38102)]
38103#[cfg_attr(
38104    target_arch = "arm",
38105    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38106)]
38107pub fn vqshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
38108    unsafe extern "unadjusted" {
38109        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i32")]
38110        #[cfg_attr(
38111            any(target_arch = "aarch64", target_arch = "arm64ec"),
38112            link_name = "llvm.aarch64.neon.sqshl.v2i32"
38113        )]
38114        fn _vqshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
38115    }
38116    unsafe { _vqshl_s32(a, b) }
38117}
38118#[doc = "Signed saturating shift left"]
38119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s32)"]
38120#[inline(always)]
38121#[target_feature(enable = "neon")]
38122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38124#[cfg_attr(
38125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38126    assert_instr(sqshl)
38127)]
38128#[cfg_attr(
38129    not(target_arch = "arm"),
38130    stable(feature = "neon_intrinsics", since = "1.59.0")
38131)]
38132#[cfg_attr(
38133    target_arch = "arm",
38134    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38135)]
38136pub fn vqshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
38137    unsafe extern "unadjusted" {
38138        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i32")]
38139        #[cfg_attr(
38140            any(target_arch = "aarch64", target_arch = "arm64ec"),
38141            link_name = "llvm.aarch64.neon.sqshl.v4i32"
38142        )]
38143        fn _vqshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
38144    }
38145    unsafe { _vqshlq_s32(a, b) }
38146}
38147#[doc = "Signed saturating shift left"]
38148#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s64)"]
38149#[inline(always)]
38150#[target_feature(enable = "neon")]
38151#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38152#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38153#[cfg_attr(
38154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38155    assert_instr(sqshl)
38156)]
38157#[cfg_attr(
38158    not(target_arch = "arm"),
38159    stable(feature = "neon_intrinsics", since = "1.59.0")
38160)]
38161#[cfg_attr(
38162    target_arch = "arm",
38163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38164)]
38165pub fn vqshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
38166    unsafe extern "unadjusted" {
38167        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v1i64")]
38168        #[cfg_attr(
38169            any(target_arch = "aarch64", target_arch = "arm64ec"),
38170            link_name = "llvm.aarch64.neon.sqshl.v1i64"
38171        )]
38172        fn _vqshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
38173    }
38174    unsafe { _vqshl_s64(a, b) }
38175}
38176#[doc = "Signed saturating shift left"]
38177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s64)"]
38178#[inline(always)]
38179#[target_feature(enable = "neon")]
38180#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38181#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38182#[cfg_attr(
38183    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38184    assert_instr(sqshl)
38185)]
38186#[cfg_attr(
38187    not(target_arch = "arm"),
38188    stable(feature = "neon_intrinsics", since = "1.59.0")
38189)]
38190#[cfg_attr(
38191    target_arch = "arm",
38192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38193)]
38194pub fn vqshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
38195    unsafe extern "unadjusted" {
38196        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i64")]
38197        #[cfg_attr(
38198            any(target_arch = "aarch64", target_arch = "arm64ec"),
38199            link_name = "llvm.aarch64.neon.sqshl.v2i64"
38200        )]
38201        fn _vqshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
38202    }
38203    unsafe { _vqshlq_s64(a, b) }
38204}
38205#[doc = "Unsigned saturating shift left"]
38206#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u8)"]
38207#[inline(always)]
38208#[target_feature(enable = "neon")]
38209#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38210#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38211#[cfg_attr(
38212    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38213    assert_instr(uqshl)
38214)]
38215#[cfg_attr(
38216    not(target_arch = "arm"),
38217    stable(feature = "neon_intrinsics", since = "1.59.0")
38218)]
38219#[cfg_attr(
38220    target_arch = "arm",
38221    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38222)]
38223pub fn vqshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
38224    unsafe extern "unadjusted" {
38225        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i8")]
38226        #[cfg_attr(
38227            any(target_arch = "aarch64", target_arch = "arm64ec"),
38228            link_name = "llvm.aarch64.neon.uqshl.v8i8"
38229        )]
38230        fn _vqshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
38231    }
38232    unsafe { _vqshl_u8(a, b) }
38233}
38234#[doc = "Unsigned saturating shift left"]
38235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u8)"]
38236#[inline(always)]
38237#[target_feature(enable = "neon")]
38238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38239#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38240#[cfg_attr(
38241    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38242    assert_instr(uqshl)
38243)]
38244#[cfg_attr(
38245    not(target_arch = "arm"),
38246    stable(feature = "neon_intrinsics", since = "1.59.0")
38247)]
38248#[cfg_attr(
38249    target_arch = "arm",
38250    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38251)]
38252pub fn vqshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
38253    unsafe extern "unadjusted" {
38254        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v16i8")]
38255        #[cfg_attr(
38256            any(target_arch = "aarch64", target_arch = "arm64ec"),
38257            link_name = "llvm.aarch64.neon.uqshl.v16i8"
38258        )]
38259        fn _vqshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
38260    }
38261    unsafe { _vqshlq_u8(a, b) }
38262}
38263#[doc = "Unsigned saturating shift left"]
38264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u16)"]
38265#[inline(always)]
38266#[target_feature(enable = "neon")]
38267#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38268#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38269#[cfg_attr(
38270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38271    assert_instr(uqshl)
38272)]
38273#[cfg_attr(
38274    not(target_arch = "arm"),
38275    stable(feature = "neon_intrinsics", since = "1.59.0")
38276)]
38277#[cfg_attr(
38278    target_arch = "arm",
38279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38280)]
38281pub fn vqshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
38282    unsafe extern "unadjusted" {
38283        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i16")]
38284        #[cfg_attr(
38285            any(target_arch = "aarch64", target_arch = "arm64ec"),
38286            link_name = "llvm.aarch64.neon.uqshl.v4i16"
38287        )]
38288        fn _vqshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
38289    }
38290    unsafe { _vqshl_u16(a, b) }
38291}
38292#[doc = "Unsigned saturating shift left"]
38293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u16)"]
38294#[inline(always)]
38295#[target_feature(enable = "neon")]
38296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38298#[cfg_attr(
38299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38300    assert_instr(uqshl)
38301)]
38302#[cfg_attr(
38303    not(target_arch = "arm"),
38304    stable(feature = "neon_intrinsics", since = "1.59.0")
38305)]
38306#[cfg_attr(
38307    target_arch = "arm",
38308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38309)]
38310pub fn vqshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
38311    unsafe extern "unadjusted" {
38312        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i16")]
38313        #[cfg_attr(
38314            any(target_arch = "aarch64", target_arch = "arm64ec"),
38315            link_name = "llvm.aarch64.neon.uqshl.v8i16"
38316        )]
38317        fn _vqshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
38318    }
38319    unsafe { _vqshlq_u16(a, b) }
38320}
38321#[doc = "Unsigned saturating shift left"]
38322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u32)"]
38323#[inline(always)]
38324#[target_feature(enable = "neon")]
38325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38326#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38327#[cfg_attr(
38328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38329    assert_instr(uqshl)
38330)]
38331#[cfg_attr(
38332    not(target_arch = "arm"),
38333    stable(feature = "neon_intrinsics", since = "1.59.0")
38334)]
38335#[cfg_attr(
38336    target_arch = "arm",
38337    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38338)]
38339pub fn vqshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
38340    unsafe extern "unadjusted" {
38341        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i32")]
38342        #[cfg_attr(
38343            any(target_arch = "aarch64", target_arch = "arm64ec"),
38344            link_name = "llvm.aarch64.neon.uqshl.v2i32"
38345        )]
38346        fn _vqshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
38347    }
38348    unsafe { _vqshl_u32(a, b) }
38349}
38350#[doc = "Unsigned saturating shift left"]
38351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u32)"]
38352#[inline(always)]
38353#[target_feature(enable = "neon")]
38354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38356#[cfg_attr(
38357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38358    assert_instr(uqshl)
38359)]
38360#[cfg_attr(
38361    not(target_arch = "arm"),
38362    stable(feature = "neon_intrinsics", since = "1.59.0")
38363)]
38364#[cfg_attr(
38365    target_arch = "arm",
38366    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38367)]
38368pub fn vqshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
38369    unsafe extern "unadjusted" {
38370        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i32")]
38371        #[cfg_attr(
38372            any(target_arch = "aarch64", target_arch = "arm64ec"),
38373            link_name = "llvm.aarch64.neon.uqshl.v4i32"
38374        )]
38375        fn _vqshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
38376    }
38377    unsafe { _vqshlq_u32(a, b) }
38378}
38379#[doc = "Unsigned saturating shift left"]
38380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u64)"]
38381#[inline(always)]
38382#[target_feature(enable = "neon")]
38383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38384#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38385#[cfg_attr(
38386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38387    assert_instr(uqshl)
38388)]
38389#[cfg_attr(
38390    not(target_arch = "arm"),
38391    stable(feature = "neon_intrinsics", since = "1.59.0")
38392)]
38393#[cfg_attr(
38394    target_arch = "arm",
38395    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38396)]
38397pub fn vqshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
38398    unsafe extern "unadjusted" {
38399        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v1i64")]
38400        #[cfg_attr(
38401            any(target_arch = "aarch64", target_arch = "arm64ec"),
38402            link_name = "llvm.aarch64.neon.uqshl.v1i64"
38403        )]
38404        fn _vqshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
38405    }
38406    unsafe { _vqshl_u64(a, b) }
38407}
38408#[doc = "Unsigned saturating shift left"]
38409#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u64)"]
38410#[inline(always)]
38411#[target_feature(enable = "neon")]
38412#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38413#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38414#[cfg_attr(
38415    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38416    assert_instr(uqshl)
38417)]
38418#[cfg_attr(
38419    not(target_arch = "arm"),
38420    stable(feature = "neon_intrinsics", since = "1.59.0")
38421)]
38422#[cfg_attr(
38423    target_arch = "arm",
38424    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38425)]
38426pub fn vqshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
38427    unsafe extern "unadjusted" {
38428        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i64")]
38429        #[cfg_attr(
38430            any(target_arch = "aarch64", target_arch = "arm64ec"),
38431            link_name = "llvm.aarch64.neon.uqshl.v2i64"
38432        )]
38433        fn _vqshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
38434    }
38435    unsafe { _vqshlq_u64(a, b) }
38436}
38437#[doc = "Signed saturating shift left unsigned"]
38438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)"]
38439#[inline(always)]
38440#[cfg(target_arch = "arm")]
38441#[target_feature(enable = "neon,v7")]
38442#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38443#[rustc_legacy_const_generics(1)]
38444#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38445pub fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
38446    static_assert_uimm_bits!(N, 3);
38447    unsafe extern "unadjusted" {
38448        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i8")]
38449        fn _vqshlu_n_s8(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
38450    }
38451    unsafe { _vqshlu_n_s8(a, const { int8x8_t([N as i8; 8]) }) }
38452}
38453#[doc = "Signed saturating shift left unsigned"]
38454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)"]
38455#[inline(always)]
38456#[cfg(target_arch = "arm")]
38457#[target_feature(enable = "neon,v7")]
38458#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38459#[rustc_legacy_const_generics(1)]
38460#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38461pub fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
38462    static_assert_uimm_bits!(N, 3);
38463    unsafe extern "unadjusted" {
38464        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v16i8")]
38465        fn _vqshluq_n_s8(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
38466    }
38467    unsafe { _vqshluq_n_s8(a, const { int8x16_t([N as i8; 16]) }) }
38468}
38469#[doc = "Signed saturating shift left unsigned"]
38470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)"]
38471#[inline(always)]
38472#[cfg(target_arch = "arm")]
38473#[target_feature(enable = "neon,v7")]
38474#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38475#[rustc_legacy_const_generics(1)]
38476#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38477pub fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
38478    static_assert_uimm_bits!(N, 4);
38479    unsafe extern "unadjusted" {
38480        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i16")]
38481        fn _vqshlu_n_s16(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
38482    }
38483    unsafe { _vqshlu_n_s16(a, const { int16x4_t([N as i16; 4]) }) }
38484}
38485#[doc = "Signed saturating shift left unsigned"]
38486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)"]
38487#[inline(always)]
38488#[cfg(target_arch = "arm")]
38489#[target_feature(enable = "neon,v7")]
38490#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38491#[rustc_legacy_const_generics(1)]
38492#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38493pub fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
38494    static_assert_uimm_bits!(N, 4);
38495    unsafe extern "unadjusted" {
38496        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i16")]
38497        fn _vqshluq_n_s16(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
38498    }
38499    unsafe { _vqshluq_n_s16(a, const { int16x8_t([N as i16; 8]) }) }
38500}
38501#[doc = "Signed saturating shift left unsigned"]
38502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)"]
38503#[inline(always)]
38504#[cfg(target_arch = "arm")]
38505#[target_feature(enable = "neon,v7")]
38506#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38507#[rustc_legacy_const_generics(1)]
38508#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38509pub fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
38510    static_assert_uimm_bits!(N, 5);
38511    unsafe extern "unadjusted" {
38512        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i32")]
38513        fn _vqshlu_n_s32(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
38514    }
38515    unsafe { _vqshlu_n_s32(a, const { int32x2_t([N; 2]) }) }
38516}
38517#[doc = "Signed saturating shift left unsigned"]
38518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)"]
38519#[inline(always)]
38520#[cfg(target_arch = "arm")]
38521#[target_feature(enable = "neon,v7")]
38522#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38523#[rustc_legacy_const_generics(1)]
38524#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38525pub fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
38526    static_assert_uimm_bits!(N, 5);
38527    unsafe extern "unadjusted" {
38528        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i32")]
38529        fn _vqshluq_n_s32(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
38530    }
38531    unsafe { _vqshluq_n_s32(a, const { int32x4_t([N; 4]) }) }
38532}
38533#[doc = "Signed saturating shift left unsigned"]
38534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)"]
38535#[inline(always)]
38536#[cfg(target_arch = "arm")]
38537#[target_feature(enable = "neon,v7")]
38538#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38539#[rustc_legacy_const_generics(1)]
38540#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38541pub fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
38542    static_assert_uimm_bits!(N, 6);
38543    unsafe extern "unadjusted" {
38544        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v1i64")]
38545        fn _vqshlu_n_s64(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
38546    }
38547    unsafe { _vqshlu_n_s64(a, const { int64x1_t([N as i64]) }) }
38548}
38549#[doc = "Signed saturating shift left unsigned"]
38550#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)"]
38551#[inline(always)]
38552#[cfg(target_arch = "arm")]
38553#[target_feature(enable = "neon,v7")]
38554#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38555#[rustc_legacy_const_generics(1)]
38556#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38557pub fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
38558    static_assert_uimm_bits!(N, 6);
38559    unsafe extern "unadjusted" {
38560        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i64")]
38561        fn _vqshluq_n_s64(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
38562    }
38563    unsafe { _vqshluq_n_s64(a, const { int64x2_t([N as i64; 2]) }) }
38564}
38565#[doc = "Signed saturating shift left unsigned"]
38566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)"]
38567#[inline(always)]
38568#[target_feature(enable = "neon")]
38569#[cfg(not(target_arch = "arm"))]
38570#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38571#[rustc_legacy_const_generics(1)]
38572#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38573pub fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
38574    static_assert_uimm_bits!(N, 3);
38575    unsafe extern "unadjusted" {
38576        #[cfg_attr(
38577            any(target_arch = "aarch64", target_arch = "arm64ec"),
38578            link_name = "llvm.aarch64.neon.sqshlu.v8i8"
38579        )]
38580        fn _vqshlu_n_s8(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
38581    }
38582    unsafe { _vqshlu_n_s8(a, const { int8x8_t([N as i8; 8]) }) }
38583}
38584#[doc = "Signed saturating shift left unsigned"]
38585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)"]
38586#[inline(always)]
38587#[target_feature(enable = "neon")]
38588#[cfg(not(target_arch = "arm"))]
38589#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38590#[rustc_legacy_const_generics(1)]
38591#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38592pub fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
38593    static_assert_uimm_bits!(N, 3);
38594    unsafe extern "unadjusted" {
38595        #[cfg_attr(
38596            any(target_arch = "aarch64", target_arch = "arm64ec"),
38597            link_name = "llvm.aarch64.neon.sqshlu.v16i8"
38598        )]
38599        fn _vqshluq_n_s8(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
38600    }
38601    unsafe { _vqshluq_n_s8(a, const { int8x16_t([N as i8; 16]) }) }
38602}
38603#[doc = "Signed saturating shift left unsigned"]
38604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)"]
38605#[inline(always)]
38606#[target_feature(enable = "neon")]
38607#[cfg(not(target_arch = "arm"))]
38608#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38609#[rustc_legacy_const_generics(1)]
38610#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38611pub fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
38612    static_assert_uimm_bits!(N, 4);
38613    unsafe extern "unadjusted" {
38614        #[cfg_attr(
38615            any(target_arch = "aarch64", target_arch = "arm64ec"),
38616            link_name = "llvm.aarch64.neon.sqshlu.v4i16"
38617        )]
38618        fn _vqshlu_n_s16(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
38619    }
38620    unsafe { _vqshlu_n_s16(a, const { int16x4_t([N as i16; 4]) }) }
38621}
38622#[doc = "Signed saturating shift left unsigned"]
38623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)"]
38624#[inline(always)]
38625#[target_feature(enable = "neon")]
38626#[cfg(not(target_arch = "arm"))]
38627#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38628#[rustc_legacy_const_generics(1)]
38629#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38630pub fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
38631    static_assert_uimm_bits!(N, 4);
38632    unsafe extern "unadjusted" {
38633        #[cfg_attr(
38634            any(target_arch = "aarch64", target_arch = "arm64ec"),
38635            link_name = "llvm.aarch64.neon.sqshlu.v8i16"
38636        )]
38637        fn _vqshluq_n_s16(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
38638    }
38639    unsafe { _vqshluq_n_s16(a, const { int16x8_t([N as i16; 8]) }) }
38640}
38641#[doc = "Signed saturating shift left unsigned"]
38642#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)"]
38643#[inline(always)]
38644#[target_feature(enable = "neon")]
38645#[cfg(not(target_arch = "arm"))]
38646#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38647#[rustc_legacy_const_generics(1)]
38648#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38649pub fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
38650    static_assert_uimm_bits!(N, 5);
38651    unsafe extern "unadjusted" {
38652        #[cfg_attr(
38653            any(target_arch = "aarch64", target_arch = "arm64ec"),
38654            link_name = "llvm.aarch64.neon.sqshlu.v2i32"
38655        )]
38656        fn _vqshlu_n_s32(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
38657    }
38658    unsafe { _vqshlu_n_s32(a, const { int32x2_t([N; 2]) }) }
38659}
38660#[doc = "Signed saturating shift left unsigned"]
38661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)"]
38662#[inline(always)]
38663#[target_feature(enable = "neon")]
38664#[cfg(not(target_arch = "arm"))]
38665#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38666#[rustc_legacy_const_generics(1)]
38667#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38668pub fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
38669    static_assert_uimm_bits!(N, 5);
38670    unsafe extern "unadjusted" {
38671        #[cfg_attr(
38672            any(target_arch = "aarch64", target_arch = "arm64ec"),
38673            link_name = "llvm.aarch64.neon.sqshlu.v4i32"
38674        )]
38675        fn _vqshluq_n_s32(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
38676    }
38677    unsafe { _vqshluq_n_s32(a, const { int32x4_t([N; 4]) }) }
38678}
38679#[doc = "Signed saturating shift left unsigned"]
38680#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)"]
38681#[inline(always)]
38682#[target_feature(enable = "neon")]
38683#[cfg(not(target_arch = "arm"))]
38684#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38685#[rustc_legacy_const_generics(1)]
38686#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38687pub fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
38688    static_assert_uimm_bits!(N, 6);
38689    unsafe extern "unadjusted" {
38690        #[cfg_attr(
38691            any(target_arch = "aarch64", target_arch = "arm64ec"),
38692            link_name = "llvm.aarch64.neon.sqshlu.v1i64"
38693        )]
38694        fn _vqshlu_n_s64(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
38695    }
38696    unsafe { _vqshlu_n_s64(a, const { int64x1_t([N as i64]) }) }
38697}
38698#[doc = "Signed saturating shift left unsigned"]
38699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)"]
38700#[inline(always)]
38701#[target_feature(enable = "neon")]
38702#[cfg(not(target_arch = "arm"))]
38703#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38704#[rustc_legacy_const_generics(1)]
38705#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38706pub fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
38707    static_assert_uimm_bits!(N, 6);
38708    unsafe extern "unadjusted" {
38709        #[cfg_attr(
38710            any(target_arch = "aarch64", target_arch = "arm64ec"),
38711            link_name = "llvm.aarch64.neon.sqshlu.v2i64"
38712        )]
38713        fn _vqshluq_n_s64(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
38714    }
38715    unsafe { _vqshluq_n_s64(a, const { int64x2_t([N as i64; 2]) }) }
38716}
38717#[doc = "Signed saturating shift right narrow"]
38718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"]
38719#[inline(always)]
38720#[cfg(target_arch = "arm")]
38721#[target_feature(enable = "neon,v7")]
38722#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38723#[rustc_legacy_const_generics(1)]
38724#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38725pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
38726    static_assert!(N >= 1 && N <= 8);
38727    unsafe extern "unadjusted" {
38728        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v8i8")]
38729        fn _vqshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
38730    }
38731    unsafe { _vqshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
38732}
38733#[doc = "Signed saturating shift right narrow"]
38734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"]
38735#[inline(always)]
38736#[cfg(target_arch = "arm")]
38737#[target_feature(enable = "neon,v7")]
38738#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38739#[rustc_legacy_const_generics(1)]
38740#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38741pub fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
38742    static_assert!(N >= 1 && N <= 16);
38743    unsafe extern "unadjusted" {
38744        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v4i16")]
38745        fn _vqshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
38746    }
38747    unsafe { _vqshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
38748}
38749#[doc = "Signed saturating shift right narrow"]
38750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"]
38751#[inline(always)]
38752#[cfg(target_arch = "arm")]
38753#[target_feature(enable = "neon,v7")]
38754#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38755#[rustc_legacy_const_generics(1)]
38756#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38757pub fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
38758    static_assert!(N >= 1 && N <= 32);
38759    unsafe extern "unadjusted" {
38760        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v2i32")]
38761        fn _vqshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
38762    }
38763    unsafe { _vqshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
38764}
38765#[doc = "Signed saturating shift right narrow"]
38766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"]
38767#[inline(always)]
38768#[target_feature(enable = "neon")]
38769#[cfg(not(target_arch = "arm"))]
38770#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
38771#[rustc_legacy_const_generics(1)]
38772#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38773pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
38774    static_assert!(N >= 1 && N <= 8);
38775    unsafe extern "unadjusted" {
38776        #[cfg_attr(
38777            any(target_arch = "aarch64", target_arch = "arm64ec"),
38778            link_name = "llvm.aarch64.neon.sqshrn.v8i8"
38779        )]
38780        fn _vqshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
38781    }
38782    unsafe { _vqshrn_n_s16(a, N) }
38783}
38784#[doc = "Signed saturating shift right narrow"]
38785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"]
38786#[inline(always)]
38787#[target_feature(enable = "neon")]
38788#[cfg(not(target_arch = "arm"))]
38789#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
38790#[rustc_legacy_const_generics(1)]
38791#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38792pub fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
38793    static_assert!(N >= 1 && N <= 16);
38794    unsafe extern "unadjusted" {
38795        #[cfg_attr(
38796            any(target_arch = "aarch64", target_arch = "arm64ec"),
38797            link_name = "llvm.aarch64.neon.sqshrn.v4i16"
38798        )]
38799        fn _vqshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
38800    }
38801    unsafe { _vqshrn_n_s32(a, N) }
38802}
38803#[doc = "Signed saturating shift right narrow"]
38804#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"]
38805#[inline(always)]
38806#[target_feature(enable = "neon")]
38807#[cfg(not(target_arch = "arm"))]
38808#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
38809#[rustc_legacy_const_generics(1)]
38810#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38811pub fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
38812    static_assert!(N >= 1 && N <= 32);
38813    unsafe extern "unadjusted" {
38814        #[cfg_attr(
38815            any(target_arch = "aarch64", target_arch = "arm64ec"),
38816            link_name = "llvm.aarch64.neon.sqshrn.v2i32"
38817        )]
38818        fn _vqshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
38819    }
38820    unsafe { _vqshrn_n_s64(a, N) }
38821}
38822#[doc = "Unsigned saturating shift right narrow"]
38823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)"]
38824#[inline(always)]
38825#[cfg(target_arch = "arm")]
38826#[target_feature(enable = "neon,v7")]
38827#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38828#[rustc_legacy_const_generics(1)]
38829#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38830pub fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
38831    static_assert!(N >= 1 && N <= 8);
38832    unsafe extern "unadjusted" {
38833        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v8i8")]
38834        fn _vqshrn_n_u16(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
38835    }
38836    unsafe { _vqshrn_n_u16(a, const { uint16x8_t([-N as u16; 8]) }) }
38837}
38838#[doc = "Unsigned saturating shift right narrow"]
38839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)"]
38840#[inline(always)]
38841#[cfg(target_arch = "arm")]
38842#[target_feature(enable = "neon,v7")]
38843#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38844#[rustc_legacy_const_generics(1)]
38845#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38846pub fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
38847    static_assert!(N >= 1 && N <= 16);
38848    unsafe extern "unadjusted" {
38849        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v4i16")]
38850        fn _vqshrn_n_u32(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
38851    }
38852    unsafe { _vqshrn_n_u32(a, const { uint32x4_t([-N as u32; 4]) }) }
38853}
38854#[doc = "Unsigned saturating shift right narrow"]
38855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)"]
38856#[inline(always)]
38857#[cfg(target_arch = "arm")]
38858#[target_feature(enable = "neon,v7")]
38859#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38860#[rustc_legacy_const_generics(1)]
38861#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38862pub fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
38863    static_assert!(N >= 1 && N <= 32);
38864    unsafe extern "unadjusted" {
38865        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v2i32")]
38866        fn _vqshrn_n_u64(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
38867    }
38868    unsafe { _vqshrn_n_u64(a, const { uint64x2_t([-N as u64; 2]) }) }
38869}
38870#[doc = "Unsigned saturating shift right narrow"]
38871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)"]
38872#[inline(always)]
38873#[target_feature(enable = "neon")]
38874#[cfg(not(target_arch = "arm"))]
38875#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
38876#[rustc_legacy_const_generics(1)]
38877#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38878pub fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
38879    static_assert!(N >= 1 && N <= 8);
38880    unsafe extern "unadjusted" {
38881        #[cfg_attr(
38882            any(target_arch = "aarch64", target_arch = "arm64ec"),
38883            link_name = "llvm.aarch64.neon.uqshrn.v8i8"
38884        )]
38885        fn _vqshrn_n_u16(a: uint16x8_t, n: i32) -> uint8x8_t;
38886    }
38887    unsafe { _vqshrn_n_u16(a, N) }
38888}
38889#[doc = "Unsigned saturating shift right narrow"]
38890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)"]
38891#[inline(always)]
38892#[target_feature(enable = "neon")]
38893#[cfg(not(target_arch = "arm"))]
38894#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
38895#[rustc_legacy_const_generics(1)]
38896#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38897pub fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
38898    static_assert!(N >= 1 && N <= 16);
38899    unsafe extern "unadjusted" {
38900        #[cfg_attr(
38901            any(target_arch = "aarch64", target_arch = "arm64ec"),
38902            link_name = "llvm.aarch64.neon.uqshrn.v4i16"
38903        )]
38904        fn _vqshrn_n_u32(a: uint32x4_t, n: i32) -> uint16x4_t;
38905    }
38906    unsafe { _vqshrn_n_u32(a, N) }
38907}
38908#[doc = "Unsigned saturating shift right narrow"]
38909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)"]
38910#[inline(always)]
38911#[target_feature(enable = "neon")]
38912#[cfg(not(target_arch = "arm"))]
38913#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
38914#[rustc_legacy_const_generics(1)]
38915#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38916pub fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
38917    static_assert!(N >= 1 && N <= 32);
38918    unsafe extern "unadjusted" {
38919        #[cfg_attr(
38920            any(target_arch = "aarch64", target_arch = "arm64ec"),
38921            link_name = "llvm.aarch64.neon.uqshrn.v2i32"
38922        )]
38923        fn _vqshrn_n_u64(a: uint64x2_t, n: i32) -> uint32x2_t;
38924    }
38925    unsafe { _vqshrn_n_u64(a, N) }
38926}
38927#[doc = "Signed saturating shift right unsigned narrow"]
38928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"]
38929#[inline(always)]
38930#[cfg(target_arch = "arm")]
38931#[target_feature(enable = "neon,v7")]
38932#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
38933#[rustc_legacy_const_generics(1)]
38934#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38935pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
38936    static_assert!(N >= 1 && N <= 8);
38937    unsafe extern "unadjusted" {
38938        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v8i8")]
38939        fn _vqshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
38940    }
38941    unsafe { _vqshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
38942}
38943#[doc = "Signed saturating shift right unsigned narrow"]
38944#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"]
38945#[inline(always)]
38946#[cfg(target_arch = "arm")]
38947#[target_feature(enable = "neon,v7")]
38948#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
38949#[rustc_legacy_const_generics(1)]
38950#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38951pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
38952    static_assert!(N >= 1 && N <= 16);
38953    unsafe extern "unadjusted" {
38954        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v4i16")]
38955        fn _vqshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
38956    }
38957    unsafe { _vqshrun_n_s32(a, const { int32x4_t([-N; 4]) }) }
38958}
38959#[doc = "Signed saturating shift right unsigned narrow"]
38960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"]
38961#[inline(always)]
38962#[cfg(target_arch = "arm")]
38963#[target_feature(enable = "neon,v7")]
38964#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
38965#[rustc_legacy_const_generics(1)]
38966#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38967pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
38968    static_assert!(N >= 1 && N <= 32);
38969    unsafe extern "unadjusted" {
38970        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v2i32")]
38971        fn _vqshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
38972    }
38973    unsafe { _vqshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
38974}
38975#[doc = "Signed saturating shift right unsigned narrow"]
38976#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"]
38977#[inline(always)]
38978#[target_feature(enable = "neon")]
38979#[cfg(not(target_arch = "arm"))]
38980#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
38981#[rustc_legacy_const_generics(1)]
38982#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38983pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
38984    static_assert!(N >= 1 && N <= 8);
38985    unsafe extern "unadjusted" {
38986        #[cfg_attr(
38987            any(target_arch = "aarch64", target_arch = "arm64ec"),
38988            link_name = "llvm.aarch64.neon.sqshrun.v8i8"
38989        )]
38990        fn _vqshrun_n_s16(a: int16x8_t, n: i32) -> uint8x8_t;
38991    }
38992    unsafe { _vqshrun_n_s16(a, N) }
38993}
38994#[doc = "Signed saturating shift right unsigned narrow"]
38995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"]
38996#[inline(always)]
38997#[target_feature(enable = "neon")]
38998#[cfg(not(target_arch = "arm"))]
38999#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
39000#[rustc_legacy_const_generics(1)]
39001#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39002pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
39003    static_assert!(N >= 1 && N <= 16);
39004    unsafe extern "unadjusted" {
39005        #[cfg_attr(
39006            any(target_arch = "aarch64", target_arch = "arm64ec"),
39007            link_name = "llvm.aarch64.neon.sqshrun.v4i16"
39008        )]
39009        fn _vqshrun_n_s32(a: int32x4_t, n: i32) -> uint16x4_t;
39010    }
39011    unsafe { _vqshrun_n_s32(a, N) }
39012}
39013#[doc = "Signed saturating shift right unsigned narrow"]
39014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"]
39015#[inline(always)]
39016#[target_feature(enable = "neon")]
39017#[cfg(not(target_arch = "arm"))]
39018#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
39019#[rustc_legacy_const_generics(1)]
39020#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39021pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
39022    static_assert!(N >= 1 && N <= 32);
39023    unsafe extern "unadjusted" {
39024        #[cfg_attr(
39025            any(target_arch = "aarch64", target_arch = "arm64ec"),
39026            link_name = "llvm.aarch64.neon.sqshrun.v2i32"
39027        )]
39028        fn _vqshrun_n_s64(a: int64x2_t, n: i32) -> uint32x2_t;
39029    }
39030    unsafe { _vqshrun_n_s64(a, N) }
39031}
39032#[doc = "Saturating subtract"]
39033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s8)"]
39034#[inline(always)]
39035#[target_feature(enable = "neon")]
39036#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39037#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
39038#[cfg_attr(
39039    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39040    assert_instr(sqsub)
39041)]
39042#[cfg_attr(
39043    not(target_arch = "arm"),
39044    stable(feature = "neon_intrinsics", since = "1.59.0")
39045)]
39046#[cfg_attr(
39047    target_arch = "arm",
39048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39049)]
39050pub fn vqsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
39051    unsafe { simd_saturating_sub(a, b) }
39052}
39053#[doc = "Saturating subtract"]
39054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s8)"]
39055#[inline(always)]
39056#[target_feature(enable = "neon")]
39057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39058#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
39059#[cfg_attr(
39060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39061    assert_instr(sqsub)
39062)]
39063#[cfg_attr(
39064    not(target_arch = "arm"),
39065    stable(feature = "neon_intrinsics", since = "1.59.0")
39066)]
39067#[cfg_attr(
39068    target_arch = "arm",
39069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39070)]
39071pub fn vqsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
39072    unsafe { simd_saturating_sub(a, b) }
39073}
39074#[doc = "Saturating subtract"]
39075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s16)"]
39076#[inline(always)]
39077#[target_feature(enable = "neon")]
39078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39079#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
39080#[cfg_attr(
39081    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39082    assert_instr(sqsub)
39083)]
39084#[cfg_attr(
39085    not(target_arch = "arm"),
39086    stable(feature = "neon_intrinsics", since = "1.59.0")
39087)]
39088#[cfg_attr(
39089    target_arch = "arm",
39090    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39091)]
39092pub fn vqsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
39093    unsafe { simd_saturating_sub(a, b) }
39094}
39095#[doc = "Saturating subtract"]
39096#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s16)"]
39097#[inline(always)]
39098#[target_feature(enable = "neon")]
39099#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39100#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
39101#[cfg_attr(
39102    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39103    assert_instr(sqsub)
39104)]
39105#[cfg_attr(
39106    not(target_arch = "arm"),
39107    stable(feature = "neon_intrinsics", since = "1.59.0")
39108)]
39109#[cfg_attr(
39110    target_arch = "arm",
39111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39112)]
39113pub fn vqsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
39114    unsafe { simd_saturating_sub(a, b) }
39115}
39116#[doc = "Saturating subtract"]
39117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s32)"]
39118#[inline(always)]
39119#[target_feature(enable = "neon")]
39120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39121#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
39122#[cfg_attr(
39123    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39124    assert_instr(sqsub)
39125)]
39126#[cfg_attr(
39127    not(target_arch = "arm"),
39128    stable(feature = "neon_intrinsics", since = "1.59.0")
39129)]
39130#[cfg_attr(
39131    target_arch = "arm",
39132    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39133)]
39134pub fn vqsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
39135    unsafe { simd_saturating_sub(a, b) }
39136}
39137#[doc = "Saturating subtract"]
39138#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s32)"]
39139#[inline(always)]
39140#[target_feature(enable = "neon")]
39141#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39142#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
39143#[cfg_attr(
39144    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39145    assert_instr(sqsub)
39146)]
39147#[cfg_attr(
39148    not(target_arch = "arm"),
39149    stable(feature = "neon_intrinsics", since = "1.59.0")
39150)]
39151#[cfg_attr(
39152    target_arch = "arm",
39153    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39154)]
39155pub fn vqsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
39156    unsafe { simd_saturating_sub(a, b) }
39157}
39158#[doc = "Saturating subtract"]
39159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s64)"]
39160#[inline(always)]
39161#[target_feature(enable = "neon")]
39162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39163#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
39164#[cfg_attr(
39165    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39166    assert_instr(sqsub)
39167)]
39168#[cfg_attr(
39169    not(target_arch = "arm"),
39170    stable(feature = "neon_intrinsics", since = "1.59.0")
39171)]
39172#[cfg_attr(
39173    target_arch = "arm",
39174    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39175)]
39176pub fn vqsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
39177    unsafe { simd_saturating_sub(a, b) }
39178}
39179#[doc = "Saturating subtract"]
39180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s64)"]
39181#[inline(always)]
39182#[target_feature(enable = "neon")]
39183#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39184#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
39185#[cfg_attr(
39186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39187    assert_instr(sqsub)
39188)]
39189#[cfg_attr(
39190    not(target_arch = "arm"),
39191    stable(feature = "neon_intrinsics", since = "1.59.0")
39192)]
39193#[cfg_attr(
39194    target_arch = "arm",
39195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39196)]
39197pub fn vqsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
39198    unsafe { simd_saturating_sub(a, b) }
39199}
39200#[doc = "Saturating subtract"]
39201#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u8)"]
39202#[inline(always)]
39203#[target_feature(enable = "neon")]
39204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39205#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
39206#[cfg_attr(
39207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39208    assert_instr(uqsub)
39209)]
39210#[cfg_attr(
39211    not(target_arch = "arm"),
39212    stable(feature = "neon_intrinsics", since = "1.59.0")
39213)]
39214#[cfg_attr(
39215    target_arch = "arm",
39216    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39217)]
39218pub fn vqsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
39219    unsafe { simd_saturating_sub(a, b) }
39220}
39221#[doc = "Saturating subtract"]
39222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u8)"]
39223#[inline(always)]
39224#[target_feature(enable = "neon")]
39225#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39226#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
39227#[cfg_attr(
39228    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39229    assert_instr(uqsub)
39230)]
39231#[cfg_attr(
39232    not(target_arch = "arm"),
39233    stable(feature = "neon_intrinsics", since = "1.59.0")
39234)]
39235#[cfg_attr(
39236    target_arch = "arm",
39237    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39238)]
39239pub fn vqsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
39240    unsafe { simd_saturating_sub(a, b) }
39241}
39242#[doc = "Saturating subtract"]
39243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u16)"]
39244#[inline(always)]
39245#[target_feature(enable = "neon")]
39246#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39247#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
39248#[cfg_attr(
39249    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39250    assert_instr(uqsub)
39251)]
39252#[cfg_attr(
39253    not(target_arch = "arm"),
39254    stable(feature = "neon_intrinsics", since = "1.59.0")
39255)]
39256#[cfg_attr(
39257    target_arch = "arm",
39258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39259)]
39260pub fn vqsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
39261    unsafe { simd_saturating_sub(a, b) }
39262}
39263#[doc = "Saturating subtract"]
39264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u16)"]
39265#[inline(always)]
39266#[target_feature(enable = "neon")]
39267#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39268#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
39269#[cfg_attr(
39270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39271    assert_instr(uqsub)
39272)]
39273#[cfg_attr(
39274    not(target_arch = "arm"),
39275    stable(feature = "neon_intrinsics", since = "1.59.0")
39276)]
39277#[cfg_attr(
39278    target_arch = "arm",
39279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39280)]
39281pub fn vqsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
39282    unsafe { simd_saturating_sub(a, b) }
39283}
39284#[doc = "Saturating subtract"]
39285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u32)"]
39286#[inline(always)]
39287#[target_feature(enable = "neon")]
39288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39289#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
39290#[cfg_attr(
39291    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39292    assert_instr(uqsub)
39293)]
39294#[cfg_attr(
39295    not(target_arch = "arm"),
39296    stable(feature = "neon_intrinsics", since = "1.59.0")
39297)]
39298#[cfg_attr(
39299    target_arch = "arm",
39300    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39301)]
39302pub fn vqsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
39303    unsafe { simd_saturating_sub(a, b) }
39304}
39305#[doc = "Saturating subtract"]
39306#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u32)"]
39307#[inline(always)]
39308#[target_feature(enable = "neon")]
39309#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39310#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
39311#[cfg_attr(
39312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39313    assert_instr(uqsub)
39314)]
39315#[cfg_attr(
39316    not(target_arch = "arm"),
39317    stable(feature = "neon_intrinsics", since = "1.59.0")
39318)]
39319#[cfg_attr(
39320    target_arch = "arm",
39321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39322)]
39323pub fn vqsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
39324    unsafe { simd_saturating_sub(a, b) }
39325}
39326#[doc = "Saturating subtract"]
39327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u64)"]
39328#[inline(always)]
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("vqsub.u64"))]
39332#[cfg_attr(
39333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39334    assert_instr(uqsub)
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 vqsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
39345    unsafe { simd_saturating_sub(a, b) }
39346}
39347#[doc = "Saturating subtract"]
39348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u64)"]
39349#[inline(always)]
39350#[target_feature(enable = "neon")]
39351#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39352#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u64"))]
39353#[cfg_attr(
39354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39355    assert_instr(uqsub)
39356)]
39357#[cfg_attr(
39358    not(target_arch = "arm"),
39359    stable(feature = "neon_intrinsics", since = "1.59.0")
39360)]
39361#[cfg_attr(
39362    target_arch = "arm",
39363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39364)]
39365pub fn vqsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
39366    unsafe { simd_saturating_sub(a, b) }
39367}
39368#[doc = "Rounding Add returning High Narrow (high half)."]
39369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s16)"]
39370#[inline(always)]
39371#[target_feature(enable = "neon")]
39372#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39373#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
39374#[cfg_attr(
39375    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39376    assert_instr(raddhn2)
39377)]
39378#[cfg_attr(
39379    not(target_arch = "arm"),
39380    stable(feature = "neon_intrinsics", since = "1.59.0")
39381)]
39382#[cfg_attr(
39383    target_arch = "arm",
39384    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39385)]
39386pub fn vraddhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
39387    let x = vraddhn_s16(b, c);
39388    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
39389}
39390#[doc = "Rounding Add returning High Narrow (high half)."]
39391#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s32)"]
39392#[inline(always)]
39393#[target_feature(enable = "neon")]
39394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39395#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39396#[cfg_attr(
39397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39398    assert_instr(raddhn2)
39399)]
39400#[cfg_attr(
39401    not(target_arch = "arm"),
39402    stable(feature = "neon_intrinsics", since = "1.59.0")
39403)]
39404#[cfg_attr(
39405    target_arch = "arm",
39406    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39407)]
39408pub fn vraddhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
39409    let x = vraddhn_s32(b, c);
39410    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7]) }
39411}
39412#[doc = "Rounding Add returning High Narrow (high half)."]
39413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s64)"]
39414#[inline(always)]
39415#[target_feature(enable = "neon")]
39416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39417#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39418#[cfg_attr(
39419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39420    assert_instr(raddhn2)
39421)]
39422#[cfg_attr(
39423    not(target_arch = "arm"),
39424    stable(feature = "neon_intrinsics", since = "1.59.0")
39425)]
39426#[cfg_attr(
39427    target_arch = "arm",
39428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39429)]
39430pub fn vraddhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
39431    let x = vraddhn_s64(b, c);
39432    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3]) }
39433}
39434#[doc = "Rounding Add returning High Narrow (high half)."]
39435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u16)"]
39436#[inline(always)]
39437#[target_feature(enable = "neon")]
39438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39439#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
39440#[cfg_attr(
39441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39442    assert_instr(raddhn2)
39443)]
39444#[cfg_attr(
39445    not(target_arch = "arm"),
39446    stable(feature = "neon_intrinsics", since = "1.59.0")
39447)]
39448#[cfg_attr(
39449    target_arch = "arm",
39450    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39451)]
39452pub fn vraddhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
39453    unsafe {
39454        let x: uint8x8_t = transmute(vraddhn_s16(transmute(b), transmute(c)));
39455        simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
39456    }
39457}
39458#[doc = "Rounding Add returning High Narrow (high half)."]
39459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u32)"]
39460#[inline(always)]
39461#[target_feature(enable = "neon")]
39462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39463#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39464#[cfg_attr(
39465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39466    assert_instr(raddhn2)
39467)]
39468#[cfg_attr(
39469    not(target_arch = "arm"),
39470    stable(feature = "neon_intrinsics", since = "1.59.0")
39471)]
39472#[cfg_attr(
39473    target_arch = "arm",
39474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39475)]
39476pub fn vraddhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
39477    unsafe {
39478        let x: uint16x4_t = transmute(vraddhn_s32(transmute(b), transmute(c)));
39479        simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7])
39480    }
39481}
39482#[doc = "Rounding Add returning High Narrow (high half)."]
39483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u64)"]
39484#[inline(always)]
39485#[target_feature(enable = "neon")]
39486#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39487#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39488#[cfg_attr(
39489    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39490    assert_instr(raddhn2)
39491)]
39492#[cfg_attr(
39493    not(target_arch = "arm"),
39494    stable(feature = "neon_intrinsics", since = "1.59.0")
39495)]
39496#[cfg_attr(
39497    target_arch = "arm",
39498    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39499)]
39500pub fn vraddhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
39501    unsafe {
39502        let x: uint32x2_t = transmute(vraddhn_s64(transmute(b), transmute(c)));
39503        simd_shuffle!(a, x, [0, 1, 2, 3])
39504    }
39505}
39506#[doc = "Rounding Add returning High Narrow."]
39507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s16)"]
39508#[inline(always)]
39509#[target_feature(enable = "neon")]
39510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39511#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
39512#[cfg_attr(
39513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39514    assert_instr(raddhn)
39515)]
39516#[cfg_attr(
39517    not(target_arch = "arm"),
39518    stable(feature = "neon_intrinsics", since = "1.59.0")
39519)]
39520#[cfg_attr(
39521    target_arch = "arm",
39522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39523)]
39524pub fn vraddhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
39525    unsafe extern "unadjusted" {
39526        #[cfg_attr(
39527            any(target_arch = "aarch64", target_arch = "arm64ec"),
39528            link_name = "llvm.aarch64.neon.raddhn.v8i8"
39529        )]
39530        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v8i8")]
39531        fn _vraddhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t;
39532    }
39533    unsafe { _vraddhn_s16(a, b) }
39534}
39535#[doc = "Rounding Add returning High Narrow."]
39536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s32)"]
39537#[inline(always)]
39538#[target_feature(enable = "neon")]
39539#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39540#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39541#[cfg_attr(
39542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39543    assert_instr(raddhn)
39544)]
39545#[cfg_attr(
39546    not(target_arch = "arm"),
39547    stable(feature = "neon_intrinsics", since = "1.59.0")
39548)]
39549#[cfg_attr(
39550    target_arch = "arm",
39551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39552)]
39553pub fn vraddhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
39554    unsafe extern "unadjusted" {
39555        #[cfg_attr(
39556            any(target_arch = "aarch64", target_arch = "arm64ec"),
39557            link_name = "llvm.aarch64.neon.raddhn.v4i16"
39558        )]
39559        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v4i16")]
39560        fn _vraddhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t;
39561    }
39562    unsafe { _vraddhn_s32(a, b) }
39563}
39564#[doc = "Rounding Add returning High Narrow."]
39565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s64)"]
39566#[inline(always)]
39567#[target_feature(enable = "neon")]
39568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39569#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39570#[cfg_attr(
39571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39572    assert_instr(raddhn)
39573)]
39574#[cfg_attr(
39575    not(target_arch = "arm"),
39576    stable(feature = "neon_intrinsics", since = "1.59.0")
39577)]
39578#[cfg_attr(
39579    target_arch = "arm",
39580    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39581)]
39582pub fn vraddhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
39583    unsafe extern "unadjusted" {
39584        #[cfg_attr(
39585            any(target_arch = "aarch64", target_arch = "arm64ec"),
39586            link_name = "llvm.aarch64.neon.raddhn.v2i32"
39587        )]
39588        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v2i32")]
39589        fn _vraddhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t;
39590    }
39591    unsafe { _vraddhn_s64(a, b) }
39592}
39593#[doc = "Rounding Add returning High Narrow."]
39594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u16)"]
39595#[inline(always)]
39596#[cfg(target_endian = "little")]
39597#[target_feature(enable = "neon")]
39598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39599#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
39600#[cfg_attr(
39601    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39602    assert_instr(raddhn)
39603)]
39604#[cfg_attr(
39605    not(target_arch = "arm"),
39606    stable(feature = "neon_intrinsics", since = "1.59.0")
39607)]
39608#[cfg_attr(
39609    target_arch = "arm",
39610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39611)]
39612pub fn vraddhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
39613    unsafe { transmute(vraddhn_s16(transmute(a), transmute(b))) }
39614}
39615#[doc = "Rounding Add returning High Narrow."]
39616#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u16)"]
39617#[inline(always)]
39618#[cfg(target_endian = "big")]
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("vraddhn.i16"))]
39622#[cfg_attr(
39623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39624    assert_instr(raddhn)
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 vraddhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
39635    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
39636    let b: uint16x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
39637    unsafe {
39638        let ret_val: uint8x8_t = transmute(vraddhn_s16(transmute(a), transmute(b)));
39639        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
39640    }
39641}
39642#[doc = "Rounding Add returning High Narrow."]
39643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u32)"]
39644#[inline(always)]
39645#[cfg(target_endian = "little")]
39646#[target_feature(enable = "neon")]
39647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39648#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39649#[cfg_attr(
39650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39651    assert_instr(raddhn)
39652)]
39653#[cfg_attr(
39654    not(target_arch = "arm"),
39655    stable(feature = "neon_intrinsics", since = "1.59.0")
39656)]
39657#[cfg_attr(
39658    target_arch = "arm",
39659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39660)]
39661pub fn vraddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
39662    unsafe { transmute(vraddhn_s32(transmute(a), transmute(b))) }
39663}
39664#[doc = "Rounding Add returning High Narrow."]
39665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u32)"]
39666#[inline(always)]
39667#[cfg(target_endian = "big")]
39668#[target_feature(enable = "neon")]
39669#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39670#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39671#[cfg_attr(
39672    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39673    assert_instr(raddhn)
39674)]
39675#[cfg_attr(
39676    not(target_arch = "arm"),
39677    stable(feature = "neon_intrinsics", since = "1.59.0")
39678)]
39679#[cfg_attr(
39680    target_arch = "arm",
39681    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39682)]
39683pub fn vraddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
39684    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
39685    let b: uint32x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
39686    unsafe {
39687        let ret_val: uint16x4_t = transmute(vraddhn_s32(transmute(a), transmute(b)));
39688        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
39689    }
39690}
39691#[doc = "Rounding Add returning High Narrow."]
39692#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u64)"]
39693#[inline(always)]
39694#[cfg(target_endian = "little")]
39695#[target_feature(enable = "neon")]
39696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39697#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39698#[cfg_attr(
39699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39700    assert_instr(raddhn)
39701)]
39702#[cfg_attr(
39703    not(target_arch = "arm"),
39704    stable(feature = "neon_intrinsics", since = "1.59.0")
39705)]
39706#[cfg_attr(
39707    target_arch = "arm",
39708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39709)]
39710pub fn vraddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
39711    unsafe { transmute(vraddhn_s64(transmute(a), transmute(b))) }
39712}
39713#[doc = "Rounding Add returning High Narrow."]
39714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u64)"]
39715#[inline(always)]
39716#[cfg(target_endian = "big")]
39717#[target_feature(enable = "neon")]
39718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39719#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39720#[cfg_attr(
39721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39722    assert_instr(raddhn)
39723)]
39724#[cfg_attr(
39725    not(target_arch = "arm"),
39726    stable(feature = "neon_intrinsics", since = "1.59.0")
39727)]
39728#[cfg_attr(
39729    target_arch = "arm",
39730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39731)]
39732pub fn vraddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
39733    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
39734    let b: uint64x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
39735    unsafe {
39736        let ret_val: uint32x2_t = transmute(vraddhn_s64(transmute(a), transmute(b)));
39737        simd_shuffle!(ret_val, ret_val, [1, 0])
39738    }
39739}
39740#[doc = "Reciprocal estimate."]
39741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_f16)"]
39742#[inline(always)]
39743#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
39744#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39745#[cfg_attr(
39746    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39747    assert_instr(frecpe)
39748)]
39749#[target_feature(enable = "neon,fp16")]
39750#[cfg_attr(
39751    not(target_arch = "arm"),
39752    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
39753)]
39754#[cfg_attr(
39755    target_arch = "arm",
39756    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39757)]
39758#[cfg(not(target_arch = "arm64ec"))]
39759pub fn vrecpe_f16(a: float16x4_t) -> float16x4_t {
39760    unsafe extern "unadjusted" {
39761        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4f16")]
39762        #[cfg_attr(
39763            any(target_arch = "aarch64", target_arch = "arm64ec"),
39764            link_name = "llvm.aarch64.neon.frecpe.v4f16"
39765        )]
39766        fn _vrecpe_f16(a: float16x4_t) -> float16x4_t;
39767    }
39768    unsafe { _vrecpe_f16(a) }
39769}
39770#[doc = "Reciprocal estimate."]
39771#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_f16)"]
39772#[inline(always)]
39773#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
39774#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39775#[cfg_attr(
39776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39777    assert_instr(frecpe)
39778)]
39779#[target_feature(enable = "neon,fp16")]
39780#[cfg_attr(
39781    not(target_arch = "arm"),
39782    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
39783)]
39784#[cfg_attr(
39785    target_arch = "arm",
39786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39787)]
39788#[cfg(not(target_arch = "arm64ec"))]
39789pub fn vrecpeq_f16(a: float16x8_t) -> float16x8_t {
39790    unsafe extern "unadjusted" {
39791        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v8f16")]
39792        #[cfg_attr(
39793            any(target_arch = "aarch64", target_arch = "arm64ec"),
39794            link_name = "llvm.aarch64.neon.frecpe.v8f16"
39795        )]
39796        fn _vrecpeq_f16(a: float16x8_t) -> float16x8_t;
39797    }
39798    unsafe { _vrecpeq_f16(a) }
39799}
39800#[doc = "Reciprocal estimate."]
39801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_f32)"]
39802#[inline(always)]
39803#[target_feature(enable = "neon")]
39804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39805#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39806#[cfg_attr(
39807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39808    assert_instr(frecpe)
39809)]
39810#[cfg_attr(
39811    not(target_arch = "arm"),
39812    stable(feature = "neon_intrinsics", since = "1.59.0")
39813)]
39814#[cfg_attr(
39815    target_arch = "arm",
39816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39817)]
39818pub fn vrecpe_f32(a: float32x2_t) -> float32x2_t {
39819    unsafe extern "unadjusted" {
39820        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2f32")]
39821        #[cfg_attr(
39822            any(target_arch = "aarch64", target_arch = "arm64ec"),
39823            link_name = "llvm.aarch64.neon.frecpe.v2f32"
39824        )]
39825        fn _vrecpe_f32(a: float32x2_t) -> float32x2_t;
39826    }
39827    unsafe { _vrecpe_f32(a) }
39828}
39829#[doc = "Reciprocal estimate."]
39830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_f32)"]
39831#[inline(always)]
39832#[target_feature(enable = "neon")]
39833#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39834#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39835#[cfg_attr(
39836    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39837    assert_instr(frecpe)
39838)]
39839#[cfg_attr(
39840    not(target_arch = "arm"),
39841    stable(feature = "neon_intrinsics", since = "1.59.0")
39842)]
39843#[cfg_attr(
39844    target_arch = "arm",
39845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39846)]
39847pub fn vrecpeq_f32(a: float32x4_t) -> float32x4_t {
39848    unsafe extern "unadjusted" {
39849        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4f32")]
39850        #[cfg_attr(
39851            any(target_arch = "aarch64", target_arch = "arm64ec"),
39852            link_name = "llvm.aarch64.neon.frecpe.v4f32"
39853        )]
39854        fn _vrecpeq_f32(a: float32x4_t) -> float32x4_t;
39855    }
39856    unsafe { _vrecpeq_f32(a) }
39857}
39858#[doc = "Unsigned reciprocal estimate"]
39859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_u32)"]
39860#[inline(always)]
39861#[target_feature(enable = "neon")]
39862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39864#[cfg_attr(
39865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39866    assert_instr(urecpe)
39867)]
39868#[cfg_attr(
39869    not(target_arch = "arm"),
39870    stable(feature = "neon_intrinsics", since = "1.59.0")
39871)]
39872#[cfg_attr(
39873    target_arch = "arm",
39874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39875)]
39876pub fn vrecpe_u32(a: uint32x2_t) -> uint32x2_t {
39877    unsafe extern "unadjusted" {
39878        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2i32")]
39879        #[cfg_attr(
39880            any(target_arch = "aarch64", target_arch = "arm64ec"),
39881            link_name = "llvm.aarch64.neon.urecpe.v2i32"
39882        )]
39883        fn _vrecpe_u32(a: uint32x2_t) -> uint32x2_t;
39884    }
39885    unsafe { _vrecpe_u32(a) }
39886}
39887#[doc = "Unsigned reciprocal estimate"]
39888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_u32)"]
39889#[inline(always)]
39890#[target_feature(enable = "neon")]
39891#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39892#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39893#[cfg_attr(
39894    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39895    assert_instr(urecpe)
39896)]
39897#[cfg_attr(
39898    not(target_arch = "arm"),
39899    stable(feature = "neon_intrinsics", since = "1.59.0")
39900)]
39901#[cfg_attr(
39902    target_arch = "arm",
39903    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39904)]
39905pub fn vrecpeq_u32(a: uint32x4_t) -> uint32x4_t {
39906    unsafe extern "unadjusted" {
39907        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4i32")]
39908        #[cfg_attr(
39909            any(target_arch = "aarch64", target_arch = "arm64ec"),
39910            link_name = "llvm.aarch64.neon.urecpe.v4i32"
39911        )]
39912        fn _vrecpeq_u32(a: uint32x4_t) -> uint32x4_t;
39913    }
39914    unsafe { _vrecpeq_u32(a) }
39915}
39916#[doc = "Floating-point reciprocal step"]
39917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecps_f16)"]
39918#[inline(always)]
39919#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
39920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
39921#[cfg_attr(
39922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39923    assert_instr(frecps)
39924)]
39925#[target_feature(enable = "neon,fp16")]
39926#[cfg_attr(
39927    not(target_arch = "arm"),
39928    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
39929)]
39930#[cfg_attr(
39931    target_arch = "arm",
39932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39933)]
39934#[cfg(not(target_arch = "arm64ec"))]
39935pub fn vrecps_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
39936    unsafe extern "unadjusted" {
39937        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v4f16")]
39938        #[cfg_attr(
39939            any(target_arch = "aarch64", target_arch = "arm64ec"),
39940            link_name = "llvm.aarch64.neon.frecps.v4f16"
39941        )]
39942        fn _vrecps_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
39943    }
39944    unsafe { _vrecps_f16(a, b) }
39945}
39946#[doc = "Floating-point reciprocal step"]
39947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpsq_f16)"]
39948#[inline(always)]
39949#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
39950#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
39951#[cfg_attr(
39952    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39953    assert_instr(frecps)
39954)]
39955#[target_feature(enable = "neon,fp16")]
39956#[cfg_attr(
39957    not(target_arch = "arm"),
39958    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
39959)]
39960#[cfg_attr(
39961    target_arch = "arm",
39962    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39963)]
39964#[cfg(not(target_arch = "arm64ec"))]
39965pub fn vrecpsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
39966    unsafe extern "unadjusted" {
39967        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v8f16")]
39968        #[cfg_attr(
39969            any(target_arch = "aarch64", target_arch = "arm64ec"),
39970            link_name = "llvm.aarch64.neon.frecps.v8f16"
39971        )]
39972        fn _vrecpsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
39973    }
39974    unsafe { _vrecpsq_f16(a, b) }
39975}
39976#[doc = "Floating-point reciprocal step"]
39977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecps_f32)"]
39978#[inline(always)]
39979#[target_feature(enable = "neon")]
39980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39981#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
39982#[cfg_attr(
39983    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39984    assert_instr(frecps)
39985)]
39986#[cfg_attr(
39987    not(target_arch = "arm"),
39988    stable(feature = "neon_intrinsics", since = "1.59.0")
39989)]
39990#[cfg_attr(
39991    target_arch = "arm",
39992    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39993)]
39994pub fn vrecps_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
39995    unsafe extern "unadjusted" {
39996        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v2f32")]
39997        #[cfg_attr(
39998            any(target_arch = "aarch64", target_arch = "arm64ec"),
39999            link_name = "llvm.aarch64.neon.frecps.v2f32"
40000        )]
40001        fn _vrecps_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
40002    }
40003    unsafe { _vrecps_f32(a, b) }
40004}
40005#[doc = "Floating-point reciprocal step"]
40006#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpsq_f32)"]
40007#[inline(always)]
40008#[target_feature(enable = "neon")]
40009#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
40011#[cfg_attr(
40012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40013    assert_instr(frecps)
40014)]
40015#[cfg_attr(
40016    not(target_arch = "arm"),
40017    stable(feature = "neon_intrinsics", since = "1.59.0")
40018)]
40019#[cfg_attr(
40020    target_arch = "arm",
40021    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40022)]
40023pub fn vrecpsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
40024    unsafe extern "unadjusted" {
40025        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v4f32")]
40026        #[cfg_attr(
40027            any(target_arch = "aarch64", target_arch = "arm64ec"),
40028            link_name = "llvm.aarch64.neon.frecps.v4f32"
40029        )]
40030        fn _vrecpsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
40031    }
40032    unsafe { _vrecpsq_f32(a, b) }
40033}
40034#[doc = "Vector reinterpret cast operation"]
40035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_f16)"]
40036#[inline(always)]
40037#[cfg(target_endian = "little")]
40038#[target_feature(enable = "neon")]
40039#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40040#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40041#[cfg_attr(
40042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40043    assert_instr(nop)
40044)]
40045#[cfg_attr(
40046    not(target_arch = "arm"),
40047    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40048)]
40049#[cfg_attr(
40050    target_arch = "arm",
40051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40052)]
40053#[cfg(not(target_arch = "arm64ec"))]
40054pub fn vreinterpret_f32_f16(a: float16x4_t) -> float32x2_t {
40055    unsafe { transmute(a) }
40056}
40057#[doc = "Vector reinterpret cast operation"]
40058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_f16)"]
40059#[inline(always)]
40060#[cfg(target_endian = "big")]
40061#[target_feature(enable = "neon")]
40062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40063#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40064#[cfg_attr(
40065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40066    assert_instr(nop)
40067)]
40068#[cfg_attr(
40069    not(target_arch = "arm"),
40070    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40071)]
40072#[cfg_attr(
40073    target_arch = "arm",
40074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40075)]
40076#[cfg(not(target_arch = "arm64ec"))]
40077pub fn vreinterpret_f32_f16(a: float16x4_t) -> float32x2_t {
40078    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40079    unsafe {
40080        let ret_val: float32x2_t = transmute(a);
40081        simd_shuffle!(ret_val, ret_val, [1, 0])
40082    }
40083}
40084#[doc = "Vector reinterpret cast operation"]
40085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f16)"]
40086#[inline(always)]
40087#[cfg(target_endian = "little")]
40088#[target_feature(enable = "neon")]
40089#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40090#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40091#[cfg_attr(
40092    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40093    assert_instr(nop)
40094)]
40095#[cfg_attr(
40096    not(target_arch = "arm"),
40097    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40098)]
40099#[cfg_attr(
40100    target_arch = "arm",
40101    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40102)]
40103#[cfg(not(target_arch = "arm64ec"))]
40104pub fn vreinterpret_s8_f16(a: float16x4_t) -> int8x8_t {
40105    unsafe { transmute(a) }
40106}
40107#[doc = "Vector reinterpret cast operation"]
40108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f16)"]
40109#[inline(always)]
40110#[cfg(target_endian = "big")]
40111#[target_feature(enable = "neon")]
40112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40114#[cfg_attr(
40115    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40116    assert_instr(nop)
40117)]
40118#[cfg_attr(
40119    not(target_arch = "arm"),
40120    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40121)]
40122#[cfg_attr(
40123    target_arch = "arm",
40124    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40125)]
40126#[cfg(not(target_arch = "arm64ec"))]
40127pub fn vreinterpret_s8_f16(a: float16x4_t) -> int8x8_t {
40128    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40129    unsafe {
40130        let ret_val: int8x8_t = transmute(a);
40131        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
40132    }
40133}
40134#[doc = "Vector reinterpret cast operation"]
40135#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f16)"]
40136#[inline(always)]
40137#[cfg(target_endian = "little")]
40138#[target_feature(enable = "neon")]
40139#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40140#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40141#[cfg_attr(
40142    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40143    assert_instr(nop)
40144)]
40145#[cfg_attr(
40146    not(target_arch = "arm"),
40147    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40148)]
40149#[cfg_attr(
40150    target_arch = "arm",
40151    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40152)]
40153#[cfg(not(target_arch = "arm64ec"))]
40154pub fn vreinterpret_s16_f16(a: float16x4_t) -> int16x4_t {
40155    unsafe { transmute(a) }
40156}
40157#[doc = "Vector reinterpret cast operation"]
40158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f16)"]
40159#[inline(always)]
40160#[cfg(target_endian = "big")]
40161#[target_feature(enable = "neon")]
40162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40164#[cfg_attr(
40165    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40166    assert_instr(nop)
40167)]
40168#[cfg_attr(
40169    not(target_arch = "arm"),
40170    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40171)]
40172#[cfg_attr(
40173    target_arch = "arm",
40174    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40175)]
40176#[cfg(not(target_arch = "arm64ec"))]
40177pub fn vreinterpret_s16_f16(a: float16x4_t) -> int16x4_t {
40178    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40179    unsafe {
40180        let ret_val: int16x4_t = transmute(a);
40181        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40182    }
40183}
40184#[doc = "Vector reinterpret cast operation"]
40185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f16)"]
40186#[inline(always)]
40187#[cfg(target_endian = "little")]
40188#[target_feature(enable = "neon")]
40189#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40190#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40191#[cfg_attr(
40192    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40193    assert_instr(nop)
40194)]
40195#[cfg_attr(
40196    not(target_arch = "arm"),
40197    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40198)]
40199#[cfg_attr(
40200    target_arch = "arm",
40201    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40202)]
40203#[cfg(not(target_arch = "arm64ec"))]
40204pub fn vreinterpret_s32_f16(a: float16x4_t) -> int32x2_t {
40205    unsafe { transmute(a) }
40206}
40207#[doc = "Vector reinterpret cast operation"]
40208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f16)"]
40209#[inline(always)]
40210#[cfg(target_endian = "big")]
40211#[target_feature(enable = "neon")]
40212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40214#[cfg_attr(
40215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40216    assert_instr(nop)
40217)]
40218#[cfg_attr(
40219    not(target_arch = "arm"),
40220    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40221)]
40222#[cfg_attr(
40223    target_arch = "arm",
40224    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40225)]
40226#[cfg(not(target_arch = "arm64ec"))]
40227pub fn vreinterpret_s32_f16(a: float16x4_t) -> int32x2_t {
40228    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40229    unsafe {
40230        let ret_val: int32x2_t = transmute(a);
40231        simd_shuffle!(ret_val, ret_val, [1, 0])
40232    }
40233}
40234#[doc = "Vector reinterpret cast operation"]
40235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f16)"]
40236#[inline(always)]
40237#[cfg(target_endian = "little")]
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(nop))]
40241#[cfg_attr(
40242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40243    assert_instr(nop)
40244)]
40245#[cfg_attr(
40246    not(target_arch = "arm"),
40247    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40248)]
40249#[cfg_attr(
40250    target_arch = "arm",
40251    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40252)]
40253#[cfg(not(target_arch = "arm64ec"))]
40254pub fn vreinterpret_s64_f16(a: float16x4_t) -> int64x1_t {
40255    unsafe { transmute(a) }
40256}
40257#[doc = "Vector reinterpret cast operation"]
40258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f16)"]
40259#[inline(always)]
40260#[cfg(target_endian = "big")]
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(nop))]
40264#[cfg_attr(
40265    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40266    assert_instr(nop)
40267)]
40268#[cfg_attr(
40269    not(target_arch = "arm"),
40270    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40271)]
40272#[cfg_attr(
40273    target_arch = "arm",
40274    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40275)]
40276#[cfg(not(target_arch = "arm64ec"))]
40277pub fn vreinterpret_s64_f16(a: float16x4_t) -> int64x1_t {
40278    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40279    unsafe { transmute(a) }
40280}
40281#[doc = "Vector reinterpret cast operation"]
40282#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f16)"]
40283#[inline(always)]
40284#[cfg(target_endian = "little")]
40285#[target_feature(enable = "neon")]
40286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40287#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40288#[cfg_attr(
40289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40290    assert_instr(nop)
40291)]
40292#[cfg_attr(
40293    not(target_arch = "arm"),
40294    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40295)]
40296#[cfg_attr(
40297    target_arch = "arm",
40298    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40299)]
40300#[cfg(not(target_arch = "arm64ec"))]
40301pub fn vreinterpret_u8_f16(a: float16x4_t) -> uint8x8_t {
40302    unsafe { transmute(a) }
40303}
40304#[doc = "Vector reinterpret cast operation"]
40305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f16)"]
40306#[inline(always)]
40307#[cfg(target_endian = "big")]
40308#[target_feature(enable = "neon")]
40309#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40310#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40311#[cfg_attr(
40312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40313    assert_instr(nop)
40314)]
40315#[cfg_attr(
40316    not(target_arch = "arm"),
40317    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40318)]
40319#[cfg_attr(
40320    target_arch = "arm",
40321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40322)]
40323#[cfg(not(target_arch = "arm64ec"))]
40324pub fn vreinterpret_u8_f16(a: float16x4_t) -> uint8x8_t {
40325    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40326    unsafe {
40327        let ret_val: uint8x8_t = transmute(a);
40328        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
40329    }
40330}
40331#[doc = "Vector reinterpret cast operation"]
40332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f16)"]
40333#[inline(always)]
40334#[cfg(target_endian = "little")]
40335#[target_feature(enable = "neon")]
40336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40337#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40338#[cfg_attr(
40339    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40340    assert_instr(nop)
40341)]
40342#[cfg_attr(
40343    not(target_arch = "arm"),
40344    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40345)]
40346#[cfg_attr(
40347    target_arch = "arm",
40348    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40349)]
40350#[cfg(not(target_arch = "arm64ec"))]
40351pub fn vreinterpret_u16_f16(a: float16x4_t) -> uint16x4_t {
40352    unsafe { transmute(a) }
40353}
40354#[doc = "Vector reinterpret cast operation"]
40355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f16)"]
40356#[inline(always)]
40357#[cfg(target_endian = "big")]
40358#[target_feature(enable = "neon")]
40359#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40360#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40361#[cfg_attr(
40362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40363    assert_instr(nop)
40364)]
40365#[cfg_attr(
40366    not(target_arch = "arm"),
40367    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40368)]
40369#[cfg_attr(
40370    target_arch = "arm",
40371    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40372)]
40373#[cfg(not(target_arch = "arm64ec"))]
40374pub fn vreinterpret_u16_f16(a: float16x4_t) -> uint16x4_t {
40375    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40376    unsafe {
40377        let ret_val: uint16x4_t = transmute(a);
40378        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40379    }
40380}
40381#[doc = "Vector reinterpret cast operation"]
40382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f16)"]
40383#[inline(always)]
40384#[cfg(target_endian = "little")]
40385#[target_feature(enable = "neon")]
40386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40388#[cfg_attr(
40389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40390    assert_instr(nop)
40391)]
40392#[cfg_attr(
40393    not(target_arch = "arm"),
40394    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40395)]
40396#[cfg_attr(
40397    target_arch = "arm",
40398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40399)]
40400#[cfg(not(target_arch = "arm64ec"))]
40401pub fn vreinterpret_u32_f16(a: float16x4_t) -> uint32x2_t {
40402    unsafe { transmute(a) }
40403}
40404#[doc = "Vector reinterpret cast operation"]
40405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f16)"]
40406#[inline(always)]
40407#[cfg(target_endian = "big")]
40408#[target_feature(enable = "neon")]
40409#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40410#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40411#[cfg_attr(
40412    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40413    assert_instr(nop)
40414)]
40415#[cfg_attr(
40416    not(target_arch = "arm"),
40417    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40418)]
40419#[cfg_attr(
40420    target_arch = "arm",
40421    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40422)]
40423#[cfg(not(target_arch = "arm64ec"))]
40424pub fn vreinterpret_u32_f16(a: float16x4_t) -> uint32x2_t {
40425    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40426    unsafe {
40427        let ret_val: uint32x2_t = transmute(a);
40428        simd_shuffle!(ret_val, ret_val, [1, 0])
40429    }
40430}
40431#[doc = "Vector reinterpret cast operation"]
40432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f16)"]
40433#[inline(always)]
40434#[cfg(target_endian = "little")]
40435#[target_feature(enable = "neon")]
40436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40438#[cfg_attr(
40439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40440    assert_instr(nop)
40441)]
40442#[cfg_attr(
40443    not(target_arch = "arm"),
40444    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40445)]
40446#[cfg_attr(
40447    target_arch = "arm",
40448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40449)]
40450#[cfg(not(target_arch = "arm64ec"))]
40451pub fn vreinterpret_u64_f16(a: float16x4_t) -> uint64x1_t {
40452    unsafe { transmute(a) }
40453}
40454#[doc = "Vector reinterpret cast operation"]
40455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f16)"]
40456#[inline(always)]
40457#[cfg(target_endian = "big")]
40458#[target_feature(enable = "neon")]
40459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40461#[cfg_attr(
40462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40463    assert_instr(nop)
40464)]
40465#[cfg_attr(
40466    not(target_arch = "arm"),
40467    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40468)]
40469#[cfg_attr(
40470    target_arch = "arm",
40471    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40472)]
40473#[cfg(not(target_arch = "arm64ec"))]
40474pub fn vreinterpret_u64_f16(a: float16x4_t) -> uint64x1_t {
40475    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40476    unsafe { transmute(a) }
40477}
40478#[doc = "Vector reinterpret cast operation"]
40479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f16)"]
40480#[inline(always)]
40481#[cfg(target_endian = "little")]
40482#[target_feature(enable = "neon")]
40483#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40484#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40485#[cfg_attr(
40486    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40487    assert_instr(nop)
40488)]
40489#[cfg_attr(
40490    not(target_arch = "arm"),
40491    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40492)]
40493#[cfg_attr(
40494    target_arch = "arm",
40495    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40496)]
40497#[cfg(not(target_arch = "arm64ec"))]
40498pub fn vreinterpret_p8_f16(a: float16x4_t) -> poly8x8_t {
40499    unsafe { transmute(a) }
40500}
40501#[doc = "Vector reinterpret cast operation"]
40502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f16)"]
40503#[inline(always)]
40504#[cfg(target_endian = "big")]
40505#[target_feature(enable = "neon")]
40506#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40507#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40508#[cfg_attr(
40509    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40510    assert_instr(nop)
40511)]
40512#[cfg_attr(
40513    not(target_arch = "arm"),
40514    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40515)]
40516#[cfg_attr(
40517    target_arch = "arm",
40518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40519)]
40520#[cfg(not(target_arch = "arm64ec"))]
40521pub fn vreinterpret_p8_f16(a: float16x4_t) -> poly8x8_t {
40522    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40523    unsafe {
40524        let ret_val: poly8x8_t = transmute(a);
40525        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
40526    }
40527}
40528#[doc = "Vector reinterpret cast operation"]
40529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f16)"]
40530#[inline(always)]
40531#[cfg(target_endian = "little")]
40532#[target_feature(enable = "neon")]
40533#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40534#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40535#[cfg_attr(
40536    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40537    assert_instr(nop)
40538)]
40539#[cfg_attr(
40540    not(target_arch = "arm"),
40541    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40542)]
40543#[cfg_attr(
40544    target_arch = "arm",
40545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40546)]
40547#[cfg(not(target_arch = "arm64ec"))]
40548pub fn vreinterpret_p16_f16(a: float16x4_t) -> poly16x4_t {
40549    unsafe { transmute(a) }
40550}
40551#[doc = "Vector reinterpret cast operation"]
40552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f16)"]
40553#[inline(always)]
40554#[cfg(target_endian = "big")]
40555#[target_feature(enable = "neon")]
40556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40557#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40558#[cfg_attr(
40559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40560    assert_instr(nop)
40561)]
40562#[cfg_attr(
40563    not(target_arch = "arm"),
40564    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40565)]
40566#[cfg_attr(
40567    target_arch = "arm",
40568    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40569)]
40570#[cfg(not(target_arch = "arm64ec"))]
40571pub fn vreinterpret_p16_f16(a: float16x4_t) -> poly16x4_t {
40572    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40573    unsafe {
40574        let ret_val: poly16x4_t = transmute(a);
40575        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40576    }
40577}
40578#[doc = "Vector reinterpret cast operation"]
40579#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_f16)"]
40580#[inline(always)]
40581#[cfg(target_endian = "little")]
40582#[target_feature(enable = "neon")]
40583#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40584#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40585#[cfg_attr(
40586    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40587    assert_instr(nop)
40588)]
40589#[cfg_attr(
40590    not(target_arch = "arm"),
40591    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40592)]
40593#[cfg_attr(
40594    target_arch = "arm",
40595    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40596)]
40597#[cfg(not(target_arch = "arm64ec"))]
40598pub fn vreinterpretq_f32_f16(a: float16x8_t) -> float32x4_t {
40599    unsafe { transmute(a) }
40600}
40601#[doc = "Vector reinterpret cast operation"]
40602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_f16)"]
40603#[inline(always)]
40604#[cfg(target_endian = "big")]
40605#[target_feature(enable = "neon")]
40606#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40607#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40608#[cfg_attr(
40609    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40610    assert_instr(nop)
40611)]
40612#[cfg_attr(
40613    not(target_arch = "arm"),
40614    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40615)]
40616#[cfg_attr(
40617    target_arch = "arm",
40618    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40619)]
40620#[cfg(not(target_arch = "arm64ec"))]
40621pub fn vreinterpretq_f32_f16(a: float16x8_t) -> float32x4_t {
40622    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40623    unsafe {
40624        let ret_val: float32x4_t = transmute(a);
40625        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40626    }
40627}
40628#[doc = "Vector reinterpret cast operation"]
40629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f16)"]
40630#[inline(always)]
40631#[cfg(target_endian = "little")]
40632#[target_feature(enable = "neon")]
40633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40634#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40635#[cfg_attr(
40636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40637    assert_instr(nop)
40638)]
40639#[cfg_attr(
40640    not(target_arch = "arm"),
40641    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40642)]
40643#[cfg_attr(
40644    target_arch = "arm",
40645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40646)]
40647#[cfg(not(target_arch = "arm64ec"))]
40648pub fn vreinterpretq_s8_f16(a: float16x8_t) -> int8x16_t {
40649    unsafe { transmute(a) }
40650}
40651#[doc = "Vector reinterpret cast operation"]
40652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f16)"]
40653#[inline(always)]
40654#[cfg(target_endian = "big")]
40655#[target_feature(enable = "neon")]
40656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40658#[cfg_attr(
40659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40660    assert_instr(nop)
40661)]
40662#[cfg_attr(
40663    not(target_arch = "arm"),
40664    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40665)]
40666#[cfg_attr(
40667    target_arch = "arm",
40668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40669)]
40670#[cfg(not(target_arch = "arm64ec"))]
40671pub fn vreinterpretq_s8_f16(a: float16x8_t) -> int8x16_t {
40672    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40673    unsafe {
40674        let ret_val: int8x16_t = transmute(a);
40675        simd_shuffle!(
40676            ret_val,
40677            ret_val,
40678            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
40679        )
40680    }
40681}
40682#[doc = "Vector reinterpret cast operation"]
40683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f16)"]
40684#[inline(always)]
40685#[cfg(target_endian = "little")]
40686#[target_feature(enable = "neon")]
40687#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40688#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40689#[cfg_attr(
40690    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40691    assert_instr(nop)
40692)]
40693#[cfg_attr(
40694    not(target_arch = "arm"),
40695    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40696)]
40697#[cfg_attr(
40698    target_arch = "arm",
40699    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40700)]
40701#[cfg(not(target_arch = "arm64ec"))]
40702pub fn vreinterpretq_s16_f16(a: float16x8_t) -> int16x8_t {
40703    unsafe { transmute(a) }
40704}
40705#[doc = "Vector reinterpret cast operation"]
40706#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f16)"]
40707#[inline(always)]
40708#[cfg(target_endian = "big")]
40709#[target_feature(enable = "neon")]
40710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40711#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40712#[cfg_attr(
40713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40714    assert_instr(nop)
40715)]
40716#[cfg_attr(
40717    not(target_arch = "arm"),
40718    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40719)]
40720#[cfg_attr(
40721    target_arch = "arm",
40722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40723)]
40724#[cfg(not(target_arch = "arm64ec"))]
40725pub fn vreinterpretq_s16_f16(a: float16x8_t) -> int16x8_t {
40726    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40727    unsafe {
40728        let ret_val: int16x8_t = transmute(a);
40729        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
40730    }
40731}
40732#[doc = "Vector reinterpret cast operation"]
40733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f16)"]
40734#[inline(always)]
40735#[cfg(target_endian = "little")]
40736#[target_feature(enable = "neon")]
40737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40738#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40739#[cfg_attr(
40740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40741    assert_instr(nop)
40742)]
40743#[cfg_attr(
40744    not(target_arch = "arm"),
40745    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40746)]
40747#[cfg_attr(
40748    target_arch = "arm",
40749    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40750)]
40751#[cfg(not(target_arch = "arm64ec"))]
40752pub fn vreinterpretq_s32_f16(a: float16x8_t) -> int32x4_t {
40753    unsafe { transmute(a) }
40754}
40755#[doc = "Vector reinterpret cast operation"]
40756#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f16)"]
40757#[inline(always)]
40758#[cfg(target_endian = "big")]
40759#[target_feature(enable = "neon")]
40760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40761#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40762#[cfg_attr(
40763    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40764    assert_instr(nop)
40765)]
40766#[cfg_attr(
40767    not(target_arch = "arm"),
40768    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40769)]
40770#[cfg_attr(
40771    target_arch = "arm",
40772    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40773)]
40774#[cfg(not(target_arch = "arm64ec"))]
40775pub fn vreinterpretq_s32_f16(a: float16x8_t) -> int32x4_t {
40776    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40777    unsafe {
40778        let ret_val: int32x4_t = transmute(a);
40779        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40780    }
40781}
40782#[doc = "Vector reinterpret cast operation"]
40783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f16)"]
40784#[inline(always)]
40785#[cfg(target_endian = "little")]
40786#[target_feature(enable = "neon")]
40787#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40788#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40789#[cfg_attr(
40790    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40791    assert_instr(nop)
40792)]
40793#[cfg_attr(
40794    not(target_arch = "arm"),
40795    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40796)]
40797#[cfg_attr(
40798    target_arch = "arm",
40799    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40800)]
40801#[cfg(not(target_arch = "arm64ec"))]
40802pub fn vreinterpretq_s64_f16(a: float16x8_t) -> int64x2_t {
40803    unsafe { transmute(a) }
40804}
40805#[doc = "Vector reinterpret cast operation"]
40806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f16)"]
40807#[inline(always)]
40808#[cfg(target_endian = "big")]
40809#[target_feature(enable = "neon")]
40810#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40811#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40812#[cfg_attr(
40813    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40814    assert_instr(nop)
40815)]
40816#[cfg_attr(
40817    not(target_arch = "arm"),
40818    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40819)]
40820#[cfg_attr(
40821    target_arch = "arm",
40822    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40823)]
40824#[cfg(not(target_arch = "arm64ec"))]
40825pub fn vreinterpretq_s64_f16(a: float16x8_t) -> int64x2_t {
40826    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40827    unsafe {
40828        let ret_val: int64x2_t = transmute(a);
40829        simd_shuffle!(ret_val, ret_val, [1, 0])
40830    }
40831}
40832#[doc = "Vector reinterpret cast operation"]
40833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f16)"]
40834#[inline(always)]
40835#[cfg(target_endian = "little")]
40836#[target_feature(enable = "neon")]
40837#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40838#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40839#[cfg_attr(
40840    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40841    assert_instr(nop)
40842)]
40843#[cfg_attr(
40844    not(target_arch = "arm"),
40845    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40846)]
40847#[cfg_attr(
40848    target_arch = "arm",
40849    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40850)]
40851#[cfg(not(target_arch = "arm64ec"))]
40852pub fn vreinterpretq_u8_f16(a: float16x8_t) -> uint8x16_t {
40853    unsafe { transmute(a) }
40854}
40855#[doc = "Vector reinterpret cast operation"]
40856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f16)"]
40857#[inline(always)]
40858#[cfg(target_endian = "big")]
40859#[target_feature(enable = "neon")]
40860#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40861#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40862#[cfg_attr(
40863    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40864    assert_instr(nop)
40865)]
40866#[cfg_attr(
40867    not(target_arch = "arm"),
40868    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40869)]
40870#[cfg_attr(
40871    target_arch = "arm",
40872    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40873)]
40874#[cfg(not(target_arch = "arm64ec"))]
40875pub fn vreinterpretq_u8_f16(a: float16x8_t) -> uint8x16_t {
40876    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40877    unsafe {
40878        let ret_val: uint8x16_t = transmute(a);
40879        simd_shuffle!(
40880            ret_val,
40881            ret_val,
40882            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
40883        )
40884    }
40885}
40886#[doc = "Vector reinterpret cast operation"]
40887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f16)"]
40888#[inline(always)]
40889#[cfg(target_endian = "little")]
40890#[target_feature(enable = "neon")]
40891#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40892#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40893#[cfg_attr(
40894    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40895    assert_instr(nop)
40896)]
40897#[cfg_attr(
40898    not(target_arch = "arm"),
40899    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40900)]
40901#[cfg_attr(
40902    target_arch = "arm",
40903    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40904)]
40905#[cfg(not(target_arch = "arm64ec"))]
40906pub fn vreinterpretq_u16_f16(a: float16x8_t) -> uint16x8_t {
40907    unsafe { transmute(a) }
40908}
40909#[doc = "Vector reinterpret cast operation"]
40910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f16)"]
40911#[inline(always)]
40912#[cfg(target_endian = "big")]
40913#[target_feature(enable = "neon")]
40914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40916#[cfg_attr(
40917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40918    assert_instr(nop)
40919)]
40920#[cfg_attr(
40921    not(target_arch = "arm"),
40922    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40923)]
40924#[cfg_attr(
40925    target_arch = "arm",
40926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40927)]
40928#[cfg(not(target_arch = "arm64ec"))]
40929pub fn vreinterpretq_u16_f16(a: float16x8_t) -> uint16x8_t {
40930    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40931    unsafe {
40932        let ret_val: uint16x8_t = transmute(a);
40933        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
40934    }
40935}
40936#[doc = "Vector reinterpret cast operation"]
40937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f16)"]
40938#[inline(always)]
40939#[cfg(target_endian = "little")]
40940#[target_feature(enable = "neon")]
40941#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40942#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40943#[cfg_attr(
40944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40945    assert_instr(nop)
40946)]
40947#[cfg_attr(
40948    not(target_arch = "arm"),
40949    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40950)]
40951#[cfg_attr(
40952    target_arch = "arm",
40953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40954)]
40955#[cfg(not(target_arch = "arm64ec"))]
40956pub fn vreinterpretq_u32_f16(a: float16x8_t) -> uint32x4_t {
40957    unsafe { transmute(a) }
40958}
40959#[doc = "Vector reinterpret cast operation"]
40960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f16)"]
40961#[inline(always)]
40962#[cfg(target_endian = "big")]
40963#[target_feature(enable = "neon")]
40964#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40966#[cfg_attr(
40967    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40968    assert_instr(nop)
40969)]
40970#[cfg_attr(
40971    not(target_arch = "arm"),
40972    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40973)]
40974#[cfg_attr(
40975    target_arch = "arm",
40976    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40977)]
40978#[cfg(not(target_arch = "arm64ec"))]
40979pub fn vreinterpretq_u32_f16(a: float16x8_t) -> uint32x4_t {
40980    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40981    unsafe {
40982        let ret_val: uint32x4_t = transmute(a);
40983        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40984    }
40985}
40986#[doc = "Vector reinterpret cast operation"]
40987#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f16)"]
40988#[inline(always)]
40989#[cfg(target_endian = "little")]
40990#[target_feature(enable = "neon")]
40991#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40992#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40993#[cfg_attr(
40994    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40995    assert_instr(nop)
40996)]
40997#[cfg_attr(
40998    not(target_arch = "arm"),
40999    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41000)]
41001#[cfg_attr(
41002    target_arch = "arm",
41003    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41004)]
41005#[cfg(not(target_arch = "arm64ec"))]
41006pub fn vreinterpretq_u64_f16(a: float16x8_t) -> uint64x2_t {
41007    unsafe { transmute(a) }
41008}
41009#[doc = "Vector reinterpret cast operation"]
41010#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f16)"]
41011#[inline(always)]
41012#[cfg(target_endian = "big")]
41013#[target_feature(enable = "neon")]
41014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41016#[cfg_attr(
41017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41018    assert_instr(nop)
41019)]
41020#[cfg_attr(
41021    not(target_arch = "arm"),
41022    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41023)]
41024#[cfg_attr(
41025    target_arch = "arm",
41026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41027)]
41028#[cfg(not(target_arch = "arm64ec"))]
41029pub fn vreinterpretq_u64_f16(a: float16x8_t) -> uint64x2_t {
41030    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41031    unsafe {
41032        let ret_val: uint64x2_t = transmute(a);
41033        simd_shuffle!(ret_val, ret_val, [1, 0])
41034    }
41035}
41036#[doc = "Vector reinterpret cast operation"]
41037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f16)"]
41038#[inline(always)]
41039#[cfg(target_endian = "little")]
41040#[target_feature(enable = "neon")]
41041#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41042#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41043#[cfg_attr(
41044    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41045    assert_instr(nop)
41046)]
41047#[cfg_attr(
41048    not(target_arch = "arm"),
41049    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41050)]
41051#[cfg_attr(
41052    target_arch = "arm",
41053    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41054)]
41055#[cfg(not(target_arch = "arm64ec"))]
41056pub fn vreinterpretq_p8_f16(a: float16x8_t) -> poly8x16_t {
41057    unsafe { transmute(a) }
41058}
41059#[doc = "Vector reinterpret cast operation"]
41060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f16)"]
41061#[inline(always)]
41062#[cfg(target_endian = "big")]
41063#[target_feature(enable = "neon")]
41064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41066#[cfg_attr(
41067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41068    assert_instr(nop)
41069)]
41070#[cfg_attr(
41071    not(target_arch = "arm"),
41072    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41073)]
41074#[cfg_attr(
41075    target_arch = "arm",
41076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41077)]
41078#[cfg(not(target_arch = "arm64ec"))]
41079pub fn vreinterpretq_p8_f16(a: float16x8_t) -> poly8x16_t {
41080    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41081    unsafe {
41082        let ret_val: poly8x16_t = transmute(a);
41083        simd_shuffle!(
41084            ret_val,
41085            ret_val,
41086            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
41087        )
41088    }
41089}
41090#[doc = "Vector reinterpret cast operation"]
41091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f16)"]
41092#[inline(always)]
41093#[cfg(target_endian = "little")]
41094#[target_feature(enable = "neon")]
41095#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41096#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41097#[cfg_attr(
41098    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41099    assert_instr(nop)
41100)]
41101#[cfg_attr(
41102    not(target_arch = "arm"),
41103    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41104)]
41105#[cfg_attr(
41106    target_arch = "arm",
41107    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41108)]
41109#[cfg(not(target_arch = "arm64ec"))]
41110pub fn vreinterpretq_p16_f16(a: float16x8_t) -> poly16x8_t {
41111    unsafe { transmute(a) }
41112}
41113#[doc = "Vector reinterpret cast operation"]
41114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f16)"]
41115#[inline(always)]
41116#[cfg(target_endian = "big")]
41117#[target_feature(enable = "neon")]
41118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41119#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41120#[cfg_attr(
41121    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41122    assert_instr(nop)
41123)]
41124#[cfg_attr(
41125    not(target_arch = "arm"),
41126    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41127)]
41128#[cfg_attr(
41129    target_arch = "arm",
41130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41131)]
41132#[cfg(not(target_arch = "arm64ec"))]
41133pub fn vreinterpretq_p16_f16(a: float16x8_t) -> poly16x8_t {
41134    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41135    unsafe {
41136        let ret_val: poly16x8_t = transmute(a);
41137        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41138    }
41139}
41140#[doc = "Vector reinterpret cast operation"]
41141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_f32)"]
41142#[inline(always)]
41143#[cfg(target_endian = "little")]
41144#[target_feature(enable = "neon")]
41145#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41146#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41147#[cfg_attr(
41148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41149    assert_instr(nop)
41150)]
41151#[cfg_attr(
41152    not(target_arch = "arm"),
41153    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41154)]
41155#[cfg_attr(
41156    target_arch = "arm",
41157    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41158)]
41159#[cfg(not(target_arch = "arm64ec"))]
41160pub fn vreinterpret_f16_f32(a: float32x2_t) -> float16x4_t {
41161    unsafe { transmute(a) }
41162}
41163#[doc = "Vector reinterpret cast operation"]
41164#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_f32)"]
41165#[inline(always)]
41166#[cfg(target_endian = "big")]
41167#[target_feature(enable = "neon")]
41168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41170#[cfg_attr(
41171    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41172    assert_instr(nop)
41173)]
41174#[cfg_attr(
41175    not(target_arch = "arm"),
41176    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41177)]
41178#[cfg_attr(
41179    target_arch = "arm",
41180    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41181)]
41182#[cfg(not(target_arch = "arm64ec"))]
41183pub fn vreinterpret_f16_f32(a: float32x2_t) -> float16x4_t {
41184    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
41185    unsafe {
41186        let ret_val: float16x4_t = transmute(a);
41187        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41188    }
41189}
41190#[doc = "Vector reinterpret cast operation"]
41191#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_f32)"]
41192#[inline(always)]
41193#[cfg(target_endian = "little")]
41194#[target_feature(enable = "neon")]
41195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41197#[cfg_attr(
41198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41199    assert_instr(nop)
41200)]
41201#[cfg_attr(
41202    not(target_arch = "arm"),
41203    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41204)]
41205#[cfg_attr(
41206    target_arch = "arm",
41207    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41208)]
41209#[cfg(not(target_arch = "arm64ec"))]
41210pub fn vreinterpretq_f16_f32(a: float32x4_t) -> float16x8_t {
41211    unsafe { transmute(a) }
41212}
41213#[doc = "Vector reinterpret cast operation"]
41214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_f32)"]
41215#[inline(always)]
41216#[cfg(target_endian = "big")]
41217#[target_feature(enable = "neon")]
41218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41220#[cfg_attr(
41221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41222    assert_instr(nop)
41223)]
41224#[cfg_attr(
41225    not(target_arch = "arm"),
41226    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41227)]
41228#[cfg_attr(
41229    target_arch = "arm",
41230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41231)]
41232#[cfg(not(target_arch = "arm64ec"))]
41233pub fn vreinterpretq_f16_f32(a: float32x4_t) -> float16x8_t {
41234    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41235    unsafe {
41236        let ret_val: float16x8_t = transmute(a);
41237        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41238    }
41239}
41240#[doc = "Vector reinterpret cast operation"]
41241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s8)"]
41242#[inline(always)]
41243#[cfg(target_endian = "little")]
41244#[target_feature(enable = "neon")]
41245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41247#[cfg_attr(
41248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41249    assert_instr(nop)
41250)]
41251#[cfg_attr(
41252    not(target_arch = "arm"),
41253    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41254)]
41255#[cfg_attr(
41256    target_arch = "arm",
41257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41258)]
41259#[cfg(not(target_arch = "arm64ec"))]
41260pub fn vreinterpret_f16_s8(a: int8x8_t) -> float16x4_t {
41261    unsafe { transmute(a) }
41262}
41263#[doc = "Vector reinterpret cast operation"]
41264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s8)"]
41265#[inline(always)]
41266#[cfg(target_endian = "big")]
41267#[target_feature(enable = "neon")]
41268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41269#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41270#[cfg_attr(
41271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41272    assert_instr(nop)
41273)]
41274#[cfg_attr(
41275    not(target_arch = "arm"),
41276    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41277)]
41278#[cfg_attr(
41279    target_arch = "arm",
41280    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41281)]
41282#[cfg(not(target_arch = "arm64ec"))]
41283pub fn vreinterpret_f16_s8(a: int8x8_t) -> float16x4_t {
41284    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41285    unsafe {
41286        let ret_val: float16x4_t = transmute(a);
41287        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41288    }
41289}
41290#[doc = "Vector reinterpret cast operation"]
41291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s8)"]
41292#[inline(always)]
41293#[cfg(target_endian = "little")]
41294#[target_feature(enable = "neon")]
41295#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41296#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41297#[cfg_attr(
41298    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41299    assert_instr(nop)
41300)]
41301#[cfg_attr(
41302    not(target_arch = "arm"),
41303    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41304)]
41305#[cfg_attr(
41306    target_arch = "arm",
41307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41308)]
41309#[cfg(not(target_arch = "arm64ec"))]
41310pub fn vreinterpretq_f16_s8(a: int8x16_t) -> float16x8_t {
41311    unsafe { transmute(a) }
41312}
41313#[doc = "Vector reinterpret cast operation"]
41314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s8)"]
41315#[inline(always)]
41316#[cfg(target_endian = "big")]
41317#[target_feature(enable = "neon")]
41318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41320#[cfg_attr(
41321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41322    assert_instr(nop)
41323)]
41324#[cfg_attr(
41325    not(target_arch = "arm"),
41326    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41327)]
41328#[cfg_attr(
41329    target_arch = "arm",
41330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41331)]
41332#[cfg(not(target_arch = "arm64ec"))]
41333pub fn vreinterpretq_f16_s8(a: int8x16_t) -> float16x8_t {
41334    let a: int8x16_t =
41335        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
41336    unsafe {
41337        let ret_val: float16x8_t = transmute(a);
41338        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41339    }
41340}
41341#[doc = "Vector reinterpret cast operation"]
41342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s16)"]
41343#[inline(always)]
41344#[cfg(target_endian = "little")]
41345#[target_feature(enable = "neon")]
41346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41348#[cfg_attr(
41349    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41350    assert_instr(nop)
41351)]
41352#[cfg_attr(
41353    not(target_arch = "arm"),
41354    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41355)]
41356#[cfg_attr(
41357    target_arch = "arm",
41358    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41359)]
41360#[cfg(not(target_arch = "arm64ec"))]
41361pub fn vreinterpret_f16_s16(a: int16x4_t) -> float16x4_t {
41362    unsafe { transmute(a) }
41363}
41364#[doc = "Vector reinterpret cast operation"]
41365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s16)"]
41366#[inline(always)]
41367#[cfg(target_endian = "big")]
41368#[target_feature(enable = "neon")]
41369#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41370#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41371#[cfg_attr(
41372    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41373    assert_instr(nop)
41374)]
41375#[cfg_attr(
41376    not(target_arch = "arm"),
41377    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41378)]
41379#[cfg_attr(
41380    target_arch = "arm",
41381    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41382)]
41383#[cfg(not(target_arch = "arm64ec"))]
41384pub fn vreinterpret_f16_s16(a: int16x4_t) -> float16x4_t {
41385    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41386    unsafe {
41387        let ret_val: float16x4_t = transmute(a);
41388        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41389    }
41390}
41391#[doc = "Vector reinterpret cast operation"]
41392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s16)"]
41393#[inline(always)]
41394#[cfg(target_endian = "little")]
41395#[target_feature(enable = "neon")]
41396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41398#[cfg_attr(
41399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41400    assert_instr(nop)
41401)]
41402#[cfg_attr(
41403    not(target_arch = "arm"),
41404    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41405)]
41406#[cfg_attr(
41407    target_arch = "arm",
41408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41409)]
41410#[cfg(not(target_arch = "arm64ec"))]
41411pub fn vreinterpretq_f16_s16(a: int16x8_t) -> float16x8_t {
41412    unsafe { transmute(a) }
41413}
41414#[doc = "Vector reinterpret cast operation"]
41415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s16)"]
41416#[inline(always)]
41417#[cfg(target_endian = "big")]
41418#[target_feature(enable = "neon")]
41419#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41420#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41421#[cfg_attr(
41422    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41423    assert_instr(nop)
41424)]
41425#[cfg_attr(
41426    not(target_arch = "arm"),
41427    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41428)]
41429#[cfg_attr(
41430    target_arch = "arm",
41431    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41432)]
41433#[cfg(not(target_arch = "arm64ec"))]
41434pub fn vreinterpretq_f16_s16(a: int16x8_t) -> float16x8_t {
41435    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41436    unsafe {
41437        let ret_val: float16x8_t = transmute(a);
41438        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41439    }
41440}
41441#[doc = "Vector reinterpret cast operation"]
41442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s32)"]
41443#[inline(always)]
41444#[cfg(target_endian = "little")]
41445#[target_feature(enable = "neon")]
41446#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41447#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41448#[cfg_attr(
41449    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41450    assert_instr(nop)
41451)]
41452#[cfg_attr(
41453    not(target_arch = "arm"),
41454    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41455)]
41456#[cfg_attr(
41457    target_arch = "arm",
41458    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41459)]
41460#[cfg(not(target_arch = "arm64ec"))]
41461pub fn vreinterpret_f16_s32(a: int32x2_t) -> float16x4_t {
41462    unsafe { transmute(a) }
41463}
41464#[doc = "Vector reinterpret cast operation"]
41465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s32)"]
41466#[inline(always)]
41467#[cfg(target_endian = "big")]
41468#[target_feature(enable = "neon")]
41469#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41470#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41471#[cfg_attr(
41472    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41473    assert_instr(nop)
41474)]
41475#[cfg_attr(
41476    not(target_arch = "arm"),
41477    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41478)]
41479#[cfg_attr(
41480    target_arch = "arm",
41481    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41482)]
41483#[cfg(not(target_arch = "arm64ec"))]
41484pub fn vreinterpret_f16_s32(a: int32x2_t) -> float16x4_t {
41485    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
41486    unsafe {
41487        let ret_val: float16x4_t = transmute(a);
41488        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41489    }
41490}
41491#[doc = "Vector reinterpret cast operation"]
41492#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s32)"]
41493#[inline(always)]
41494#[cfg(target_endian = "little")]
41495#[target_feature(enable = "neon")]
41496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41498#[cfg_attr(
41499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41500    assert_instr(nop)
41501)]
41502#[cfg_attr(
41503    not(target_arch = "arm"),
41504    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41505)]
41506#[cfg_attr(
41507    target_arch = "arm",
41508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41509)]
41510#[cfg(not(target_arch = "arm64ec"))]
41511pub fn vreinterpretq_f16_s32(a: int32x4_t) -> float16x8_t {
41512    unsafe { transmute(a) }
41513}
41514#[doc = "Vector reinterpret cast operation"]
41515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s32)"]
41516#[inline(always)]
41517#[cfg(target_endian = "big")]
41518#[target_feature(enable = "neon")]
41519#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41520#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41521#[cfg_attr(
41522    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41523    assert_instr(nop)
41524)]
41525#[cfg_attr(
41526    not(target_arch = "arm"),
41527    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41528)]
41529#[cfg_attr(
41530    target_arch = "arm",
41531    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41532)]
41533#[cfg(not(target_arch = "arm64ec"))]
41534pub fn vreinterpretq_f16_s32(a: int32x4_t) -> float16x8_t {
41535    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41536    unsafe {
41537        let ret_val: float16x8_t = transmute(a);
41538        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41539    }
41540}
41541#[doc = "Vector reinterpret cast operation"]
41542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s64)"]
41543#[inline(always)]
41544#[cfg(target_endian = "little")]
41545#[target_feature(enable = "neon")]
41546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41548#[cfg_attr(
41549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41550    assert_instr(nop)
41551)]
41552#[cfg_attr(
41553    not(target_arch = "arm"),
41554    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41555)]
41556#[cfg_attr(
41557    target_arch = "arm",
41558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41559)]
41560#[cfg(not(target_arch = "arm64ec"))]
41561pub fn vreinterpret_f16_s64(a: int64x1_t) -> float16x4_t {
41562    unsafe { transmute(a) }
41563}
41564#[doc = "Vector reinterpret cast operation"]
41565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s64)"]
41566#[inline(always)]
41567#[cfg(target_endian = "big")]
41568#[target_feature(enable = "neon")]
41569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41570#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41571#[cfg_attr(
41572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41573    assert_instr(nop)
41574)]
41575#[cfg_attr(
41576    not(target_arch = "arm"),
41577    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41578)]
41579#[cfg_attr(
41580    target_arch = "arm",
41581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41582)]
41583#[cfg(not(target_arch = "arm64ec"))]
41584pub fn vreinterpret_f16_s64(a: int64x1_t) -> float16x4_t {
41585    unsafe {
41586        let ret_val: float16x4_t = transmute(a);
41587        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41588    }
41589}
41590#[doc = "Vector reinterpret cast operation"]
41591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s64)"]
41592#[inline(always)]
41593#[cfg(target_endian = "little")]
41594#[target_feature(enable = "neon")]
41595#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41596#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41597#[cfg_attr(
41598    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41599    assert_instr(nop)
41600)]
41601#[cfg_attr(
41602    not(target_arch = "arm"),
41603    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41604)]
41605#[cfg_attr(
41606    target_arch = "arm",
41607    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41608)]
41609#[cfg(not(target_arch = "arm64ec"))]
41610pub fn vreinterpretq_f16_s64(a: int64x2_t) -> float16x8_t {
41611    unsafe { transmute(a) }
41612}
41613#[doc = "Vector reinterpret cast operation"]
41614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s64)"]
41615#[inline(always)]
41616#[cfg(target_endian = "big")]
41617#[target_feature(enable = "neon")]
41618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41620#[cfg_attr(
41621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41622    assert_instr(nop)
41623)]
41624#[cfg_attr(
41625    not(target_arch = "arm"),
41626    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41627)]
41628#[cfg_attr(
41629    target_arch = "arm",
41630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41631)]
41632#[cfg(not(target_arch = "arm64ec"))]
41633pub fn vreinterpretq_f16_s64(a: int64x2_t) -> float16x8_t {
41634    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
41635    unsafe {
41636        let ret_val: float16x8_t = transmute(a);
41637        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41638    }
41639}
41640#[doc = "Vector reinterpret cast operation"]
41641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u8)"]
41642#[inline(always)]
41643#[cfg(target_endian = "little")]
41644#[target_feature(enable = "neon")]
41645#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41646#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41647#[cfg_attr(
41648    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41649    assert_instr(nop)
41650)]
41651#[cfg_attr(
41652    not(target_arch = "arm"),
41653    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41654)]
41655#[cfg_attr(
41656    target_arch = "arm",
41657    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41658)]
41659#[cfg(not(target_arch = "arm64ec"))]
41660pub fn vreinterpret_f16_u8(a: uint8x8_t) -> float16x4_t {
41661    unsafe { transmute(a) }
41662}
41663#[doc = "Vector reinterpret cast operation"]
41664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u8)"]
41665#[inline(always)]
41666#[cfg(target_endian = "big")]
41667#[target_feature(enable = "neon")]
41668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41670#[cfg_attr(
41671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41672    assert_instr(nop)
41673)]
41674#[cfg_attr(
41675    not(target_arch = "arm"),
41676    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41677)]
41678#[cfg_attr(
41679    target_arch = "arm",
41680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41681)]
41682#[cfg(not(target_arch = "arm64ec"))]
41683pub fn vreinterpret_f16_u8(a: uint8x8_t) -> float16x4_t {
41684    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41685    unsafe {
41686        let ret_val: float16x4_t = transmute(a);
41687        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41688    }
41689}
41690#[doc = "Vector reinterpret cast operation"]
41691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u8)"]
41692#[inline(always)]
41693#[cfg(target_endian = "little")]
41694#[target_feature(enable = "neon")]
41695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41696#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41697#[cfg_attr(
41698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41699    assert_instr(nop)
41700)]
41701#[cfg_attr(
41702    not(target_arch = "arm"),
41703    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41704)]
41705#[cfg_attr(
41706    target_arch = "arm",
41707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41708)]
41709#[cfg(not(target_arch = "arm64ec"))]
41710pub fn vreinterpretq_f16_u8(a: uint8x16_t) -> float16x8_t {
41711    unsafe { transmute(a) }
41712}
41713#[doc = "Vector reinterpret cast operation"]
41714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u8)"]
41715#[inline(always)]
41716#[cfg(target_endian = "big")]
41717#[target_feature(enable = "neon")]
41718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41720#[cfg_attr(
41721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41722    assert_instr(nop)
41723)]
41724#[cfg_attr(
41725    not(target_arch = "arm"),
41726    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41727)]
41728#[cfg_attr(
41729    target_arch = "arm",
41730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41731)]
41732#[cfg(not(target_arch = "arm64ec"))]
41733pub fn vreinterpretq_f16_u8(a: uint8x16_t) -> float16x8_t {
41734    let a: uint8x16_t =
41735        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
41736    unsafe {
41737        let ret_val: float16x8_t = transmute(a);
41738        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41739    }
41740}
41741#[doc = "Vector reinterpret cast operation"]
41742#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u16)"]
41743#[inline(always)]
41744#[cfg(target_endian = "little")]
41745#[target_feature(enable = "neon")]
41746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41748#[cfg_attr(
41749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41750    assert_instr(nop)
41751)]
41752#[cfg_attr(
41753    not(target_arch = "arm"),
41754    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41755)]
41756#[cfg_attr(
41757    target_arch = "arm",
41758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41759)]
41760#[cfg(not(target_arch = "arm64ec"))]
41761pub fn vreinterpret_f16_u16(a: uint16x4_t) -> float16x4_t {
41762    unsafe { transmute(a) }
41763}
41764#[doc = "Vector reinterpret cast operation"]
41765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u16)"]
41766#[inline(always)]
41767#[cfg(target_endian = "big")]
41768#[target_feature(enable = "neon")]
41769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41771#[cfg_attr(
41772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41773    assert_instr(nop)
41774)]
41775#[cfg_attr(
41776    not(target_arch = "arm"),
41777    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41778)]
41779#[cfg_attr(
41780    target_arch = "arm",
41781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41782)]
41783#[cfg(not(target_arch = "arm64ec"))]
41784pub fn vreinterpret_f16_u16(a: uint16x4_t) -> float16x4_t {
41785    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41786    unsafe {
41787        let ret_val: float16x4_t = transmute(a);
41788        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41789    }
41790}
41791#[doc = "Vector reinterpret cast operation"]
41792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u16)"]
41793#[inline(always)]
41794#[cfg(target_endian = "little")]
41795#[target_feature(enable = "neon")]
41796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41798#[cfg_attr(
41799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41800    assert_instr(nop)
41801)]
41802#[cfg_attr(
41803    not(target_arch = "arm"),
41804    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41805)]
41806#[cfg_attr(
41807    target_arch = "arm",
41808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41809)]
41810#[cfg(not(target_arch = "arm64ec"))]
41811pub fn vreinterpretq_f16_u16(a: uint16x8_t) -> float16x8_t {
41812    unsafe { transmute(a) }
41813}
41814#[doc = "Vector reinterpret cast operation"]
41815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u16)"]
41816#[inline(always)]
41817#[cfg(target_endian = "big")]
41818#[target_feature(enable = "neon")]
41819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41820#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41821#[cfg_attr(
41822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41823    assert_instr(nop)
41824)]
41825#[cfg_attr(
41826    not(target_arch = "arm"),
41827    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41828)]
41829#[cfg_attr(
41830    target_arch = "arm",
41831    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41832)]
41833#[cfg(not(target_arch = "arm64ec"))]
41834pub fn vreinterpretq_f16_u16(a: uint16x8_t) -> float16x8_t {
41835    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41836    unsafe {
41837        let ret_val: float16x8_t = transmute(a);
41838        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41839    }
41840}
41841#[doc = "Vector reinterpret cast operation"]
41842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u32)"]
41843#[inline(always)]
41844#[cfg(target_endian = "little")]
41845#[target_feature(enable = "neon")]
41846#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41847#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41848#[cfg_attr(
41849    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41850    assert_instr(nop)
41851)]
41852#[cfg_attr(
41853    not(target_arch = "arm"),
41854    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41855)]
41856#[cfg_attr(
41857    target_arch = "arm",
41858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41859)]
41860#[cfg(not(target_arch = "arm64ec"))]
41861pub fn vreinterpret_f16_u32(a: uint32x2_t) -> float16x4_t {
41862    unsafe { transmute(a) }
41863}
41864#[doc = "Vector reinterpret cast operation"]
41865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u32)"]
41866#[inline(always)]
41867#[cfg(target_endian = "big")]
41868#[target_feature(enable = "neon")]
41869#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41870#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41871#[cfg_attr(
41872    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41873    assert_instr(nop)
41874)]
41875#[cfg_attr(
41876    not(target_arch = "arm"),
41877    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41878)]
41879#[cfg_attr(
41880    target_arch = "arm",
41881    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41882)]
41883#[cfg(not(target_arch = "arm64ec"))]
41884pub fn vreinterpret_f16_u32(a: uint32x2_t) -> float16x4_t {
41885    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
41886    unsafe {
41887        let ret_val: float16x4_t = transmute(a);
41888        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41889    }
41890}
41891#[doc = "Vector reinterpret cast operation"]
41892#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u32)"]
41893#[inline(always)]
41894#[cfg(target_endian = "little")]
41895#[target_feature(enable = "neon")]
41896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41898#[cfg_attr(
41899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41900    assert_instr(nop)
41901)]
41902#[cfg_attr(
41903    not(target_arch = "arm"),
41904    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41905)]
41906#[cfg_attr(
41907    target_arch = "arm",
41908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41909)]
41910#[cfg(not(target_arch = "arm64ec"))]
41911pub fn vreinterpretq_f16_u32(a: uint32x4_t) -> float16x8_t {
41912    unsafe { transmute(a) }
41913}
41914#[doc = "Vector reinterpret cast operation"]
41915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u32)"]
41916#[inline(always)]
41917#[cfg(target_endian = "big")]
41918#[target_feature(enable = "neon")]
41919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41921#[cfg_attr(
41922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41923    assert_instr(nop)
41924)]
41925#[cfg_attr(
41926    not(target_arch = "arm"),
41927    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41928)]
41929#[cfg_attr(
41930    target_arch = "arm",
41931    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41932)]
41933#[cfg(not(target_arch = "arm64ec"))]
41934pub fn vreinterpretq_f16_u32(a: uint32x4_t) -> float16x8_t {
41935    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41936    unsafe {
41937        let ret_val: float16x8_t = transmute(a);
41938        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41939    }
41940}
41941#[doc = "Vector reinterpret cast operation"]
41942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u64)"]
41943#[inline(always)]
41944#[cfg(target_endian = "little")]
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(nop))]
41948#[cfg_attr(
41949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41950    assert_instr(nop)
41951)]
41952#[cfg_attr(
41953    not(target_arch = "arm"),
41954    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41955)]
41956#[cfg_attr(
41957    target_arch = "arm",
41958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41959)]
41960#[cfg(not(target_arch = "arm64ec"))]
41961pub fn vreinterpret_f16_u64(a: uint64x1_t) -> float16x4_t {
41962    unsafe { transmute(a) }
41963}
41964#[doc = "Vector reinterpret cast operation"]
41965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u64)"]
41966#[inline(always)]
41967#[cfg(target_endian = "big")]
41968#[target_feature(enable = "neon")]
41969#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41970#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41971#[cfg_attr(
41972    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41973    assert_instr(nop)
41974)]
41975#[cfg_attr(
41976    not(target_arch = "arm"),
41977    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41978)]
41979#[cfg_attr(
41980    target_arch = "arm",
41981    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41982)]
41983#[cfg(not(target_arch = "arm64ec"))]
41984pub fn vreinterpret_f16_u64(a: uint64x1_t) -> float16x4_t {
41985    unsafe {
41986        let ret_val: float16x4_t = transmute(a);
41987        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41988    }
41989}
41990#[doc = "Vector reinterpret cast operation"]
41991#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u64)"]
41992#[inline(always)]
41993#[cfg(target_endian = "little")]
41994#[target_feature(enable = "neon")]
41995#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41996#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41997#[cfg_attr(
41998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41999    assert_instr(nop)
42000)]
42001#[cfg_attr(
42002    not(target_arch = "arm"),
42003    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42004)]
42005#[cfg_attr(
42006    target_arch = "arm",
42007    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42008)]
42009#[cfg(not(target_arch = "arm64ec"))]
42010pub fn vreinterpretq_f16_u64(a: uint64x2_t) -> float16x8_t {
42011    unsafe { transmute(a) }
42012}
42013#[doc = "Vector reinterpret cast operation"]
42014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u64)"]
42015#[inline(always)]
42016#[cfg(target_endian = "big")]
42017#[target_feature(enable = "neon")]
42018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42020#[cfg_attr(
42021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42022    assert_instr(nop)
42023)]
42024#[cfg_attr(
42025    not(target_arch = "arm"),
42026    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42027)]
42028#[cfg_attr(
42029    target_arch = "arm",
42030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42031)]
42032#[cfg(not(target_arch = "arm64ec"))]
42033pub fn vreinterpretq_f16_u64(a: uint64x2_t) -> float16x8_t {
42034    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42035    unsafe {
42036        let ret_val: float16x8_t = transmute(a);
42037        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42038    }
42039}
42040#[doc = "Vector reinterpret cast operation"]
42041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p8)"]
42042#[inline(always)]
42043#[cfg(target_endian = "little")]
42044#[target_feature(enable = "neon")]
42045#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42046#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42047#[cfg_attr(
42048    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42049    assert_instr(nop)
42050)]
42051#[cfg_attr(
42052    not(target_arch = "arm"),
42053    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42054)]
42055#[cfg_attr(
42056    target_arch = "arm",
42057    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42058)]
42059#[cfg(not(target_arch = "arm64ec"))]
42060pub fn vreinterpret_f16_p8(a: poly8x8_t) -> float16x4_t {
42061    unsafe { transmute(a) }
42062}
42063#[doc = "Vector reinterpret cast operation"]
42064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p8)"]
42065#[inline(always)]
42066#[cfg(target_endian = "big")]
42067#[target_feature(enable = "neon")]
42068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42070#[cfg_attr(
42071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42072    assert_instr(nop)
42073)]
42074#[cfg_attr(
42075    not(target_arch = "arm"),
42076    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42077)]
42078#[cfg_attr(
42079    target_arch = "arm",
42080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42081)]
42082#[cfg(not(target_arch = "arm64ec"))]
42083pub fn vreinterpret_f16_p8(a: poly8x8_t) -> float16x4_t {
42084    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
42085    unsafe {
42086        let ret_val: float16x4_t = transmute(a);
42087        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42088    }
42089}
42090#[doc = "Vector reinterpret cast operation"]
42091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p8)"]
42092#[inline(always)]
42093#[cfg(target_endian = "little")]
42094#[target_feature(enable = "neon")]
42095#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42096#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42097#[cfg_attr(
42098    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42099    assert_instr(nop)
42100)]
42101#[cfg_attr(
42102    not(target_arch = "arm"),
42103    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42104)]
42105#[cfg_attr(
42106    target_arch = "arm",
42107    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42108)]
42109#[cfg(not(target_arch = "arm64ec"))]
42110pub fn vreinterpretq_f16_p8(a: poly8x16_t) -> float16x8_t {
42111    unsafe { transmute(a) }
42112}
42113#[doc = "Vector reinterpret cast operation"]
42114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p8)"]
42115#[inline(always)]
42116#[cfg(target_endian = "big")]
42117#[target_feature(enable = "neon")]
42118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42119#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42120#[cfg_attr(
42121    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42122    assert_instr(nop)
42123)]
42124#[cfg_attr(
42125    not(target_arch = "arm"),
42126    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42127)]
42128#[cfg_attr(
42129    target_arch = "arm",
42130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42131)]
42132#[cfg(not(target_arch = "arm64ec"))]
42133pub fn vreinterpretq_f16_p8(a: poly8x16_t) -> float16x8_t {
42134    let a: poly8x16_t =
42135        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
42136    unsafe {
42137        let ret_val: float16x8_t = transmute(a);
42138        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42139    }
42140}
42141#[doc = "Vector reinterpret cast operation"]
42142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p16)"]
42143#[inline(always)]
42144#[cfg(target_endian = "little")]
42145#[target_feature(enable = "neon")]
42146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42148#[cfg_attr(
42149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42150    assert_instr(nop)
42151)]
42152#[cfg_attr(
42153    not(target_arch = "arm"),
42154    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42155)]
42156#[cfg_attr(
42157    target_arch = "arm",
42158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42159)]
42160#[cfg(not(target_arch = "arm64ec"))]
42161pub fn vreinterpret_f16_p16(a: poly16x4_t) -> float16x4_t {
42162    unsafe { transmute(a) }
42163}
42164#[doc = "Vector reinterpret cast operation"]
42165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p16)"]
42166#[inline(always)]
42167#[cfg(target_endian = "big")]
42168#[target_feature(enable = "neon")]
42169#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42170#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42171#[cfg_attr(
42172    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42173    assert_instr(nop)
42174)]
42175#[cfg_attr(
42176    not(target_arch = "arm"),
42177    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42178)]
42179#[cfg_attr(
42180    target_arch = "arm",
42181    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42182)]
42183#[cfg(not(target_arch = "arm64ec"))]
42184pub fn vreinterpret_f16_p16(a: poly16x4_t) -> float16x4_t {
42185    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42186    unsafe {
42187        let ret_val: float16x4_t = transmute(a);
42188        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42189    }
42190}
42191#[doc = "Vector reinterpret cast operation"]
42192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p16)"]
42193#[inline(always)]
42194#[cfg(target_endian = "little")]
42195#[target_feature(enable = "neon")]
42196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42198#[cfg_attr(
42199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42200    assert_instr(nop)
42201)]
42202#[cfg_attr(
42203    not(target_arch = "arm"),
42204    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42205)]
42206#[cfg_attr(
42207    target_arch = "arm",
42208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42209)]
42210#[cfg(not(target_arch = "arm64ec"))]
42211pub fn vreinterpretq_f16_p16(a: poly16x8_t) -> float16x8_t {
42212    unsafe { transmute(a) }
42213}
42214#[doc = "Vector reinterpret cast operation"]
42215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p16)"]
42216#[inline(always)]
42217#[cfg(target_endian = "big")]
42218#[target_feature(enable = "neon")]
42219#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42220#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42221#[cfg_attr(
42222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42223    assert_instr(nop)
42224)]
42225#[cfg_attr(
42226    not(target_arch = "arm"),
42227    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42228)]
42229#[cfg_attr(
42230    target_arch = "arm",
42231    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42232)]
42233#[cfg(not(target_arch = "arm64ec"))]
42234pub fn vreinterpretq_f16_p16(a: poly16x8_t) -> float16x8_t {
42235    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
42236    unsafe {
42237        let ret_val: float16x8_t = transmute(a);
42238        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42239    }
42240}
42241#[doc = "Vector reinterpret cast operation"]
42242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p128)"]
42243#[inline(always)]
42244#[cfg(target_endian = "little")]
42245#[target_feature(enable = "neon")]
42246#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42247#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42248#[cfg_attr(
42249    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42250    assert_instr(nop)
42251)]
42252#[cfg_attr(
42253    not(target_arch = "arm"),
42254    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42255)]
42256#[cfg_attr(
42257    target_arch = "arm",
42258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42259)]
42260#[cfg(not(target_arch = "arm64ec"))]
42261pub fn vreinterpretq_f16_p128(a: p128) -> float16x8_t {
42262    unsafe { transmute(a) }
42263}
42264#[doc = "Vector reinterpret cast operation"]
42265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p128)"]
42266#[inline(always)]
42267#[cfg(target_endian = "big")]
42268#[target_feature(enable = "neon")]
42269#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42270#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42271#[cfg_attr(
42272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42273    assert_instr(nop)
42274)]
42275#[cfg_attr(
42276    not(target_arch = "arm"),
42277    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42278)]
42279#[cfg_attr(
42280    target_arch = "arm",
42281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42282)]
42283#[cfg(not(target_arch = "arm64ec"))]
42284pub fn vreinterpretq_f16_p128(a: p128) -> float16x8_t {
42285    unsafe {
42286        let ret_val: float16x8_t = transmute(a);
42287        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42288    }
42289}
42290#[doc = "Vector reinterpret cast operation"]
42291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_f16)"]
42292#[inline(always)]
42293#[cfg(target_endian = "little")]
42294#[target_feature(enable = "neon")]
42295#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42296#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42297#[cfg_attr(
42298    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42299    assert_instr(nop)
42300)]
42301#[cfg_attr(
42302    not(target_arch = "arm"),
42303    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42304)]
42305#[cfg_attr(
42306    target_arch = "arm",
42307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42308)]
42309#[cfg(not(target_arch = "arm64ec"))]
42310pub fn vreinterpret_p64_f16(a: float16x4_t) -> poly64x1_t {
42311    unsafe { transmute(a) }
42312}
42313#[doc = "Vector reinterpret cast operation"]
42314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_f16)"]
42315#[inline(always)]
42316#[cfg(target_endian = "big")]
42317#[target_feature(enable = "neon")]
42318#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42320#[cfg_attr(
42321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42322    assert_instr(nop)
42323)]
42324#[cfg_attr(
42325    not(target_arch = "arm"),
42326    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42327)]
42328#[cfg_attr(
42329    target_arch = "arm",
42330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42331)]
42332#[cfg(not(target_arch = "arm64ec"))]
42333pub fn vreinterpret_p64_f16(a: float16x4_t) -> poly64x1_t {
42334    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42335    unsafe { transmute(a) }
42336}
42337#[doc = "Vector reinterpret cast operation"]
42338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f16)"]
42339#[inline(always)]
42340#[cfg(target_endian = "little")]
42341#[target_feature(enable = "neon")]
42342#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42344#[cfg_attr(
42345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42346    assert_instr(nop)
42347)]
42348#[cfg_attr(
42349    not(target_arch = "arm"),
42350    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42351)]
42352#[cfg_attr(
42353    target_arch = "arm",
42354    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42355)]
42356#[cfg(not(target_arch = "arm64ec"))]
42357pub fn vreinterpretq_p128_f16(a: float16x8_t) -> p128 {
42358    unsafe { transmute(a) }
42359}
42360#[doc = "Vector reinterpret cast operation"]
42361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f16)"]
42362#[inline(always)]
42363#[cfg(target_endian = "big")]
42364#[target_feature(enable = "neon")]
42365#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42366#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42367#[cfg_attr(
42368    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42369    assert_instr(nop)
42370)]
42371#[cfg_attr(
42372    not(target_arch = "arm"),
42373    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42374)]
42375#[cfg_attr(
42376    target_arch = "arm",
42377    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42378)]
42379#[cfg(not(target_arch = "arm64ec"))]
42380pub fn vreinterpretq_p128_f16(a: float16x8_t) -> p128 {
42381    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
42382    unsafe { transmute(a) }
42383}
42384#[doc = "Vector reinterpret cast operation"]
42385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_f16)"]
42386#[inline(always)]
42387#[cfg(target_endian = "little")]
42388#[target_feature(enable = "neon")]
42389#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42390#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42391#[cfg_attr(
42392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42393    assert_instr(nop)
42394)]
42395#[cfg_attr(
42396    not(target_arch = "arm"),
42397    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42398)]
42399#[cfg_attr(
42400    target_arch = "arm",
42401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42402)]
42403#[cfg(not(target_arch = "arm64ec"))]
42404pub fn vreinterpretq_p64_f16(a: float16x8_t) -> poly64x2_t {
42405    unsafe { transmute(a) }
42406}
42407#[doc = "Vector reinterpret cast operation"]
42408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_f16)"]
42409#[inline(always)]
42410#[cfg(target_endian = "big")]
42411#[target_feature(enable = "neon")]
42412#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42413#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42414#[cfg_attr(
42415    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42416    assert_instr(nop)
42417)]
42418#[cfg_attr(
42419    not(target_arch = "arm"),
42420    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42421)]
42422#[cfg_attr(
42423    target_arch = "arm",
42424    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42425)]
42426#[cfg(not(target_arch = "arm64ec"))]
42427pub fn vreinterpretq_p64_f16(a: float16x8_t) -> poly64x2_t {
42428    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
42429    unsafe {
42430        let ret_val: poly64x2_t = transmute(a);
42431        simd_shuffle!(ret_val, ret_val, [1, 0])
42432    }
42433}
42434#[doc = "Vector reinterpret cast operation"]
42435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p64)"]
42436#[inline(always)]
42437#[cfg(target_endian = "little")]
42438#[target_feature(enable = "neon")]
42439#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42440#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42441#[cfg_attr(
42442    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42443    assert_instr(nop)
42444)]
42445#[cfg_attr(
42446    not(target_arch = "arm"),
42447    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42448)]
42449#[cfg_attr(
42450    target_arch = "arm",
42451    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42452)]
42453#[cfg(not(target_arch = "arm64ec"))]
42454pub fn vreinterpret_f16_p64(a: poly64x1_t) -> float16x4_t {
42455    unsafe { transmute(a) }
42456}
42457#[doc = "Vector reinterpret cast operation"]
42458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p64)"]
42459#[inline(always)]
42460#[cfg(target_endian = "big")]
42461#[target_feature(enable = "neon")]
42462#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42464#[cfg_attr(
42465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42466    assert_instr(nop)
42467)]
42468#[cfg_attr(
42469    not(target_arch = "arm"),
42470    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42471)]
42472#[cfg_attr(
42473    target_arch = "arm",
42474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42475)]
42476#[cfg(not(target_arch = "arm64ec"))]
42477pub fn vreinterpret_f16_p64(a: poly64x1_t) -> float16x4_t {
42478    unsafe {
42479        let ret_val: float16x4_t = transmute(a);
42480        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42481    }
42482}
42483#[doc = "Vector reinterpret cast operation"]
42484#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p64)"]
42485#[inline(always)]
42486#[cfg(target_endian = "little")]
42487#[target_feature(enable = "neon")]
42488#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42489#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42490#[cfg_attr(
42491    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42492    assert_instr(nop)
42493)]
42494#[cfg_attr(
42495    not(target_arch = "arm"),
42496    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42497)]
42498#[cfg_attr(
42499    target_arch = "arm",
42500    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42501)]
42502#[cfg(not(target_arch = "arm64ec"))]
42503pub fn vreinterpretq_f16_p64(a: poly64x2_t) -> float16x8_t {
42504    unsafe { transmute(a) }
42505}
42506#[doc = "Vector reinterpret cast operation"]
42507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p64)"]
42508#[inline(always)]
42509#[cfg(target_endian = "big")]
42510#[target_feature(enable = "neon")]
42511#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42512#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42513#[cfg_attr(
42514    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42515    assert_instr(nop)
42516)]
42517#[cfg_attr(
42518    not(target_arch = "arm"),
42519    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42520)]
42521#[cfg_attr(
42522    target_arch = "arm",
42523    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42524)]
42525#[cfg(not(target_arch = "arm64ec"))]
42526pub fn vreinterpretq_f16_p64(a: poly64x2_t) -> float16x8_t {
42527    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42528    unsafe {
42529        let ret_val: float16x8_t = transmute(a);
42530        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42531    }
42532}
42533#[doc = "Vector reinterpret cast operation"]
42534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p128)"]
42535#[inline(always)]
42536#[cfg(target_endian = "little")]
42537#[target_feature(enable = "neon")]
42538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42540#[cfg_attr(
42541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42542    assert_instr(nop)
42543)]
42544#[cfg_attr(
42545    not(target_arch = "arm"),
42546    stable(feature = "neon_intrinsics", since = "1.59.0")
42547)]
42548#[cfg_attr(
42549    target_arch = "arm",
42550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42551)]
42552pub fn vreinterpretq_f32_p128(a: p128) -> float32x4_t {
42553    unsafe { transmute(a) }
42554}
42555#[doc = "Vector reinterpret cast operation"]
42556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p128)"]
42557#[inline(always)]
42558#[cfg(target_endian = "big")]
42559#[target_feature(enable = "neon")]
42560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42562#[cfg_attr(
42563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42564    assert_instr(nop)
42565)]
42566#[cfg_attr(
42567    not(target_arch = "arm"),
42568    stable(feature = "neon_intrinsics", since = "1.59.0")
42569)]
42570#[cfg_attr(
42571    target_arch = "arm",
42572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42573)]
42574pub fn vreinterpretq_f32_p128(a: p128) -> float32x4_t {
42575    unsafe {
42576        let ret_val: float32x4_t = transmute(a);
42577        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42578    }
42579}
42580#[doc = "Vector reinterpret cast operation"]
42581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f32)"]
42582#[inline(always)]
42583#[cfg(target_endian = "little")]
42584#[target_feature(enable = "neon")]
42585#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42586#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42587#[cfg_attr(
42588    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42589    assert_instr(nop)
42590)]
42591#[cfg_attr(
42592    not(target_arch = "arm"),
42593    stable(feature = "neon_intrinsics", since = "1.59.0")
42594)]
42595#[cfg_attr(
42596    target_arch = "arm",
42597    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42598)]
42599pub fn vreinterpret_s8_f32(a: float32x2_t) -> int8x8_t {
42600    unsafe { transmute(a) }
42601}
42602#[doc = "Vector reinterpret cast operation"]
42603#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f32)"]
42604#[inline(always)]
42605#[cfg(target_endian = "big")]
42606#[target_feature(enable = "neon")]
42607#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42608#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42609#[cfg_attr(
42610    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42611    assert_instr(nop)
42612)]
42613#[cfg_attr(
42614    not(target_arch = "arm"),
42615    stable(feature = "neon_intrinsics", since = "1.59.0")
42616)]
42617#[cfg_attr(
42618    target_arch = "arm",
42619    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42620)]
42621pub fn vreinterpret_s8_f32(a: float32x2_t) -> int8x8_t {
42622    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42623    unsafe {
42624        let ret_val: int8x8_t = transmute(a);
42625        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42626    }
42627}
42628#[doc = "Vector reinterpret cast operation"]
42629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f32)"]
42630#[inline(always)]
42631#[cfg(target_endian = "little")]
42632#[target_feature(enable = "neon")]
42633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42634#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42635#[cfg_attr(
42636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42637    assert_instr(nop)
42638)]
42639#[cfg_attr(
42640    not(target_arch = "arm"),
42641    stable(feature = "neon_intrinsics", since = "1.59.0")
42642)]
42643#[cfg_attr(
42644    target_arch = "arm",
42645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42646)]
42647pub fn vreinterpret_s16_f32(a: float32x2_t) -> int16x4_t {
42648    unsafe { transmute(a) }
42649}
42650#[doc = "Vector reinterpret cast operation"]
42651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f32)"]
42652#[inline(always)]
42653#[cfg(target_endian = "big")]
42654#[target_feature(enable = "neon")]
42655#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42657#[cfg_attr(
42658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42659    assert_instr(nop)
42660)]
42661#[cfg_attr(
42662    not(target_arch = "arm"),
42663    stable(feature = "neon_intrinsics", since = "1.59.0")
42664)]
42665#[cfg_attr(
42666    target_arch = "arm",
42667    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42668)]
42669pub fn vreinterpret_s16_f32(a: float32x2_t) -> int16x4_t {
42670    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42671    unsafe {
42672        let ret_val: int16x4_t = transmute(a);
42673        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42674    }
42675}
42676#[doc = "Vector reinterpret cast operation"]
42677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f32)"]
42678#[inline(always)]
42679#[cfg(target_endian = "little")]
42680#[target_feature(enable = "neon")]
42681#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42682#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42683#[cfg_attr(
42684    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42685    assert_instr(nop)
42686)]
42687#[cfg_attr(
42688    not(target_arch = "arm"),
42689    stable(feature = "neon_intrinsics", since = "1.59.0")
42690)]
42691#[cfg_attr(
42692    target_arch = "arm",
42693    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42694)]
42695pub fn vreinterpret_s32_f32(a: float32x2_t) -> int32x2_t {
42696    unsafe { transmute(a) }
42697}
42698#[doc = "Vector reinterpret cast operation"]
42699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f32)"]
42700#[inline(always)]
42701#[cfg(target_endian = "big")]
42702#[target_feature(enable = "neon")]
42703#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42704#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42705#[cfg_attr(
42706    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42707    assert_instr(nop)
42708)]
42709#[cfg_attr(
42710    not(target_arch = "arm"),
42711    stable(feature = "neon_intrinsics", since = "1.59.0")
42712)]
42713#[cfg_attr(
42714    target_arch = "arm",
42715    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42716)]
42717pub fn vreinterpret_s32_f32(a: float32x2_t) -> int32x2_t {
42718    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42719    unsafe {
42720        let ret_val: int32x2_t = transmute(a);
42721        simd_shuffle!(ret_val, ret_val, [1, 0])
42722    }
42723}
42724#[doc = "Vector reinterpret cast operation"]
42725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f32)"]
42726#[inline(always)]
42727#[cfg(target_endian = "little")]
42728#[target_feature(enable = "neon")]
42729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42730#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42731#[cfg_attr(
42732    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42733    assert_instr(nop)
42734)]
42735#[cfg_attr(
42736    not(target_arch = "arm"),
42737    stable(feature = "neon_intrinsics", since = "1.59.0")
42738)]
42739#[cfg_attr(
42740    target_arch = "arm",
42741    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42742)]
42743pub fn vreinterpret_s64_f32(a: float32x2_t) -> int64x1_t {
42744    unsafe { transmute(a) }
42745}
42746#[doc = "Vector reinterpret cast operation"]
42747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f32)"]
42748#[inline(always)]
42749#[cfg(target_endian = "big")]
42750#[target_feature(enable = "neon")]
42751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42753#[cfg_attr(
42754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42755    assert_instr(nop)
42756)]
42757#[cfg_attr(
42758    not(target_arch = "arm"),
42759    stable(feature = "neon_intrinsics", since = "1.59.0")
42760)]
42761#[cfg_attr(
42762    target_arch = "arm",
42763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42764)]
42765pub fn vreinterpret_s64_f32(a: float32x2_t) -> int64x1_t {
42766    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42767    unsafe { transmute(a) }
42768}
42769#[doc = "Vector reinterpret cast operation"]
42770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f32)"]
42771#[inline(always)]
42772#[cfg(target_endian = "little")]
42773#[target_feature(enable = "neon")]
42774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42775#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42776#[cfg_attr(
42777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42778    assert_instr(nop)
42779)]
42780#[cfg_attr(
42781    not(target_arch = "arm"),
42782    stable(feature = "neon_intrinsics", since = "1.59.0")
42783)]
42784#[cfg_attr(
42785    target_arch = "arm",
42786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42787)]
42788pub fn vreinterpret_u8_f32(a: float32x2_t) -> uint8x8_t {
42789    unsafe { transmute(a) }
42790}
42791#[doc = "Vector reinterpret cast operation"]
42792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f32)"]
42793#[inline(always)]
42794#[cfg(target_endian = "big")]
42795#[target_feature(enable = "neon")]
42796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42798#[cfg_attr(
42799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42800    assert_instr(nop)
42801)]
42802#[cfg_attr(
42803    not(target_arch = "arm"),
42804    stable(feature = "neon_intrinsics", since = "1.59.0")
42805)]
42806#[cfg_attr(
42807    target_arch = "arm",
42808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42809)]
42810pub fn vreinterpret_u8_f32(a: float32x2_t) -> uint8x8_t {
42811    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42812    unsafe {
42813        let ret_val: uint8x8_t = transmute(a);
42814        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42815    }
42816}
42817#[doc = "Vector reinterpret cast operation"]
42818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f32)"]
42819#[inline(always)]
42820#[cfg(target_endian = "little")]
42821#[target_feature(enable = "neon")]
42822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42824#[cfg_attr(
42825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42826    assert_instr(nop)
42827)]
42828#[cfg_attr(
42829    not(target_arch = "arm"),
42830    stable(feature = "neon_intrinsics", since = "1.59.0")
42831)]
42832#[cfg_attr(
42833    target_arch = "arm",
42834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42835)]
42836pub fn vreinterpret_u16_f32(a: float32x2_t) -> uint16x4_t {
42837    unsafe { transmute(a) }
42838}
42839#[doc = "Vector reinterpret cast operation"]
42840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f32)"]
42841#[inline(always)]
42842#[cfg(target_endian = "big")]
42843#[target_feature(enable = "neon")]
42844#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42845#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42846#[cfg_attr(
42847    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42848    assert_instr(nop)
42849)]
42850#[cfg_attr(
42851    not(target_arch = "arm"),
42852    stable(feature = "neon_intrinsics", since = "1.59.0")
42853)]
42854#[cfg_attr(
42855    target_arch = "arm",
42856    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42857)]
42858pub fn vreinterpret_u16_f32(a: float32x2_t) -> uint16x4_t {
42859    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42860    unsafe {
42861        let ret_val: uint16x4_t = transmute(a);
42862        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42863    }
42864}
42865#[doc = "Vector reinterpret cast operation"]
42866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f32)"]
42867#[inline(always)]
42868#[cfg(target_endian = "little")]
42869#[target_feature(enable = "neon")]
42870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42872#[cfg_attr(
42873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42874    assert_instr(nop)
42875)]
42876#[cfg_attr(
42877    not(target_arch = "arm"),
42878    stable(feature = "neon_intrinsics", since = "1.59.0")
42879)]
42880#[cfg_attr(
42881    target_arch = "arm",
42882    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42883)]
42884pub fn vreinterpret_u32_f32(a: float32x2_t) -> uint32x2_t {
42885    unsafe { transmute(a) }
42886}
42887#[doc = "Vector reinterpret cast operation"]
42888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f32)"]
42889#[inline(always)]
42890#[cfg(target_endian = "big")]
42891#[target_feature(enable = "neon")]
42892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42893#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42894#[cfg_attr(
42895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42896    assert_instr(nop)
42897)]
42898#[cfg_attr(
42899    not(target_arch = "arm"),
42900    stable(feature = "neon_intrinsics", since = "1.59.0")
42901)]
42902#[cfg_attr(
42903    target_arch = "arm",
42904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42905)]
42906pub fn vreinterpret_u32_f32(a: float32x2_t) -> uint32x2_t {
42907    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42908    unsafe {
42909        let ret_val: uint32x2_t = transmute(a);
42910        simd_shuffle!(ret_val, ret_val, [1, 0])
42911    }
42912}
42913#[doc = "Vector reinterpret cast operation"]
42914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f32)"]
42915#[inline(always)]
42916#[cfg(target_endian = "little")]
42917#[target_feature(enable = "neon")]
42918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42919#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42920#[cfg_attr(
42921    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42922    assert_instr(nop)
42923)]
42924#[cfg_attr(
42925    not(target_arch = "arm"),
42926    stable(feature = "neon_intrinsics", since = "1.59.0")
42927)]
42928#[cfg_attr(
42929    target_arch = "arm",
42930    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42931)]
42932pub fn vreinterpret_u64_f32(a: float32x2_t) -> uint64x1_t {
42933    unsafe { transmute(a) }
42934}
42935#[doc = "Vector reinterpret cast operation"]
42936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f32)"]
42937#[inline(always)]
42938#[cfg(target_endian = "big")]
42939#[target_feature(enable = "neon")]
42940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42942#[cfg_attr(
42943    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42944    assert_instr(nop)
42945)]
42946#[cfg_attr(
42947    not(target_arch = "arm"),
42948    stable(feature = "neon_intrinsics", since = "1.59.0")
42949)]
42950#[cfg_attr(
42951    target_arch = "arm",
42952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42953)]
42954pub fn vreinterpret_u64_f32(a: float32x2_t) -> uint64x1_t {
42955    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42956    unsafe { transmute(a) }
42957}
42958#[doc = "Vector reinterpret cast operation"]
42959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f32)"]
42960#[inline(always)]
42961#[cfg(target_endian = "little")]
42962#[target_feature(enable = "neon")]
42963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42964#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42965#[cfg_attr(
42966    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42967    assert_instr(nop)
42968)]
42969#[cfg_attr(
42970    not(target_arch = "arm"),
42971    stable(feature = "neon_intrinsics", since = "1.59.0")
42972)]
42973#[cfg_attr(
42974    target_arch = "arm",
42975    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42976)]
42977pub fn vreinterpret_p8_f32(a: float32x2_t) -> poly8x8_t {
42978    unsafe { transmute(a) }
42979}
42980#[doc = "Vector reinterpret cast operation"]
42981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f32)"]
42982#[inline(always)]
42983#[cfg(target_endian = "big")]
42984#[target_feature(enable = "neon")]
42985#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42986#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42987#[cfg_attr(
42988    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42989    assert_instr(nop)
42990)]
42991#[cfg_attr(
42992    not(target_arch = "arm"),
42993    stable(feature = "neon_intrinsics", since = "1.59.0")
42994)]
42995#[cfg_attr(
42996    target_arch = "arm",
42997    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42998)]
42999pub fn vreinterpret_p8_f32(a: float32x2_t) -> poly8x8_t {
43000    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
43001    unsafe {
43002        let ret_val: poly8x8_t = transmute(a);
43003        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43004    }
43005}
43006#[doc = "Vector reinterpret cast operation"]
43007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f32)"]
43008#[inline(always)]
43009#[cfg(target_endian = "little")]
43010#[target_feature(enable = "neon")]
43011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43013#[cfg_attr(
43014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43015    assert_instr(nop)
43016)]
43017#[cfg_attr(
43018    not(target_arch = "arm"),
43019    stable(feature = "neon_intrinsics", since = "1.59.0")
43020)]
43021#[cfg_attr(
43022    target_arch = "arm",
43023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43024)]
43025pub fn vreinterpret_p16_f32(a: float32x2_t) -> poly16x4_t {
43026    unsafe { transmute(a) }
43027}
43028#[doc = "Vector reinterpret cast operation"]
43029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f32)"]
43030#[inline(always)]
43031#[cfg(target_endian = "big")]
43032#[target_feature(enable = "neon")]
43033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43034#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43035#[cfg_attr(
43036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43037    assert_instr(nop)
43038)]
43039#[cfg_attr(
43040    not(target_arch = "arm"),
43041    stable(feature = "neon_intrinsics", since = "1.59.0")
43042)]
43043#[cfg_attr(
43044    target_arch = "arm",
43045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43046)]
43047pub fn vreinterpret_p16_f32(a: float32x2_t) -> poly16x4_t {
43048    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
43049    unsafe {
43050        let ret_val: poly16x4_t = transmute(a);
43051        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43052    }
43053}
43054#[doc = "Vector reinterpret cast operation"]
43055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f32)"]
43056#[inline(always)]
43057#[cfg(target_endian = "little")]
43058#[target_feature(enable = "neon")]
43059#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43060#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43061#[cfg_attr(
43062    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43063    assert_instr(nop)
43064)]
43065#[cfg_attr(
43066    not(target_arch = "arm"),
43067    stable(feature = "neon_intrinsics", since = "1.59.0")
43068)]
43069#[cfg_attr(
43070    target_arch = "arm",
43071    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43072)]
43073pub fn vreinterpretq_p128_f32(a: float32x4_t) -> p128 {
43074    unsafe { transmute(a) }
43075}
43076#[doc = "Vector reinterpret cast operation"]
43077#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f32)"]
43078#[inline(always)]
43079#[cfg(target_endian = "big")]
43080#[target_feature(enable = "neon")]
43081#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43082#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43083#[cfg_attr(
43084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43085    assert_instr(nop)
43086)]
43087#[cfg_attr(
43088    not(target_arch = "arm"),
43089    stable(feature = "neon_intrinsics", since = "1.59.0")
43090)]
43091#[cfg_attr(
43092    target_arch = "arm",
43093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43094)]
43095pub fn vreinterpretq_p128_f32(a: float32x4_t) -> p128 {
43096    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43097    unsafe { transmute(a) }
43098}
43099#[doc = "Vector reinterpret cast operation"]
43100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f32)"]
43101#[inline(always)]
43102#[cfg(target_endian = "little")]
43103#[target_feature(enable = "neon")]
43104#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43105#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43106#[cfg_attr(
43107    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43108    assert_instr(nop)
43109)]
43110#[cfg_attr(
43111    not(target_arch = "arm"),
43112    stable(feature = "neon_intrinsics", since = "1.59.0")
43113)]
43114#[cfg_attr(
43115    target_arch = "arm",
43116    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43117)]
43118pub fn vreinterpretq_s8_f32(a: float32x4_t) -> int8x16_t {
43119    unsafe { transmute(a) }
43120}
43121#[doc = "Vector reinterpret cast operation"]
43122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f32)"]
43123#[inline(always)]
43124#[cfg(target_endian = "big")]
43125#[target_feature(enable = "neon")]
43126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43128#[cfg_attr(
43129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43130    assert_instr(nop)
43131)]
43132#[cfg_attr(
43133    not(target_arch = "arm"),
43134    stable(feature = "neon_intrinsics", since = "1.59.0")
43135)]
43136#[cfg_attr(
43137    target_arch = "arm",
43138    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43139)]
43140pub fn vreinterpretq_s8_f32(a: float32x4_t) -> int8x16_t {
43141    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43142    unsafe {
43143        let ret_val: int8x16_t = transmute(a);
43144        simd_shuffle!(
43145            ret_val,
43146            ret_val,
43147            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
43148        )
43149    }
43150}
43151#[doc = "Vector reinterpret cast operation"]
43152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f32)"]
43153#[inline(always)]
43154#[cfg(target_endian = "little")]
43155#[target_feature(enable = "neon")]
43156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43157#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43158#[cfg_attr(
43159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43160    assert_instr(nop)
43161)]
43162#[cfg_attr(
43163    not(target_arch = "arm"),
43164    stable(feature = "neon_intrinsics", since = "1.59.0")
43165)]
43166#[cfg_attr(
43167    target_arch = "arm",
43168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43169)]
43170pub fn vreinterpretq_s16_f32(a: float32x4_t) -> int16x8_t {
43171    unsafe { transmute(a) }
43172}
43173#[doc = "Vector reinterpret cast operation"]
43174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f32)"]
43175#[inline(always)]
43176#[cfg(target_endian = "big")]
43177#[target_feature(enable = "neon")]
43178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43180#[cfg_attr(
43181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43182    assert_instr(nop)
43183)]
43184#[cfg_attr(
43185    not(target_arch = "arm"),
43186    stable(feature = "neon_intrinsics", since = "1.59.0")
43187)]
43188#[cfg_attr(
43189    target_arch = "arm",
43190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43191)]
43192pub fn vreinterpretq_s16_f32(a: float32x4_t) -> int16x8_t {
43193    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43194    unsafe {
43195        let ret_val: int16x8_t = transmute(a);
43196        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43197    }
43198}
43199#[doc = "Vector reinterpret cast operation"]
43200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f32)"]
43201#[inline(always)]
43202#[cfg(target_endian = "little")]
43203#[target_feature(enable = "neon")]
43204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43205#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43206#[cfg_attr(
43207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43208    assert_instr(nop)
43209)]
43210#[cfg_attr(
43211    not(target_arch = "arm"),
43212    stable(feature = "neon_intrinsics", since = "1.59.0")
43213)]
43214#[cfg_attr(
43215    target_arch = "arm",
43216    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43217)]
43218pub fn vreinterpretq_s32_f32(a: float32x4_t) -> int32x4_t {
43219    unsafe { transmute(a) }
43220}
43221#[doc = "Vector reinterpret cast operation"]
43222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f32)"]
43223#[inline(always)]
43224#[cfg(target_endian = "big")]
43225#[target_feature(enable = "neon")]
43226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43228#[cfg_attr(
43229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43230    assert_instr(nop)
43231)]
43232#[cfg_attr(
43233    not(target_arch = "arm"),
43234    stable(feature = "neon_intrinsics", since = "1.59.0")
43235)]
43236#[cfg_attr(
43237    target_arch = "arm",
43238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43239)]
43240pub fn vreinterpretq_s32_f32(a: float32x4_t) -> int32x4_t {
43241    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43242    unsafe {
43243        let ret_val: int32x4_t = transmute(a);
43244        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43245    }
43246}
43247#[doc = "Vector reinterpret cast operation"]
43248#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f32)"]
43249#[inline(always)]
43250#[cfg(target_endian = "little")]
43251#[target_feature(enable = "neon")]
43252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43253#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43254#[cfg_attr(
43255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43256    assert_instr(nop)
43257)]
43258#[cfg_attr(
43259    not(target_arch = "arm"),
43260    stable(feature = "neon_intrinsics", since = "1.59.0")
43261)]
43262#[cfg_attr(
43263    target_arch = "arm",
43264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43265)]
43266pub fn vreinterpretq_s64_f32(a: float32x4_t) -> int64x2_t {
43267    unsafe { transmute(a) }
43268}
43269#[doc = "Vector reinterpret cast operation"]
43270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f32)"]
43271#[inline(always)]
43272#[cfg(target_endian = "big")]
43273#[target_feature(enable = "neon")]
43274#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43275#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43276#[cfg_attr(
43277    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43278    assert_instr(nop)
43279)]
43280#[cfg_attr(
43281    not(target_arch = "arm"),
43282    stable(feature = "neon_intrinsics", since = "1.59.0")
43283)]
43284#[cfg_attr(
43285    target_arch = "arm",
43286    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43287)]
43288pub fn vreinterpretq_s64_f32(a: float32x4_t) -> int64x2_t {
43289    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43290    unsafe {
43291        let ret_val: int64x2_t = transmute(a);
43292        simd_shuffle!(ret_val, ret_val, [1, 0])
43293    }
43294}
43295#[doc = "Vector reinterpret cast operation"]
43296#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f32)"]
43297#[inline(always)]
43298#[cfg(target_endian = "little")]
43299#[target_feature(enable = "neon")]
43300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43301#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43302#[cfg_attr(
43303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43304    assert_instr(nop)
43305)]
43306#[cfg_attr(
43307    not(target_arch = "arm"),
43308    stable(feature = "neon_intrinsics", since = "1.59.0")
43309)]
43310#[cfg_attr(
43311    target_arch = "arm",
43312    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43313)]
43314pub fn vreinterpretq_u8_f32(a: float32x4_t) -> uint8x16_t {
43315    unsafe { transmute(a) }
43316}
43317#[doc = "Vector reinterpret cast operation"]
43318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f32)"]
43319#[inline(always)]
43320#[cfg(target_endian = "big")]
43321#[target_feature(enable = "neon")]
43322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43323#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43324#[cfg_attr(
43325    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43326    assert_instr(nop)
43327)]
43328#[cfg_attr(
43329    not(target_arch = "arm"),
43330    stable(feature = "neon_intrinsics", since = "1.59.0")
43331)]
43332#[cfg_attr(
43333    target_arch = "arm",
43334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43335)]
43336pub fn vreinterpretq_u8_f32(a: float32x4_t) -> uint8x16_t {
43337    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43338    unsafe {
43339        let ret_val: uint8x16_t = transmute(a);
43340        simd_shuffle!(
43341            ret_val,
43342            ret_val,
43343            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
43344        )
43345    }
43346}
43347#[doc = "Vector reinterpret cast operation"]
43348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f32)"]
43349#[inline(always)]
43350#[cfg(target_endian = "little")]
43351#[target_feature(enable = "neon")]
43352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43354#[cfg_attr(
43355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43356    assert_instr(nop)
43357)]
43358#[cfg_attr(
43359    not(target_arch = "arm"),
43360    stable(feature = "neon_intrinsics", since = "1.59.0")
43361)]
43362#[cfg_attr(
43363    target_arch = "arm",
43364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43365)]
43366pub fn vreinterpretq_u16_f32(a: float32x4_t) -> uint16x8_t {
43367    unsafe { transmute(a) }
43368}
43369#[doc = "Vector reinterpret cast operation"]
43370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f32)"]
43371#[inline(always)]
43372#[cfg(target_endian = "big")]
43373#[target_feature(enable = "neon")]
43374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43376#[cfg_attr(
43377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43378    assert_instr(nop)
43379)]
43380#[cfg_attr(
43381    not(target_arch = "arm"),
43382    stable(feature = "neon_intrinsics", since = "1.59.0")
43383)]
43384#[cfg_attr(
43385    target_arch = "arm",
43386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43387)]
43388pub fn vreinterpretq_u16_f32(a: float32x4_t) -> uint16x8_t {
43389    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43390    unsafe {
43391        let ret_val: uint16x8_t = transmute(a);
43392        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43393    }
43394}
43395#[doc = "Vector reinterpret cast operation"]
43396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f32)"]
43397#[inline(always)]
43398#[cfg(target_endian = "little")]
43399#[target_feature(enable = "neon")]
43400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43402#[cfg_attr(
43403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43404    assert_instr(nop)
43405)]
43406#[cfg_attr(
43407    not(target_arch = "arm"),
43408    stable(feature = "neon_intrinsics", since = "1.59.0")
43409)]
43410#[cfg_attr(
43411    target_arch = "arm",
43412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43413)]
43414pub fn vreinterpretq_u32_f32(a: float32x4_t) -> uint32x4_t {
43415    unsafe { transmute(a) }
43416}
43417#[doc = "Vector reinterpret cast operation"]
43418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f32)"]
43419#[inline(always)]
43420#[cfg(target_endian = "big")]
43421#[target_feature(enable = "neon")]
43422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43424#[cfg_attr(
43425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43426    assert_instr(nop)
43427)]
43428#[cfg_attr(
43429    not(target_arch = "arm"),
43430    stable(feature = "neon_intrinsics", since = "1.59.0")
43431)]
43432#[cfg_attr(
43433    target_arch = "arm",
43434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43435)]
43436pub fn vreinterpretq_u32_f32(a: float32x4_t) -> uint32x4_t {
43437    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43438    unsafe {
43439        let ret_val: uint32x4_t = transmute(a);
43440        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43441    }
43442}
43443#[doc = "Vector reinterpret cast operation"]
43444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f32)"]
43445#[inline(always)]
43446#[cfg(target_endian = "little")]
43447#[target_feature(enable = "neon")]
43448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43450#[cfg_attr(
43451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43452    assert_instr(nop)
43453)]
43454#[cfg_attr(
43455    not(target_arch = "arm"),
43456    stable(feature = "neon_intrinsics", since = "1.59.0")
43457)]
43458#[cfg_attr(
43459    target_arch = "arm",
43460    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43461)]
43462pub fn vreinterpretq_u64_f32(a: float32x4_t) -> uint64x2_t {
43463    unsafe { transmute(a) }
43464}
43465#[doc = "Vector reinterpret cast operation"]
43466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f32)"]
43467#[inline(always)]
43468#[cfg(target_endian = "big")]
43469#[target_feature(enable = "neon")]
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#[cfg_attr(
43477    not(target_arch = "arm"),
43478    stable(feature = "neon_intrinsics", since = "1.59.0")
43479)]
43480#[cfg_attr(
43481    target_arch = "arm",
43482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43483)]
43484pub fn vreinterpretq_u64_f32(a: float32x4_t) -> uint64x2_t {
43485    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43486    unsafe {
43487        let ret_val: uint64x2_t = transmute(a);
43488        simd_shuffle!(ret_val, ret_val, [1, 0])
43489    }
43490}
43491#[doc = "Vector reinterpret cast operation"]
43492#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f32)"]
43493#[inline(always)]
43494#[cfg(target_endian = "little")]
43495#[target_feature(enable = "neon")]
43496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43498#[cfg_attr(
43499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43500    assert_instr(nop)
43501)]
43502#[cfg_attr(
43503    not(target_arch = "arm"),
43504    stable(feature = "neon_intrinsics", since = "1.59.0")
43505)]
43506#[cfg_attr(
43507    target_arch = "arm",
43508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43509)]
43510pub fn vreinterpretq_p8_f32(a: float32x4_t) -> poly8x16_t {
43511    unsafe { transmute(a) }
43512}
43513#[doc = "Vector reinterpret cast operation"]
43514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f32)"]
43515#[inline(always)]
43516#[cfg(target_endian = "big")]
43517#[target_feature(enable = "neon")]
43518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43519#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43520#[cfg_attr(
43521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43522    assert_instr(nop)
43523)]
43524#[cfg_attr(
43525    not(target_arch = "arm"),
43526    stable(feature = "neon_intrinsics", since = "1.59.0")
43527)]
43528#[cfg_attr(
43529    target_arch = "arm",
43530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43531)]
43532pub fn vreinterpretq_p8_f32(a: float32x4_t) -> poly8x16_t {
43533    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43534    unsafe {
43535        let ret_val: poly8x16_t = transmute(a);
43536        simd_shuffle!(
43537            ret_val,
43538            ret_val,
43539            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
43540        )
43541    }
43542}
43543#[doc = "Vector reinterpret cast operation"]
43544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f32)"]
43545#[inline(always)]
43546#[cfg(target_endian = "little")]
43547#[target_feature(enable = "neon")]
43548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43549#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43550#[cfg_attr(
43551    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43552    assert_instr(nop)
43553)]
43554#[cfg_attr(
43555    not(target_arch = "arm"),
43556    stable(feature = "neon_intrinsics", since = "1.59.0")
43557)]
43558#[cfg_attr(
43559    target_arch = "arm",
43560    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43561)]
43562pub fn vreinterpretq_p16_f32(a: float32x4_t) -> poly16x8_t {
43563    unsafe { transmute(a) }
43564}
43565#[doc = "Vector reinterpret cast operation"]
43566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f32)"]
43567#[inline(always)]
43568#[cfg(target_endian = "big")]
43569#[target_feature(enable = "neon")]
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#[cfg_attr(
43577    not(target_arch = "arm"),
43578    stable(feature = "neon_intrinsics", since = "1.59.0")
43579)]
43580#[cfg_attr(
43581    target_arch = "arm",
43582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43583)]
43584pub fn vreinterpretq_p16_f32(a: float32x4_t) -> poly16x8_t {
43585    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43586    unsafe {
43587        let ret_val: poly16x8_t = transmute(a);
43588        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43589    }
43590}
43591#[doc = "Vector reinterpret cast operation"]
43592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s8)"]
43593#[inline(always)]
43594#[cfg(target_endian = "little")]
43595#[target_feature(enable = "neon")]
43596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43598#[cfg_attr(
43599    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43600    assert_instr(nop)
43601)]
43602#[cfg_attr(
43603    not(target_arch = "arm"),
43604    stable(feature = "neon_intrinsics", since = "1.59.0")
43605)]
43606#[cfg_attr(
43607    target_arch = "arm",
43608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43609)]
43610pub fn vreinterpret_f32_s8(a: int8x8_t) -> float32x2_t {
43611    unsafe { transmute(a) }
43612}
43613#[doc = "Vector reinterpret cast operation"]
43614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s8)"]
43615#[inline(always)]
43616#[cfg(target_endian = "big")]
43617#[target_feature(enable = "neon")]
43618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43620#[cfg_attr(
43621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43622    assert_instr(nop)
43623)]
43624#[cfg_attr(
43625    not(target_arch = "arm"),
43626    stable(feature = "neon_intrinsics", since = "1.59.0")
43627)]
43628#[cfg_attr(
43629    target_arch = "arm",
43630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43631)]
43632pub fn vreinterpret_f32_s8(a: int8x8_t) -> float32x2_t {
43633    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43634    unsafe {
43635        let ret_val: float32x2_t = transmute(a);
43636        simd_shuffle!(ret_val, ret_val, [1, 0])
43637    }
43638}
43639#[doc = "Vector reinterpret cast operation"]
43640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s8)"]
43641#[inline(always)]
43642#[cfg(target_endian = "little")]
43643#[target_feature(enable = "neon")]
43644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43646#[cfg_attr(
43647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43648    assert_instr(nop)
43649)]
43650#[cfg_attr(
43651    not(target_arch = "arm"),
43652    stable(feature = "neon_intrinsics", since = "1.59.0")
43653)]
43654#[cfg_attr(
43655    target_arch = "arm",
43656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43657)]
43658pub fn vreinterpret_s16_s8(a: int8x8_t) -> int16x4_t {
43659    unsafe { transmute(a) }
43660}
43661#[doc = "Vector reinterpret cast operation"]
43662#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s8)"]
43663#[inline(always)]
43664#[cfg(target_endian = "big")]
43665#[target_feature(enable = "neon")]
43666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43668#[cfg_attr(
43669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43670    assert_instr(nop)
43671)]
43672#[cfg_attr(
43673    not(target_arch = "arm"),
43674    stable(feature = "neon_intrinsics", since = "1.59.0")
43675)]
43676#[cfg_attr(
43677    target_arch = "arm",
43678    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43679)]
43680pub fn vreinterpret_s16_s8(a: int8x8_t) -> int16x4_t {
43681    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43682    unsafe {
43683        let ret_val: int16x4_t = transmute(a);
43684        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43685    }
43686}
43687#[doc = "Vector reinterpret cast operation"]
43688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s8)"]
43689#[inline(always)]
43690#[cfg(target_endian = "little")]
43691#[target_feature(enable = "neon")]
43692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43693#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43694#[cfg_attr(
43695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43696    assert_instr(nop)
43697)]
43698#[cfg_attr(
43699    not(target_arch = "arm"),
43700    stable(feature = "neon_intrinsics", since = "1.59.0")
43701)]
43702#[cfg_attr(
43703    target_arch = "arm",
43704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43705)]
43706pub fn vreinterpret_s32_s8(a: int8x8_t) -> int32x2_t {
43707    unsafe { transmute(a) }
43708}
43709#[doc = "Vector reinterpret cast operation"]
43710#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s8)"]
43711#[inline(always)]
43712#[cfg(target_endian = "big")]
43713#[target_feature(enable = "neon")]
43714#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43715#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43716#[cfg_attr(
43717    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43718    assert_instr(nop)
43719)]
43720#[cfg_attr(
43721    not(target_arch = "arm"),
43722    stable(feature = "neon_intrinsics", since = "1.59.0")
43723)]
43724#[cfg_attr(
43725    target_arch = "arm",
43726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43727)]
43728pub fn vreinterpret_s32_s8(a: int8x8_t) -> int32x2_t {
43729    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43730    unsafe {
43731        let ret_val: int32x2_t = transmute(a);
43732        simd_shuffle!(ret_val, ret_val, [1, 0])
43733    }
43734}
43735#[doc = "Vector reinterpret cast operation"]
43736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s8)"]
43737#[inline(always)]
43738#[cfg(target_endian = "little")]
43739#[target_feature(enable = "neon")]
43740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43741#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43742#[cfg_attr(
43743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43744    assert_instr(nop)
43745)]
43746#[cfg_attr(
43747    not(target_arch = "arm"),
43748    stable(feature = "neon_intrinsics", since = "1.59.0")
43749)]
43750#[cfg_attr(
43751    target_arch = "arm",
43752    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43753)]
43754pub fn vreinterpret_s64_s8(a: int8x8_t) -> int64x1_t {
43755    unsafe { transmute(a) }
43756}
43757#[doc = "Vector reinterpret cast operation"]
43758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s8)"]
43759#[inline(always)]
43760#[cfg(target_endian = "big")]
43761#[target_feature(enable = "neon")]
43762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43763#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43764#[cfg_attr(
43765    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43766    assert_instr(nop)
43767)]
43768#[cfg_attr(
43769    not(target_arch = "arm"),
43770    stable(feature = "neon_intrinsics", since = "1.59.0")
43771)]
43772#[cfg_attr(
43773    target_arch = "arm",
43774    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43775)]
43776pub fn vreinterpret_s64_s8(a: int8x8_t) -> int64x1_t {
43777    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43778    unsafe { transmute(a) }
43779}
43780#[doc = "Vector reinterpret cast operation"]
43781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s8)"]
43782#[inline(always)]
43783#[cfg(target_endian = "little")]
43784#[target_feature(enable = "neon")]
43785#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43786#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43787#[cfg_attr(
43788    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43789    assert_instr(nop)
43790)]
43791#[cfg_attr(
43792    not(target_arch = "arm"),
43793    stable(feature = "neon_intrinsics", since = "1.59.0")
43794)]
43795#[cfg_attr(
43796    target_arch = "arm",
43797    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43798)]
43799pub fn vreinterpret_u8_s8(a: int8x8_t) -> uint8x8_t {
43800    unsafe { transmute(a) }
43801}
43802#[doc = "Vector reinterpret cast operation"]
43803#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s8)"]
43804#[inline(always)]
43805#[cfg(target_endian = "big")]
43806#[target_feature(enable = "neon")]
43807#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43808#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43809#[cfg_attr(
43810    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43811    assert_instr(nop)
43812)]
43813#[cfg_attr(
43814    not(target_arch = "arm"),
43815    stable(feature = "neon_intrinsics", since = "1.59.0")
43816)]
43817#[cfg_attr(
43818    target_arch = "arm",
43819    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43820)]
43821pub fn vreinterpret_u8_s8(a: int8x8_t) -> uint8x8_t {
43822    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43823    unsafe {
43824        let ret_val: uint8x8_t = transmute(a);
43825        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43826    }
43827}
43828#[doc = "Vector reinterpret cast operation"]
43829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s8)"]
43830#[inline(always)]
43831#[cfg(target_endian = "little")]
43832#[target_feature(enable = "neon")]
43833#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43834#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43835#[cfg_attr(
43836    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43837    assert_instr(nop)
43838)]
43839#[cfg_attr(
43840    not(target_arch = "arm"),
43841    stable(feature = "neon_intrinsics", since = "1.59.0")
43842)]
43843#[cfg_attr(
43844    target_arch = "arm",
43845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43846)]
43847pub fn vreinterpret_u16_s8(a: int8x8_t) -> uint16x4_t {
43848    unsafe { transmute(a) }
43849}
43850#[doc = "Vector reinterpret cast operation"]
43851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s8)"]
43852#[inline(always)]
43853#[cfg(target_endian = "big")]
43854#[target_feature(enable = "neon")]
43855#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43856#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43857#[cfg_attr(
43858    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43859    assert_instr(nop)
43860)]
43861#[cfg_attr(
43862    not(target_arch = "arm"),
43863    stable(feature = "neon_intrinsics", since = "1.59.0")
43864)]
43865#[cfg_attr(
43866    target_arch = "arm",
43867    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43868)]
43869pub fn vreinterpret_u16_s8(a: int8x8_t) -> uint16x4_t {
43870    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43871    unsafe {
43872        let ret_val: uint16x4_t = transmute(a);
43873        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43874    }
43875}
43876#[doc = "Vector reinterpret cast operation"]
43877#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s8)"]
43878#[inline(always)]
43879#[cfg(target_endian = "little")]
43880#[target_feature(enable = "neon")]
43881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43882#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43883#[cfg_attr(
43884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43885    assert_instr(nop)
43886)]
43887#[cfg_attr(
43888    not(target_arch = "arm"),
43889    stable(feature = "neon_intrinsics", since = "1.59.0")
43890)]
43891#[cfg_attr(
43892    target_arch = "arm",
43893    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43894)]
43895pub fn vreinterpret_u32_s8(a: int8x8_t) -> uint32x2_t {
43896    unsafe { transmute(a) }
43897}
43898#[doc = "Vector reinterpret cast operation"]
43899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s8)"]
43900#[inline(always)]
43901#[cfg(target_endian = "big")]
43902#[target_feature(enable = "neon")]
43903#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43904#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43905#[cfg_attr(
43906    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43907    assert_instr(nop)
43908)]
43909#[cfg_attr(
43910    not(target_arch = "arm"),
43911    stable(feature = "neon_intrinsics", since = "1.59.0")
43912)]
43913#[cfg_attr(
43914    target_arch = "arm",
43915    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43916)]
43917pub fn vreinterpret_u32_s8(a: int8x8_t) -> uint32x2_t {
43918    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43919    unsafe {
43920        let ret_val: uint32x2_t = transmute(a);
43921        simd_shuffle!(ret_val, ret_val, [1, 0])
43922    }
43923}
43924#[doc = "Vector reinterpret cast operation"]
43925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s8)"]
43926#[inline(always)]
43927#[cfg(target_endian = "little")]
43928#[target_feature(enable = "neon")]
43929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43930#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43931#[cfg_attr(
43932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43933    assert_instr(nop)
43934)]
43935#[cfg_attr(
43936    not(target_arch = "arm"),
43937    stable(feature = "neon_intrinsics", since = "1.59.0")
43938)]
43939#[cfg_attr(
43940    target_arch = "arm",
43941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43942)]
43943pub fn vreinterpret_u64_s8(a: int8x8_t) -> uint64x1_t {
43944    unsafe { transmute(a) }
43945}
43946#[doc = "Vector reinterpret cast operation"]
43947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s8)"]
43948#[inline(always)]
43949#[cfg(target_endian = "big")]
43950#[target_feature(enable = "neon")]
43951#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43952#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43953#[cfg_attr(
43954    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43955    assert_instr(nop)
43956)]
43957#[cfg_attr(
43958    not(target_arch = "arm"),
43959    stable(feature = "neon_intrinsics", since = "1.59.0")
43960)]
43961#[cfg_attr(
43962    target_arch = "arm",
43963    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43964)]
43965pub fn vreinterpret_u64_s8(a: int8x8_t) -> uint64x1_t {
43966    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43967    unsafe { transmute(a) }
43968}
43969#[doc = "Vector reinterpret cast operation"]
43970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s8)"]
43971#[inline(always)]
43972#[cfg(target_endian = "little")]
43973#[target_feature(enable = "neon")]
43974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43975#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43976#[cfg_attr(
43977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43978    assert_instr(nop)
43979)]
43980#[cfg_attr(
43981    not(target_arch = "arm"),
43982    stable(feature = "neon_intrinsics", since = "1.59.0")
43983)]
43984#[cfg_attr(
43985    target_arch = "arm",
43986    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43987)]
43988pub fn vreinterpret_p8_s8(a: int8x8_t) -> poly8x8_t {
43989    unsafe { transmute(a) }
43990}
43991#[doc = "Vector reinterpret cast operation"]
43992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s8)"]
43993#[inline(always)]
43994#[cfg(target_endian = "big")]
43995#[target_feature(enable = "neon")]
43996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43998#[cfg_attr(
43999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44000    assert_instr(nop)
44001)]
44002#[cfg_attr(
44003    not(target_arch = "arm"),
44004    stable(feature = "neon_intrinsics", since = "1.59.0")
44005)]
44006#[cfg_attr(
44007    target_arch = "arm",
44008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44009)]
44010pub fn vreinterpret_p8_s8(a: int8x8_t) -> poly8x8_t {
44011    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44012    unsafe {
44013        let ret_val: poly8x8_t = transmute(a);
44014        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44015    }
44016}
44017#[doc = "Vector reinterpret cast operation"]
44018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s8)"]
44019#[inline(always)]
44020#[cfg(target_endian = "little")]
44021#[target_feature(enable = "neon")]
44022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44024#[cfg_attr(
44025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44026    assert_instr(nop)
44027)]
44028#[cfg_attr(
44029    not(target_arch = "arm"),
44030    stable(feature = "neon_intrinsics", since = "1.59.0")
44031)]
44032#[cfg_attr(
44033    target_arch = "arm",
44034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44035)]
44036pub fn vreinterpret_p16_s8(a: int8x8_t) -> poly16x4_t {
44037    unsafe { transmute(a) }
44038}
44039#[doc = "Vector reinterpret cast operation"]
44040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s8)"]
44041#[inline(always)]
44042#[cfg(target_endian = "big")]
44043#[target_feature(enable = "neon")]
44044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44045#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44046#[cfg_attr(
44047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44048    assert_instr(nop)
44049)]
44050#[cfg_attr(
44051    not(target_arch = "arm"),
44052    stable(feature = "neon_intrinsics", since = "1.59.0")
44053)]
44054#[cfg_attr(
44055    target_arch = "arm",
44056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44057)]
44058pub fn vreinterpret_p16_s8(a: int8x8_t) -> poly16x4_t {
44059    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44060    unsafe {
44061        let ret_val: poly16x4_t = transmute(a);
44062        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44063    }
44064}
44065#[doc = "Vector reinterpret cast operation"]
44066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s8)"]
44067#[inline(always)]
44068#[cfg(target_endian = "little")]
44069#[target_feature(enable = "neon")]
44070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44071#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44072#[cfg_attr(
44073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44074    assert_instr(nop)
44075)]
44076#[cfg_attr(
44077    not(target_arch = "arm"),
44078    stable(feature = "neon_intrinsics", since = "1.59.0")
44079)]
44080#[cfg_attr(
44081    target_arch = "arm",
44082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44083)]
44084pub fn vreinterpretq_f32_s8(a: int8x16_t) -> float32x4_t {
44085    unsafe { transmute(a) }
44086}
44087#[doc = "Vector reinterpret cast operation"]
44088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s8)"]
44089#[inline(always)]
44090#[cfg(target_endian = "big")]
44091#[target_feature(enable = "neon")]
44092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44093#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44094#[cfg_attr(
44095    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44096    assert_instr(nop)
44097)]
44098#[cfg_attr(
44099    not(target_arch = "arm"),
44100    stable(feature = "neon_intrinsics", since = "1.59.0")
44101)]
44102#[cfg_attr(
44103    target_arch = "arm",
44104    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44105)]
44106pub fn vreinterpretq_f32_s8(a: int8x16_t) -> float32x4_t {
44107    let a: int8x16_t =
44108        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44109    unsafe {
44110        let ret_val: float32x4_t = transmute(a);
44111        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44112    }
44113}
44114#[doc = "Vector reinterpret cast operation"]
44115#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s8)"]
44116#[inline(always)]
44117#[cfg(target_endian = "little")]
44118#[target_feature(enable = "neon")]
44119#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44120#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44121#[cfg_attr(
44122    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44123    assert_instr(nop)
44124)]
44125#[cfg_attr(
44126    not(target_arch = "arm"),
44127    stable(feature = "neon_intrinsics", since = "1.59.0")
44128)]
44129#[cfg_attr(
44130    target_arch = "arm",
44131    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44132)]
44133pub fn vreinterpretq_s16_s8(a: int8x16_t) -> int16x8_t {
44134    unsafe { transmute(a) }
44135}
44136#[doc = "Vector reinterpret cast operation"]
44137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s8)"]
44138#[inline(always)]
44139#[cfg(target_endian = "big")]
44140#[target_feature(enable = "neon")]
44141#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44142#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44143#[cfg_attr(
44144    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44145    assert_instr(nop)
44146)]
44147#[cfg_attr(
44148    not(target_arch = "arm"),
44149    stable(feature = "neon_intrinsics", since = "1.59.0")
44150)]
44151#[cfg_attr(
44152    target_arch = "arm",
44153    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44154)]
44155pub fn vreinterpretq_s16_s8(a: int8x16_t) -> int16x8_t {
44156    let a: int8x16_t =
44157        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44158    unsafe {
44159        let ret_val: int16x8_t = transmute(a);
44160        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44161    }
44162}
44163#[doc = "Vector reinterpret cast operation"]
44164#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s8)"]
44165#[inline(always)]
44166#[cfg(target_endian = "little")]
44167#[target_feature(enable = "neon")]
44168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44170#[cfg_attr(
44171    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44172    assert_instr(nop)
44173)]
44174#[cfg_attr(
44175    not(target_arch = "arm"),
44176    stable(feature = "neon_intrinsics", since = "1.59.0")
44177)]
44178#[cfg_attr(
44179    target_arch = "arm",
44180    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44181)]
44182pub fn vreinterpretq_s32_s8(a: int8x16_t) -> int32x4_t {
44183    unsafe { transmute(a) }
44184}
44185#[doc = "Vector reinterpret cast operation"]
44186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s8)"]
44187#[inline(always)]
44188#[cfg(target_endian = "big")]
44189#[target_feature(enable = "neon")]
44190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44192#[cfg_attr(
44193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44194    assert_instr(nop)
44195)]
44196#[cfg_attr(
44197    not(target_arch = "arm"),
44198    stable(feature = "neon_intrinsics", since = "1.59.0")
44199)]
44200#[cfg_attr(
44201    target_arch = "arm",
44202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44203)]
44204pub fn vreinterpretq_s32_s8(a: int8x16_t) -> int32x4_t {
44205    let a: int8x16_t =
44206        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44207    unsafe {
44208        let ret_val: int32x4_t = transmute(a);
44209        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44210    }
44211}
44212#[doc = "Vector reinterpret cast operation"]
44213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s8)"]
44214#[inline(always)]
44215#[cfg(target_endian = "little")]
44216#[target_feature(enable = "neon")]
44217#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44218#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44219#[cfg_attr(
44220    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44221    assert_instr(nop)
44222)]
44223#[cfg_attr(
44224    not(target_arch = "arm"),
44225    stable(feature = "neon_intrinsics", since = "1.59.0")
44226)]
44227#[cfg_attr(
44228    target_arch = "arm",
44229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44230)]
44231pub fn vreinterpretq_s64_s8(a: int8x16_t) -> int64x2_t {
44232    unsafe { transmute(a) }
44233}
44234#[doc = "Vector reinterpret cast operation"]
44235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s8)"]
44236#[inline(always)]
44237#[cfg(target_endian = "big")]
44238#[target_feature(enable = "neon")]
44239#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44240#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44241#[cfg_attr(
44242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44243    assert_instr(nop)
44244)]
44245#[cfg_attr(
44246    not(target_arch = "arm"),
44247    stable(feature = "neon_intrinsics", since = "1.59.0")
44248)]
44249#[cfg_attr(
44250    target_arch = "arm",
44251    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44252)]
44253pub fn vreinterpretq_s64_s8(a: int8x16_t) -> int64x2_t {
44254    let a: int8x16_t =
44255        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44256    unsafe {
44257        let ret_val: int64x2_t = transmute(a);
44258        simd_shuffle!(ret_val, ret_val, [1, 0])
44259    }
44260}
44261#[doc = "Vector reinterpret cast operation"]
44262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s8)"]
44263#[inline(always)]
44264#[cfg(target_endian = "little")]
44265#[target_feature(enable = "neon")]
44266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44268#[cfg_attr(
44269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44270    assert_instr(nop)
44271)]
44272#[cfg_attr(
44273    not(target_arch = "arm"),
44274    stable(feature = "neon_intrinsics", since = "1.59.0")
44275)]
44276#[cfg_attr(
44277    target_arch = "arm",
44278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44279)]
44280pub fn vreinterpretq_u8_s8(a: int8x16_t) -> uint8x16_t {
44281    unsafe { transmute(a) }
44282}
44283#[doc = "Vector reinterpret cast operation"]
44284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s8)"]
44285#[inline(always)]
44286#[cfg(target_endian = "big")]
44287#[target_feature(enable = "neon")]
44288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44290#[cfg_attr(
44291    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44292    assert_instr(nop)
44293)]
44294#[cfg_attr(
44295    not(target_arch = "arm"),
44296    stable(feature = "neon_intrinsics", since = "1.59.0")
44297)]
44298#[cfg_attr(
44299    target_arch = "arm",
44300    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44301)]
44302pub fn vreinterpretq_u8_s8(a: int8x16_t) -> uint8x16_t {
44303    let a: int8x16_t =
44304        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44305    unsafe {
44306        let ret_val: uint8x16_t = transmute(a);
44307        simd_shuffle!(
44308            ret_val,
44309            ret_val,
44310            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
44311        )
44312    }
44313}
44314#[doc = "Vector reinterpret cast operation"]
44315#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s8)"]
44316#[inline(always)]
44317#[cfg(target_endian = "little")]
44318#[target_feature(enable = "neon")]
44319#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44320#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44321#[cfg_attr(
44322    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44323    assert_instr(nop)
44324)]
44325#[cfg_attr(
44326    not(target_arch = "arm"),
44327    stable(feature = "neon_intrinsics", since = "1.59.0")
44328)]
44329#[cfg_attr(
44330    target_arch = "arm",
44331    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44332)]
44333pub fn vreinterpretq_u16_s8(a: int8x16_t) -> uint16x8_t {
44334    unsafe { transmute(a) }
44335}
44336#[doc = "Vector reinterpret cast operation"]
44337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s8)"]
44338#[inline(always)]
44339#[cfg(target_endian = "big")]
44340#[target_feature(enable = "neon")]
44341#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44342#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44343#[cfg_attr(
44344    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44345    assert_instr(nop)
44346)]
44347#[cfg_attr(
44348    not(target_arch = "arm"),
44349    stable(feature = "neon_intrinsics", since = "1.59.0")
44350)]
44351#[cfg_attr(
44352    target_arch = "arm",
44353    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44354)]
44355pub fn vreinterpretq_u16_s8(a: int8x16_t) -> uint16x8_t {
44356    let a: int8x16_t =
44357        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44358    unsafe {
44359        let ret_val: uint16x8_t = transmute(a);
44360        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44361    }
44362}
44363#[doc = "Vector reinterpret cast operation"]
44364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s8)"]
44365#[inline(always)]
44366#[cfg(target_endian = "little")]
44367#[target_feature(enable = "neon")]
44368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44369#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44370#[cfg_attr(
44371    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44372    assert_instr(nop)
44373)]
44374#[cfg_attr(
44375    not(target_arch = "arm"),
44376    stable(feature = "neon_intrinsics", since = "1.59.0")
44377)]
44378#[cfg_attr(
44379    target_arch = "arm",
44380    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44381)]
44382pub fn vreinterpretq_u32_s8(a: int8x16_t) -> uint32x4_t {
44383    unsafe { transmute(a) }
44384}
44385#[doc = "Vector reinterpret cast operation"]
44386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s8)"]
44387#[inline(always)]
44388#[cfg(target_endian = "big")]
44389#[target_feature(enable = "neon")]
44390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44392#[cfg_attr(
44393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44394    assert_instr(nop)
44395)]
44396#[cfg_attr(
44397    not(target_arch = "arm"),
44398    stable(feature = "neon_intrinsics", since = "1.59.0")
44399)]
44400#[cfg_attr(
44401    target_arch = "arm",
44402    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44403)]
44404pub fn vreinterpretq_u32_s8(a: int8x16_t) -> uint32x4_t {
44405    let a: int8x16_t =
44406        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44407    unsafe {
44408        let ret_val: uint32x4_t = transmute(a);
44409        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44410    }
44411}
44412#[doc = "Vector reinterpret cast operation"]
44413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s8)"]
44414#[inline(always)]
44415#[cfg(target_endian = "little")]
44416#[target_feature(enable = "neon")]
44417#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44419#[cfg_attr(
44420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44421    assert_instr(nop)
44422)]
44423#[cfg_attr(
44424    not(target_arch = "arm"),
44425    stable(feature = "neon_intrinsics", since = "1.59.0")
44426)]
44427#[cfg_attr(
44428    target_arch = "arm",
44429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44430)]
44431pub fn vreinterpretq_u64_s8(a: int8x16_t) -> uint64x2_t {
44432    unsafe { transmute(a) }
44433}
44434#[doc = "Vector reinterpret cast operation"]
44435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s8)"]
44436#[inline(always)]
44437#[cfg(target_endian = "big")]
44438#[target_feature(enable = "neon")]
44439#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44440#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44441#[cfg_attr(
44442    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44443    assert_instr(nop)
44444)]
44445#[cfg_attr(
44446    not(target_arch = "arm"),
44447    stable(feature = "neon_intrinsics", since = "1.59.0")
44448)]
44449#[cfg_attr(
44450    target_arch = "arm",
44451    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44452)]
44453pub fn vreinterpretq_u64_s8(a: int8x16_t) -> uint64x2_t {
44454    let a: int8x16_t =
44455        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44456    unsafe {
44457        let ret_val: uint64x2_t = transmute(a);
44458        simd_shuffle!(ret_val, ret_val, [1, 0])
44459    }
44460}
44461#[doc = "Vector reinterpret cast operation"]
44462#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s8)"]
44463#[inline(always)]
44464#[cfg(target_endian = "little")]
44465#[target_feature(enable = "neon")]
44466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44467#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44468#[cfg_attr(
44469    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44470    assert_instr(nop)
44471)]
44472#[cfg_attr(
44473    not(target_arch = "arm"),
44474    stable(feature = "neon_intrinsics", since = "1.59.0")
44475)]
44476#[cfg_attr(
44477    target_arch = "arm",
44478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44479)]
44480pub fn vreinterpretq_p8_s8(a: int8x16_t) -> poly8x16_t {
44481    unsafe { transmute(a) }
44482}
44483#[doc = "Vector reinterpret cast operation"]
44484#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s8)"]
44485#[inline(always)]
44486#[cfg(target_endian = "big")]
44487#[target_feature(enable = "neon")]
44488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44489#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44490#[cfg_attr(
44491    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44492    assert_instr(nop)
44493)]
44494#[cfg_attr(
44495    not(target_arch = "arm"),
44496    stable(feature = "neon_intrinsics", since = "1.59.0")
44497)]
44498#[cfg_attr(
44499    target_arch = "arm",
44500    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44501)]
44502pub fn vreinterpretq_p8_s8(a: int8x16_t) -> poly8x16_t {
44503    let a: int8x16_t =
44504        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44505    unsafe {
44506        let ret_val: poly8x16_t = transmute(a);
44507        simd_shuffle!(
44508            ret_val,
44509            ret_val,
44510            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
44511        )
44512    }
44513}
44514#[doc = "Vector reinterpret cast operation"]
44515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s8)"]
44516#[inline(always)]
44517#[cfg(target_endian = "little")]
44518#[target_feature(enable = "neon")]
44519#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44520#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44521#[cfg_attr(
44522    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44523    assert_instr(nop)
44524)]
44525#[cfg_attr(
44526    not(target_arch = "arm"),
44527    stable(feature = "neon_intrinsics", since = "1.59.0")
44528)]
44529#[cfg_attr(
44530    target_arch = "arm",
44531    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44532)]
44533pub fn vreinterpretq_p16_s8(a: int8x16_t) -> poly16x8_t {
44534    unsafe { transmute(a) }
44535}
44536#[doc = "Vector reinterpret cast operation"]
44537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s8)"]
44538#[inline(always)]
44539#[cfg(target_endian = "big")]
44540#[target_feature(enable = "neon")]
44541#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44542#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44543#[cfg_attr(
44544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44545    assert_instr(nop)
44546)]
44547#[cfg_attr(
44548    not(target_arch = "arm"),
44549    stable(feature = "neon_intrinsics", since = "1.59.0")
44550)]
44551#[cfg_attr(
44552    target_arch = "arm",
44553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44554)]
44555pub fn vreinterpretq_p16_s8(a: int8x16_t) -> poly16x8_t {
44556    let a: int8x16_t =
44557        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44558    unsafe {
44559        let ret_val: poly16x8_t = transmute(a);
44560        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44561    }
44562}
44563#[doc = "Vector reinterpret cast operation"]
44564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s16)"]
44565#[inline(always)]
44566#[cfg(target_endian = "little")]
44567#[target_feature(enable = "neon")]
44568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44569#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44570#[cfg_attr(
44571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44572    assert_instr(nop)
44573)]
44574#[cfg_attr(
44575    not(target_arch = "arm"),
44576    stable(feature = "neon_intrinsics", since = "1.59.0")
44577)]
44578#[cfg_attr(
44579    target_arch = "arm",
44580    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44581)]
44582pub fn vreinterpret_f32_s16(a: int16x4_t) -> float32x2_t {
44583    unsafe { transmute(a) }
44584}
44585#[doc = "Vector reinterpret cast operation"]
44586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s16)"]
44587#[inline(always)]
44588#[cfg(target_endian = "big")]
44589#[target_feature(enable = "neon")]
44590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44592#[cfg_attr(
44593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44594    assert_instr(nop)
44595)]
44596#[cfg_attr(
44597    not(target_arch = "arm"),
44598    stable(feature = "neon_intrinsics", since = "1.59.0")
44599)]
44600#[cfg_attr(
44601    target_arch = "arm",
44602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44603)]
44604pub fn vreinterpret_f32_s16(a: int16x4_t) -> float32x2_t {
44605    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44606    unsafe {
44607        let ret_val: float32x2_t = transmute(a);
44608        simd_shuffle!(ret_val, ret_val, [1, 0])
44609    }
44610}
44611#[doc = "Vector reinterpret cast operation"]
44612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s16)"]
44613#[inline(always)]
44614#[cfg(target_endian = "little")]
44615#[target_feature(enable = "neon")]
44616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44617#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44618#[cfg_attr(
44619    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44620    assert_instr(nop)
44621)]
44622#[cfg_attr(
44623    not(target_arch = "arm"),
44624    stable(feature = "neon_intrinsics", since = "1.59.0")
44625)]
44626#[cfg_attr(
44627    target_arch = "arm",
44628    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44629)]
44630pub fn vreinterpret_s8_s16(a: int16x4_t) -> int8x8_t {
44631    unsafe { transmute(a) }
44632}
44633#[doc = "Vector reinterpret cast operation"]
44634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s16)"]
44635#[inline(always)]
44636#[cfg(target_endian = "big")]
44637#[target_feature(enable = "neon")]
44638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44640#[cfg_attr(
44641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44642    assert_instr(nop)
44643)]
44644#[cfg_attr(
44645    not(target_arch = "arm"),
44646    stable(feature = "neon_intrinsics", since = "1.59.0")
44647)]
44648#[cfg_attr(
44649    target_arch = "arm",
44650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44651)]
44652pub fn vreinterpret_s8_s16(a: int16x4_t) -> int8x8_t {
44653    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44654    unsafe {
44655        let ret_val: int8x8_t = transmute(a);
44656        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44657    }
44658}
44659#[doc = "Vector reinterpret cast operation"]
44660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s16)"]
44661#[inline(always)]
44662#[cfg(target_endian = "little")]
44663#[target_feature(enable = "neon")]
44664#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44665#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44666#[cfg_attr(
44667    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44668    assert_instr(nop)
44669)]
44670#[cfg_attr(
44671    not(target_arch = "arm"),
44672    stable(feature = "neon_intrinsics", since = "1.59.0")
44673)]
44674#[cfg_attr(
44675    target_arch = "arm",
44676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44677)]
44678pub fn vreinterpret_s32_s16(a: int16x4_t) -> int32x2_t {
44679    unsafe { transmute(a) }
44680}
44681#[doc = "Vector reinterpret cast operation"]
44682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s16)"]
44683#[inline(always)]
44684#[cfg(target_endian = "big")]
44685#[target_feature(enable = "neon")]
44686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44688#[cfg_attr(
44689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44690    assert_instr(nop)
44691)]
44692#[cfg_attr(
44693    not(target_arch = "arm"),
44694    stable(feature = "neon_intrinsics", since = "1.59.0")
44695)]
44696#[cfg_attr(
44697    target_arch = "arm",
44698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44699)]
44700pub fn vreinterpret_s32_s16(a: int16x4_t) -> int32x2_t {
44701    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44702    unsafe {
44703        let ret_val: int32x2_t = transmute(a);
44704        simd_shuffle!(ret_val, ret_val, [1, 0])
44705    }
44706}
44707#[doc = "Vector reinterpret cast operation"]
44708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s16)"]
44709#[inline(always)]
44710#[cfg(target_endian = "little")]
44711#[target_feature(enable = "neon")]
44712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44714#[cfg_attr(
44715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44716    assert_instr(nop)
44717)]
44718#[cfg_attr(
44719    not(target_arch = "arm"),
44720    stable(feature = "neon_intrinsics", since = "1.59.0")
44721)]
44722#[cfg_attr(
44723    target_arch = "arm",
44724    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44725)]
44726pub fn vreinterpret_s64_s16(a: int16x4_t) -> int64x1_t {
44727    unsafe { transmute(a) }
44728}
44729#[doc = "Vector reinterpret cast operation"]
44730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s16)"]
44731#[inline(always)]
44732#[cfg(target_endian = "big")]
44733#[target_feature(enable = "neon")]
44734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44736#[cfg_attr(
44737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44738    assert_instr(nop)
44739)]
44740#[cfg_attr(
44741    not(target_arch = "arm"),
44742    stable(feature = "neon_intrinsics", since = "1.59.0")
44743)]
44744#[cfg_attr(
44745    target_arch = "arm",
44746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44747)]
44748pub fn vreinterpret_s64_s16(a: int16x4_t) -> int64x1_t {
44749    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44750    unsafe { transmute(a) }
44751}
44752#[doc = "Vector reinterpret cast operation"]
44753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s16)"]
44754#[inline(always)]
44755#[cfg(target_endian = "little")]
44756#[target_feature(enable = "neon")]
44757#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44758#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44759#[cfg_attr(
44760    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44761    assert_instr(nop)
44762)]
44763#[cfg_attr(
44764    not(target_arch = "arm"),
44765    stable(feature = "neon_intrinsics", since = "1.59.0")
44766)]
44767#[cfg_attr(
44768    target_arch = "arm",
44769    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44770)]
44771pub fn vreinterpret_u8_s16(a: int16x4_t) -> uint8x8_t {
44772    unsafe { transmute(a) }
44773}
44774#[doc = "Vector reinterpret cast operation"]
44775#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s16)"]
44776#[inline(always)]
44777#[cfg(target_endian = "big")]
44778#[target_feature(enable = "neon")]
44779#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44780#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44781#[cfg_attr(
44782    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44783    assert_instr(nop)
44784)]
44785#[cfg_attr(
44786    not(target_arch = "arm"),
44787    stable(feature = "neon_intrinsics", since = "1.59.0")
44788)]
44789#[cfg_attr(
44790    target_arch = "arm",
44791    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44792)]
44793pub fn vreinterpret_u8_s16(a: int16x4_t) -> uint8x8_t {
44794    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44795    unsafe {
44796        let ret_val: uint8x8_t = transmute(a);
44797        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44798    }
44799}
44800#[doc = "Vector reinterpret cast operation"]
44801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s16)"]
44802#[inline(always)]
44803#[cfg(target_endian = "little")]
44804#[target_feature(enable = "neon")]
44805#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44806#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44807#[cfg_attr(
44808    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44809    assert_instr(nop)
44810)]
44811#[cfg_attr(
44812    not(target_arch = "arm"),
44813    stable(feature = "neon_intrinsics", since = "1.59.0")
44814)]
44815#[cfg_attr(
44816    target_arch = "arm",
44817    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44818)]
44819pub fn vreinterpret_u16_s16(a: int16x4_t) -> uint16x4_t {
44820    unsafe { transmute(a) }
44821}
44822#[doc = "Vector reinterpret cast operation"]
44823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s16)"]
44824#[inline(always)]
44825#[cfg(target_endian = "big")]
44826#[target_feature(enable = "neon")]
44827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44829#[cfg_attr(
44830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44831    assert_instr(nop)
44832)]
44833#[cfg_attr(
44834    not(target_arch = "arm"),
44835    stable(feature = "neon_intrinsics", since = "1.59.0")
44836)]
44837#[cfg_attr(
44838    target_arch = "arm",
44839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44840)]
44841pub fn vreinterpret_u16_s16(a: int16x4_t) -> uint16x4_t {
44842    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44843    unsafe {
44844        let ret_val: uint16x4_t = transmute(a);
44845        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44846    }
44847}
44848#[doc = "Vector reinterpret cast operation"]
44849#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s16)"]
44850#[inline(always)]
44851#[cfg(target_endian = "little")]
44852#[target_feature(enable = "neon")]
44853#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44854#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44855#[cfg_attr(
44856    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44857    assert_instr(nop)
44858)]
44859#[cfg_attr(
44860    not(target_arch = "arm"),
44861    stable(feature = "neon_intrinsics", since = "1.59.0")
44862)]
44863#[cfg_attr(
44864    target_arch = "arm",
44865    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44866)]
44867pub fn vreinterpret_u32_s16(a: int16x4_t) -> uint32x2_t {
44868    unsafe { transmute(a) }
44869}
44870#[doc = "Vector reinterpret cast operation"]
44871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s16)"]
44872#[inline(always)]
44873#[cfg(target_endian = "big")]
44874#[target_feature(enable = "neon")]
44875#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44876#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44877#[cfg_attr(
44878    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44879    assert_instr(nop)
44880)]
44881#[cfg_attr(
44882    not(target_arch = "arm"),
44883    stable(feature = "neon_intrinsics", since = "1.59.0")
44884)]
44885#[cfg_attr(
44886    target_arch = "arm",
44887    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44888)]
44889pub fn vreinterpret_u32_s16(a: int16x4_t) -> uint32x2_t {
44890    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44891    unsafe {
44892        let ret_val: uint32x2_t = transmute(a);
44893        simd_shuffle!(ret_val, ret_val, [1, 0])
44894    }
44895}
44896#[doc = "Vector reinterpret cast operation"]
44897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s16)"]
44898#[inline(always)]
44899#[cfg(target_endian = "little")]
44900#[target_feature(enable = "neon")]
44901#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44902#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44903#[cfg_attr(
44904    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44905    assert_instr(nop)
44906)]
44907#[cfg_attr(
44908    not(target_arch = "arm"),
44909    stable(feature = "neon_intrinsics", since = "1.59.0")
44910)]
44911#[cfg_attr(
44912    target_arch = "arm",
44913    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44914)]
44915pub fn vreinterpret_u64_s16(a: int16x4_t) -> uint64x1_t {
44916    unsafe { transmute(a) }
44917}
44918#[doc = "Vector reinterpret cast operation"]
44919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s16)"]
44920#[inline(always)]
44921#[cfg(target_endian = "big")]
44922#[target_feature(enable = "neon")]
44923#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44924#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44925#[cfg_attr(
44926    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44927    assert_instr(nop)
44928)]
44929#[cfg_attr(
44930    not(target_arch = "arm"),
44931    stable(feature = "neon_intrinsics", since = "1.59.0")
44932)]
44933#[cfg_attr(
44934    target_arch = "arm",
44935    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44936)]
44937pub fn vreinterpret_u64_s16(a: int16x4_t) -> uint64x1_t {
44938    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44939    unsafe { transmute(a) }
44940}
44941#[doc = "Vector reinterpret cast operation"]
44942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s16)"]
44943#[inline(always)]
44944#[cfg(target_endian = "little")]
44945#[target_feature(enable = "neon")]
44946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44947#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44948#[cfg_attr(
44949    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44950    assert_instr(nop)
44951)]
44952#[cfg_attr(
44953    not(target_arch = "arm"),
44954    stable(feature = "neon_intrinsics", since = "1.59.0")
44955)]
44956#[cfg_attr(
44957    target_arch = "arm",
44958    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44959)]
44960pub fn vreinterpret_p8_s16(a: int16x4_t) -> poly8x8_t {
44961    unsafe { transmute(a) }
44962}
44963#[doc = "Vector reinterpret cast operation"]
44964#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s16)"]
44965#[inline(always)]
44966#[cfg(target_endian = "big")]
44967#[target_feature(enable = "neon")]
44968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
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#[cfg_attr(
44975    not(target_arch = "arm"),
44976    stable(feature = "neon_intrinsics", since = "1.59.0")
44977)]
44978#[cfg_attr(
44979    target_arch = "arm",
44980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44981)]
44982pub fn vreinterpret_p8_s16(a: int16x4_t) -> poly8x8_t {
44983    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44984    unsafe {
44985        let ret_val: poly8x8_t = transmute(a);
44986        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44987    }
44988}
44989#[doc = "Vector reinterpret cast operation"]
44990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s16)"]
44991#[inline(always)]
44992#[cfg(target_endian = "little")]
44993#[target_feature(enable = "neon")]
44994#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44995#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44996#[cfg_attr(
44997    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44998    assert_instr(nop)
44999)]
45000#[cfg_attr(
45001    not(target_arch = "arm"),
45002    stable(feature = "neon_intrinsics", since = "1.59.0")
45003)]
45004#[cfg_attr(
45005    target_arch = "arm",
45006    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45007)]
45008pub fn vreinterpret_p16_s16(a: int16x4_t) -> poly16x4_t {
45009    unsafe { transmute(a) }
45010}
45011#[doc = "Vector reinterpret cast operation"]
45012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s16)"]
45013#[inline(always)]
45014#[cfg(target_endian = "big")]
45015#[target_feature(enable = "neon")]
45016#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45017#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45018#[cfg_attr(
45019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45020    assert_instr(nop)
45021)]
45022#[cfg_attr(
45023    not(target_arch = "arm"),
45024    stable(feature = "neon_intrinsics", since = "1.59.0")
45025)]
45026#[cfg_attr(
45027    target_arch = "arm",
45028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45029)]
45030pub fn vreinterpret_p16_s16(a: int16x4_t) -> poly16x4_t {
45031    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45032    unsafe {
45033        let ret_val: poly16x4_t = transmute(a);
45034        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45035    }
45036}
45037#[doc = "Vector reinterpret cast operation"]
45038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s16)"]
45039#[inline(always)]
45040#[cfg(target_endian = "little")]
45041#[target_feature(enable = "neon")]
45042#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45043#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45044#[cfg_attr(
45045    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45046    assert_instr(nop)
45047)]
45048#[cfg_attr(
45049    not(target_arch = "arm"),
45050    stable(feature = "neon_intrinsics", since = "1.59.0")
45051)]
45052#[cfg_attr(
45053    target_arch = "arm",
45054    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45055)]
45056pub fn vreinterpretq_f32_s16(a: int16x8_t) -> float32x4_t {
45057    unsafe { transmute(a) }
45058}
45059#[doc = "Vector reinterpret cast operation"]
45060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s16)"]
45061#[inline(always)]
45062#[cfg(target_endian = "big")]
45063#[target_feature(enable = "neon")]
45064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45066#[cfg_attr(
45067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45068    assert_instr(nop)
45069)]
45070#[cfg_attr(
45071    not(target_arch = "arm"),
45072    stable(feature = "neon_intrinsics", since = "1.59.0")
45073)]
45074#[cfg_attr(
45075    target_arch = "arm",
45076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45077)]
45078pub fn vreinterpretq_f32_s16(a: int16x8_t) -> float32x4_t {
45079    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45080    unsafe {
45081        let ret_val: float32x4_t = transmute(a);
45082        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45083    }
45084}
45085#[doc = "Vector reinterpret cast operation"]
45086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s16)"]
45087#[inline(always)]
45088#[cfg(target_endian = "little")]
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_s8_s16(a: int16x8_t) -> int8x16_t {
45105    unsafe { transmute(a) }
45106}
45107#[doc = "Vector reinterpret cast operation"]
45108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s16)"]
45109#[inline(always)]
45110#[cfg(target_endian = "big")]
45111#[target_feature(enable = "neon")]
45112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45114#[cfg_attr(
45115    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45116    assert_instr(nop)
45117)]
45118#[cfg_attr(
45119    not(target_arch = "arm"),
45120    stable(feature = "neon_intrinsics", since = "1.59.0")
45121)]
45122#[cfg_attr(
45123    target_arch = "arm",
45124    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45125)]
45126pub fn vreinterpretq_s8_s16(a: int16x8_t) -> int8x16_t {
45127    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45128    unsafe {
45129        let ret_val: int8x16_t = transmute(a);
45130        simd_shuffle!(
45131            ret_val,
45132            ret_val,
45133            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
45134        )
45135    }
45136}
45137#[doc = "Vector reinterpret cast operation"]
45138#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s16)"]
45139#[inline(always)]
45140#[cfg(target_endian = "little")]
45141#[target_feature(enable = "neon")]
45142#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45143#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45144#[cfg_attr(
45145    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45146    assert_instr(nop)
45147)]
45148#[cfg_attr(
45149    not(target_arch = "arm"),
45150    stable(feature = "neon_intrinsics", since = "1.59.0")
45151)]
45152#[cfg_attr(
45153    target_arch = "arm",
45154    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45155)]
45156pub fn vreinterpretq_s32_s16(a: int16x8_t) -> int32x4_t {
45157    unsafe { transmute(a) }
45158}
45159#[doc = "Vector reinterpret cast operation"]
45160#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s16)"]
45161#[inline(always)]
45162#[cfg(target_endian = "big")]
45163#[target_feature(enable = "neon")]
45164#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45165#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45166#[cfg_attr(
45167    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45168    assert_instr(nop)
45169)]
45170#[cfg_attr(
45171    not(target_arch = "arm"),
45172    stable(feature = "neon_intrinsics", since = "1.59.0")
45173)]
45174#[cfg_attr(
45175    target_arch = "arm",
45176    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45177)]
45178pub fn vreinterpretq_s32_s16(a: int16x8_t) -> int32x4_t {
45179    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45180    unsafe {
45181        let ret_val: int32x4_t = transmute(a);
45182        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45183    }
45184}
45185#[doc = "Vector reinterpret cast operation"]
45186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s16)"]
45187#[inline(always)]
45188#[cfg(target_endian = "little")]
45189#[target_feature(enable = "neon")]
45190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45192#[cfg_attr(
45193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45194    assert_instr(nop)
45195)]
45196#[cfg_attr(
45197    not(target_arch = "arm"),
45198    stable(feature = "neon_intrinsics", since = "1.59.0")
45199)]
45200#[cfg_attr(
45201    target_arch = "arm",
45202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45203)]
45204pub fn vreinterpretq_s64_s16(a: int16x8_t) -> int64x2_t {
45205    unsafe { transmute(a) }
45206}
45207#[doc = "Vector reinterpret cast operation"]
45208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s16)"]
45209#[inline(always)]
45210#[cfg(target_endian = "big")]
45211#[target_feature(enable = "neon")]
45212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45214#[cfg_attr(
45215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45216    assert_instr(nop)
45217)]
45218#[cfg_attr(
45219    not(target_arch = "arm"),
45220    stable(feature = "neon_intrinsics", since = "1.59.0")
45221)]
45222#[cfg_attr(
45223    target_arch = "arm",
45224    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45225)]
45226pub fn vreinterpretq_s64_s16(a: int16x8_t) -> int64x2_t {
45227    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45228    unsafe {
45229        let ret_val: int64x2_t = transmute(a);
45230        simd_shuffle!(ret_val, ret_val, [1, 0])
45231    }
45232}
45233#[doc = "Vector reinterpret cast operation"]
45234#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s16)"]
45235#[inline(always)]
45236#[cfg(target_endian = "little")]
45237#[target_feature(enable = "neon")]
45238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45239#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45240#[cfg_attr(
45241    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45242    assert_instr(nop)
45243)]
45244#[cfg_attr(
45245    not(target_arch = "arm"),
45246    stable(feature = "neon_intrinsics", since = "1.59.0")
45247)]
45248#[cfg_attr(
45249    target_arch = "arm",
45250    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45251)]
45252pub fn vreinterpretq_u8_s16(a: int16x8_t) -> uint8x16_t {
45253    unsafe { transmute(a) }
45254}
45255#[doc = "Vector reinterpret cast operation"]
45256#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s16)"]
45257#[inline(always)]
45258#[cfg(target_endian = "big")]
45259#[target_feature(enable = "neon")]
45260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45261#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45262#[cfg_attr(
45263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45264    assert_instr(nop)
45265)]
45266#[cfg_attr(
45267    not(target_arch = "arm"),
45268    stable(feature = "neon_intrinsics", since = "1.59.0")
45269)]
45270#[cfg_attr(
45271    target_arch = "arm",
45272    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45273)]
45274pub fn vreinterpretq_u8_s16(a: int16x8_t) -> uint8x16_t {
45275    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45276    unsafe {
45277        let ret_val: uint8x16_t = transmute(a);
45278        simd_shuffle!(
45279            ret_val,
45280            ret_val,
45281            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
45282        )
45283    }
45284}
45285#[doc = "Vector reinterpret cast operation"]
45286#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s16)"]
45287#[inline(always)]
45288#[cfg(target_endian = "little")]
45289#[target_feature(enable = "neon")]
45290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45291#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45292#[cfg_attr(
45293    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45294    assert_instr(nop)
45295)]
45296#[cfg_attr(
45297    not(target_arch = "arm"),
45298    stable(feature = "neon_intrinsics", since = "1.59.0")
45299)]
45300#[cfg_attr(
45301    target_arch = "arm",
45302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45303)]
45304pub fn vreinterpretq_u16_s16(a: int16x8_t) -> uint16x8_t {
45305    unsafe { transmute(a) }
45306}
45307#[doc = "Vector reinterpret cast operation"]
45308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s16)"]
45309#[inline(always)]
45310#[cfg(target_endian = "big")]
45311#[target_feature(enable = "neon")]
45312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45314#[cfg_attr(
45315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45316    assert_instr(nop)
45317)]
45318#[cfg_attr(
45319    not(target_arch = "arm"),
45320    stable(feature = "neon_intrinsics", since = "1.59.0")
45321)]
45322#[cfg_attr(
45323    target_arch = "arm",
45324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45325)]
45326pub fn vreinterpretq_u16_s16(a: int16x8_t) -> uint16x8_t {
45327    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45328    unsafe {
45329        let ret_val: uint16x8_t = transmute(a);
45330        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45331    }
45332}
45333#[doc = "Vector reinterpret cast operation"]
45334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s16)"]
45335#[inline(always)]
45336#[cfg(target_endian = "little")]
45337#[target_feature(enable = "neon")]
45338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45339#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45340#[cfg_attr(
45341    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45342    assert_instr(nop)
45343)]
45344#[cfg_attr(
45345    not(target_arch = "arm"),
45346    stable(feature = "neon_intrinsics", since = "1.59.0")
45347)]
45348#[cfg_attr(
45349    target_arch = "arm",
45350    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45351)]
45352pub fn vreinterpretq_u32_s16(a: int16x8_t) -> uint32x4_t {
45353    unsafe { transmute(a) }
45354}
45355#[doc = "Vector reinterpret cast operation"]
45356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s16)"]
45357#[inline(always)]
45358#[cfg(target_endian = "big")]
45359#[target_feature(enable = "neon")]
45360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45362#[cfg_attr(
45363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45364    assert_instr(nop)
45365)]
45366#[cfg_attr(
45367    not(target_arch = "arm"),
45368    stable(feature = "neon_intrinsics", since = "1.59.0")
45369)]
45370#[cfg_attr(
45371    target_arch = "arm",
45372    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45373)]
45374pub fn vreinterpretq_u32_s16(a: int16x8_t) -> uint32x4_t {
45375    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45376    unsafe {
45377        let ret_val: uint32x4_t = transmute(a);
45378        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45379    }
45380}
45381#[doc = "Vector reinterpret cast operation"]
45382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s16)"]
45383#[inline(always)]
45384#[cfg(target_endian = "little")]
45385#[target_feature(enable = "neon")]
45386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45388#[cfg_attr(
45389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45390    assert_instr(nop)
45391)]
45392#[cfg_attr(
45393    not(target_arch = "arm"),
45394    stable(feature = "neon_intrinsics", since = "1.59.0")
45395)]
45396#[cfg_attr(
45397    target_arch = "arm",
45398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45399)]
45400pub fn vreinterpretq_u64_s16(a: int16x8_t) -> uint64x2_t {
45401    unsafe { transmute(a) }
45402}
45403#[doc = "Vector reinterpret cast operation"]
45404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s16)"]
45405#[inline(always)]
45406#[cfg(target_endian = "big")]
45407#[target_feature(enable = "neon")]
45408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45410#[cfg_attr(
45411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45412    assert_instr(nop)
45413)]
45414#[cfg_attr(
45415    not(target_arch = "arm"),
45416    stable(feature = "neon_intrinsics", since = "1.59.0")
45417)]
45418#[cfg_attr(
45419    target_arch = "arm",
45420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45421)]
45422pub fn vreinterpretq_u64_s16(a: int16x8_t) -> uint64x2_t {
45423    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45424    unsafe {
45425        let ret_val: uint64x2_t = transmute(a);
45426        simd_shuffle!(ret_val, ret_val, [1, 0])
45427    }
45428}
45429#[doc = "Vector reinterpret cast operation"]
45430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s16)"]
45431#[inline(always)]
45432#[cfg(target_endian = "little")]
45433#[target_feature(enable = "neon")]
45434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45435#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45436#[cfg_attr(
45437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45438    assert_instr(nop)
45439)]
45440#[cfg_attr(
45441    not(target_arch = "arm"),
45442    stable(feature = "neon_intrinsics", since = "1.59.0")
45443)]
45444#[cfg_attr(
45445    target_arch = "arm",
45446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45447)]
45448pub fn vreinterpretq_p8_s16(a: int16x8_t) -> poly8x16_t {
45449    unsafe { transmute(a) }
45450}
45451#[doc = "Vector reinterpret cast operation"]
45452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s16)"]
45453#[inline(always)]
45454#[cfg(target_endian = "big")]
45455#[target_feature(enable = "neon")]
45456#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45457#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45458#[cfg_attr(
45459    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45460    assert_instr(nop)
45461)]
45462#[cfg_attr(
45463    not(target_arch = "arm"),
45464    stable(feature = "neon_intrinsics", since = "1.59.0")
45465)]
45466#[cfg_attr(
45467    target_arch = "arm",
45468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45469)]
45470pub fn vreinterpretq_p8_s16(a: int16x8_t) -> poly8x16_t {
45471    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45472    unsafe {
45473        let ret_val: poly8x16_t = transmute(a);
45474        simd_shuffle!(
45475            ret_val,
45476            ret_val,
45477            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
45478        )
45479    }
45480}
45481#[doc = "Vector reinterpret cast operation"]
45482#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s16)"]
45483#[inline(always)]
45484#[cfg(target_endian = "little")]
45485#[target_feature(enable = "neon")]
45486#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45487#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45488#[cfg_attr(
45489    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45490    assert_instr(nop)
45491)]
45492#[cfg_attr(
45493    not(target_arch = "arm"),
45494    stable(feature = "neon_intrinsics", since = "1.59.0")
45495)]
45496#[cfg_attr(
45497    target_arch = "arm",
45498    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45499)]
45500pub fn vreinterpretq_p16_s16(a: int16x8_t) -> poly16x8_t {
45501    unsafe { transmute(a) }
45502}
45503#[doc = "Vector reinterpret cast operation"]
45504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s16)"]
45505#[inline(always)]
45506#[cfg(target_endian = "big")]
45507#[target_feature(enable = "neon")]
45508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45509#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45510#[cfg_attr(
45511    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45512    assert_instr(nop)
45513)]
45514#[cfg_attr(
45515    not(target_arch = "arm"),
45516    stable(feature = "neon_intrinsics", since = "1.59.0")
45517)]
45518#[cfg_attr(
45519    target_arch = "arm",
45520    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45521)]
45522pub fn vreinterpretq_p16_s16(a: int16x8_t) -> poly16x8_t {
45523    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45524    unsafe {
45525        let ret_val: poly16x8_t = transmute(a);
45526        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45527    }
45528}
45529#[doc = "Vector reinterpret cast operation"]
45530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s32)"]
45531#[inline(always)]
45532#[cfg(target_endian = "little")]
45533#[target_feature(enable = "neon")]
45534#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45535#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45536#[cfg_attr(
45537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45538    assert_instr(nop)
45539)]
45540#[cfg_attr(
45541    not(target_arch = "arm"),
45542    stable(feature = "neon_intrinsics", since = "1.59.0")
45543)]
45544#[cfg_attr(
45545    target_arch = "arm",
45546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45547)]
45548pub fn vreinterpret_f32_s32(a: int32x2_t) -> float32x2_t {
45549    unsafe { transmute(a) }
45550}
45551#[doc = "Vector reinterpret cast operation"]
45552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s32)"]
45553#[inline(always)]
45554#[cfg(target_endian = "big")]
45555#[target_feature(enable = "neon")]
45556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45557#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45558#[cfg_attr(
45559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45560    assert_instr(nop)
45561)]
45562#[cfg_attr(
45563    not(target_arch = "arm"),
45564    stable(feature = "neon_intrinsics", since = "1.59.0")
45565)]
45566#[cfg_attr(
45567    target_arch = "arm",
45568    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45569)]
45570pub fn vreinterpret_f32_s32(a: int32x2_t) -> float32x2_t {
45571    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45572    unsafe {
45573        let ret_val: float32x2_t = transmute(a);
45574        simd_shuffle!(ret_val, ret_val, [1, 0])
45575    }
45576}
45577#[doc = "Vector reinterpret cast operation"]
45578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s32)"]
45579#[inline(always)]
45580#[cfg(target_endian = "little")]
45581#[target_feature(enable = "neon")]
45582#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45583#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45584#[cfg_attr(
45585    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45586    assert_instr(nop)
45587)]
45588#[cfg_attr(
45589    not(target_arch = "arm"),
45590    stable(feature = "neon_intrinsics", since = "1.59.0")
45591)]
45592#[cfg_attr(
45593    target_arch = "arm",
45594    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45595)]
45596pub fn vreinterpret_s8_s32(a: int32x2_t) -> int8x8_t {
45597    unsafe { transmute(a) }
45598}
45599#[doc = "Vector reinterpret cast operation"]
45600#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s32)"]
45601#[inline(always)]
45602#[cfg(target_endian = "big")]
45603#[target_feature(enable = "neon")]
45604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45605#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45606#[cfg_attr(
45607    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45608    assert_instr(nop)
45609)]
45610#[cfg_attr(
45611    not(target_arch = "arm"),
45612    stable(feature = "neon_intrinsics", since = "1.59.0")
45613)]
45614#[cfg_attr(
45615    target_arch = "arm",
45616    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45617)]
45618pub fn vreinterpret_s8_s32(a: int32x2_t) -> int8x8_t {
45619    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45620    unsafe {
45621        let ret_val: int8x8_t = transmute(a);
45622        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45623    }
45624}
45625#[doc = "Vector reinterpret cast operation"]
45626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s32)"]
45627#[inline(always)]
45628#[cfg(target_endian = "little")]
45629#[target_feature(enable = "neon")]
45630#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45631#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45632#[cfg_attr(
45633    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45634    assert_instr(nop)
45635)]
45636#[cfg_attr(
45637    not(target_arch = "arm"),
45638    stable(feature = "neon_intrinsics", since = "1.59.0")
45639)]
45640#[cfg_attr(
45641    target_arch = "arm",
45642    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45643)]
45644pub fn vreinterpret_s16_s32(a: int32x2_t) -> int16x4_t {
45645    unsafe { transmute(a) }
45646}
45647#[doc = "Vector reinterpret cast operation"]
45648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s32)"]
45649#[inline(always)]
45650#[cfg(target_endian = "big")]
45651#[target_feature(enable = "neon")]
45652#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45654#[cfg_attr(
45655    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45656    assert_instr(nop)
45657)]
45658#[cfg_attr(
45659    not(target_arch = "arm"),
45660    stable(feature = "neon_intrinsics", since = "1.59.0")
45661)]
45662#[cfg_attr(
45663    target_arch = "arm",
45664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45665)]
45666pub fn vreinterpret_s16_s32(a: int32x2_t) -> int16x4_t {
45667    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45668    unsafe {
45669        let ret_val: int16x4_t = transmute(a);
45670        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45671    }
45672}
45673#[doc = "Vector reinterpret cast operation"]
45674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s32)"]
45675#[inline(always)]
45676#[cfg(target_endian = "little")]
45677#[target_feature(enable = "neon")]
45678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45680#[cfg_attr(
45681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45682    assert_instr(nop)
45683)]
45684#[cfg_attr(
45685    not(target_arch = "arm"),
45686    stable(feature = "neon_intrinsics", since = "1.59.0")
45687)]
45688#[cfg_attr(
45689    target_arch = "arm",
45690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45691)]
45692pub fn vreinterpret_s64_s32(a: int32x2_t) -> int64x1_t {
45693    unsafe { transmute(a) }
45694}
45695#[doc = "Vector reinterpret cast operation"]
45696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s32)"]
45697#[inline(always)]
45698#[cfg(target_endian = "big")]
45699#[target_feature(enable = "neon")]
45700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45701#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45702#[cfg_attr(
45703    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45704    assert_instr(nop)
45705)]
45706#[cfg_attr(
45707    not(target_arch = "arm"),
45708    stable(feature = "neon_intrinsics", since = "1.59.0")
45709)]
45710#[cfg_attr(
45711    target_arch = "arm",
45712    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45713)]
45714pub fn vreinterpret_s64_s32(a: int32x2_t) -> int64x1_t {
45715    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45716    unsafe { transmute(a) }
45717}
45718#[doc = "Vector reinterpret cast operation"]
45719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s32)"]
45720#[inline(always)]
45721#[cfg(target_endian = "little")]
45722#[target_feature(enable = "neon")]
45723#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45724#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45725#[cfg_attr(
45726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45727    assert_instr(nop)
45728)]
45729#[cfg_attr(
45730    not(target_arch = "arm"),
45731    stable(feature = "neon_intrinsics", since = "1.59.0")
45732)]
45733#[cfg_attr(
45734    target_arch = "arm",
45735    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45736)]
45737pub fn vreinterpret_u8_s32(a: int32x2_t) -> uint8x8_t {
45738    unsafe { transmute(a) }
45739}
45740#[doc = "Vector reinterpret cast operation"]
45741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s32)"]
45742#[inline(always)]
45743#[cfg(target_endian = "big")]
45744#[target_feature(enable = "neon")]
45745#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45746#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45747#[cfg_attr(
45748    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45749    assert_instr(nop)
45750)]
45751#[cfg_attr(
45752    not(target_arch = "arm"),
45753    stable(feature = "neon_intrinsics", since = "1.59.0")
45754)]
45755#[cfg_attr(
45756    target_arch = "arm",
45757    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45758)]
45759pub fn vreinterpret_u8_s32(a: int32x2_t) -> uint8x8_t {
45760    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45761    unsafe {
45762        let ret_val: uint8x8_t = transmute(a);
45763        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45764    }
45765}
45766#[doc = "Vector reinterpret cast operation"]
45767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s32)"]
45768#[inline(always)]
45769#[cfg(target_endian = "little")]
45770#[target_feature(enable = "neon")]
45771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45772#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45773#[cfg_attr(
45774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45775    assert_instr(nop)
45776)]
45777#[cfg_attr(
45778    not(target_arch = "arm"),
45779    stable(feature = "neon_intrinsics", since = "1.59.0")
45780)]
45781#[cfg_attr(
45782    target_arch = "arm",
45783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45784)]
45785pub fn vreinterpret_u16_s32(a: int32x2_t) -> uint16x4_t {
45786    unsafe { transmute(a) }
45787}
45788#[doc = "Vector reinterpret cast operation"]
45789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s32)"]
45790#[inline(always)]
45791#[cfg(target_endian = "big")]
45792#[target_feature(enable = "neon")]
45793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45794#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45795#[cfg_attr(
45796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45797    assert_instr(nop)
45798)]
45799#[cfg_attr(
45800    not(target_arch = "arm"),
45801    stable(feature = "neon_intrinsics", since = "1.59.0")
45802)]
45803#[cfg_attr(
45804    target_arch = "arm",
45805    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45806)]
45807pub fn vreinterpret_u16_s32(a: int32x2_t) -> uint16x4_t {
45808    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45809    unsafe {
45810        let ret_val: uint16x4_t = transmute(a);
45811        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45812    }
45813}
45814#[doc = "Vector reinterpret cast operation"]
45815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s32)"]
45816#[inline(always)]
45817#[cfg(target_endian = "little")]
45818#[target_feature(enable = "neon")]
45819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45820#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45821#[cfg_attr(
45822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45823    assert_instr(nop)
45824)]
45825#[cfg_attr(
45826    not(target_arch = "arm"),
45827    stable(feature = "neon_intrinsics", since = "1.59.0")
45828)]
45829#[cfg_attr(
45830    target_arch = "arm",
45831    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45832)]
45833pub fn vreinterpret_u32_s32(a: int32x2_t) -> uint32x2_t {
45834    unsafe { transmute(a) }
45835}
45836#[doc = "Vector reinterpret cast operation"]
45837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s32)"]
45838#[inline(always)]
45839#[cfg(target_endian = "big")]
45840#[target_feature(enable = "neon")]
45841#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45842#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45843#[cfg_attr(
45844    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45845    assert_instr(nop)
45846)]
45847#[cfg_attr(
45848    not(target_arch = "arm"),
45849    stable(feature = "neon_intrinsics", since = "1.59.0")
45850)]
45851#[cfg_attr(
45852    target_arch = "arm",
45853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45854)]
45855pub fn vreinterpret_u32_s32(a: int32x2_t) -> uint32x2_t {
45856    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45857    unsafe {
45858        let ret_val: uint32x2_t = transmute(a);
45859        simd_shuffle!(ret_val, ret_val, [1, 0])
45860    }
45861}
45862#[doc = "Vector reinterpret cast operation"]
45863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s32)"]
45864#[inline(always)]
45865#[cfg(target_endian = "little")]
45866#[target_feature(enable = "neon")]
45867#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45868#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45869#[cfg_attr(
45870    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45871    assert_instr(nop)
45872)]
45873#[cfg_attr(
45874    not(target_arch = "arm"),
45875    stable(feature = "neon_intrinsics", since = "1.59.0")
45876)]
45877#[cfg_attr(
45878    target_arch = "arm",
45879    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45880)]
45881pub fn vreinterpret_u64_s32(a: int32x2_t) -> uint64x1_t {
45882    unsafe { transmute(a) }
45883}
45884#[doc = "Vector reinterpret cast operation"]
45885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s32)"]
45886#[inline(always)]
45887#[cfg(target_endian = "big")]
45888#[target_feature(enable = "neon")]
45889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45891#[cfg_attr(
45892    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45893    assert_instr(nop)
45894)]
45895#[cfg_attr(
45896    not(target_arch = "arm"),
45897    stable(feature = "neon_intrinsics", since = "1.59.0")
45898)]
45899#[cfg_attr(
45900    target_arch = "arm",
45901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45902)]
45903pub fn vreinterpret_u64_s32(a: int32x2_t) -> uint64x1_t {
45904    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45905    unsafe { transmute(a) }
45906}
45907#[doc = "Vector reinterpret cast operation"]
45908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s32)"]
45909#[inline(always)]
45910#[cfg(target_endian = "little")]
45911#[target_feature(enable = "neon")]
45912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45913#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45914#[cfg_attr(
45915    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45916    assert_instr(nop)
45917)]
45918#[cfg_attr(
45919    not(target_arch = "arm"),
45920    stable(feature = "neon_intrinsics", since = "1.59.0")
45921)]
45922#[cfg_attr(
45923    target_arch = "arm",
45924    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45925)]
45926pub fn vreinterpret_p8_s32(a: int32x2_t) -> poly8x8_t {
45927    unsafe { transmute(a) }
45928}
45929#[doc = "Vector reinterpret cast operation"]
45930#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s32)"]
45931#[inline(always)]
45932#[cfg(target_endian = "big")]
45933#[target_feature(enable = "neon")]
45934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45935#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45936#[cfg_attr(
45937    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45938    assert_instr(nop)
45939)]
45940#[cfg_attr(
45941    not(target_arch = "arm"),
45942    stable(feature = "neon_intrinsics", since = "1.59.0")
45943)]
45944#[cfg_attr(
45945    target_arch = "arm",
45946    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45947)]
45948pub fn vreinterpret_p8_s32(a: int32x2_t) -> poly8x8_t {
45949    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45950    unsafe {
45951        let ret_val: poly8x8_t = transmute(a);
45952        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45953    }
45954}
45955#[doc = "Vector reinterpret cast operation"]
45956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s32)"]
45957#[inline(always)]
45958#[cfg(target_endian = "little")]
45959#[target_feature(enable = "neon")]
45960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45962#[cfg_attr(
45963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45964    assert_instr(nop)
45965)]
45966#[cfg_attr(
45967    not(target_arch = "arm"),
45968    stable(feature = "neon_intrinsics", since = "1.59.0")
45969)]
45970#[cfg_attr(
45971    target_arch = "arm",
45972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45973)]
45974pub fn vreinterpret_p16_s32(a: int32x2_t) -> poly16x4_t {
45975    unsafe { transmute(a) }
45976}
45977#[doc = "Vector reinterpret cast operation"]
45978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s32)"]
45979#[inline(always)]
45980#[cfg(target_endian = "big")]
45981#[target_feature(enable = "neon")]
45982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45983#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45984#[cfg_attr(
45985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45986    assert_instr(nop)
45987)]
45988#[cfg_attr(
45989    not(target_arch = "arm"),
45990    stable(feature = "neon_intrinsics", since = "1.59.0")
45991)]
45992#[cfg_attr(
45993    target_arch = "arm",
45994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45995)]
45996pub fn vreinterpret_p16_s32(a: int32x2_t) -> poly16x4_t {
45997    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45998    unsafe {
45999        let ret_val: poly16x4_t = transmute(a);
46000        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46001    }
46002}
46003#[doc = "Vector reinterpret cast operation"]
46004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s32)"]
46005#[inline(always)]
46006#[cfg(target_endian = "little")]
46007#[target_feature(enable = "neon")]
46008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46009#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46010#[cfg_attr(
46011    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46012    assert_instr(nop)
46013)]
46014#[cfg_attr(
46015    not(target_arch = "arm"),
46016    stable(feature = "neon_intrinsics", since = "1.59.0")
46017)]
46018#[cfg_attr(
46019    target_arch = "arm",
46020    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46021)]
46022pub fn vreinterpretq_f32_s32(a: int32x4_t) -> float32x4_t {
46023    unsafe { transmute(a) }
46024}
46025#[doc = "Vector reinterpret cast operation"]
46026#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s32)"]
46027#[inline(always)]
46028#[cfg(target_endian = "big")]
46029#[target_feature(enable = "neon")]
46030#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46031#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46032#[cfg_attr(
46033    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46034    assert_instr(nop)
46035)]
46036#[cfg_attr(
46037    not(target_arch = "arm"),
46038    stable(feature = "neon_intrinsics", since = "1.59.0")
46039)]
46040#[cfg_attr(
46041    target_arch = "arm",
46042    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46043)]
46044pub fn vreinterpretq_f32_s32(a: int32x4_t) -> float32x4_t {
46045    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46046    unsafe {
46047        let ret_val: float32x4_t = transmute(a);
46048        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46049    }
46050}
46051#[doc = "Vector reinterpret cast operation"]
46052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s32)"]
46053#[inline(always)]
46054#[cfg(target_endian = "little")]
46055#[target_feature(enable = "neon")]
46056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46058#[cfg_attr(
46059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46060    assert_instr(nop)
46061)]
46062#[cfg_attr(
46063    not(target_arch = "arm"),
46064    stable(feature = "neon_intrinsics", since = "1.59.0")
46065)]
46066#[cfg_attr(
46067    target_arch = "arm",
46068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46069)]
46070pub fn vreinterpretq_s8_s32(a: int32x4_t) -> int8x16_t {
46071    unsafe { transmute(a) }
46072}
46073#[doc = "Vector reinterpret cast operation"]
46074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s32)"]
46075#[inline(always)]
46076#[cfg(target_endian = "big")]
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_s8_s32(a: int32x4_t) -> int8x16_t {
46093    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46094    unsafe {
46095        let ret_val: int8x16_t = transmute(a);
46096        simd_shuffle!(
46097            ret_val,
46098            ret_val,
46099            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
46100        )
46101    }
46102}
46103#[doc = "Vector reinterpret cast operation"]
46104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s32)"]
46105#[inline(always)]
46106#[cfg(target_endian = "little")]
46107#[target_feature(enable = "neon")]
46108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46110#[cfg_attr(
46111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46112    assert_instr(nop)
46113)]
46114#[cfg_attr(
46115    not(target_arch = "arm"),
46116    stable(feature = "neon_intrinsics", since = "1.59.0")
46117)]
46118#[cfg_attr(
46119    target_arch = "arm",
46120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46121)]
46122pub fn vreinterpretq_s16_s32(a: int32x4_t) -> int16x8_t {
46123    unsafe { transmute(a) }
46124}
46125#[doc = "Vector reinterpret cast operation"]
46126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s32)"]
46127#[inline(always)]
46128#[cfg(target_endian = "big")]
46129#[target_feature(enable = "neon")]
46130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46132#[cfg_attr(
46133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46134    assert_instr(nop)
46135)]
46136#[cfg_attr(
46137    not(target_arch = "arm"),
46138    stable(feature = "neon_intrinsics", since = "1.59.0")
46139)]
46140#[cfg_attr(
46141    target_arch = "arm",
46142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46143)]
46144pub fn vreinterpretq_s16_s32(a: int32x4_t) -> int16x8_t {
46145    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46146    unsafe {
46147        let ret_val: int16x8_t = transmute(a);
46148        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46149    }
46150}
46151#[doc = "Vector reinterpret cast operation"]
46152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s32)"]
46153#[inline(always)]
46154#[cfg(target_endian = "little")]
46155#[target_feature(enable = "neon")]
46156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46157#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46158#[cfg_attr(
46159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46160    assert_instr(nop)
46161)]
46162#[cfg_attr(
46163    not(target_arch = "arm"),
46164    stable(feature = "neon_intrinsics", since = "1.59.0")
46165)]
46166#[cfg_attr(
46167    target_arch = "arm",
46168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46169)]
46170pub fn vreinterpretq_s64_s32(a: int32x4_t) -> int64x2_t {
46171    unsafe { transmute(a) }
46172}
46173#[doc = "Vector reinterpret cast operation"]
46174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s32)"]
46175#[inline(always)]
46176#[cfg(target_endian = "big")]
46177#[target_feature(enable = "neon")]
46178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46180#[cfg_attr(
46181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46182    assert_instr(nop)
46183)]
46184#[cfg_attr(
46185    not(target_arch = "arm"),
46186    stable(feature = "neon_intrinsics", since = "1.59.0")
46187)]
46188#[cfg_attr(
46189    target_arch = "arm",
46190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46191)]
46192pub fn vreinterpretq_s64_s32(a: int32x4_t) -> int64x2_t {
46193    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46194    unsafe {
46195        let ret_val: int64x2_t = transmute(a);
46196        simd_shuffle!(ret_val, ret_val, [1, 0])
46197    }
46198}
46199#[doc = "Vector reinterpret cast operation"]
46200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s32)"]
46201#[inline(always)]
46202#[cfg(target_endian = "little")]
46203#[target_feature(enable = "neon")]
46204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46205#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46206#[cfg_attr(
46207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46208    assert_instr(nop)
46209)]
46210#[cfg_attr(
46211    not(target_arch = "arm"),
46212    stable(feature = "neon_intrinsics", since = "1.59.0")
46213)]
46214#[cfg_attr(
46215    target_arch = "arm",
46216    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46217)]
46218pub fn vreinterpretq_u8_s32(a: int32x4_t) -> uint8x16_t {
46219    unsafe { transmute(a) }
46220}
46221#[doc = "Vector reinterpret cast operation"]
46222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s32)"]
46223#[inline(always)]
46224#[cfg(target_endian = "big")]
46225#[target_feature(enable = "neon")]
46226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46228#[cfg_attr(
46229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46230    assert_instr(nop)
46231)]
46232#[cfg_attr(
46233    not(target_arch = "arm"),
46234    stable(feature = "neon_intrinsics", since = "1.59.0")
46235)]
46236#[cfg_attr(
46237    target_arch = "arm",
46238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46239)]
46240pub fn vreinterpretq_u8_s32(a: int32x4_t) -> uint8x16_t {
46241    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46242    unsafe {
46243        let ret_val: uint8x16_t = transmute(a);
46244        simd_shuffle!(
46245            ret_val,
46246            ret_val,
46247            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
46248        )
46249    }
46250}
46251#[doc = "Vector reinterpret cast operation"]
46252#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s32)"]
46253#[inline(always)]
46254#[cfg(target_endian = "little")]
46255#[target_feature(enable = "neon")]
46256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46257#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46258#[cfg_attr(
46259    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46260    assert_instr(nop)
46261)]
46262#[cfg_attr(
46263    not(target_arch = "arm"),
46264    stable(feature = "neon_intrinsics", since = "1.59.0")
46265)]
46266#[cfg_attr(
46267    target_arch = "arm",
46268    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46269)]
46270pub fn vreinterpretq_u16_s32(a: int32x4_t) -> uint16x8_t {
46271    unsafe { transmute(a) }
46272}
46273#[doc = "Vector reinterpret cast operation"]
46274#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s32)"]
46275#[inline(always)]
46276#[cfg(target_endian = "big")]
46277#[target_feature(enable = "neon")]
46278#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46279#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46280#[cfg_attr(
46281    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46282    assert_instr(nop)
46283)]
46284#[cfg_attr(
46285    not(target_arch = "arm"),
46286    stable(feature = "neon_intrinsics", since = "1.59.0")
46287)]
46288#[cfg_attr(
46289    target_arch = "arm",
46290    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46291)]
46292pub fn vreinterpretq_u16_s32(a: int32x4_t) -> uint16x8_t {
46293    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46294    unsafe {
46295        let ret_val: uint16x8_t = transmute(a);
46296        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46297    }
46298}
46299#[doc = "Vector reinterpret cast operation"]
46300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s32)"]
46301#[inline(always)]
46302#[cfg(target_endian = "little")]
46303#[target_feature(enable = "neon")]
46304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46305#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46306#[cfg_attr(
46307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46308    assert_instr(nop)
46309)]
46310#[cfg_attr(
46311    not(target_arch = "arm"),
46312    stable(feature = "neon_intrinsics", since = "1.59.0")
46313)]
46314#[cfg_attr(
46315    target_arch = "arm",
46316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46317)]
46318pub fn vreinterpretq_u32_s32(a: int32x4_t) -> uint32x4_t {
46319    unsafe { transmute(a) }
46320}
46321#[doc = "Vector reinterpret cast operation"]
46322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s32)"]
46323#[inline(always)]
46324#[cfg(target_endian = "big")]
46325#[target_feature(enable = "neon")]
46326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46327#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46328#[cfg_attr(
46329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46330    assert_instr(nop)
46331)]
46332#[cfg_attr(
46333    not(target_arch = "arm"),
46334    stable(feature = "neon_intrinsics", since = "1.59.0")
46335)]
46336#[cfg_attr(
46337    target_arch = "arm",
46338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46339)]
46340pub fn vreinterpretq_u32_s32(a: int32x4_t) -> uint32x4_t {
46341    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46342    unsafe {
46343        let ret_val: uint32x4_t = transmute(a);
46344        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46345    }
46346}
46347#[doc = "Vector reinterpret cast operation"]
46348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s32)"]
46349#[inline(always)]
46350#[cfg(target_endian = "little")]
46351#[target_feature(enable = "neon")]
46352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46354#[cfg_attr(
46355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46356    assert_instr(nop)
46357)]
46358#[cfg_attr(
46359    not(target_arch = "arm"),
46360    stable(feature = "neon_intrinsics", since = "1.59.0")
46361)]
46362#[cfg_attr(
46363    target_arch = "arm",
46364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46365)]
46366pub fn vreinterpretq_u64_s32(a: int32x4_t) -> uint64x2_t {
46367    unsafe { transmute(a) }
46368}
46369#[doc = "Vector reinterpret cast operation"]
46370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s32)"]
46371#[inline(always)]
46372#[cfg(target_endian = "big")]
46373#[target_feature(enable = "neon")]
46374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46376#[cfg_attr(
46377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46378    assert_instr(nop)
46379)]
46380#[cfg_attr(
46381    not(target_arch = "arm"),
46382    stable(feature = "neon_intrinsics", since = "1.59.0")
46383)]
46384#[cfg_attr(
46385    target_arch = "arm",
46386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46387)]
46388pub fn vreinterpretq_u64_s32(a: int32x4_t) -> uint64x2_t {
46389    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46390    unsafe {
46391        let ret_val: uint64x2_t = transmute(a);
46392        simd_shuffle!(ret_val, ret_val, [1, 0])
46393    }
46394}
46395#[doc = "Vector reinterpret cast operation"]
46396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s32)"]
46397#[inline(always)]
46398#[cfg(target_endian = "little")]
46399#[target_feature(enable = "neon")]
46400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46402#[cfg_attr(
46403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46404    assert_instr(nop)
46405)]
46406#[cfg_attr(
46407    not(target_arch = "arm"),
46408    stable(feature = "neon_intrinsics", since = "1.59.0")
46409)]
46410#[cfg_attr(
46411    target_arch = "arm",
46412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46413)]
46414pub fn vreinterpretq_p8_s32(a: int32x4_t) -> poly8x16_t {
46415    unsafe { transmute(a) }
46416}
46417#[doc = "Vector reinterpret cast operation"]
46418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s32)"]
46419#[inline(always)]
46420#[cfg(target_endian = "big")]
46421#[target_feature(enable = "neon")]
46422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46424#[cfg_attr(
46425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46426    assert_instr(nop)
46427)]
46428#[cfg_attr(
46429    not(target_arch = "arm"),
46430    stable(feature = "neon_intrinsics", since = "1.59.0")
46431)]
46432#[cfg_attr(
46433    target_arch = "arm",
46434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46435)]
46436pub fn vreinterpretq_p8_s32(a: int32x4_t) -> poly8x16_t {
46437    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46438    unsafe {
46439        let ret_val: poly8x16_t = transmute(a);
46440        simd_shuffle!(
46441            ret_val,
46442            ret_val,
46443            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
46444        )
46445    }
46446}
46447#[doc = "Vector reinterpret cast operation"]
46448#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s32)"]
46449#[inline(always)]
46450#[cfg(target_endian = "little")]
46451#[target_feature(enable = "neon")]
46452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46454#[cfg_attr(
46455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46456    assert_instr(nop)
46457)]
46458#[cfg_attr(
46459    not(target_arch = "arm"),
46460    stable(feature = "neon_intrinsics", since = "1.59.0")
46461)]
46462#[cfg_attr(
46463    target_arch = "arm",
46464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46465)]
46466pub fn vreinterpretq_p16_s32(a: int32x4_t) -> poly16x8_t {
46467    unsafe { transmute(a) }
46468}
46469#[doc = "Vector reinterpret cast operation"]
46470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s32)"]
46471#[inline(always)]
46472#[cfg(target_endian = "big")]
46473#[target_feature(enable = "neon")]
46474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46475#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46476#[cfg_attr(
46477    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46478    assert_instr(nop)
46479)]
46480#[cfg_attr(
46481    not(target_arch = "arm"),
46482    stable(feature = "neon_intrinsics", since = "1.59.0")
46483)]
46484#[cfg_attr(
46485    target_arch = "arm",
46486    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46487)]
46488pub fn vreinterpretq_p16_s32(a: int32x4_t) -> poly16x8_t {
46489    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46490    unsafe {
46491        let ret_val: poly16x8_t = transmute(a);
46492        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46493    }
46494}
46495#[doc = "Vector reinterpret cast operation"]
46496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s64)"]
46497#[inline(always)]
46498#[cfg(target_endian = "little")]
46499#[target_feature(enable = "neon")]
46500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46502#[cfg_attr(
46503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46504    assert_instr(nop)
46505)]
46506#[cfg_attr(
46507    not(target_arch = "arm"),
46508    stable(feature = "neon_intrinsics", since = "1.59.0")
46509)]
46510#[cfg_attr(
46511    target_arch = "arm",
46512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46513)]
46514pub fn vreinterpret_f32_s64(a: int64x1_t) -> float32x2_t {
46515    unsafe { transmute(a) }
46516}
46517#[doc = "Vector reinterpret cast operation"]
46518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s64)"]
46519#[inline(always)]
46520#[cfg(target_endian = "big")]
46521#[target_feature(enable = "neon")]
46522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46523#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46524#[cfg_attr(
46525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46526    assert_instr(nop)
46527)]
46528#[cfg_attr(
46529    not(target_arch = "arm"),
46530    stable(feature = "neon_intrinsics", since = "1.59.0")
46531)]
46532#[cfg_attr(
46533    target_arch = "arm",
46534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46535)]
46536pub fn vreinterpret_f32_s64(a: int64x1_t) -> float32x2_t {
46537    unsafe {
46538        let ret_val: float32x2_t = transmute(a);
46539        simd_shuffle!(ret_val, ret_val, [1, 0])
46540    }
46541}
46542#[doc = "Vector reinterpret cast operation"]
46543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s64)"]
46544#[inline(always)]
46545#[cfg(target_endian = "little")]
46546#[target_feature(enable = "neon")]
46547#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46548#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46549#[cfg_attr(
46550    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46551    assert_instr(nop)
46552)]
46553#[cfg_attr(
46554    not(target_arch = "arm"),
46555    stable(feature = "neon_intrinsics", since = "1.59.0")
46556)]
46557#[cfg_attr(
46558    target_arch = "arm",
46559    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46560)]
46561pub fn vreinterpret_s8_s64(a: int64x1_t) -> int8x8_t {
46562    unsafe { transmute(a) }
46563}
46564#[doc = "Vector reinterpret cast operation"]
46565#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s64)"]
46566#[inline(always)]
46567#[cfg(target_endian = "big")]
46568#[target_feature(enable = "neon")]
46569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46570#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46571#[cfg_attr(
46572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46573    assert_instr(nop)
46574)]
46575#[cfg_attr(
46576    not(target_arch = "arm"),
46577    stable(feature = "neon_intrinsics", since = "1.59.0")
46578)]
46579#[cfg_attr(
46580    target_arch = "arm",
46581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46582)]
46583pub fn vreinterpret_s8_s64(a: int64x1_t) -> int8x8_t {
46584    unsafe {
46585        let ret_val: int8x8_t = transmute(a);
46586        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46587    }
46588}
46589#[doc = "Vector reinterpret cast operation"]
46590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s64)"]
46591#[inline(always)]
46592#[cfg(target_endian = "little")]
46593#[target_feature(enable = "neon")]
46594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46596#[cfg_attr(
46597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46598    assert_instr(nop)
46599)]
46600#[cfg_attr(
46601    not(target_arch = "arm"),
46602    stable(feature = "neon_intrinsics", since = "1.59.0")
46603)]
46604#[cfg_attr(
46605    target_arch = "arm",
46606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46607)]
46608pub fn vreinterpret_s16_s64(a: int64x1_t) -> int16x4_t {
46609    unsafe { transmute(a) }
46610}
46611#[doc = "Vector reinterpret cast operation"]
46612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s64)"]
46613#[inline(always)]
46614#[cfg(target_endian = "big")]
46615#[target_feature(enable = "neon")]
46616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46617#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46618#[cfg_attr(
46619    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46620    assert_instr(nop)
46621)]
46622#[cfg_attr(
46623    not(target_arch = "arm"),
46624    stable(feature = "neon_intrinsics", since = "1.59.0")
46625)]
46626#[cfg_attr(
46627    target_arch = "arm",
46628    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46629)]
46630pub fn vreinterpret_s16_s64(a: int64x1_t) -> int16x4_t {
46631    unsafe {
46632        let ret_val: int16x4_t = transmute(a);
46633        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46634    }
46635}
46636#[doc = "Vector reinterpret cast operation"]
46637#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s64)"]
46638#[inline(always)]
46639#[cfg(target_endian = "little")]
46640#[target_feature(enable = "neon")]
46641#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46642#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46643#[cfg_attr(
46644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46645    assert_instr(nop)
46646)]
46647#[cfg_attr(
46648    not(target_arch = "arm"),
46649    stable(feature = "neon_intrinsics", since = "1.59.0")
46650)]
46651#[cfg_attr(
46652    target_arch = "arm",
46653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46654)]
46655pub fn vreinterpret_s32_s64(a: int64x1_t) -> int32x2_t {
46656    unsafe { transmute(a) }
46657}
46658#[doc = "Vector reinterpret cast operation"]
46659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s64)"]
46660#[inline(always)]
46661#[cfg(target_endian = "big")]
46662#[target_feature(enable = "neon")]
46663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46664#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46665#[cfg_attr(
46666    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46667    assert_instr(nop)
46668)]
46669#[cfg_attr(
46670    not(target_arch = "arm"),
46671    stable(feature = "neon_intrinsics", since = "1.59.0")
46672)]
46673#[cfg_attr(
46674    target_arch = "arm",
46675    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46676)]
46677pub fn vreinterpret_s32_s64(a: int64x1_t) -> int32x2_t {
46678    unsafe {
46679        let ret_val: int32x2_t = transmute(a);
46680        simd_shuffle!(ret_val, ret_val, [1, 0])
46681    }
46682}
46683#[doc = "Vector reinterpret cast operation"]
46684#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s64)"]
46685#[inline(always)]
46686#[cfg(target_endian = "little")]
46687#[target_feature(enable = "neon")]
46688#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46689#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46690#[cfg_attr(
46691    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46692    assert_instr(nop)
46693)]
46694#[cfg_attr(
46695    not(target_arch = "arm"),
46696    stable(feature = "neon_intrinsics", since = "1.59.0")
46697)]
46698#[cfg_attr(
46699    target_arch = "arm",
46700    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46701)]
46702pub fn vreinterpret_u8_s64(a: int64x1_t) -> uint8x8_t {
46703    unsafe { transmute(a) }
46704}
46705#[doc = "Vector reinterpret cast operation"]
46706#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s64)"]
46707#[inline(always)]
46708#[cfg(target_endian = "big")]
46709#[target_feature(enable = "neon")]
46710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46711#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46712#[cfg_attr(
46713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46714    assert_instr(nop)
46715)]
46716#[cfg_attr(
46717    not(target_arch = "arm"),
46718    stable(feature = "neon_intrinsics", since = "1.59.0")
46719)]
46720#[cfg_attr(
46721    target_arch = "arm",
46722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46723)]
46724pub fn vreinterpret_u8_s64(a: int64x1_t) -> uint8x8_t {
46725    unsafe {
46726        let ret_val: uint8x8_t = transmute(a);
46727        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46728    }
46729}
46730#[doc = "Vector reinterpret cast operation"]
46731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s64)"]
46732#[inline(always)]
46733#[cfg(target_endian = "little")]
46734#[target_feature(enable = "neon")]
46735#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46736#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46737#[cfg_attr(
46738    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46739    assert_instr(nop)
46740)]
46741#[cfg_attr(
46742    not(target_arch = "arm"),
46743    stable(feature = "neon_intrinsics", since = "1.59.0")
46744)]
46745#[cfg_attr(
46746    target_arch = "arm",
46747    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46748)]
46749pub fn vreinterpret_u16_s64(a: int64x1_t) -> uint16x4_t {
46750    unsafe { transmute(a) }
46751}
46752#[doc = "Vector reinterpret cast operation"]
46753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s64)"]
46754#[inline(always)]
46755#[cfg(target_endian = "big")]
46756#[target_feature(enable = "neon")]
46757#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46758#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46759#[cfg_attr(
46760    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46761    assert_instr(nop)
46762)]
46763#[cfg_attr(
46764    not(target_arch = "arm"),
46765    stable(feature = "neon_intrinsics", since = "1.59.0")
46766)]
46767#[cfg_attr(
46768    target_arch = "arm",
46769    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46770)]
46771pub fn vreinterpret_u16_s64(a: int64x1_t) -> uint16x4_t {
46772    unsafe {
46773        let ret_val: uint16x4_t = transmute(a);
46774        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46775    }
46776}
46777#[doc = "Vector reinterpret cast operation"]
46778#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s64)"]
46779#[inline(always)]
46780#[cfg(target_endian = "little")]
46781#[target_feature(enable = "neon")]
46782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46784#[cfg_attr(
46785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46786    assert_instr(nop)
46787)]
46788#[cfg_attr(
46789    not(target_arch = "arm"),
46790    stable(feature = "neon_intrinsics", since = "1.59.0")
46791)]
46792#[cfg_attr(
46793    target_arch = "arm",
46794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46795)]
46796pub fn vreinterpret_u32_s64(a: int64x1_t) -> uint32x2_t {
46797    unsafe { transmute(a) }
46798}
46799#[doc = "Vector reinterpret cast operation"]
46800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s64)"]
46801#[inline(always)]
46802#[cfg(target_endian = "big")]
46803#[target_feature(enable = "neon")]
46804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46805#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46806#[cfg_attr(
46807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46808    assert_instr(nop)
46809)]
46810#[cfg_attr(
46811    not(target_arch = "arm"),
46812    stable(feature = "neon_intrinsics", since = "1.59.0")
46813)]
46814#[cfg_attr(
46815    target_arch = "arm",
46816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46817)]
46818pub fn vreinterpret_u32_s64(a: int64x1_t) -> uint32x2_t {
46819    unsafe {
46820        let ret_val: uint32x2_t = transmute(a);
46821        simd_shuffle!(ret_val, ret_val, [1, 0])
46822    }
46823}
46824#[doc = "Vector reinterpret cast operation"]
46825#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s64)"]
46826#[inline(always)]
46827#[target_feature(enable = "neon")]
46828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46829#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46830#[cfg_attr(
46831    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46832    assert_instr(nop)
46833)]
46834#[cfg_attr(
46835    not(target_arch = "arm"),
46836    stable(feature = "neon_intrinsics", since = "1.59.0")
46837)]
46838#[cfg_attr(
46839    target_arch = "arm",
46840    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46841)]
46842pub fn vreinterpret_u64_s64(a: int64x1_t) -> uint64x1_t {
46843    unsafe { transmute(a) }
46844}
46845#[doc = "Vector reinterpret cast operation"]
46846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s64)"]
46847#[inline(always)]
46848#[cfg(target_endian = "little")]
46849#[target_feature(enable = "neon")]
46850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46852#[cfg_attr(
46853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46854    assert_instr(nop)
46855)]
46856#[cfg_attr(
46857    not(target_arch = "arm"),
46858    stable(feature = "neon_intrinsics", since = "1.59.0")
46859)]
46860#[cfg_attr(
46861    target_arch = "arm",
46862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46863)]
46864pub fn vreinterpret_p8_s64(a: int64x1_t) -> poly8x8_t {
46865    unsafe { transmute(a) }
46866}
46867#[doc = "Vector reinterpret cast operation"]
46868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s64)"]
46869#[inline(always)]
46870#[cfg(target_endian = "big")]
46871#[target_feature(enable = "neon")]
46872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46874#[cfg_attr(
46875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46876    assert_instr(nop)
46877)]
46878#[cfg_attr(
46879    not(target_arch = "arm"),
46880    stable(feature = "neon_intrinsics", since = "1.59.0")
46881)]
46882#[cfg_attr(
46883    target_arch = "arm",
46884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46885)]
46886pub fn vreinterpret_p8_s64(a: int64x1_t) -> poly8x8_t {
46887    unsafe {
46888        let ret_val: poly8x8_t = transmute(a);
46889        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46890    }
46891}
46892#[doc = "Vector reinterpret cast operation"]
46893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s64)"]
46894#[inline(always)]
46895#[cfg(target_endian = "little")]
46896#[target_feature(enable = "neon")]
46897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46898#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46899#[cfg_attr(
46900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46901    assert_instr(nop)
46902)]
46903#[cfg_attr(
46904    not(target_arch = "arm"),
46905    stable(feature = "neon_intrinsics", since = "1.59.0")
46906)]
46907#[cfg_attr(
46908    target_arch = "arm",
46909    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46910)]
46911pub fn vreinterpret_p16_s64(a: int64x1_t) -> poly16x4_t {
46912    unsafe { transmute(a) }
46913}
46914#[doc = "Vector reinterpret cast operation"]
46915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s64)"]
46916#[inline(always)]
46917#[cfg(target_endian = "big")]
46918#[target_feature(enable = "neon")]
46919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46921#[cfg_attr(
46922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46923    assert_instr(nop)
46924)]
46925#[cfg_attr(
46926    not(target_arch = "arm"),
46927    stable(feature = "neon_intrinsics", since = "1.59.0")
46928)]
46929#[cfg_attr(
46930    target_arch = "arm",
46931    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46932)]
46933pub fn vreinterpret_p16_s64(a: int64x1_t) -> poly16x4_t {
46934    unsafe {
46935        let ret_val: poly16x4_t = transmute(a);
46936        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46937    }
46938}
46939#[doc = "Vector reinterpret cast operation"]
46940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s64)"]
46941#[inline(always)]
46942#[cfg(target_endian = "little")]
46943#[target_feature(enable = "neon")]
46944#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46945#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46946#[cfg_attr(
46947    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46948    assert_instr(nop)
46949)]
46950#[cfg_attr(
46951    not(target_arch = "arm"),
46952    stable(feature = "neon_intrinsics", since = "1.59.0")
46953)]
46954#[cfg_attr(
46955    target_arch = "arm",
46956    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46957)]
46958pub fn vreinterpretq_f32_s64(a: int64x2_t) -> float32x4_t {
46959    unsafe { transmute(a) }
46960}
46961#[doc = "Vector reinterpret cast operation"]
46962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s64)"]
46963#[inline(always)]
46964#[cfg(target_endian = "big")]
46965#[target_feature(enable = "neon")]
46966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46968#[cfg_attr(
46969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46970    assert_instr(nop)
46971)]
46972#[cfg_attr(
46973    not(target_arch = "arm"),
46974    stable(feature = "neon_intrinsics", since = "1.59.0")
46975)]
46976#[cfg_attr(
46977    target_arch = "arm",
46978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46979)]
46980pub fn vreinterpretq_f32_s64(a: int64x2_t) -> float32x4_t {
46981    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
46982    unsafe {
46983        let ret_val: float32x4_t = transmute(a);
46984        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46985    }
46986}
46987#[doc = "Vector reinterpret cast operation"]
46988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s64)"]
46989#[inline(always)]
46990#[cfg(target_endian = "little")]
46991#[target_feature(enable = "neon")]
46992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46993#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46994#[cfg_attr(
46995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46996    assert_instr(nop)
46997)]
46998#[cfg_attr(
46999    not(target_arch = "arm"),
47000    stable(feature = "neon_intrinsics", since = "1.59.0")
47001)]
47002#[cfg_attr(
47003    target_arch = "arm",
47004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47005)]
47006pub fn vreinterpretq_s8_s64(a: int64x2_t) -> int8x16_t {
47007    unsafe { transmute(a) }
47008}
47009#[doc = "Vector reinterpret cast operation"]
47010#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s64)"]
47011#[inline(always)]
47012#[cfg(target_endian = "big")]
47013#[target_feature(enable = "neon")]
47014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47016#[cfg_attr(
47017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47018    assert_instr(nop)
47019)]
47020#[cfg_attr(
47021    not(target_arch = "arm"),
47022    stable(feature = "neon_intrinsics", since = "1.59.0")
47023)]
47024#[cfg_attr(
47025    target_arch = "arm",
47026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47027)]
47028pub fn vreinterpretq_s8_s64(a: int64x2_t) -> int8x16_t {
47029    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47030    unsafe {
47031        let ret_val: int8x16_t = transmute(a);
47032        simd_shuffle!(
47033            ret_val,
47034            ret_val,
47035            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
47036        )
47037    }
47038}
47039#[doc = "Vector reinterpret cast operation"]
47040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s64)"]
47041#[inline(always)]
47042#[cfg(target_endian = "little")]
47043#[target_feature(enable = "neon")]
47044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47045#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47046#[cfg_attr(
47047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47048    assert_instr(nop)
47049)]
47050#[cfg_attr(
47051    not(target_arch = "arm"),
47052    stable(feature = "neon_intrinsics", since = "1.59.0")
47053)]
47054#[cfg_attr(
47055    target_arch = "arm",
47056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47057)]
47058pub fn vreinterpretq_s16_s64(a: int64x2_t) -> int16x8_t {
47059    unsafe { transmute(a) }
47060}
47061#[doc = "Vector reinterpret cast operation"]
47062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s64)"]
47063#[inline(always)]
47064#[cfg(target_endian = "big")]
47065#[target_feature(enable = "neon")]
47066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47068#[cfg_attr(
47069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47070    assert_instr(nop)
47071)]
47072#[cfg_attr(
47073    not(target_arch = "arm"),
47074    stable(feature = "neon_intrinsics", since = "1.59.0")
47075)]
47076#[cfg_attr(
47077    target_arch = "arm",
47078    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47079)]
47080pub fn vreinterpretq_s16_s64(a: int64x2_t) -> int16x8_t {
47081    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47082    unsafe {
47083        let ret_val: int16x8_t = transmute(a);
47084        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47085    }
47086}
47087#[doc = "Vector reinterpret cast operation"]
47088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s64)"]
47089#[inline(always)]
47090#[cfg(target_endian = "little")]
47091#[target_feature(enable = "neon")]
47092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47093#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47094#[cfg_attr(
47095    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47096    assert_instr(nop)
47097)]
47098#[cfg_attr(
47099    not(target_arch = "arm"),
47100    stable(feature = "neon_intrinsics", since = "1.59.0")
47101)]
47102#[cfg_attr(
47103    target_arch = "arm",
47104    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47105)]
47106pub fn vreinterpretq_s32_s64(a: int64x2_t) -> int32x4_t {
47107    unsafe { transmute(a) }
47108}
47109#[doc = "Vector reinterpret cast operation"]
47110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s64)"]
47111#[inline(always)]
47112#[cfg(target_endian = "big")]
47113#[target_feature(enable = "neon")]
47114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47116#[cfg_attr(
47117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47118    assert_instr(nop)
47119)]
47120#[cfg_attr(
47121    not(target_arch = "arm"),
47122    stable(feature = "neon_intrinsics", since = "1.59.0")
47123)]
47124#[cfg_attr(
47125    target_arch = "arm",
47126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47127)]
47128pub fn vreinterpretq_s32_s64(a: int64x2_t) -> int32x4_t {
47129    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47130    unsafe {
47131        let ret_val: int32x4_t = transmute(a);
47132        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47133    }
47134}
47135#[doc = "Vector reinterpret cast operation"]
47136#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s64)"]
47137#[inline(always)]
47138#[cfg(target_endian = "little")]
47139#[target_feature(enable = "neon")]
47140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47141#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47142#[cfg_attr(
47143    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47144    assert_instr(nop)
47145)]
47146#[cfg_attr(
47147    not(target_arch = "arm"),
47148    stable(feature = "neon_intrinsics", since = "1.59.0")
47149)]
47150#[cfg_attr(
47151    target_arch = "arm",
47152    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47153)]
47154pub fn vreinterpretq_u8_s64(a: int64x2_t) -> uint8x16_t {
47155    unsafe { transmute(a) }
47156}
47157#[doc = "Vector reinterpret cast operation"]
47158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s64)"]
47159#[inline(always)]
47160#[cfg(target_endian = "big")]
47161#[target_feature(enable = "neon")]
47162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47164#[cfg_attr(
47165    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47166    assert_instr(nop)
47167)]
47168#[cfg_attr(
47169    not(target_arch = "arm"),
47170    stable(feature = "neon_intrinsics", since = "1.59.0")
47171)]
47172#[cfg_attr(
47173    target_arch = "arm",
47174    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47175)]
47176pub fn vreinterpretq_u8_s64(a: int64x2_t) -> uint8x16_t {
47177    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47178    unsafe {
47179        let ret_val: uint8x16_t = transmute(a);
47180        simd_shuffle!(
47181            ret_val,
47182            ret_val,
47183            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
47184        )
47185    }
47186}
47187#[doc = "Vector reinterpret cast operation"]
47188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s64)"]
47189#[inline(always)]
47190#[cfg(target_endian = "little")]
47191#[target_feature(enable = "neon")]
47192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47194#[cfg_attr(
47195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47196    assert_instr(nop)
47197)]
47198#[cfg_attr(
47199    not(target_arch = "arm"),
47200    stable(feature = "neon_intrinsics", since = "1.59.0")
47201)]
47202#[cfg_attr(
47203    target_arch = "arm",
47204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47205)]
47206pub fn vreinterpretq_u16_s64(a: int64x2_t) -> uint16x8_t {
47207    unsafe { transmute(a) }
47208}
47209#[doc = "Vector reinterpret cast operation"]
47210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s64)"]
47211#[inline(always)]
47212#[cfg(target_endian = "big")]
47213#[target_feature(enable = "neon")]
47214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47216#[cfg_attr(
47217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47218    assert_instr(nop)
47219)]
47220#[cfg_attr(
47221    not(target_arch = "arm"),
47222    stable(feature = "neon_intrinsics", since = "1.59.0")
47223)]
47224#[cfg_attr(
47225    target_arch = "arm",
47226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47227)]
47228pub fn vreinterpretq_u16_s64(a: int64x2_t) -> uint16x8_t {
47229    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47230    unsafe {
47231        let ret_val: uint16x8_t = transmute(a);
47232        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47233    }
47234}
47235#[doc = "Vector reinterpret cast operation"]
47236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s64)"]
47237#[inline(always)]
47238#[cfg(target_endian = "little")]
47239#[target_feature(enable = "neon")]
47240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47242#[cfg_attr(
47243    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47244    assert_instr(nop)
47245)]
47246#[cfg_attr(
47247    not(target_arch = "arm"),
47248    stable(feature = "neon_intrinsics", since = "1.59.0")
47249)]
47250#[cfg_attr(
47251    target_arch = "arm",
47252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47253)]
47254pub fn vreinterpretq_u32_s64(a: int64x2_t) -> uint32x4_t {
47255    unsafe { transmute(a) }
47256}
47257#[doc = "Vector reinterpret cast operation"]
47258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s64)"]
47259#[inline(always)]
47260#[cfg(target_endian = "big")]
47261#[target_feature(enable = "neon")]
47262#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47263#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47264#[cfg_attr(
47265    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47266    assert_instr(nop)
47267)]
47268#[cfg_attr(
47269    not(target_arch = "arm"),
47270    stable(feature = "neon_intrinsics", since = "1.59.0")
47271)]
47272#[cfg_attr(
47273    target_arch = "arm",
47274    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47275)]
47276pub fn vreinterpretq_u32_s64(a: int64x2_t) -> uint32x4_t {
47277    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47278    unsafe {
47279        let ret_val: uint32x4_t = transmute(a);
47280        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47281    }
47282}
47283#[doc = "Vector reinterpret cast operation"]
47284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s64)"]
47285#[inline(always)]
47286#[cfg(target_endian = "little")]
47287#[target_feature(enable = "neon")]
47288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47290#[cfg_attr(
47291    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47292    assert_instr(nop)
47293)]
47294#[cfg_attr(
47295    not(target_arch = "arm"),
47296    stable(feature = "neon_intrinsics", since = "1.59.0")
47297)]
47298#[cfg_attr(
47299    target_arch = "arm",
47300    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47301)]
47302pub fn vreinterpretq_u64_s64(a: int64x2_t) -> uint64x2_t {
47303    unsafe { transmute(a) }
47304}
47305#[doc = "Vector reinterpret cast operation"]
47306#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s64)"]
47307#[inline(always)]
47308#[cfg(target_endian = "big")]
47309#[target_feature(enable = "neon")]
47310#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47311#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47312#[cfg_attr(
47313    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47314    assert_instr(nop)
47315)]
47316#[cfg_attr(
47317    not(target_arch = "arm"),
47318    stable(feature = "neon_intrinsics", since = "1.59.0")
47319)]
47320#[cfg_attr(
47321    target_arch = "arm",
47322    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47323)]
47324pub fn vreinterpretq_u64_s64(a: int64x2_t) -> uint64x2_t {
47325    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47326    unsafe {
47327        let ret_val: uint64x2_t = transmute(a);
47328        simd_shuffle!(ret_val, ret_val, [1, 0])
47329    }
47330}
47331#[doc = "Vector reinterpret cast operation"]
47332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s64)"]
47333#[inline(always)]
47334#[cfg(target_endian = "little")]
47335#[target_feature(enable = "neon")]
47336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47337#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47338#[cfg_attr(
47339    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47340    assert_instr(nop)
47341)]
47342#[cfg_attr(
47343    not(target_arch = "arm"),
47344    stable(feature = "neon_intrinsics", since = "1.59.0")
47345)]
47346#[cfg_attr(
47347    target_arch = "arm",
47348    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47349)]
47350pub fn vreinterpretq_p8_s64(a: int64x2_t) -> poly8x16_t {
47351    unsafe { transmute(a) }
47352}
47353#[doc = "Vector reinterpret cast operation"]
47354#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s64)"]
47355#[inline(always)]
47356#[cfg(target_endian = "big")]
47357#[target_feature(enable = "neon")]
47358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47359#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47360#[cfg_attr(
47361    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47362    assert_instr(nop)
47363)]
47364#[cfg_attr(
47365    not(target_arch = "arm"),
47366    stable(feature = "neon_intrinsics", since = "1.59.0")
47367)]
47368#[cfg_attr(
47369    target_arch = "arm",
47370    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47371)]
47372pub fn vreinterpretq_p8_s64(a: int64x2_t) -> poly8x16_t {
47373    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47374    unsafe {
47375        let ret_val: poly8x16_t = transmute(a);
47376        simd_shuffle!(
47377            ret_val,
47378            ret_val,
47379            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
47380        )
47381    }
47382}
47383#[doc = "Vector reinterpret cast operation"]
47384#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s64)"]
47385#[inline(always)]
47386#[cfg(target_endian = "little")]
47387#[target_feature(enable = "neon")]
47388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47390#[cfg_attr(
47391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47392    assert_instr(nop)
47393)]
47394#[cfg_attr(
47395    not(target_arch = "arm"),
47396    stable(feature = "neon_intrinsics", since = "1.59.0")
47397)]
47398#[cfg_attr(
47399    target_arch = "arm",
47400    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47401)]
47402pub fn vreinterpretq_p16_s64(a: int64x2_t) -> poly16x8_t {
47403    unsafe { transmute(a) }
47404}
47405#[doc = "Vector reinterpret cast operation"]
47406#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s64)"]
47407#[inline(always)]
47408#[cfg(target_endian = "big")]
47409#[target_feature(enable = "neon")]
47410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47412#[cfg_attr(
47413    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47414    assert_instr(nop)
47415)]
47416#[cfg_attr(
47417    not(target_arch = "arm"),
47418    stable(feature = "neon_intrinsics", since = "1.59.0")
47419)]
47420#[cfg_attr(
47421    target_arch = "arm",
47422    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47423)]
47424pub fn vreinterpretq_p16_s64(a: int64x2_t) -> poly16x8_t {
47425    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47426    unsafe {
47427        let ret_val: poly16x8_t = transmute(a);
47428        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47429    }
47430}
47431#[doc = "Vector reinterpret cast operation"]
47432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u8)"]
47433#[inline(always)]
47434#[cfg(target_endian = "little")]
47435#[target_feature(enable = "neon")]
47436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47438#[cfg_attr(
47439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47440    assert_instr(nop)
47441)]
47442#[cfg_attr(
47443    not(target_arch = "arm"),
47444    stable(feature = "neon_intrinsics", since = "1.59.0")
47445)]
47446#[cfg_attr(
47447    target_arch = "arm",
47448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47449)]
47450pub fn vreinterpret_f32_u8(a: uint8x8_t) -> float32x2_t {
47451    unsafe { transmute(a) }
47452}
47453#[doc = "Vector reinterpret cast operation"]
47454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u8)"]
47455#[inline(always)]
47456#[cfg(target_endian = "big")]
47457#[target_feature(enable = "neon")]
47458#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47459#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47460#[cfg_attr(
47461    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47462    assert_instr(nop)
47463)]
47464#[cfg_attr(
47465    not(target_arch = "arm"),
47466    stable(feature = "neon_intrinsics", since = "1.59.0")
47467)]
47468#[cfg_attr(
47469    target_arch = "arm",
47470    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47471)]
47472pub fn vreinterpret_f32_u8(a: uint8x8_t) -> float32x2_t {
47473    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47474    unsafe {
47475        let ret_val: float32x2_t = transmute(a);
47476        simd_shuffle!(ret_val, ret_val, [1, 0])
47477    }
47478}
47479#[doc = "Vector reinterpret cast operation"]
47480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u8)"]
47481#[inline(always)]
47482#[cfg(target_endian = "little")]
47483#[target_feature(enable = "neon")]
47484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47486#[cfg_attr(
47487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47488    assert_instr(nop)
47489)]
47490#[cfg_attr(
47491    not(target_arch = "arm"),
47492    stable(feature = "neon_intrinsics", since = "1.59.0")
47493)]
47494#[cfg_attr(
47495    target_arch = "arm",
47496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47497)]
47498pub fn vreinterpret_s8_u8(a: uint8x8_t) -> int8x8_t {
47499    unsafe { transmute(a) }
47500}
47501#[doc = "Vector reinterpret cast operation"]
47502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u8)"]
47503#[inline(always)]
47504#[cfg(target_endian = "big")]
47505#[target_feature(enable = "neon")]
47506#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47507#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47508#[cfg_attr(
47509    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47510    assert_instr(nop)
47511)]
47512#[cfg_attr(
47513    not(target_arch = "arm"),
47514    stable(feature = "neon_intrinsics", since = "1.59.0")
47515)]
47516#[cfg_attr(
47517    target_arch = "arm",
47518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47519)]
47520pub fn vreinterpret_s8_u8(a: uint8x8_t) -> int8x8_t {
47521    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47522    unsafe {
47523        let ret_val: int8x8_t = transmute(a);
47524        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47525    }
47526}
47527#[doc = "Vector reinterpret cast operation"]
47528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u8)"]
47529#[inline(always)]
47530#[cfg(target_endian = "little")]
47531#[target_feature(enable = "neon")]
47532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47533#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47534#[cfg_attr(
47535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47536    assert_instr(nop)
47537)]
47538#[cfg_attr(
47539    not(target_arch = "arm"),
47540    stable(feature = "neon_intrinsics", since = "1.59.0")
47541)]
47542#[cfg_attr(
47543    target_arch = "arm",
47544    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47545)]
47546pub fn vreinterpret_s16_u8(a: uint8x8_t) -> int16x4_t {
47547    unsafe { transmute(a) }
47548}
47549#[doc = "Vector reinterpret cast operation"]
47550#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u8)"]
47551#[inline(always)]
47552#[cfg(target_endian = "big")]
47553#[target_feature(enable = "neon")]
47554#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47555#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47556#[cfg_attr(
47557    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47558    assert_instr(nop)
47559)]
47560#[cfg_attr(
47561    not(target_arch = "arm"),
47562    stable(feature = "neon_intrinsics", since = "1.59.0")
47563)]
47564#[cfg_attr(
47565    target_arch = "arm",
47566    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47567)]
47568pub fn vreinterpret_s16_u8(a: uint8x8_t) -> int16x4_t {
47569    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47570    unsafe {
47571        let ret_val: int16x4_t = transmute(a);
47572        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47573    }
47574}
47575#[doc = "Vector reinterpret cast operation"]
47576#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u8)"]
47577#[inline(always)]
47578#[cfg(target_endian = "little")]
47579#[target_feature(enable = "neon")]
47580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47582#[cfg_attr(
47583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47584    assert_instr(nop)
47585)]
47586#[cfg_attr(
47587    not(target_arch = "arm"),
47588    stable(feature = "neon_intrinsics", since = "1.59.0")
47589)]
47590#[cfg_attr(
47591    target_arch = "arm",
47592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47593)]
47594pub fn vreinterpret_s32_u8(a: uint8x8_t) -> int32x2_t {
47595    unsafe { transmute(a) }
47596}
47597#[doc = "Vector reinterpret cast operation"]
47598#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u8)"]
47599#[inline(always)]
47600#[cfg(target_endian = "big")]
47601#[target_feature(enable = "neon")]
47602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47603#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47604#[cfg_attr(
47605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47606    assert_instr(nop)
47607)]
47608#[cfg_attr(
47609    not(target_arch = "arm"),
47610    stable(feature = "neon_intrinsics", since = "1.59.0")
47611)]
47612#[cfg_attr(
47613    target_arch = "arm",
47614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47615)]
47616pub fn vreinterpret_s32_u8(a: uint8x8_t) -> int32x2_t {
47617    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47618    unsafe {
47619        let ret_val: int32x2_t = transmute(a);
47620        simd_shuffle!(ret_val, ret_val, [1, 0])
47621    }
47622}
47623#[doc = "Vector reinterpret cast operation"]
47624#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u8)"]
47625#[inline(always)]
47626#[cfg(target_endian = "little")]
47627#[target_feature(enable = "neon")]
47628#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47629#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47630#[cfg_attr(
47631    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47632    assert_instr(nop)
47633)]
47634#[cfg_attr(
47635    not(target_arch = "arm"),
47636    stable(feature = "neon_intrinsics", since = "1.59.0")
47637)]
47638#[cfg_attr(
47639    target_arch = "arm",
47640    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47641)]
47642pub fn vreinterpret_s64_u8(a: uint8x8_t) -> int64x1_t {
47643    unsafe { transmute(a) }
47644}
47645#[doc = "Vector reinterpret cast operation"]
47646#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u8)"]
47647#[inline(always)]
47648#[cfg(target_endian = "big")]
47649#[target_feature(enable = "neon")]
47650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47651#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47652#[cfg_attr(
47653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47654    assert_instr(nop)
47655)]
47656#[cfg_attr(
47657    not(target_arch = "arm"),
47658    stable(feature = "neon_intrinsics", since = "1.59.0")
47659)]
47660#[cfg_attr(
47661    target_arch = "arm",
47662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47663)]
47664pub fn vreinterpret_s64_u8(a: uint8x8_t) -> int64x1_t {
47665    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47666    unsafe { transmute(a) }
47667}
47668#[doc = "Vector reinterpret cast operation"]
47669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u8)"]
47670#[inline(always)]
47671#[cfg(target_endian = "little")]
47672#[target_feature(enable = "neon")]
47673#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47674#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47675#[cfg_attr(
47676    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47677    assert_instr(nop)
47678)]
47679#[cfg_attr(
47680    not(target_arch = "arm"),
47681    stable(feature = "neon_intrinsics", since = "1.59.0")
47682)]
47683#[cfg_attr(
47684    target_arch = "arm",
47685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47686)]
47687pub fn vreinterpret_u16_u8(a: uint8x8_t) -> uint16x4_t {
47688    unsafe { transmute(a) }
47689}
47690#[doc = "Vector reinterpret cast operation"]
47691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u8)"]
47692#[inline(always)]
47693#[cfg(target_endian = "big")]
47694#[target_feature(enable = "neon")]
47695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47696#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47697#[cfg_attr(
47698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47699    assert_instr(nop)
47700)]
47701#[cfg_attr(
47702    not(target_arch = "arm"),
47703    stable(feature = "neon_intrinsics", since = "1.59.0")
47704)]
47705#[cfg_attr(
47706    target_arch = "arm",
47707    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47708)]
47709pub fn vreinterpret_u16_u8(a: uint8x8_t) -> uint16x4_t {
47710    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47711    unsafe {
47712        let ret_val: uint16x4_t = transmute(a);
47713        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47714    }
47715}
47716#[doc = "Vector reinterpret cast operation"]
47717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u8)"]
47718#[inline(always)]
47719#[cfg(target_endian = "little")]
47720#[target_feature(enable = "neon")]
47721#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47722#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47723#[cfg_attr(
47724    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47725    assert_instr(nop)
47726)]
47727#[cfg_attr(
47728    not(target_arch = "arm"),
47729    stable(feature = "neon_intrinsics", since = "1.59.0")
47730)]
47731#[cfg_attr(
47732    target_arch = "arm",
47733    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47734)]
47735pub fn vreinterpret_u32_u8(a: uint8x8_t) -> uint32x2_t {
47736    unsafe { transmute(a) }
47737}
47738#[doc = "Vector reinterpret cast operation"]
47739#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u8)"]
47740#[inline(always)]
47741#[cfg(target_endian = "big")]
47742#[target_feature(enable = "neon")]
47743#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47744#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47745#[cfg_attr(
47746    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47747    assert_instr(nop)
47748)]
47749#[cfg_attr(
47750    not(target_arch = "arm"),
47751    stable(feature = "neon_intrinsics", since = "1.59.0")
47752)]
47753#[cfg_attr(
47754    target_arch = "arm",
47755    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47756)]
47757pub fn vreinterpret_u32_u8(a: uint8x8_t) -> uint32x2_t {
47758    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47759    unsafe {
47760        let ret_val: uint32x2_t = transmute(a);
47761        simd_shuffle!(ret_val, ret_val, [1, 0])
47762    }
47763}
47764#[doc = "Vector reinterpret cast operation"]
47765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u8)"]
47766#[inline(always)]
47767#[cfg(target_endian = "little")]
47768#[target_feature(enable = "neon")]
47769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47771#[cfg_attr(
47772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47773    assert_instr(nop)
47774)]
47775#[cfg_attr(
47776    not(target_arch = "arm"),
47777    stable(feature = "neon_intrinsics", since = "1.59.0")
47778)]
47779#[cfg_attr(
47780    target_arch = "arm",
47781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47782)]
47783pub fn vreinterpret_u64_u8(a: uint8x8_t) -> uint64x1_t {
47784    unsafe { transmute(a) }
47785}
47786#[doc = "Vector reinterpret cast operation"]
47787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u8)"]
47788#[inline(always)]
47789#[cfg(target_endian = "big")]
47790#[target_feature(enable = "neon")]
47791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47793#[cfg_attr(
47794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47795    assert_instr(nop)
47796)]
47797#[cfg_attr(
47798    not(target_arch = "arm"),
47799    stable(feature = "neon_intrinsics", since = "1.59.0")
47800)]
47801#[cfg_attr(
47802    target_arch = "arm",
47803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47804)]
47805pub fn vreinterpret_u64_u8(a: uint8x8_t) -> uint64x1_t {
47806    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47807    unsafe { transmute(a) }
47808}
47809#[doc = "Vector reinterpret cast operation"]
47810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u8)"]
47811#[inline(always)]
47812#[cfg(target_endian = "little")]
47813#[target_feature(enable = "neon")]
47814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47816#[cfg_attr(
47817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47818    assert_instr(nop)
47819)]
47820#[cfg_attr(
47821    not(target_arch = "arm"),
47822    stable(feature = "neon_intrinsics", since = "1.59.0")
47823)]
47824#[cfg_attr(
47825    target_arch = "arm",
47826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47827)]
47828pub fn vreinterpret_p8_u8(a: uint8x8_t) -> poly8x8_t {
47829    unsafe { transmute(a) }
47830}
47831#[doc = "Vector reinterpret cast operation"]
47832#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u8)"]
47833#[inline(always)]
47834#[cfg(target_endian = "big")]
47835#[target_feature(enable = "neon")]
47836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47837#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47838#[cfg_attr(
47839    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47840    assert_instr(nop)
47841)]
47842#[cfg_attr(
47843    not(target_arch = "arm"),
47844    stable(feature = "neon_intrinsics", since = "1.59.0")
47845)]
47846#[cfg_attr(
47847    target_arch = "arm",
47848    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47849)]
47850pub fn vreinterpret_p8_u8(a: uint8x8_t) -> poly8x8_t {
47851    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47852    unsafe {
47853        let ret_val: poly8x8_t = transmute(a);
47854        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47855    }
47856}
47857#[doc = "Vector reinterpret cast operation"]
47858#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u8)"]
47859#[inline(always)]
47860#[cfg(target_endian = "little")]
47861#[target_feature(enable = "neon")]
47862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47864#[cfg_attr(
47865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47866    assert_instr(nop)
47867)]
47868#[cfg_attr(
47869    not(target_arch = "arm"),
47870    stable(feature = "neon_intrinsics", since = "1.59.0")
47871)]
47872#[cfg_attr(
47873    target_arch = "arm",
47874    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47875)]
47876pub fn vreinterpret_p16_u8(a: uint8x8_t) -> poly16x4_t {
47877    unsafe { transmute(a) }
47878}
47879#[doc = "Vector reinterpret cast operation"]
47880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u8)"]
47881#[inline(always)]
47882#[cfg(target_endian = "big")]
47883#[target_feature(enable = "neon")]
47884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47885#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47886#[cfg_attr(
47887    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47888    assert_instr(nop)
47889)]
47890#[cfg_attr(
47891    not(target_arch = "arm"),
47892    stable(feature = "neon_intrinsics", since = "1.59.0")
47893)]
47894#[cfg_attr(
47895    target_arch = "arm",
47896    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47897)]
47898pub fn vreinterpret_p16_u8(a: uint8x8_t) -> poly16x4_t {
47899    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47900    unsafe {
47901        let ret_val: poly16x4_t = transmute(a);
47902        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47903    }
47904}
47905#[doc = "Vector reinterpret cast operation"]
47906#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u8)"]
47907#[inline(always)]
47908#[cfg(target_endian = "little")]
47909#[target_feature(enable = "neon")]
47910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47912#[cfg_attr(
47913    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47914    assert_instr(nop)
47915)]
47916#[cfg_attr(
47917    not(target_arch = "arm"),
47918    stable(feature = "neon_intrinsics", since = "1.59.0")
47919)]
47920#[cfg_attr(
47921    target_arch = "arm",
47922    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47923)]
47924pub fn vreinterpretq_f32_u8(a: uint8x16_t) -> float32x4_t {
47925    unsafe { transmute(a) }
47926}
47927#[doc = "Vector reinterpret cast operation"]
47928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u8)"]
47929#[inline(always)]
47930#[cfg(target_endian = "big")]
47931#[target_feature(enable = "neon")]
47932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47933#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47934#[cfg_attr(
47935    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47936    assert_instr(nop)
47937)]
47938#[cfg_attr(
47939    not(target_arch = "arm"),
47940    stable(feature = "neon_intrinsics", since = "1.59.0")
47941)]
47942#[cfg_attr(
47943    target_arch = "arm",
47944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47945)]
47946pub fn vreinterpretq_f32_u8(a: uint8x16_t) -> float32x4_t {
47947    let a: uint8x16_t =
47948        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
47949    unsafe {
47950        let ret_val: float32x4_t = transmute(a);
47951        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47952    }
47953}
47954#[doc = "Vector reinterpret cast operation"]
47955#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u8)"]
47956#[inline(always)]
47957#[cfg(target_endian = "little")]
47958#[target_feature(enable = "neon")]
47959#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47960#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47961#[cfg_attr(
47962    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47963    assert_instr(nop)
47964)]
47965#[cfg_attr(
47966    not(target_arch = "arm"),
47967    stable(feature = "neon_intrinsics", since = "1.59.0")
47968)]
47969#[cfg_attr(
47970    target_arch = "arm",
47971    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47972)]
47973pub fn vreinterpretq_s8_u8(a: uint8x16_t) -> int8x16_t {
47974    unsafe { transmute(a) }
47975}
47976#[doc = "Vector reinterpret cast operation"]
47977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u8)"]
47978#[inline(always)]
47979#[cfg(target_endian = "big")]
47980#[target_feature(enable = "neon")]
47981#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47982#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47983#[cfg_attr(
47984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47985    assert_instr(nop)
47986)]
47987#[cfg_attr(
47988    not(target_arch = "arm"),
47989    stable(feature = "neon_intrinsics", since = "1.59.0")
47990)]
47991#[cfg_attr(
47992    target_arch = "arm",
47993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47994)]
47995pub fn vreinterpretq_s8_u8(a: uint8x16_t) -> int8x16_t {
47996    let a: uint8x16_t =
47997        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
47998    unsafe {
47999        let ret_val: int8x16_t = transmute(a);
48000        simd_shuffle!(
48001            ret_val,
48002            ret_val,
48003            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
48004        )
48005    }
48006}
48007#[doc = "Vector reinterpret cast operation"]
48008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u8)"]
48009#[inline(always)]
48010#[cfg(target_endian = "little")]
48011#[target_feature(enable = "neon")]
48012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48014#[cfg_attr(
48015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48016    assert_instr(nop)
48017)]
48018#[cfg_attr(
48019    not(target_arch = "arm"),
48020    stable(feature = "neon_intrinsics", since = "1.59.0")
48021)]
48022#[cfg_attr(
48023    target_arch = "arm",
48024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48025)]
48026pub fn vreinterpretq_s16_u8(a: uint8x16_t) -> int16x8_t {
48027    unsafe { transmute(a) }
48028}
48029#[doc = "Vector reinterpret cast operation"]
48030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u8)"]
48031#[inline(always)]
48032#[cfg(target_endian = "big")]
48033#[target_feature(enable = "neon")]
48034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48036#[cfg_attr(
48037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48038    assert_instr(nop)
48039)]
48040#[cfg_attr(
48041    not(target_arch = "arm"),
48042    stable(feature = "neon_intrinsics", since = "1.59.0")
48043)]
48044#[cfg_attr(
48045    target_arch = "arm",
48046    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48047)]
48048pub fn vreinterpretq_s16_u8(a: uint8x16_t) -> int16x8_t {
48049    let a: uint8x16_t =
48050        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48051    unsafe {
48052        let ret_val: int16x8_t = transmute(a);
48053        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48054    }
48055}
48056#[doc = "Vector reinterpret cast operation"]
48057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u8)"]
48058#[inline(always)]
48059#[cfg(target_endian = "little")]
48060#[target_feature(enable = "neon")]
48061#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48062#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48063#[cfg_attr(
48064    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48065    assert_instr(nop)
48066)]
48067#[cfg_attr(
48068    not(target_arch = "arm"),
48069    stable(feature = "neon_intrinsics", since = "1.59.0")
48070)]
48071#[cfg_attr(
48072    target_arch = "arm",
48073    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48074)]
48075pub fn vreinterpretq_s32_u8(a: uint8x16_t) -> int32x4_t {
48076    unsafe { transmute(a) }
48077}
48078#[doc = "Vector reinterpret cast operation"]
48079#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u8)"]
48080#[inline(always)]
48081#[cfg(target_endian = "big")]
48082#[target_feature(enable = "neon")]
48083#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48084#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48085#[cfg_attr(
48086    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48087    assert_instr(nop)
48088)]
48089#[cfg_attr(
48090    not(target_arch = "arm"),
48091    stable(feature = "neon_intrinsics", since = "1.59.0")
48092)]
48093#[cfg_attr(
48094    target_arch = "arm",
48095    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48096)]
48097pub fn vreinterpretq_s32_u8(a: uint8x16_t) -> int32x4_t {
48098    let a: uint8x16_t =
48099        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48100    unsafe {
48101        let ret_val: int32x4_t = transmute(a);
48102        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48103    }
48104}
48105#[doc = "Vector reinterpret cast operation"]
48106#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u8)"]
48107#[inline(always)]
48108#[cfg(target_endian = "little")]
48109#[target_feature(enable = "neon")]
48110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48111#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48112#[cfg_attr(
48113    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48114    assert_instr(nop)
48115)]
48116#[cfg_attr(
48117    not(target_arch = "arm"),
48118    stable(feature = "neon_intrinsics", since = "1.59.0")
48119)]
48120#[cfg_attr(
48121    target_arch = "arm",
48122    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48123)]
48124pub fn vreinterpretq_s64_u8(a: uint8x16_t) -> int64x2_t {
48125    unsafe { transmute(a) }
48126}
48127#[doc = "Vector reinterpret cast operation"]
48128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u8)"]
48129#[inline(always)]
48130#[cfg(target_endian = "big")]
48131#[target_feature(enable = "neon")]
48132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48133#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48134#[cfg_attr(
48135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48136    assert_instr(nop)
48137)]
48138#[cfg_attr(
48139    not(target_arch = "arm"),
48140    stable(feature = "neon_intrinsics", since = "1.59.0")
48141)]
48142#[cfg_attr(
48143    target_arch = "arm",
48144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48145)]
48146pub fn vreinterpretq_s64_u8(a: uint8x16_t) -> int64x2_t {
48147    let a: uint8x16_t =
48148        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48149    unsafe {
48150        let ret_val: int64x2_t = transmute(a);
48151        simd_shuffle!(ret_val, ret_val, [1, 0])
48152    }
48153}
48154#[doc = "Vector reinterpret cast operation"]
48155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u8)"]
48156#[inline(always)]
48157#[cfg(target_endian = "little")]
48158#[target_feature(enable = "neon")]
48159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48161#[cfg_attr(
48162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48163    assert_instr(nop)
48164)]
48165#[cfg_attr(
48166    not(target_arch = "arm"),
48167    stable(feature = "neon_intrinsics", since = "1.59.0")
48168)]
48169#[cfg_attr(
48170    target_arch = "arm",
48171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48172)]
48173pub fn vreinterpretq_u16_u8(a: uint8x16_t) -> uint16x8_t {
48174    unsafe { transmute(a) }
48175}
48176#[doc = "Vector reinterpret cast operation"]
48177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u8)"]
48178#[inline(always)]
48179#[cfg(target_endian = "big")]
48180#[target_feature(enable = "neon")]
48181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48182#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48183#[cfg_attr(
48184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48185    assert_instr(nop)
48186)]
48187#[cfg_attr(
48188    not(target_arch = "arm"),
48189    stable(feature = "neon_intrinsics", since = "1.59.0")
48190)]
48191#[cfg_attr(
48192    target_arch = "arm",
48193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48194)]
48195pub fn vreinterpretq_u16_u8(a: uint8x16_t) -> uint16x8_t {
48196    let a: uint8x16_t =
48197        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48198    unsafe {
48199        let ret_val: uint16x8_t = transmute(a);
48200        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 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/vreinterpretq_u32_u8)"]
48205#[inline(always)]
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 vreinterpretq_u32_u8(a: uint8x16_t) -> uint32x4_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/vreinterpretq_u32_u8)"]
48227#[inline(always)]
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 vreinterpretq_u32_u8(a: uint8x16_t) -> uint32x4_t {
48245    let a: uint8x16_t =
48246        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48247    unsafe {
48248        let ret_val: uint32x4_t = transmute(a);
48249        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48250    }
48251}
48252#[doc = "Vector reinterpret cast operation"]
48253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u8)"]
48254#[inline(always)]
48255#[cfg(target_endian = "little")]
48256#[target_feature(enable = "neon")]
48257#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48258#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48259#[cfg_attr(
48260    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48261    assert_instr(nop)
48262)]
48263#[cfg_attr(
48264    not(target_arch = "arm"),
48265    stable(feature = "neon_intrinsics", since = "1.59.0")
48266)]
48267#[cfg_attr(
48268    target_arch = "arm",
48269    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48270)]
48271pub fn vreinterpretq_u64_u8(a: uint8x16_t) -> uint64x2_t {
48272    unsafe { transmute(a) }
48273}
48274#[doc = "Vector reinterpret cast operation"]
48275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u8)"]
48276#[inline(always)]
48277#[cfg(target_endian = "big")]
48278#[target_feature(enable = "neon")]
48279#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48280#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48281#[cfg_attr(
48282    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48283    assert_instr(nop)
48284)]
48285#[cfg_attr(
48286    not(target_arch = "arm"),
48287    stable(feature = "neon_intrinsics", since = "1.59.0")
48288)]
48289#[cfg_attr(
48290    target_arch = "arm",
48291    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48292)]
48293pub fn vreinterpretq_u64_u8(a: uint8x16_t) -> uint64x2_t {
48294    let a: uint8x16_t =
48295        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48296    unsafe {
48297        let ret_val: uint64x2_t = transmute(a);
48298        simd_shuffle!(ret_val, ret_val, [1, 0])
48299    }
48300}
48301#[doc = "Vector reinterpret cast operation"]
48302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u8)"]
48303#[inline(always)]
48304#[cfg(target_endian = "little")]
48305#[target_feature(enable = "neon")]
48306#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48307#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48308#[cfg_attr(
48309    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48310    assert_instr(nop)
48311)]
48312#[cfg_attr(
48313    not(target_arch = "arm"),
48314    stable(feature = "neon_intrinsics", since = "1.59.0")
48315)]
48316#[cfg_attr(
48317    target_arch = "arm",
48318    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48319)]
48320pub fn vreinterpretq_p8_u8(a: uint8x16_t) -> poly8x16_t {
48321    unsafe { transmute(a) }
48322}
48323#[doc = "Vector reinterpret cast operation"]
48324#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u8)"]
48325#[inline(always)]
48326#[cfg(target_endian = "big")]
48327#[target_feature(enable = "neon")]
48328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48329#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48330#[cfg_attr(
48331    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48332    assert_instr(nop)
48333)]
48334#[cfg_attr(
48335    not(target_arch = "arm"),
48336    stable(feature = "neon_intrinsics", since = "1.59.0")
48337)]
48338#[cfg_attr(
48339    target_arch = "arm",
48340    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48341)]
48342pub fn vreinterpretq_p8_u8(a: uint8x16_t) -> poly8x16_t {
48343    let a: uint8x16_t =
48344        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48345    unsafe {
48346        let ret_val: poly8x16_t = transmute(a);
48347        simd_shuffle!(
48348            ret_val,
48349            ret_val,
48350            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
48351        )
48352    }
48353}
48354#[doc = "Vector reinterpret cast operation"]
48355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u8)"]
48356#[inline(always)]
48357#[cfg(target_endian = "little")]
48358#[target_feature(enable = "neon")]
48359#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48360#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48361#[cfg_attr(
48362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48363    assert_instr(nop)
48364)]
48365#[cfg_attr(
48366    not(target_arch = "arm"),
48367    stable(feature = "neon_intrinsics", since = "1.59.0")
48368)]
48369#[cfg_attr(
48370    target_arch = "arm",
48371    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48372)]
48373pub fn vreinterpretq_p16_u8(a: uint8x16_t) -> poly16x8_t {
48374    unsafe { transmute(a) }
48375}
48376#[doc = "Vector reinterpret cast operation"]
48377#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u8)"]
48378#[inline(always)]
48379#[cfg(target_endian = "big")]
48380#[target_feature(enable = "neon")]
48381#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48382#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48383#[cfg_attr(
48384    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48385    assert_instr(nop)
48386)]
48387#[cfg_attr(
48388    not(target_arch = "arm"),
48389    stable(feature = "neon_intrinsics", since = "1.59.0")
48390)]
48391#[cfg_attr(
48392    target_arch = "arm",
48393    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48394)]
48395pub fn vreinterpretq_p16_u8(a: uint8x16_t) -> poly16x8_t {
48396    let a: uint8x16_t =
48397        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48398    unsafe {
48399        let ret_val: poly16x8_t = transmute(a);
48400        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48401    }
48402}
48403#[doc = "Vector reinterpret cast operation"]
48404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u16)"]
48405#[inline(always)]
48406#[cfg(target_endian = "little")]
48407#[target_feature(enable = "neon")]
48408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48410#[cfg_attr(
48411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48412    assert_instr(nop)
48413)]
48414#[cfg_attr(
48415    not(target_arch = "arm"),
48416    stable(feature = "neon_intrinsics", since = "1.59.0")
48417)]
48418#[cfg_attr(
48419    target_arch = "arm",
48420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48421)]
48422pub fn vreinterpret_f32_u16(a: uint16x4_t) -> float32x2_t {
48423    unsafe { transmute(a) }
48424}
48425#[doc = "Vector reinterpret cast operation"]
48426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u16)"]
48427#[inline(always)]
48428#[cfg(target_endian = "big")]
48429#[target_feature(enable = "neon")]
48430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48431#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48432#[cfg_attr(
48433    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48434    assert_instr(nop)
48435)]
48436#[cfg_attr(
48437    not(target_arch = "arm"),
48438    stable(feature = "neon_intrinsics", since = "1.59.0")
48439)]
48440#[cfg_attr(
48441    target_arch = "arm",
48442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48443)]
48444pub fn vreinterpret_f32_u16(a: uint16x4_t) -> float32x2_t {
48445    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48446    unsafe {
48447        let ret_val: float32x2_t = transmute(a);
48448        simd_shuffle!(ret_val, ret_val, [1, 0])
48449    }
48450}
48451#[doc = "Vector reinterpret cast operation"]
48452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u16)"]
48453#[inline(always)]
48454#[cfg(target_endian = "little")]
48455#[target_feature(enable = "neon")]
48456#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48457#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48458#[cfg_attr(
48459    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48460    assert_instr(nop)
48461)]
48462#[cfg_attr(
48463    not(target_arch = "arm"),
48464    stable(feature = "neon_intrinsics", since = "1.59.0")
48465)]
48466#[cfg_attr(
48467    target_arch = "arm",
48468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48469)]
48470pub fn vreinterpret_s8_u16(a: uint16x4_t) -> int8x8_t {
48471    unsafe { transmute(a) }
48472}
48473#[doc = "Vector reinterpret cast operation"]
48474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u16)"]
48475#[inline(always)]
48476#[cfg(target_endian = "big")]
48477#[target_feature(enable = "neon")]
48478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48480#[cfg_attr(
48481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48482    assert_instr(nop)
48483)]
48484#[cfg_attr(
48485    not(target_arch = "arm"),
48486    stable(feature = "neon_intrinsics", since = "1.59.0")
48487)]
48488#[cfg_attr(
48489    target_arch = "arm",
48490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48491)]
48492pub fn vreinterpret_s8_u16(a: uint16x4_t) -> int8x8_t {
48493    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48494    unsafe {
48495        let ret_val: int8x8_t = transmute(a);
48496        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48497    }
48498}
48499#[doc = "Vector reinterpret cast operation"]
48500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u16)"]
48501#[inline(always)]
48502#[cfg(target_endian = "little")]
48503#[target_feature(enable = "neon")]
48504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48506#[cfg_attr(
48507    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48508    assert_instr(nop)
48509)]
48510#[cfg_attr(
48511    not(target_arch = "arm"),
48512    stable(feature = "neon_intrinsics", since = "1.59.0")
48513)]
48514#[cfg_attr(
48515    target_arch = "arm",
48516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48517)]
48518pub fn vreinterpret_s16_u16(a: uint16x4_t) -> int16x4_t {
48519    unsafe { transmute(a) }
48520}
48521#[doc = "Vector reinterpret cast operation"]
48522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u16)"]
48523#[inline(always)]
48524#[cfg(target_endian = "big")]
48525#[target_feature(enable = "neon")]
48526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48528#[cfg_attr(
48529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48530    assert_instr(nop)
48531)]
48532#[cfg_attr(
48533    not(target_arch = "arm"),
48534    stable(feature = "neon_intrinsics", since = "1.59.0")
48535)]
48536#[cfg_attr(
48537    target_arch = "arm",
48538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48539)]
48540pub fn vreinterpret_s16_u16(a: uint16x4_t) -> int16x4_t {
48541    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48542    unsafe {
48543        let ret_val: int16x4_t = transmute(a);
48544        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48545    }
48546}
48547#[doc = "Vector reinterpret cast operation"]
48548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u16)"]
48549#[inline(always)]
48550#[cfg(target_endian = "little")]
48551#[target_feature(enable = "neon")]
48552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48554#[cfg_attr(
48555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48556    assert_instr(nop)
48557)]
48558#[cfg_attr(
48559    not(target_arch = "arm"),
48560    stable(feature = "neon_intrinsics", since = "1.59.0")
48561)]
48562#[cfg_attr(
48563    target_arch = "arm",
48564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48565)]
48566pub fn vreinterpret_s32_u16(a: uint16x4_t) -> int32x2_t {
48567    unsafe { transmute(a) }
48568}
48569#[doc = "Vector reinterpret cast operation"]
48570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u16)"]
48571#[inline(always)]
48572#[cfg(target_endian = "big")]
48573#[target_feature(enable = "neon")]
48574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48576#[cfg_attr(
48577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48578    assert_instr(nop)
48579)]
48580#[cfg_attr(
48581    not(target_arch = "arm"),
48582    stable(feature = "neon_intrinsics", since = "1.59.0")
48583)]
48584#[cfg_attr(
48585    target_arch = "arm",
48586    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48587)]
48588pub fn vreinterpret_s32_u16(a: uint16x4_t) -> int32x2_t {
48589    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48590    unsafe {
48591        let ret_val: int32x2_t = transmute(a);
48592        simd_shuffle!(ret_val, ret_val, [1, 0])
48593    }
48594}
48595#[doc = "Vector reinterpret cast operation"]
48596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u16)"]
48597#[inline(always)]
48598#[cfg(target_endian = "little")]
48599#[target_feature(enable = "neon")]
48600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48601#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48602#[cfg_attr(
48603    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48604    assert_instr(nop)
48605)]
48606#[cfg_attr(
48607    not(target_arch = "arm"),
48608    stable(feature = "neon_intrinsics", since = "1.59.0")
48609)]
48610#[cfg_attr(
48611    target_arch = "arm",
48612    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48613)]
48614pub fn vreinterpret_s64_u16(a: uint16x4_t) -> int64x1_t {
48615    unsafe { transmute(a) }
48616}
48617#[doc = "Vector reinterpret cast operation"]
48618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u16)"]
48619#[inline(always)]
48620#[cfg(target_endian = "big")]
48621#[target_feature(enable = "neon")]
48622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48624#[cfg_attr(
48625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48626    assert_instr(nop)
48627)]
48628#[cfg_attr(
48629    not(target_arch = "arm"),
48630    stable(feature = "neon_intrinsics", since = "1.59.0")
48631)]
48632#[cfg_attr(
48633    target_arch = "arm",
48634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48635)]
48636pub fn vreinterpret_s64_u16(a: uint16x4_t) -> int64x1_t {
48637    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48638    unsafe { transmute(a) }
48639}
48640#[doc = "Vector reinterpret cast operation"]
48641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u16)"]
48642#[inline(always)]
48643#[cfg(target_endian = "little")]
48644#[target_feature(enable = "neon")]
48645#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48646#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48647#[cfg_attr(
48648    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48649    assert_instr(nop)
48650)]
48651#[cfg_attr(
48652    not(target_arch = "arm"),
48653    stable(feature = "neon_intrinsics", since = "1.59.0")
48654)]
48655#[cfg_attr(
48656    target_arch = "arm",
48657    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48658)]
48659pub fn vreinterpret_u8_u16(a: uint16x4_t) -> uint8x8_t {
48660    unsafe { transmute(a) }
48661}
48662#[doc = "Vector reinterpret cast operation"]
48663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u16)"]
48664#[inline(always)]
48665#[cfg(target_endian = "big")]
48666#[target_feature(enable = "neon")]
48667#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48668#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48669#[cfg_attr(
48670    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48671    assert_instr(nop)
48672)]
48673#[cfg_attr(
48674    not(target_arch = "arm"),
48675    stable(feature = "neon_intrinsics", since = "1.59.0")
48676)]
48677#[cfg_attr(
48678    target_arch = "arm",
48679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48680)]
48681pub fn vreinterpret_u8_u16(a: uint16x4_t) -> uint8x8_t {
48682    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48683    unsafe {
48684        let ret_val: uint8x8_t = transmute(a);
48685        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48686    }
48687}
48688#[doc = "Vector reinterpret cast operation"]
48689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u16)"]
48690#[inline(always)]
48691#[cfg(target_endian = "little")]
48692#[target_feature(enable = "neon")]
48693#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48694#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48695#[cfg_attr(
48696    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48697    assert_instr(nop)
48698)]
48699#[cfg_attr(
48700    not(target_arch = "arm"),
48701    stable(feature = "neon_intrinsics", since = "1.59.0")
48702)]
48703#[cfg_attr(
48704    target_arch = "arm",
48705    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48706)]
48707pub fn vreinterpret_u32_u16(a: uint16x4_t) -> uint32x2_t {
48708    unsafe { transmute(a) }
48709}
48710#[doc = "Vector reinterpret cast operation"]
48711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u16)"]
48712#[inline(always)]
48713#[cfg(target_endian = "big")]
48714#[target_feature(enable = "neon")]
48715#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48716#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48717#[cfg_attr(
48718    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48719    assert_instr(nop)
48720)]
48721#[cfg_attr(
48722    not(target_arch = "arm"),
48723    stable(feature = "neon_intrinsics", since = "1.59.0")
48724)]
48725#[cfg_attr(
48726    target_arch = "arm",
48727    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48728)]
48729pub fn vreinterpret_u32_u16(a: uint16x4_t) -> uint32x2_t {
48730    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48731    unsafe {
48732        let ret_val: uint32x2_t = transmute(a);
48733        simd_shuffle!(ret_val, ret_val, [1, 0])
48734    }
48735}
48736#[doc = "Vector reinterpret cast operation"]
48737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u16)"]
48738#[inline(always)]
48739#[cfg(target_endian = "little")]
48740#[target_feature(enable = "neon")]
48741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48742#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48743#[cfg_attr(
48744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48745    assert_instr(nop)
48746)]
48747#[cfg_attr(
48748    not(target_arch = "arm"),
48749    stable(feature = "neon_intrinsics", since = "1.59.0")
48750)]
48751#[cfg_attr(
48752    target_arch = "arm",
48753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48754)]
48755pub fn vreinterpret_u64_u16(a: uint16x4_t) -> uint64x1_t {
48756    unsafe { transmute(a) }
48757}
48758#[doc = "Vector reinterpret cast operation"]
48759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u16)"]
48760#[inline(always)]
48761#[cfg(target_endian = "big")]
48762#[target_feature(enable = "neon")]
48763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48765#[cfg_attr(
48766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48767    assert_instr(nop)
48768)]
48769#[cfg_attr(
48770    not(target_arch = "arm"),
48771    stable(feature = "neon_intrinsics", since = "1.59.0")
48772)]
48773#[cfg_attr(
48774    target_arch = "arm",
48775    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48776)]
48777pub fn vreinterpret_u64_u16(a: uint16x4_t) -> uint64x1_t {
48778    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48779    unsafe { transmute(a) }
48780}
48781#[doc = "Vector reinterpret cast operation"]
48782#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u16)"]
48783#[inline(always)]
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 vreinterpret_p8_u16(a: uint16x4_t) -> poly8x8_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/vreinterpret_p8_u16)"]
48805#[inline(always)]
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 vreinterpret_p8_u16(a: uint16x4_t) -> poly8x8_t {
48823    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48824    unsafe {
48825        let ret_val: poly8x8_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/vreinterpret_p16_u16)"]
48831#[inline(always)]
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 vreinterpret_p16_u16(a: uint16x4_t) -> poly16x4_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/vreinterpret_p16_u16)"]
48853#[inline(always)]
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 vreinterpret_p16_u16(a: uint16x4_t) -> poly16x4_t {
48871    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48872    unsafe {
48873        let ret_val: poly16x4_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_f32_u16)"]
48879#[inline(always)]
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_f32_u16(a: uint16x8_t) -> float32x4_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_f32_u16)"]
48901#[inline(always)]
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_f32_u16(a: uint16x8_t) -> float32x4_t {
48919    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
48920    unsafe {
48921        let ret_val: float32x4_t = transmute(a);
48922        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48923    }
48924}
48925#[doc = "Vector reinterpret cast operation"]
48926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u16)"]
48927#[inline(always)]
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_s8_u16(a: uint16x8_t) -> int8x16_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_s8_u16)"]
48949#[inline(always)]
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_s8_u16(a: uint16x8_t) -> int8x16_t {
48967    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
48968    unsafe {
48969        let ret_val: int8x16_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_s16_u16)"]
48979#[inline(always)]
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_s16_u16(a: uint16x8_t) -> int16x8_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_s16_u16)"]
49001#[inline(always)]
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_s16_u16(a: uint16x8_t) -> int16x8_t {
49019    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49020    unsafe {
49021        let ret_val: int16x8_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/vreinterpretq_s32_u16)"]
49027#[inline(always)]
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 vreinterpretq_s32_u16(a: uint16x8_t) -> int32x4_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/vreinterpretq_s32_u16)"]
49049#[inline(always)]
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 vreinterpretq_s32_u16(a: uint16x8_t) -> int32x4_t {
49067    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49068    unsafe {
49069        let ret_val: int32x4_t = transmute(a);
49070        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49071    }
49072}
49073#[doc = "Vector reinterpret cast operation"]
49074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u16)"]
49075#[inline(always)]
49076#[cfg(target_endian = "little")]
49077#[target_feature(enable = "neon")]
49078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49080#[cfg_attr(
49081    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49082    assert_instr(nop)
49083)]
49084#[cfg_attr(
49085    not(target_arch = "arm"),
49086    stable(feature = "neon_intrinsics", since = "1.59.0")
49087)]
49088#[cfg_attr(
49089    target_arch = "arm",
49090    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49091)]
49092pub fn vreinterpretq_s64_u16(a: uint16x8_t) -> int64x2_t {
49093    unsafe { transmute(a) }
49094}
49095#[doc = "Vector reinterpret cast operation"]
49096#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u16)"]
49097#[inline(always)]
49098#[cfg(target_endian = "big")]
49099#[target_feature(enable = "neon")]
49100#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49101#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49102#[cfg_attr(
49103    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49104    assert_instr(nop)
49105)]
49106#[cfg_attr(
49107    not(target_arch = "arm"),
49108    stable(feature = "neon_intrinsics", since = "1.59.0")
49109)]
49110#[cfg_attr(
49111    target_arch = "arm",
49112    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49113)]
49114pub fn vreinterpretq_s64_u16(a: uint16x8_t) -> int64x2_t {
49115    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49116    unsafe {
49117        let ret_val: int64x2_t = transmute(a);
49118        simd_shuffle!(ret_val, ret_val, [1, 0])
49119    }
49120}
49121#[doc = "Vector reinterpret cast operation"]
49122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u16)"]
49123#[inline(always)]
49124#[cfg(target_endian = "little")]
49125#[target_feature(enable = "neon")]
49126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49128#[cfg_attr(
49129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49130    assert_instr(nop)
49131)]
49132#[cfg_attr(
49133    not(target_arch = "arm"),
49134    stable(feature = "neon_intrinsics", since = "1.59.0")
49135)]
49136#[cfg_attr(
49137    target_arch = "arm",
49138    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49139)]
49140pub fn vreinterpretq_u8_u16(a: uint16x8_t) -> uint8x16_t {
49141    unsafe { transmute(a) }
49142}
49143#[doc = "Vector reinterpret cast operation"]
49144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u16)"]
49145#[inline(always)]
49146#[cfg(target_endian = "big")]
49147#[target_feature(enable = "neon")]
49148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49150#[cfg_attr(
49151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49152    assert_instr(nop)
49153)]
49154#[cfg_attr(
49155    not(target_arch = "arm"),
49156    stable(feature = "neon_intrinsics", since = "1.59.0")
49157)]
49158#[cfg_attr(
49159    target_arch = "arm",
49160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49161)]
49162pub fn vreinterpretq_u8_u16(a: uint16x8_t) -> uint8x16_t {
49163    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49164    unsafe {
49165        let ret_val: uint8x16_t = transmute(a);
49166        simd_shuffle!(
49167            ret_val,
49168            ret_val,
49169            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
49170        )
49171    }
49172}
49173#[doc = "Vector reinterpret cast operation"]
49174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u16)"]
49175#[inline(always)]
49176#[cfg(target_endian = "little")]
49177#[target_feature(enable = "neon")]
49178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49180#[cfg_attr(
49181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49182    assert_instr(nop)
49183)]
49184#[cfg_attr(
49185    not(target_arch = "arm"),
49186    stable(feature = "neon_intrinsics", since = "1.59.0")
49187)]
49188#[cfg_attr(
49189    target_arch = "arm",
49190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49191)]
49192pub fn vreinterpretq_u32_u16(a: uint16x8_t) -> uint32x4_t {
49193    unsafe { transmute(a) }
49194}
49195#[doc = "Vector reinterpret cast operation"]
49196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u16)"]
49197#[inline(always)]
49198#[cfg(target_endian = "big")]
49199#[target_feature(enable = "neon")]
49200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49201#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49202#[cfg_attr(
49203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49204    assert_instr(nop)
49205)]
49206#[cfg_attr(
49207    not(target_arch = "arm"),
49208    stable(feature = "neon_intrinsics", since = "1.59.0")
49209)]
49210#[cfg_attr(
49211    target_arch = "arm",
49212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49213)]
49214pub fn vreinterpretq_u32_u16(a: uint16x8_t) -> uint32x4_t {
49215    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49216    unsafe {
49217        let ret_val: uint32x4_t = transmute(a);
49218        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49219    }
49220}
49221#[doc = "Vector reinterpret cast operation"]
49222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u16)"]
49223#[inline(always)]
49224#[cfg(target_endian = "little")]
49225#[target_feature(enable = "neon")]
49226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49228#[cfg_attr(
49229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49230    assert_instr(nop)
49231)]
49232#[cfg_attr(
49233    not(target_arch = "arm"),
49234    stable(feature = "neon_intrinsics", since = "1.59.0")
49235)]
49236#[cfg_attr(
49237    target_arch = "arm",
49238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49239)]
49240pub fn vreinterpretq_u64_u16(a: uint16x8_t) -> uint64x2_t {
49241    unsafe { transmute(a) }
49242}
49243#[doc = "Vector reinterpret cast operation"]
49244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u16)"]
49245#[inline(always)]
49246#[cfg(target_endian = "big")]
49247#[target_feature(enable = "neon")]
49248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49250#[cfg_attr(
49251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49252    assert_instr(nop)
49253)]
49254#[cfg_attr(
49255    not(target_arch = "arm"),
49256    stable(feature = "neon_intrinsics", since = "1.59.0")
49257)]
49258#[cfg_attr(
49259    target_arch = "arm",
49260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49261)]
49262pub fn vreinterpretq_u64_u16(a: uint16x8_t) -> uint64x2_t {
49263    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49264    unsafe {
49265        let ret_val: uint64x2_t = transmute(a);
49266        simd_shuffle!(ret_val, ret_val, [1, 0])
49267    }
49268}
49269#[doc = "Vector reinterpret cast operation"]
49270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u16)"]
49271#[inline(always)]
49272#[cfg(target_endian = "little")]
49273#[target_feature(enable = "neon")]
49274#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49275#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49276#[cfg_attr(
49277    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49278    assert_instr(nop)
49279)]
49280#[cfg_attr(
49281    not(target_arch = "arm"),
49282    stable(feature = "neon_intrinsics", since = "1.59.0")
49283)]
49284#[cfg_attr(
49285    target_arch = "arm",
49286    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49287)]
49288pub fn vreinterpretq_p8_u16(a: uint16x8_t) -> poly8x16_t {
49289    unsafe { transmute(a) }
49290}
49291#[doc = "Vector reinterpret cast operation"]
49292#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u16)"]
49293#[inline(always)]
49294#[cfg(target_endian = "big")]
49295#[target_feature(enable = "neon")]
49296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49298#[cfg_attr(
49299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49300    assert_instr(nop)
49301)]
49302#[cfg_attr(
49303    not(target_arch = "arm"),
49304    stable(feature = "neon_intrinsics", since = "1.59.0")
49305)]
49306#[cfg_attr(
49307    target_arch = "arm",
49308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49309)]
49310pub fn vreinterpretq_p8_u16(a: uint16x8_t) -> poly8x16_t {
49311    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49312    unsafe {
49313        let ret_val: poly8x16_t = transmute(a);
49314        simd_shuffle!(
49315            ret_val,
49316            ret_val,
49317            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
49318        )
49319    }
49320}
49321#[doc = "Vector reinterpret cast operation"]
49322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u16)"]
49323#[inline(always)]
49324#[cfg(target_endian = "little")]
49325#[target_feature(enable = "neon")]
49326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49327#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49328#[cfg_attr(
49329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49330    assert_instr(nop)
49331)]
49332#[cfg_attr(
49333    not(target_arch = "arm"),
49334    stable(feature = "neon_intrinsics", since = "1.59.0")
49335)]
49336#[cfg_attr(
49337    target_arch = "arm",
49338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49339)]
49340pub fn vreinterpretq_p16_u16(a: uint16x8_t) -> poly16x8_t {
49341    unsafe { transmute(a) }
49342}
49343#[doc = "Vector reinterpret cast operation"]
49344#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u16)"]
49345#[inline(always)]
49346#[cfg(target_endian = "big")]
49347#[target_feature(enable = "neon")]
49348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49349#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49350#[cfg_attr(
49351    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49352    assert_instr(nop)
49353)]
49354#[cfg_attr(
49355    not(target_arch = "arm"),
49356    stable(feature = "neon_intrinsics", since = "1.59.0")
49357)]
49358#[cfg_attr(
49359    target_arch = "arm",
49360    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49361)]
49362pub fn vreinterpretq_p16_u16(a: uint16x8_t) -> poly16x8_t {
49363    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49364    unsafe {
49365        let ret_val: poly16x8_t = transmute(a);
49366        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49367    }
49368}
49369#[doc = "Vector reinterpret cast operation"]
49370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u32)"]
49371#[inline(always)]
49372#[cfg(target_endian = "little")]
49373#[target_feature(enable = "neon")]
49374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49376#[cfg_attr(
49377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49378    assert_instr(nop)
49379)]
49380#[cfg_attr(
49381    not(target_arch = "arm"),
49382    stable(feature = "neon_intrinsics", since = "1.59.0")
49383)]
49384#[cfg_attr(
49385    target_arch = "arm",
49386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49387)]
49388pub fn vreinterpret_f32_u32(a: uint32x2_t) -> float32x2_t {
49389    unsafe { transmute(a) }
49390}
49391#[doc = "Vector reinterpret cast operation"]
49392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u32)"]
49393#[inline(always)]
49394#[cfg(target_endian = "big")]
49395#[target_feature(enable = "neon")]
49396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49398#[cfg_attr(
49399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49400    assert_instr(nop)
49401)]
49402#[cfg_attr(
49403    not(target_arch = "arm"),
49404    stable(feature = "neon_intrinsics", since = "1.59.0")
49405)]
49406#[cfg_attr(
49407    target_arch = "arm",
49408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49409)]
49410pub fn vreinterpret_f32_u32(a: uint32x2_t) -> float32x2_t {
49411    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49412    unsafe {
49413        let ret_val: float32x2_t = transmute(a);
49414        simd_shuffle!(ret_val, ret_val, [1, 0])
49415    }
49416}
49417#[doc = "Vector reinterpret cast operation"]
49418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u32)"]
49419#[inline(always)]
49420#[cfg(target_endian = "little")]
49421#[target_feature(enable = "neon")]
49422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49424#[cfg_attr(
49425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49426    assert_instr(nop)
49427)]
49428#[cfg_attr(
49429    not(target_arch = "arm"),
49430    stable(feature = "neon_intrinsics", since = "1.59.0")
49431)]
49432#[cfg_attr(
49433    target_arch = "arm",
49434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49435)]
49436pub fn vreinterpret_s8_u32(a: uint32x2_t) -> int8x8_t {
49437    unsafe { transmute(a) }
49438}
49439#[doc = "Vector reinterpret cast operation"]
49440#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u32)"]
49441#[inline(always)]
49442#[cfg(target_endian = "big")]
49443#[target_feature(enable = "neon")]
49444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49446#[cfg_attr(
49447    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49448    assert_instr(nop)
49449)]
49450#[cfg_attr(
49451    not(target_arch = "arm"),
49452    stable(feature = "neon_intrinsics", since = "1.59.0")
49453)]
49454#[cfg_attr(
49455    target_arch = "arm",
49456    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49457)]
49458pub fn vreinterpret_s8_u32(a: uint32x2_t) -> int8x8_t {
49459    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49460    unsafe {
49461        let ret_val: int8x8_t = transmute(a);
49462        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49463    }
49464}
49465#[doc = "Vector reinterpret cast operation"]
49466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u32)"]
49467#[inline(always)]
49468#[cfg(target_endian = "little")]
49469#[target_feature(enable = "neon")]
49470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49472#[cfg_attr(
49473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49474    assert_instr(nop)
49475)]
49476#[cfg_attr(
49477    not(target_arch = "arm"),
49478    stable(feature = "neon_intrinsics", since = "1.59.0")
49479)]
49480#[cfg_attr(
49481    target_arch = "arm",
49482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49483)]
49484pub fn vreinterpret_s16_u32(a: uint32x2_t) -> int16x4_t {
49485    unsafe { transmute(a) }
49486}
49487#[doc = "Vector reinterpret cast operation"]
49488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u32)"]
49489#[inline(always)]
49490#[cfg(target_endian = "big")]
49491#[target_feature(enable = "neon")]
49492#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49493#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49494#[cfg_attr(
49495    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49496    assert_instr(nop)
49497)]
49498#[cfg_attr(
49499    not(target_arch = "arm"),
49500    stable(feature = "neon_intrinsics", since = "1.59.0")
49501)]
49502#[cfg_attr(
49503    target_arch = "arm",
49504    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49505)]
49506pub fn vreinterpret_s16_u32(a: uint32x2_t) -> int16x4_t {
49507    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49508    unsafe {
49509        let ret_val: int16x4_t = transmute(a);
49510        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49511    }
49512}
49513#[doc = "Vector reinterpret cast operation"]
49514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u32)"]
49515#[inline(always)]
49516#[cfg(target_endian = "little")]
49517#[target_feature(enable = "neon")]
49518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49519#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49520#[cfg_attr(
49521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49522    assert_instr(nop)
49523)]
49524#[cfg_attr(
49525    not(target_arch = "arm"),
49526    stable(feature = "neon_intrinsics", since = "1.59.0")
49527)]
49528#[cfg_attr(
49529    target_arch = "arm",
49530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49531)]
49532pub fn vreinterpret_s32_u32(a: uint32x2_t) -> int32x2_t {
49533    unsafe { transmute(a) }
49534}
49535#[doc = "Vector reinterpret cast operation"]
49536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u32)"]
49537#[inline(always)]
49538#[cfg(target_endian = "big")]
49539#[target_feature(enable = "neon")]
49540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49542#[cfg_attr(
49543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49544    assert_instr(nop)
49545)]
49546#[cfg_attr(
49547    not(target_arch = "arm"),
49548    stable(feature = "neon_intrinsics", since = "1.59.0")
49549)]
49550#[cfg_attr(
49551    target_arch = "arm",
49552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49553)]
49554pub fn vreinterpret_s32_u32(a: uint32x2_t) -> int32x2_t {
49555    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49556    unsafe {
49557        let ret_val: int32x2_t = transmute(a);
49558        simd_shuffle!(ret_val, ret_val, [1, 0])
49559    }
49560}
49561#[doc = "Vector reinterpret cast operation"]
49562#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u32)"]
49563#[inline(always)]
49564#[cfg(target_endian = "little")]
49565#[target_feature(enable = "neon")]
49566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49568#[cfg_attr(
49569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49570    assert_instr(nop)
49571)]
49572#[cfg_attr(
49573    not(target_arch = "arm"),
49574    stable(feature = "neon_intrinsics", since = "1.59.0")
49575)]
49576#[cfg_attr(
49577    target_arch = "arm",
49578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49579)]
49580pub fn vreinterpret_s64_u32(a: uint32x2_t) -> int64x1_t {
49581    unsafe { transmute(a) }
49582}
49583#[doc = "Vector reinterpret cast operation"]
49584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u32)"]
49585#[inline(always)]
49586#[cfg(target_endian = "big")]
49587#[target_feature(enable = "neon")]
49588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49589#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49590#[cfg_attr(
49591    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49592    assert_instr(nop)
49593)]
49594#[cfg_attr(
49595    not(target_arch = "arm"),
49596    stable(feature = "neon_intrinsics", since = "1.59.0")
49597)]
49598#[cfg_attr(
49599    target_arch = "arm",
49600    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49601)]
49602pub fn vreinterpret_s64_u32(a: uint32x2_t) -> int64x1_t {
49603    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49604    unsafe { transmute(a) }
49605}
49606#[doc = "Vector reinterpret cast operation"]
49607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u32)"]
49608#[inline(always)]
49609#[cfg(target_endian = "little")]
49610#[target_feature(enable = "neon")]
49611#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49612#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49613#[cfg_attr(
49614    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49615    assert_instr(nop)
49616)]
49617#[cfg_attr(
49618    not(target_arch = "arm"),
49619    stable(feature = "neon_intrinsics", since = "1.59.0")
49620)]
49621#[cfg_attr(
49622    target_arch = "arm",
49623    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49624)]
49625pub fn vreinterpret_u8_u32(a: uint32x2_t) -> uint8x8_t {
49626    unsafe { transmute(a) }
49627}
49628#[doc = "Vector reinterpret cast operation"]
49629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u32)"]
49630#[inline(always)]
49631#[cfg(target_endian = "big")]
49632#[target_feature(enable = "neon")]
49633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49634#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49635#[cfg_attr(
49636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49637    assert_instr(nop)
49638)]
49639#[cfg_attr(
49640    not(target_arch = "arm"),
49641    stable(feature = "neon_intrinsics", since = "1.59.0")
49642)]
49643#[cfg_attr(
49644    target_arch = "arm",
49645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49646)]
49647pub fn vreinterpret_u8_u32(a: uint32x2_t) -> uint8x8_t {
49648    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49649    unsafe {
49650        let ret_val: uint8x8_t = transmute(a);
49651        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49652    }
49653}
49654#[doc = "Vector reinterpret cast operation"]
49655#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u32)"]
49656#[inline(always)]
49657#[cfg(target_endian = "little")]
49658#[target_feature(enable = "neon")]
49659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49660#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49661#[cfg_attr(
49662    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49663    assert_instr(nop)
49664)]
49665#[cfg_attr(
49666    not(target_arch = "arm"),
49667    stable(feature = "neon_intrinsics", since = "1.59.0")
49668)]
49669#[cfg_attr(
49670    target_arch = "arm",
49671    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49672)]
49673pub fn vreinterpret_u16_u32(a: uint32x2_t) -> uint16x4_t {
49674    unsafe { transmute(a) }
49675}
49676#[doc = "Vector reinterpret cast operation"]
49677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u32)"]
49678#[inline(always)]
49679#[cfg(target_endian = "big")]
49680#[target_feature(enable = "neon")]
49681#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49682#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49683#[cfg_attr(
49684    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49685    assert_instr(nop)
49686)]
49687#[cfg_attr(
49688    not(target_arch = "arm"),
49689    stable(feature = "neon_intrinsics", since = "1.59.0")
49690)]
49691#[cfg_attr(
49692    target_arch = "arm",
49693    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49694)]
49695pub fn vreinterpret_u16_u32(a: uint32x2_t) -> uint16x4_t {
49696    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49697    unsafe {
49698        let ret_val: uint16x4_t = transmute(a);
49699        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49700    }
49701}
49702#[doc = "Vector reinterpret cast operation"]
49703#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u32)"]
49704#[inline(always)]
49705#[cfg(target_endian = "little")]
49706#[target_feature(enable = "neon")]
49707#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49708#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49709#[cfg_attr(
49710    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49711    assert_instr(nop)
49712)]
49713#[cfg_attr(
49714    not(target_arch = "arm"),
49715    stable(feature = "neon_intrinsics", since = "1.59.0")
49716)]
49717#[cfg_attr(
49718    target_arch = "arm",
49719    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49720)]
49721pub fn vreinterpret_u64_u32(a: uint32x2_t) -> uint64x1_t {
49722    unsafe { transmute(a) }
49723}
49724#[doc = "Vector reinterpret cast operation"]
49725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u32)"]
49726#[inline(always)]
49727#[cfg(target_endian = "big")]
49728#[target_feature(enable = "neon")]
49729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49730#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49731#[cfg_attr(
49732    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49733    assert_instr(nop)
49734)]
49735#[cfg_attr(
49736    not(target_arch = "arm"),
49737    stable(feature = "neon_intrinsics", since = "1.59.0")
49738)]
49739#[cfg_attr(
49740    target_arch = "arm",
49741    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49742)]
49743pub fn vreinterpret_u64_u32(a: uint32x2_t) -> uint64x1_t {
49744    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49745    unsafe { transmute(a) }
49746}
49747#[doc = "Vector reinterpret cast operation"]
49748#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u32)"]
49749#[inline(always)]
49750#[cfg(target_endian = "little")]
49751#[target_feature(enable = "neon")]
49752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49753#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49754#[cfg_attr(
49755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49756    assert_instr(nop)
49757)]
49758#[cfg_attr(
49759    not(target_arch = "arm"),
49760    stable(feature = "neon_intrinsics", since = "1.59.0")
49761)]
49762#[cfg_attr(
49763    target_arch = "arm",
49764    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49765)]
49766pub fn vreinterpret_p8_u32(a: uint32x2_t) -> poly8x8_t {
49767    unsafe { transmute(a) }
49768}
49769#[doc = "Vector reinterpret cast operation"]
49770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u32)"]
49771#[inline(always)]
49772#[cfg(target_endian = "big")]
49773#[target_feature(enable = "neon")]
49774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49775#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49776#[cfg_attr(
49777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49778    assert_instr(nop)
49779)]
49780#[cfg_attr(
49781    not(target_arch = "arm"),
49782    stable(feature = "neon_intrinsics", since = "1.59.0")
49783)]
49784#[cfg_attr(
49785    target_arch = "arm",
49786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49787)]
49788pub fn vreinterpret_p8_u32(a: uint32x2_t) -> poly8x8_t {
49789    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49790    unsafe {
49791        let ret_val: poly8x8_t = transmute(a);
49792        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49793    }
49794}
49795#[doc = "Vector reinterpret cast operation"]
49796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u32)"]
49797#[inline(always)]
49798#[cfg(target_endian = "little")]
49799#[target_feature(enable = "neon")]
49800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49802#[cfg_attr(
49803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49804    assert_instr(nop)
49805)]
49806#[cfg_attr(
49807    not(target_arch = "arm"),
49808    stable(feature = "neon_intrinsics", since = "1.59.0")
49809)]
49810#[cfg_attr(
49811    target_arch = "arm",
49812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49813)]
49814pub fn vreinterpret_p16_u32(a: uint32x2_t) -> poly16x4_t {
49815    unsafe { transmute(a) }
49816}
49817#[doc = "Vector reinterpret cast operation"]
49818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u32)"]
49819#[inline(always)]
49820#[cfg(target_endian = "big")]
49821#[target_feature(enable = "neon")]
49822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49824#[cfg_attr(
49825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49826    assert_instr(nop)
49827)]
49828#[cfg_attr(
49829    not(target_arch = "arm"),
49830    stable(feature = "neon_intrinsics", since = "1.59.0")
49831)]
49832#[cfg_attr(
49833    target_arch = "arm",
49834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49835)]
49836pub fn vreinterpret_p16_u32(a: uint32x2_t) -> poly16x4_t {
49837    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49838    unsafe {
49839        let ret_val: poly16x4_t = transmute(a);
49840        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49841    }
49842}
49843#[doc = "Vector reinterpret cast operation"]
49844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u32)"]
49845#[inline(always)]
49846#[cfg(target_endian = "little")]
49847#[target_feature(enable = "neon")]
49848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49850#[cfg_attr(
49851    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49852    assert_instr(nop)
49853)]
49854#[cfg_attr(
49855    not(target_arch = "arm"),
49856    stable(feature = "neon_intrinsics", since = "1.59.0")
49857)]
49858#[cfg_attr(
49859    target_arch = "arm",
49860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49861)]
49862pub fn vreinterpretq_f32_u32(a: uint32x4_t) -> float32x4_t {
49863    unsafe { transmute(a) }
49864}
49865#[doc = "Vector reinterpret cast operation"]
49866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u32)"]
49867#[inline(always)]
49868#[cfg(target_endian = "big")]
49869#[target_feature(enable = "neon")]
49870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49872#[cfg_attr(
49873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49874    assert_instr(nop)
49875)]
49876#[cfg_attr(
49877    not(target_arch = "arm"),
49878    stable(feature = "neon_intrinsics", since = "1.59.0")
49879)]
49880#[cfg_attr(
49881    target_arch = "arm",
49882    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49883)]
49884pub fn vreinterpretq_f32_u32(a: uint32x4_t) -> float32x4_t {
49885    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
49886    unsafe {
49887        let ret_val: float32x4_t = transmute(a);
49888        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49889    }
49890}
49891#[doc = "Vector reinterpret cast operation"]
49892#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u32)"]
49893#[inline(always)]
49894#[cfg(target_endian = "little")]
49895#[target_feature(enable = "neon")]
49896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49898#[cfg_attr(
49899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49900    assert_instr(nop)
49901)]
49902#[cfg_attr(
49903    not(target_arch = "arm"),
49904    stable(feature = "neon_intrinsics", since = "1.59.0")
49905)]
49906#[cfg_attr(
49907    target_arch = "arm",
49908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49909)]
49910pub fn vreinterpretq_s8_u32(a: uint32x4_t) -> int8x16_t {
49911    unsafe { transmute(a) }
49912}
49913#[doc = "Vector reinterpret cast operation"]
49914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u32)"]
49915#[inline(always)]
49916#[cfg(target_endian = "big")]
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_s8_u32(a: uint32x4_t) -> int8x16_t {
49933    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
49934    unsafe {
49935        let ret_val: int8x16_t = transmute(a);
49936        simd_shuffle!(
49937            ret_val,
49938            ret_val,
49939            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
49940        )
49941    }
49942}
49943#[doc = "Vector reinterpret cast operation"]
49944#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u32)"]
49945#[inline(always)]
49946#[cfg(target_endian = "little")]
49947#[target_feature(enable = "neon")]
49948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49950#[cfg_attr(
49951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49952    assert_instr(nop)
49953)]
49954#[cfg_attr(
49955    not(target_arch = "arm"),
49956    stable(feature = "neon_intrinsics", since = "1.59.0")
49957)]
49958#[cfg_attr(
49959    target_arch = "arm",
49960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49961)]
49962pub fn vreinterpretq_s16_u32(a: uint32x4_t) -> int16x8_t {
49963    unsafe { transmute(a) }
49964}
49965#[doc = "Vector reinterpret cast operation"]
49966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u32)"]
49967#[inline(always)]
49968#[cfg(target_endian = "big")]
49969#[target_feature(enable = "neon")]
49970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49972#[cfg_attr(
49973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49974    assert_instr(nop)
49975)]
49976#[cfg_attr(
49977    not(target_arch = "arm"),
49978    stable(feature = "neon_intrinsics", since = "1.59.0")
49979)]
49980#[cfg_attr(
49981    target_arch = "arm",
49982    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49983)]
49984pub fn vreinterpretq_s16_u32(a: uint32x4_t) -> int16x8_t {
49985    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
49986    unsafe {
49987        let ret_val: int16x8_t = transmute(a);
49988        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49989    }
49990}
49991#[doc = "Vector reinterpret cast operation"]
49992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u32)"]
49993#[inline(always)]
49994#[cfg(target_endian = "little")]
49995#[target_feature(enable = "neon")]
49996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49998#[cfg_attr(
49999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50000    assert_instr(nop)
50001)]
50002#[cfg_attr(
50003    not(target_arch = "arm"),
50004    stable(feature = "neon_intrinsics", since = "1.59.0")
50005)]
50006#[cfg_attr(
50007    target_arch = "arm",
50008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50009)]
50010pub fn vreinterpretq_s32_u32(a: uint32x4_t) -> int32x4_t {
50011    unsafe { transmute(a) }
50012}
50013#[doc = "Vector reinterpret cast operation"]
50014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u32)"]
50015#[inline(always)]
50016#[cfg(target_endian = "big")]
50017#[target_feature(enable = "neon")]
50018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50020#[cfg_attr(
50021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50022    assert_instr(nop)
50023)]
50024#[cfg_attr(
50025    not(target_arch = "arm"),
50026    stable(feature = "neon_intrinsics", since = "1.59.0")
50027)]
50028#[cfg_attr(
50029    target_arch = "arm",
50030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50031)]
50032pub fn vreinterpretq_s32_u32(a: uint32x4_t) -> int32x4_t {
50033    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50034    unsafe {
50035        let ret_val: int32x4_t = transmute(a);
50036        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50037    }
50038}
50039#[doc = "Vector reinterpret cast operation"]
50040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u32)"]
50041#[inline(always)]
50042#[cfg(target_endian = "little")]
50043#[target_feature(enable = "neon")]
50044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50045#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50046#[cfg_attr(
50047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50048    assert_instr(nop)
50049)]
50050#[cfg_attr(
50051    not(target_arch = "arm"),
50052    stable(feature = "neon_intrinsics", since = "1.59.0")
50053)]
50054#[cfg_attr(
50055    target_arch = "arm",
50056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50057)]
50058pub fn vreinterpretq_s64_u32(a: uint32x4_t) -> int64x2_t {
50059    unsafe { transmute(a) }
50060}
50061#[doc = "Vector reinterpret cast operation"]
50062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u32)"]
50063#[inline(always)]
50064#[cfg(target_endian = "big")]
50065#[target_feature(enable = "neon")]
50066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50068#[cfg_attr(
50069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50070    assert_instr(nop)
50071)]
50072#[cfg_attr(
50073    not(target_arch = "arm"),
50074    stable(feature = "neon_intrinsics", since = "1.59.0")
50075)]
50076#[cfg_attr(
50077    target_arch = "arm",
50078    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50079)]
50080pub fn vreinterpretq_s64_u32(a: uint32x4_t) -> int64x2_t {
50081    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50082    unsafe {
50083        let ret_val: int64x2_t = transmute(a);
50084        simd_shuffle!(ret_val, ret_val, [1, 0])
50085    }
50086}
50087#[doc = "Vector reinterpret cast operation"]
50088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u32)"]
50089#[inline(always)]
50090#[cfg(target_endian = "little")]
50091#[target_feature(enable = "neon")]
50092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50093#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50094#[cfg_attr(
50095    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50096    assert_instr(nop)
50097)]
50098#[cfg_attr(
50099    not(target_arch = "arm"),
50100    stable(feature = "neon_intrinsics", since = "1.59.0")
50101)]
50102#[cfg_attr(
50103    target_arch = "arm",
50104    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50105)]
50106pub fn vreinterpretq_u8_u32(a: uint32x4_t) -> uint8x16_t {
50107    unsafe { transmute(a) }
50108}
50109#[doc = "Vector reinterpret cast operation"]
50110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u32)"]
50111#[inline(always)]
50112#[cfg(target_endian = "big")]
50113#[target_feature(enable = "neon")]
50114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50116#[cfg_attr(
50117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50118    assert_instr(nop)
50119)]
50120#[cfg_attr(
50121    not(target_arch = "arm"),
50122    stable(feature = "neon_intrinsics", since = "1.59.0")
50123)]
50124#[cfg_attr(
50125    target_arch = "arm",
50126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50127)]
50128pub fn vreinterpretq_u8_u32(a: uint32x4_t) -> uint8x16_t {
50129    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50130    unsafe {
50131        let ret_val: uint8x16_t = transmute(a);
50132        simd_shuffle!(
50133            ret_val,
50134            ret_val,
50135            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
50136        )
50137    }
50138}
50139#[doc = "Vector reinterpret cast operation"]
50140#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u32)"]
50141#[inline(always)]
50142#[cfg(target_endian = "little")]
50143#[target_feature(enable = "neon")]
50144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50146#[cfg_attr(
50147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50148    assert_instr(nop)
50149)]
50150#[cfg_attr(
50151    not(target_arch = "arm"),
50152    stable(feature = "neon_intrinsics", since = "1.59.0")
50153)]
50154#[cfg_attr(
50155    target_arch = "arm",
50156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50157)]
50158pub fn vreinterpretq_u16_u32(a: uint32x4_t) -> uint16x8_t {
50159    unsafe { transmute(a) }
50160}
50161#[doc = "Vector reinterpret cast operation"]
50162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u32)"]
50163#[inline(always)]
50164#[cfg(target_endian = "big")]
50165#[target_feature(enable = "neon")]
50166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50167#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50168#[cfg_attr(
50169    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50170    assert_instr(nop)
50171)]
50172#[cfg_attr(
50173    not(target_arch = "arm"),
50174    stable(feature = "neon_intrinsics", since = "1.59.0")
50175)]
50176#[cfg_attr(
50177    target_arch = "arm",
50178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50179)]
50180pub fn vreinterpretq_u16_u32(a: uint32x4_t) -> uint16x8_t {
50181    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50182    unsafe {
50183        let ret_val: uint16x8_t = transmute(a);
50184        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50185    }
50186}
50187#[doc = "Vector reinterpret cast operation"]
50188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u32)"]
50189#[inline(always)]
50190#[cfg(target_endian = "little")]
50191#[target_feature(enable = "neon")]
50192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50194#[cfg_attr(
50195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50196    assert_instr(nop)
50197)]
50198#[cfg_attr(
50199    not(target_arch = "arm"),
50200    stable(feature = "neon_intrinsics", since = "1.59.0")
50201)]
50202#[cfg_attr(
50203    target_arch = "arm",
50204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50205)]
50206pub fn vreinterpretq_u64_u32(a: uint32x4_t) -> uint64x2_t {
50207    unsafe { transmute(a) }
50208}
50209#[doc = "Vector reinterpret cast operation"]
50210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u32)"]
50211#[inline(always)]
50212#[cfg(target_endian = "big")]
50213#[target_feature(enable = "neon")]
50214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50216#[cfg_attr(
50217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50218    assert_instr(nop)
50219)]
50220#[cfg_attr(
50221    not(target_arch = "arm"),
50222    stable(feature = "neon_intrinsics", since = "1.59.0")
50223)]
50224#[cfg_attr(
50225    target_arch = "arm",
50226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50227)]
50228pub fn vreinterpretq_u64_u32(a: uint32x4_t) -> uint64x2_t {
50229    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50230    unsafe {
50231        let ret_val: uint64x2_t = transmute(a);
50232        simd_shuffle!(ret_val, ret_val, [1, 0])
50233    }
50234}
50235#[doc = "Vector reinterpret cast operation"]
50236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u32)"]
50237#[inline(always)]
50238#[cfg(target_endian = "little")]
50239#[target_feature(enable = "neon")]
50240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50242#[cfg_attr(
50243    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50244    assert_instr(nop)
50245)]
50246#[cfg_attr(
50247    not(target_arch = "arm"),
50248    stable(feature = "neon_intrinsics", since = "1.59.0")
50249)]
50250#[cfg_attr(
50251    target_arch = "arm",
50252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50253)]
50254pub fn vreinterpretq_p8_u32(a: uint32x4_t) -> poly8x16_t {
50255    unsafe { transmute(a) }
50256}
50257#[doc = "Vector reinterpret cast operation"]
50258#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u32)"]
50259#[inline(always)]
50260#[cfg(target_endian = "big")]
50261#[target_feature(enable = "neon")]
50262#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50263#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50264#[cfg_attr(
50265    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50266    assert_instr(nop)
50267)]
50268#[cfg_attr(
50269    not(target_arch = "arm"),
50270    stable(feature = "neon_intrinsics", since = "1.59.0")
50271)]
50272#[cfg_attr(
50273    target_arch = "arm",
50274    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50275)]
50276pub fn vreinterpretq_p8_u32(a: uint32x4_t) -> poly8x16_t {
50277    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50278    unsafe {
50279        let ret_val: poly8x16_t = transmute(a);
50280        simd_shuffle!(
50281            ret_val,
50282            ret_val,
50283            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
50284        )
50285    }
50286}
50287#[doc = "Vector reinterpret cast operation"]
50288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u32)"]
50289#[inline(always)]
50290#[cfg(target_endian = "little")]
50291#[target_feature(enable = "neon")]
50292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50294#[cfg_attr(
50295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50296    assert_instr(nop)
50297)]
50298#[cfg_attr(
50299    not(target_arch = "arm"),
50300    stable(feature = "neon_intrinsics", since = "1.59.0")
50301)]
50302#[cfg_attr(
50303    target_arch = "arm",
50304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50305)]
50306pub fn vreinterpretq_p16_u32(a: uint32x4_t) -> poly16x8_t {
50307    unsafe { transmute(a) }
50308}
50309#[doc = "Vector reinterpret cast operation"]
50310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u32)"]
50311#[inline(always)]
50312#[cfg(target_endian = "big")]
50313#[target_feature(enable = "neon")]
50314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50315#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50316#[cfg_attr(
50317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50318    assert_instr(nop)
50319)]
50320#[cfg_attr(
50321    not(target_arch = "arm"),
50322    stable(feature = "neon_intrinsics", since = "1.59.0")
50323)]
50324#[cfg_attr(
50325    target_arch = "arm",
50326    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50327)]
50328pub fn vreinterpretq_p16_u32(a: uint32x4_t) -> poly16x8_t {
50329    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50330    unsafe {
50331        let ret_val: poly16x8_t = transmute(a);
50332        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50333    }
50334}
50335#[doc = "Vector reinterpret cast operation"]
50336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u64)"]
50337#[inline(always)]
50338#[cfg(target_endian = "little")]
50339#[target_feature(enable = "neon")]
50340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50342#[cfg_attr(
50343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50344    assert_instr(nop)
50345)]
50346#[cfg_attr(
50347    not(target_arch = "arm"),
50348    stable(feature = "neon_intrinsics", since = "1.59.0")
50349)]
50350#[cfg_attr(
50351    target_arch = "arm",
50352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50353)]
50354pub fn vreinterpret_f32_u64(a: uint64x1_t) -> float32x2_t {
50355    unsafe { transmute(a) }
50356}
50357#[doc = "Vector reinterpret cast operation"]
50358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u64)"]
50359#[inline(always)]
50360#[cfg(target_endian = "big")]
50361#[target_feature(enable = "neon")]
50362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50364#[cfg_attr(
50365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50366    assert_instr(nop)
50367)]
50368#[cfg_attr(
50369    not(target_arch = "arm"),
50370    stable(feature = "neon_intrinsics", since = "1.59.0")
50371)]
50372#[cfg_attr(
50373    target_arch = "arm",
50374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50375)]
50376pub fn vreinterpret_f32_u64(a: uint64x1_t) -> float32x2_t {
50377    unsafe {
50378        let ret_val: float32x2_t = transmute(a);
50379        simd_shuffle!(ret_val, ret_val, [1, 0])
50380    }
50381}
50382#[doc = "Vector reinterpret cast operation"]
50383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u64)"]
50384#[inline(always)]
50385#[cfg(target_endian = "little")]
50386#[target_feature(enable = "neon")]
50387#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50388#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50389#[cfg_attr(
50390    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50391    assert_instr(nop)
50392)]
50393#[cfg_attr(
50394    not(target_arch = "arm"),
50395    stable(feature = "neon_intrinsics", since = "1.59.0")
50396)]
50397#[cfg_attr(
50398    target_arch = "arm",
50399    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50400)]
50401pub fn vreinterpret_s8_u64(a: uint64x1_t) -> int8x8_t {
50402    unsafe { transmute(a) }
50403}
50404#[doc = "Vector reinterpret cast operation"]
50405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u64)"]
50406#[inline(always)]
50407#[cfg(target_endian = "big")]
50408#[target_feature(enable = "neon")]
50409#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50410#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50411#[cfg_attr(
50412    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50413    assert_instr(nop)
50414)]
50415#[cfg_attr(
50416    not(target_arch = "arm"),
50417    stable(feature = "neon_intrinsics", since = "1.59.0")
50418)]
50419#[cfg_attr(
50420    target_arch = "arm",
50421    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50422)]
50423pub fn vreinterpret_s8_u64(a: uint64x1_t) -> int8x8_t {
50424    unsafe {
50425        let ret_val: int8x8_t = transmute(a);
50426        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50427    }
50428}
50429#[doc = "Vector reinterpret cast operation"]
50430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u64)"]
50431#[inline(always)]
50432#[cfg(target_endian = "little")]
50433#[target_feature(enable = "neon")]
50434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50435#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50436#[cfg_attr(
50437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50438    assert_instr(nop)
50439)]
50440#[cfg_attr(
50441    not(target_arch = "arm"),
50442    stable(feature = "neon_intrinsics", since = "1.59.0")
50443)]
50444#[cfg_attr(
50445    target_arch = "arm",
50446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50447)]
50448pub fn vreinterpret_s16_u64(a: uint64x1_t) -> int16x4_t {
50449    unsafe { transmute(a) }
50450}
50451#[doc = "Vector reinterpret cast operation"]
50452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u64)"]
50453#[inline(always)]
50454#[cfg(target_endian = "big")]
50455#[target_feature(enable = "neon")]
50456#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50457#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50458#[cfg_attr(
50459    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50460    assert_instr(nop)
50461)]
50462#[cfg_attr(
50463    not(target_arch = "arm"),
50464    stable(feature = "neon_intrinsics", since = "1.59.0")
50465)]
50466#[cfg_attr(
50467    target_arch = "arm",
50468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50469)]
50470pub fn vreinterpret_s16_u64(a: uint64x1_t) -> int16x4_t {
50471    unsafe {
50472        let ret_val: int16x4_t = transmute(a);
50473        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50474    }
50475}
50476#[doc = "Vector reinterpret cast operation"]
50477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u64)"]
50478#[inline(always)]
50479#[cfg(target_endian = "little")]
50480#[target_feature(enable = "neon")]
50481#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50482#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50483#[cfg_attr(
50484    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50485    assert_instr(nop)
50486)]
50487#[cfg_attr(
50488    not(target_arch = "arm"),
50489    stable(feature = "neon_intrinsics", since = "1.59.0")
50490)]
50491#[cfg_attr(
50492    target_arch = "arm",
50493    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50494)]
50495pub fn vreinterpret_s32_u64(a: uint64x1_t) -> int32x2_t {
50496    unsafe { transmute(a) }
50497}
50498#[doc = "Vector reinterpret cast operation"]
50499#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u64)"]
50500#[inline(always)]
50501#[cfg(target_endian = "big")]
50502#[target_feature(enable = "neon")]
50503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50505#[cfg_attr(
50506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50507    assert_instr(nop)
50508)]
50509#[cfg_attr(
50510    not(target_arch = "arm"),
50511    stable(feature = "neon_intrinsics", since = "1.59.0")
50512)]
50513#[cfg_attr(
50514    target_arch = "arm",
50515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50516)]
50517pub fn vreinterpret_s32_u64(a: uint64x1_t) -> int32x2_t {
50518    unsafe {
50519        let ret_val: int32x2_t = transmute(a);
50520        simd_shuffle!(ret_val, ret_val, [1, 0])
50521    }
50522}
50523#[doc = "Vector reinterpret cast operation"]
50524#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u64)"]
50525#[inline(always)]
50526#[target_feature(enable = "neon")]
50527#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50528#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50529#[cfg_attr(
50530    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50531    assert_instr(nop)
50532)]
50533#[cfg_attr(
50534    not(target_arch = "arm"),
50535    stable(feature = "neon_intrinsics", since = "1.59.0")
50536)]
50537#[cfg_attr(
50538    target_arch = "arm",
50539    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50540)]
50541pub fn vreinterpret_s64_u64(a: uint64x1_t) -> int64x1_t {
50542    unsafe { transmute(a) }
50543}
50544#[doc = "Vector reinterpret cast operation"]
50545#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u64)"]
50546#[inline(always)]
50547#[cfg(target_endian = "little")]
50548#[target_feature(enable = "neon")]
50549#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50550#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50551#[cfg_attr(
50552    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50553    assert_instr(nop)
50554)]
50555#[cfg_attr(
50556    not(target_arch = "arm"),
50557    stable(feature = "neon_intrinsics", since = "1.59.0")
50558)]
50559#[cfg_attr(
50560    target_arch = "arm",
50561    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50562)]
50563pub fn vreinterpret_u8_u64(a: uint64x1_t) -> uint8x8_t {
50564    unsafe { transmute(a) }
50565}
50566#[doc = "Vector reinterpret cast operation"]
50567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u64)"]
50568#[inline(always)]
50569#[cfg(target_endian = "big")]
50570#[target_feature(enable = "neon")]
50571#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50572#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50573#[cfg_attr(
50574    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50575    assert_instr(nop)
50576)]
50577#[cfg_attr(
50578    not(target_arch = "arm"),
50579    stable(feature = "neon_intrinsics", since = "1.59.0")
50580)]
50581#[cfg_attr(
50582    target_arch = "arm",
50583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50584)]
50585pub fn vreinterpret_u8_u64(a: uint64x1_t) -> uint8x8_t {
50586    unsafe {
50587        let ret_val: uint8x8_t = transmute(a);
50588        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50589    }
50590}
50591#[doc = "Vector reinterpret cast operation"]
50592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u64)"]
50593#[inline(always)]
50594#[cfg(target_endian = "little")]
50595#[target_feature(enable = "neon")]
50596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50598#[cfg_attr(
50599    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50600    assert_instr(nop)
50601)]
50602#[cfg_attr(
50603    not(target_arch = "arm"),
50604    stable(feature = "neon_intrinsics", since = "1.59.0")
50605)]
50606#[cfg_attr(
50607    target_arch = "arm",
50608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50609)]
50610pub fn vreinterpret_u16_u64(a: uint64x1_t) -> uint16x4_t {
50611    unsafe { transmute(a) }
50612}
50613#[doc = "Vector reinterpret cast operation"]
50614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u64)"]
50615#[inline(always)]
50616#[cfg(target_endian = "big")]
50617#[target_feature(enable = "neon")]
50618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50620#[cfg_attr(
50621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50622    assert_instr(nop)
50623)]
50624#[cfg_attr(
50625    not(target_arch = "arm"),
50626    stable(feature = "neon_intrinsics", since = "1.59.0")
50627)]
50628#[cfg_attr(
50629    target_arch = "arm",
50630    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50631)]
50632pub fn vreinterpret_u16_u64(a: uint64x1_t) -> uint16x4_t {
50633    unsafe {
50634        let ret_val: uint16x4_t = transmute(a);
50635        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50636    }
50637}
50638#[doc = "Vector reinterpret cast operation"]
50639#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u64)"]
50640#[inline(always)]
50641#[cfg(target_endian = "little")]
50642#[target_feature(enable = "neon")]
50643#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50644#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50645#[cfg_attr(
50646    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50647    assert_instr(nop)
50648)]
50649#[cfg_attr(
50650    not(target_arch = "arm"),
50651    stable(feature = "neon_intrinsics", since = "1.59.0")
50652)]
50653#[cfg_attr(
50654    target_arch = "arm",
50655    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50656)]
50657pub fn vreinterpret_u32_u64(a: uint64x1_t) -> uint32x2_t {
50658    unsafe { transmute(a) }
50659}
50660#[doc = "Vector reinterpret cast operation"]
50661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u64)"]
50662#[inline(always)]
50663#[cfg(target_endian = "big")]
50664#[target_feature(enable = "neon")]
50665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50666#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50667#[cfg_attr(
50668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50669    assert_instr(nop)
50670)]
50671#[cfg_attr(
50672    not(target_arch = "arm"),
50673    stable(feature = "neon_intrinsics", since = "1.59.0")
50674)]
50675#[cfg_attr(
50676    target_arch = "arm",
50677    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50678)]
50679pub fn vreinterpret_u32_u64(a: uint64x1_t) -> uint32x2_t {
50680    unsafe {
50681        let ret_val: uint32x2_t = transmute(a);
50682        simd_shuffle!(ret_val, ret_val, [1, 0])
50683    }
50684}
50685#[doc = "Vector reinterpret cast operation"]
50686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u64)"]
50687#[inline(always)]
50688#[cfg(target_endian = "little")]
50689#[target_feature(enable = "neon")]
50690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50691#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50692#[cfg_attr(
50693    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50694    assert_instr(nop)
50695)]
50696#[cfg_attr(
50697    not(target_arch = "arm"),
50698    stable(feature = "neon_intrinsics", since = "1.59.0")
50699)]
50700#[cfg_attr(
50701    target_arch = "arm",
50702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50703)]
50704pub fn vreinterpret_p8_u64(a: uint64x1_t) -> poly8x8_t {
50705    unsafe { transmute(a) }
50706}
50707#[doc = "Vector reinterpret cast operation"]
50708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u64)"]
50709#[inline(always)]
50710#[cfg(target_endian = "big")]
50711#[target_feature(enable = "neon")]
50712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50714#[cfg_attr(
50715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50716    assert_instr(nop)
50717)]
50718#[cfg_attr(
50719    not(target_arch = "arm"),
50720    stable(feature = "neon_intrinsics", since = "1.59.0")
50721)]
50722#[cfg_attr(
50723    target_arch = "arm",
50724    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50725)]
50726pub fn vreinterpret_p8_u64(a: uint64x1_t) -> poly8x8_t {
50727    unsafe {
50728        let ret_val: poly8x8_t = transmute(a);
50729        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50730    }
50731}
50732#[doc = "Vector reinterpret cast operation"]
50733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u64)"]
50734#[inline(always)]
50735#[cfg(target_endian = "little")]
50736#[target_feature(enable = "neon")]
50737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50738#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50739#[cfg_attr(
50740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50741    assert_instr(nop)
50742)]
50743#[cfg_attr(
50744    not(target_arch = "arm"),
50745    stable(feature = "neon_intrinsics", since = "1.59.0")
50746)]
50747#[cfg_attr(
50748    target_arch = "arm",
50749    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50750)]
50751pub fn vreinterpret_p16_u64(a: uint64x1_t) -> poly16x4_t {
50752    unsafe { transmute(a) }
50753}
50754#[doc = "Vector reinterpret cast operation"]
50755#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u64)"]
50756#[inline(always)]
50757#[cfg(target_endian = "big")]
50758#[target_feature(enable = "neon")]
50759#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50760#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50761#[cfg_attr(
50762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50763    assert_instr(nop)
50764)]
50765#[cfg_attr(
50766    not(target_arch = "arm"),
50767    stable(feature = "neon_intrinsics", since = "1.59.0")
50768)]
50769#[cfg_attr(
50770    target_arch = "arm",
50771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50772)]
50773pub fn vreinterpret_p16_u64(a: uint64x1_t) -> poly16x4_t {
50774    unsafe {
50775        let ret_val: poly16x4_t = transmute(a);
50776        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50777    }
50778}
50779#[doc = "Vector reinterpret cast operation"]
50780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u64)"]
50781#[inline(always)]
50782#[cfg(target_endian = "little")]
50783#[target_feature(enable = "neon")]
50784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50785#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50786#[cfg_attr(
50787    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50788    assert_instr(nop)
50789)]
50790#[cfg_attr(
50791    not(target_arch = "arm"),
50792    stable(feature = "neon_intrinsics", since = "1.59.0")
50793)]
50794#[cfg_attr(
50795    target_arch = "arm",
50796    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50797)]
50798pub fn vreinterpretq_f32_u64(a: uint64x2_t) -> float32x4_t {
50799    unsafe { transmute(a) }
50800}
50801#[doc = "Vector reinterpret cast operation"]
50802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u64)"]
50803#[inline(always)]
50804#[cfg(target_endian = "big")]
50805#[target_feature(enable = "neon")]
50806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50807#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50808#[cfg_attr(
50809    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50810    assert_instr(nop)
50811)]
50812#[cfg_attr(
50813    not(target_arch = "arm"),
50814    stable(feature = "neon_intrinsics", since = "1.59.0")
50815)]
50816#[cfg_attr(
50817    target_arch = "arm",
50818    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50819)]
50820pub fn vreinterpretq_f32_u64(a: uint64x2_t) -> float32x4_t {
50821    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
50822    unsafe {
50823        let ret_val: float32x4_t = transmute(a);
50824        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50825    }
50826}
50827#[doc = "Vector reinterpret cast operation"]
50828#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u64)"]
50829#[inline(always)]
50830#[cfg(target_endian = "little")]
50831#[target_feature(enable = "neon")]
50832#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50833#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50834#[cfg_attr(
50835    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50836    assert_instr(nop)
50837)]
50838#[cfg_attr(
50839    not(target_arch = "arm"),
50840    stable(feature = "neon_intrinsics", since = "1.59.0")
50841)]
50842#[cfg_attr(
50843    target_arch = "arm",
50844    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50845)]
50846pub fn vreinterpretq_s8_u64(a: uint64x2_t) -> int8x16_t {
50847    unsafe { transmute(a) }
50848}
50849#[doc = "Vector reinterpret cast operation"]
50850#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u64)"]
50851#[inline(always)]
50852#[cfg(target_endian = "big")]
50853#[target_feature(enable = "neon")]
50854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50856#[cfg_attr(
50857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50858    assert_instr(nop)
50859)]
50860#[cfg_attr(
50861    not(target_arch = "arm"),
50862    stable(feature = "neon_intrinsics", since = "1.59.0")
50863)]
50864#[cfg_attr(
50865    target_arch = "arm",
50866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50867)]
50868pub fn vreinterpretq_s8_u64(a: uint64x2_t) -> int8x16_t {
50869    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
50870    unsafe {
50871        let ret_val: int8x16_t = transmute(a);
50872        simd_shuffle!(
50873            ret_val,
50874            ret_val,
50875            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
50876        )
50877    }
50878}
50879#[doc = "Vector reinterpret cast operation"]
50880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u64)"]
50881#[inline(always)]
50882#[cfg(target_endian = "little")]
50883#[target_feature(enable = "neon")]
50884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50885#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50886#[cfg_attr(
50887    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50888    assert_instr(nop)
50889)]
50890#[cfg_attr(
50891    not(target_arch = "arm"),
50892    stable(feature = "neon_intrinsics", since = "1.59.0")
50893)]
50894#[cfg_attr(
50895    target_arch = "arm",
50896    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50897)]
50898pub fn vreinterpretq_s16_u64(a: uint64x2_t) -> int16x8_t {
50899    unsafe { transmute(a) }
50900}
50901#[doc = "Vector reinterpret cast operation"]
50902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u64)"]
50903#[inline(always)]
50904#[cfg(target_endian = "big")]
50905#[target_feature(enable = "neon")]
50906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50908#[cfg_attr(
50909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50910    assert_instr(nop)
50911)]
50912#[cfg_attr(
50913    not(target_arch = "arm"),
50914    stable(feature = "neon_intrinsics", since = "1.59.0")
50915)]
50916#[cfg_attr(
50917    target_arch = "arm",
50918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50919)]
50920pub fn vreinterpretq_s16_u64(a: uint64x2_t) -> int16x8_t {
50921    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
50922    unsafe {
50923        let ret_val: int16x8_t = transmute(a);
50924        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50925    }
50926}
50927#[doc = "Vector reinterpret cast operation"]
50928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u64)"]
50929#[inline(always)]
50930#[cfg(target_endian = "little")]
50931#[target_feature(enable = "neon")]
50932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50933#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50934#[cfg_attr(
50935    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50936    assert_instr(nop)
50937)]
50938#[cfg_attr(
50939    not(target_arch = "arm"),
50940    stable(feature = "neon_intrinsics", since = "1.59.0")
50941)]
50942#[cfg_attr(
50943    target_arch = "arm",
50944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50945)]
50946pub fn vreinterpretq_s32_u64(a: uint64x2_t) -> int32x4_t {
50947    unsafe { transmute(a) }
50948}
50949#[doc = "Vector reinterpret cast operation"]
50950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u64)"]
50951#[inline(always)]
50952#[cfg(target_endian = "big")]
50953#[target_feature(enable = "neon")]
50954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50956#[cfg_attr(
50957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50958    assert_instr(nop)
50959)]
50960#[cfg_attr(
50961    not(target_arch = "arm"),
50962    stable(feature = "neon_intrinsics", since = "1.59.0")
50963)]
50964#[cfg_attr(
50965    target_arch = "arm",
50966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50967)]
50968pub fn vreinterpretq_s32_u64(a: uint64x2_t) -> int32x4_t {
50969    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
50970    unsafe {
50971        let ret_val: int32x4_t = transmute(a);
50972        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50973    }
50974}
50975#[doc = "Vector reinterpret cast operation"]
50976#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u64)"]
50977#[inline(always)]
50978#[cfg(target_endian = "little")]
50979#[target_feature(enable = "neon")]
50980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50981#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50982#[cfg_attr(
50983    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50984    assert_instr(nop)
50985)]
50986#[cfg_attr(
50987    not(target_arch = "arm"),
50988    stable(feature = "neon_intrinsics", since = "1.59.0")
50989)]
50990#[cfg_attr(
50991    target_arch = "arm",
50992    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50993)]
50994pub fn vreinterpretq_s64_u64(a: uint64x2_t) -> int64x2_t {
50995    unsafe { transmute(a) }
50996}
50997#[doc = "Vector reinterpret cast operation"]
50998#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u64)"]
50999#[inline(always)]
51000#[cfg(target_endian = "big")]
51001#[target_feature(enable = "neon")]
51002#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51003#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51004#[cfg_attr(
51005    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51006    assert_instr(nop)
51007)]
51008#[cfg_attr(
51009    not(target_arch = "arm"),
51010    stable(feature = "neon_intrinsics", since = "1.59.0")
51011)]
51012#[cfg_attr(
51013    target_arch = "arm",
51014    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51015)]
51016pub fn vreinterpretq_s64_u64(a: uint64x2_t) -> int64x2_t {
51017    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51018    unsafe {
51019        let ret_val: int64x2_t = transmute(a);
51020        simd_shuffle!(ret_val, ret_val, [1, 0])
51021    }
51022}
51023#[doc = "Vector reinterpret cast operation"]
51024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u64)"]
51025#[inline(always)]
51026#[cfg(target_endian = "little")]
51027#[target_feature(enable = "neon")]
51028#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51029#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51030#[cfg_attr(
51031    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51032    assert_instr(nop)
51033)]
51034#[cfg_attr(
51035    not(target_arch = "arm"),
51036    stable(feature = "neon_intrinsics", since = "1.59.0")
51037)]
51038#[cfg_attr(
51039    target_arch = "arm",
51040    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51041)]
51042pub fn vreinterpretq_u8_u64(a: uint64x2_t) -> uint8x16_t {
51043    unsafe { transmute(a) }
51044}
51045#[doc = "Vector reinterpret cast operation"]
51046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u64)"]
51047#[inline(always)]
51048#[cfg(target_endian = "big")]
51049#[target_feature(enable = "neon")]
51050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51052#[cfg_attr(
51053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51054    assert_instr(nop)
51055)]
51056#[cfg_attr(
51057    not(target_arch = "arm"),
51058    stable(feature = "neon_intrinsics", since = "1.59.0")
51059)]
51060#[cfg_attr(
51061    target_arch = "arm",
51062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51063)]
51064pub fn vreinterpretq_u8_u64(a: uint64x2_t) -> uint8x16_t {
51065    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51066    unsafe {
51067        let ret_val: uint8x16_t = transmute(a);
51068        simd_shuffle!(
51069            ret_val,
51070            ret_val,
51071            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
51072        )
51073    }
51074}
51075#[doc = "Vector reinterpret cast operation"]
51076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u64)"]
51077#[inline(always)]
51078#[cfg(target_endian = "little")]
51079#[target_feature(enable = "neon")]
51080#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51081#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51082#[cfg_attr(
51083    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51084    assert_instr(nop)
51085)]
51086#[cfg_attr(
51087    not(target_arch = "arm"),
51088    stable(feature = "neon_intrinsics", since = "1.59.0")
51089)]
51090#[cfg_attr(
51091    target_arch = "arm",
51092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51093)]
51094pub fn vreinterpretq_u16_u64(a: uint64x2_t) -> uint16x8_t {
51095    unsafe { transmute(a) }
51096}
51097#[doc = "Vector reinterpret cast operation"]
51098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u64)"]
51099#[inline(always)]
51100#[cfg(target_endian = "big")]
51101#[target_feature(enable = "neon")]
51102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51103#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51104#[cfg_attr(
51105    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51106    assert_instr(nop)
51107)]
51108#[cfg_attr(
51109    not(target_arch = "arm"),
51110    stable(feature = "neon_intrinsics", since = "1.59.0")
51111)]
51112#[cfg_attr(
51113    target_arch = "arm",
51114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51115)]
51116pub fn vreinterpretq_u16_u64(a: uint64x2_t) -> uint16x8_t {
51117    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51118    unsafe {
51119        let ret_val: uint16x8_t = transmute(a);
51120        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51121    }
51122}
51123#[doc = "Vector reinterpret cast operation"]
51124#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u64)"]
51125#[inline(always)]
51126#[cfg(target_endian = "little")]
51127#[target_feature(enable = "neon")]
51128#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51129#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51130#[cfg_attr(
51131    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51132    assert_instr(nop)
51133)]
51134#[cfg_attr(
51135    not(target_arch = "arm"),
51136    stable(feature = "neon_intrinsics", since = "1.59.0")
51137)]
51138#[cfg_attr(
51139    target_arch = "arm",
51140    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51141)]
51142pub fn vreinterpretq_u32_u64(a: uint64x2_t) -> uint32x4_t {
51143    unsafe { transmute(a) }
51144}
51145#[doc = "Vector reinterpret cast operation"]
51146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u64)"]
51147#[inline(always)]
51148#[cfg(target_endian = "big")]
51149#[target_feature(enable = "neon")]
51150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51152#[cfg_attr(
51153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51154    assert_instr(nop)
51155)]
51156#[cfg_attr(
51157    not(target_arch = "arm"),
51158    stable(feature = "neon_intrinsics", since = "1.59.0")
51159)]
51160#[cfg_attr(
51161    target_arch = "arm",
51162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51163)]
51164pub fn vreinterpretq_u32_u64(a: uint64x2_t) -> uint32x4_t {
51165    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51166    unsafe {
51167        let ret_val: uint32x4_t = transmute(a);
51168        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51169    }
51170}
51171#[doc = "Vector reinterpret cast operation"]
51172#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u64)"]
51173#[inline(always)]
51174#[cfg(target_endian = "little")]
51175#[target_feature(enable = "neon")]
51176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51177#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51178#[cfg_attr(
51179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51180    assert_instr(nop)
51181)]
51182#[cfg_attr(
51183    not(target_arch = "arm"),
51184    stable(feature = "neon_intrinsics", since = "1.59.0")
51185)]
51186#[cfg_attr(
51187    target_arch = "arm",
51188    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51189)]
51190pub fn vreinterpretq_p8_u64(a: uint64x2_t) -> poly8x16_t {
51191    unsafe { transmute(a) }
51192}
51193#[doc = "Vector reinterpret cast operation"]
51194#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u64)"]
51195#[inline(always)]
51196#[cfg(target_endian = "big")]
51197#[target_feature(enable = "neon")]
51198#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51199#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51200#[cfg_attr(
51201    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51202    assert_instr(nop)
51203)]
51204#[cfg_attr(
51205    not(target_arch = "arm"),
51206    stable(feature = "neon_intrinsics", since = "1.59.0")
51207)]
51208#[cfg_attr(
51209    target_arch = "arm",
51210    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51211)]
51212pub fn vreinterpretq_p8_u64(a: uint64x2_t) -> poly8x16_t {
51213    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51214    unsafe {
51215        let ret_val: poly8x16_t = transmute(a);
51216        simd_shuffle!(
51217            ret_val,
51218            ret_val,
51219            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
51220        )
51221    }
51222}
51223#[doc = "Vector reinterpret cast operation"]
51224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u64)"]
51225#[inline(always)]
51226#[cfg(target_endian = "little")]
51227#[target_feature(enable = "neon")]
51228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51229#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51230#[cfg_attr(
51231    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51232    assert_instr(nop)
51233)]
51234#[cfg_attr(
51235    not(target_arch = "arm"),
51236    stable(feature = "neon_intrinsics", since = "1.59.0")
51237)]
51238#[cfg_attr(
51239    target_arch = "arm",
51240    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51241)]
51242pub fn vreinterpretq_p16_u64(a: uint64x2_t) -> poly16x8_t {
51243    unsafe { transmute(a) }
51244}
51245#[doc = "Vector reinterpret cast operation"]
51246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u64)"]
51247#[inline(always)]
51248#[cfg(target_endian = "big")]
51249#[target_feature(enable = "neon")]
51250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51252#[cfg_attr(
51253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51254    assert_instr(nop)
51255)]
51256#[cfg_attr(
51257    not(target_arch = "arm"),
51258    stable(feature = "neon_intrinsics", since = "1.59.0")
51259)]
51260#[cfg_attr(
51261    target_arch = "arm",
51262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51263)]
51264pub fn vreinterpretq_p16_u64(a: uint64x2_t) -> poly16x8_t {
51265    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51266    unsafe {
51267        let ret_val: poly16x8_t = transmute(a);
51268        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51269    }
51270}
51271#[doc = "Vector reinterpret cast operation"]
51272#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p8)"]
51273#[inline(always)]
51274#[cfg(target_endian = "little")]
51275#[target_feature(enable = "neon")]
51276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51277#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51278#[cfg_attr(
51279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51280    assert_instr(nop)
51281)]
51282#[cfg_attr(
51283    not(target_arch = "arm"),
51284    stable(feature = "neon_intrinsics", since = "1.59.0")
51285)]
51286#[cfg_attr(
51287    target_arch = "arm",
51288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51289)]
51290pub fn vreinterpret_f32_p8(a: poly8x8_t) -> float32x2_t {
51291    unsafe { transmute(a) }
51292}
51293#[doc = "Vector reinterpret cast operation"]
51294#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p8)"]
51295#[inline(always)]
51296#[cfg(target_endian = "big")]
51297#[target_feature(enable = "neon")]
51298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51300#[cfg_attr(
51301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51302    assert_instr(nop)
51303)]
51304#[cfg_attr(
51305    not(target_arch = "arm"),
51306    stable(feature = "neon_intrinsics", since = "1.59.0")
51307)]
51308#[cfg_attr(
51309    target_arch = "arm",
51310    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51311)]
51312pub fn vreinterpret_f32_p8(a: poly8x8_t) -> float32x2_t {
51313    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51314    unsafe {
51315        let ret_val: float32x2_t = transmute(a);
51316        simd_shuffle!(ret_val, ret_val, [1, 0])
51317    }
51318}
51319#[doc = "Vector reinterpret cast operation"]
51320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p8)"]
51321#[inline(always)]
51322#[cfg(target_endian = "little")]
51323#[target_feature(enable = "neon")]
51324#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51325#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51326#[cfg_attr(
51327    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51328    assert_instr(nop)
51329)]
51330#[cfg_attr(
51331    not(target_arch = "arm"),
51332    stable(feature = "neon_intrinsics", since = "1.59.0")
51333)]
51334#[cfg_attr(
51335    target_arch = "arm",
51336    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51337)]
51338pub fn vreinterpret_s8_p8(a: poly8x8_t) -> int8x8_t {
51339    unsafe { transmute(a) }
51340}
51341#[doc = "Vector reinterpret cast operation"]
51342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p8)"]
51343#[inline(always)]
51344#[cfg(target_endian = "big")]
51345#[target_feature(enable = "neon")]
51346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51348#[cfg_attr(
51349    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51350    assert_instr(nop)
51351)]
51352#[cfg_attr(
51353    not(target_arch = "arm"),
51354    stable(feature = "neon_intrinsics", since = "1.59.0")
51355)]
51356#[cfg_attr(
51357    target_arch = "arm",
51358    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51359)]
51360pub fn vreinterpret_s8_p8(a: poly8x8_t) -> int8x8_t {
51361    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51362    unsafe {
51363        let ret_val: int8x8_t = transmute(a);
51364        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51365    }
51366}
51367#[doc = "Vector reinterpret cast operation"]
51368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p8)"]
51369#[inline(always)]
51370#[cfg(target_endian = "little")]
51371#[target_feature(enable = "neon")]
51372#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51373#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51374#[cfg_attr(
51375    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51376    assert_instr(nop)
51377)]
51378#[cfg_attr(
51379    not(target_arch = "arm"),
51380    stable(feature = "neon_intrinsics", since = "1.59.0")
51381)]
51382#[cfg_attr(
51383    target_arch = "arm",
51384    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51385)]
51386pub fn vreinterpret_s16_p8(a: poly8x8_t) -> int16x4_t {
51387    unsafe { transmute(a) }
51388}
51389#[doc = "Vector reinterpret cast operation"]
51390#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p8)"]
51391#[inline(always)]
51392#[cfg(target_endian = "big")]
51393#[target_feature(enable = "neon")]
51394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51396#[cfg_attr(
51397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51398    assert_instr(nop)
51399)]
51400#[cfg_attr(
51401    not(target_arch = "arm"),
51402    stable(feature = "neon_intrinsics", since = "1.59.0")
51403)]
51404#[cfg_attr(
51405    target_arch = "arm",
51406    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51407)]
51408pub fn vreinterpret_s16_p8(a: poly8x8_t) -> int16x4_t {
51409    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51410    unsafe {
51411        let ret_val: int16x4_t = transmute(a);
51412        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51413    }
51414}
51415#[doc = "Vector reinterpret cast operation"]
51416#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p8)"]
51417#[inline(always)]
51418#[cfg(target_endian = "little")]
51419#[target_feature(enable = "neon")]
51420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51422#[cfg_attr(
51423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51424    assert_instr(nop)
51425)]
51426#[cfg_attr(
51427    not(target_arch = "arm"),
51428    stable(feature = "neon_intrinsics", since = "1.59.0")
51429)]
51430#[cfg_attr(
51431    target_arch = "arm",
51432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51433)]
51434pub fn vreinterpret_s32_p8(a: poly8x8_t) -> int32x2_t {
51435    unsafe { transmute(a) }
51436}
51437#[doc = "Vector reinterpret cast operation"]
51438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p8)"]
51439#[inline(always)]
51440#[cfg(target_endian = "big")]
51441#[target_feature(enable = "neon")]
51442#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51443#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51444#[cfg_attr(
51445    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51446    assert_instr(nop)
51447)]
51448#[cfg_attr(
51449    not(target_arch = "arm"),
51450    stable(feature = "neon_intrinsics", since = "1.59.0")
51451)]
51452#[cfg_attr(
51453    target_arch = "arm",
51454    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51455)]
51456pub fn vreinterpret_s32_p8(a: poly8x8_t) -> int32x2_t {
51457    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51458    unsafe {
51459        let ret_val: int32x2_t = transmute(a);
51460        simd_shuffle!(ret_val, ret_val, [1, 0])
51461    }
51462}
51463#[doc = "Vector reinterpret cast operation"]
51464#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p8)"]
51465#[inline(always)]
51466#[cfg(target_endian = "little")]
51467#[target_feature(enable = "neon")]
51468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51470#[cfg_attr(
51471    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51472    assert_instr(nop)
51473)]
51474#[cfg_attr(
51475    not(target_arch = "arm"),
51476    stable(feature = "neon_intrinsics", since = "1.59.0")
51477)]
51478#[cfg_attr(
51479    target_arch = "arm",
51480    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51481)]
51482pub fn vreinterpret_s64_p8(a: poly8x8_t) -> int64x1_t {
51483    unsafe { transmute(a) }
51484}
51485#[doc = "Vector reinterpret cast operation"]
51486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p8)"]
51487#[inline(always)]
51488#[cfg(target_endian = "big")]
51489#[target_feature(enable = "neon")]
51490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51492#[cfg_attr(
51493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51494    assert_instr(nop)
51495)]
51496#[cfg_attr(
51497    not(target_arch = "arm"),
51498    stable(feature = "neon_intrinsics", since = "1.59.0")
51499)]
51500#[cfg_attr(
51501    target_arch = "arm",
51502    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51503)]
51504pub fn vreinterpret_s64_p8(a: poly8x8_t) -> int64x1_t {
51505    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51506    unsafe { transmute(a) }
51507}
51508#[doc = "Vector reinterpret cast operation"]
51509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p8)"]
51510#[inline(always)]
51511#[cfg(target_endian = "little")]
51512#[target_feature(enable = "neon")]
51513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51515#[cfg_attr(
51516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51517    assert_instr(nop)
51518)]
51519#[cfg_attr(
51520    not(target_arch = "arm"),
51521    stable(feature = "neon_intrinsics", since = "1.59.0")
51522)]
51523#[cfg_attr(
51524    target_arch = "arm",
51525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51526)]
51527pub fn vreinterpret_u8_p8(a: poly8x8_t) -> uint8x8_t {
51528    unsafe { transmute(a) }
51529}
51530#[doc = "Vector reinterpret cast operation"]
51531#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p8)"]
51532#[inline(always)]
51533#[cfg(target_endian = "big")]
51534#[target_feature(enable = "neon")]
51535#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51536#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51537#[cfg_attr(
51538    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51539    assert_instr(nop)
51540)]
51541#[cfg_attr(
51542    not(target_arch = "arm"),
51543    stable(feature = "neon_intrinsics", since = "1.59.0")
51544)]
51545#[cfg_attr(
51546    target_arch = "arm",
51547    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51548)]
51549pub fn vreinterpret_u8_p8(a: poly8x8_t) -> uint8x8_t {
51550    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51551    unsafe {
51552        let ret_val: uint8x8_t = transmute(a);
51553        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51554    }
51555}
51556#[doc = "Vector reinterpret cast operation"]
51557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p8)"]
51558#[inline(always)]
51559#[cfg(target_endian = "little")]
51560#[target_feature(enable = "neon")]
51561#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51562#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51563#[cfg_attr(
51564    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51565    assert_instr(nop)
51566)]
51567#[cfg_attr(
51568    not(target_arch = "arm"),
51569    stable(feature = "neon_intrinsics", since = "1.59.0")
51570)]
51571#[cfg_attr(
51572    target_arch = "arm",
51573    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51574)]
51575pub fn vreinterpret_u16_p8(a: poly8x8_t) -> uint16x4_t {
51576    unsafe { transmute(a) }
51577}
51578#[doc = "Vector reinterpret cast operation"]
51579#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p8)"]
51580#[inline(always)]
51581#[cfg(target_endian = "big")]
51582#[target_feature(enable = "neon")]
51583#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51584#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51585#[cfg_attr(
51586    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51587    assert_instr(nop)
51588)]
51589#[cfg_attr(
51590    not(target_arch = "arm"),
51591    stable(feature = "neon_intrinsics", since = "1.59.0")
51592)]
51593#[cfg_attr(
51594    target_arch = "arm",
51595    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51596)]
51597pub fn vreinterpret_u16_p8(a: poly8x8_t) -> uint16x4_t {
51598    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51599    unsafe {
51600        let ret_val: uint16x4_t = transmute(a);
51601        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51602    }
51603}
51604#[doc = "Vector reinterpret cast operation"]
51605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p8)"]
51606#[inline(always)]
51607#[cfg(target_endian = "little")]
51608#[target_feature(enable = "neon")]
51609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51611#[cfg_attr(
51612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51613    assert_instr(nop)
51614)]
51615#[cfg_attr(
51616    not(target_arch = "arm"),
51617    stable(feature = "neon_intrinsics", since = "1.59.0")
51618)]
51619#[cfg_attr(
51620    target_arch = "arm",
51621    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51622)]
51623pub fn vreinterpret_u32_p8(a: poly8x8_t) -> uint32x2_t {
51624    unsafe { transmute(a) }
51625}
51626#[doc = "Vector reinterpret cast operation"]
51627#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p8)"]
51628#[inline(always)]
51629#[cfg(target_endian = "big")]
51630#[target_feature(enable = "neon")]
51631#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51633#[cfg_attr(
51634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51635    assert_instr(nop)
51636)]
51637#[cfg_attr(
51638    not(target_arch = "arm"),
51639    stable(feature = "neon_intrinsics", since = "1.59.0")
51640)]
51641#[cfg_attr(
51642    target_arch = "arm",
51643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51644)]
51645pub fn vreinterpret_u32_p8(a: poly8x8_t) -> uint32x2_t {
51646    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51647    unsafe {
51648        let ret_val: uint32x2_t = transmute(a);
51649        simd_shuffle!(ret_val, ret_val, [1, 0])
51650    }
51651}
51652#[doc = "Vector reinterpret cast operation"]
51653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p8)"]
51654#[inline(always)]
51655#[cfg(target_endian = "little")]
51656#[target_feature(enable = "neon")]
51657#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51658#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51659#[cfg_attr(
51660    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51661    assert_instr(nop)
51662)]
51663#[cfg_attr(
51664    not(target_arch = "arm"),
51665    stable(feature = "neon_intrinsics", since = "1.59.0")
51666)]
51667#[cfg_attr(
51668    target_arch = "arm",
51669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51670)]
51671pub fn vreinterpret_u64_p8(a: poly8x8_t) -> uint64x1_t {
51672    unsafe { transmute(a) }
51673}
51674#[doc = "Vector reinterpret cast operation"]
51675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p8)"]
51676#[inline(always)]
51677#[cfg(target_endian = "big")]
51678#[target_feature(enable = "neon")]
51679#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51680#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51681#[cfg_attr(
51682    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51683    assert_instr(nop)
51684)]
51685#[cfg_attr(
51686    not(target_arch = "arm"),
51687    stable(feature = "neon_intrinsics", since = "1.59.0")
51688)]
51689#[cfg_attr(
51690    target_arch = "arm",
51691    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51692)]
51693pub fn vreinterpret_u64_p8(a: poly8x8_t) -> uint64x1_t {
51694    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51695    unsafe { transmute(a) }
51696}
51697#[doc = "Vector reinterpret cast operation"]
51698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p8)"]
51699#[inline(always)]
51700#[cfg(target_endian = "little")]
51701#[target_feature(enable = "neon")]
51702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51703#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51704#[cfg_attr(
51705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51706    assert_instr(nop)
51707)]
51708#[cfg_attr(
51709    not(target_arch = "arm"),
51710    stable(feature = "neon_intrinsics", since = "1.59.0")
51711)]
51712#[cfg_attr(
51713    target_arch = "arm",
51714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51715)]
51716pub fn vreinterpret_p16_p8(a: poly8x8_t) -> poly16x4_t {
51717    unsafe { transmute(a) }
51718}
51719#[doc = "Vector reinterpret cast operation"]
51720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p8)"]
51721#[inline(always)]
51722#[cfg(target_endian = "big")]
51723#[target_feature(enable = "neon")]
51724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51726#[cfg_attr(
51727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51728    assert_instr(nop)
51729)]
51730#[cfg_attr(
51731    not(target_arch = "arm"),
51732    stable(feature = "neon_intrinsics", since = "1.59.0")
51733)]
51734#[cfg_attr(
51735    target_arch = "arm",
51736    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51737)]
51738pub fn vreinterpret_p16_p8(a: poly8x8_t) -> poly16x4_t {
51739    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51740    unsafe {
51741        let ret_val: poly16x4_t = transmute(a);
51742        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51743    }
51744}
51745#[doc = "Vector reinterpret cast operation"]
51746#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p8)"]
51747#[inline(always)]
51748#[cfg(target_endian = "little")]
51749#[target_feature(enable = "neon")]
51750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51751#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51752#[cfg_attr(
51753    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51754    assert_instr(nop)
51755)]
51756#[cfg_attr(
51757    not(target_arch = "arm"),
51758    stable(feature = "neon_intrinsics", since = "1.59.0")
51759)]
51760#[cfg_attr(
51761    target_arch = "arm",
51762    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51763)]
51764pub fn vreinterpretq_f32_p8(a: poly8x16_t) -> float32x4_t {
51765    unsafe { transmute(a) }
51766}
51767#[doc = "Vector reinterpret cast operation"]
51768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p8)"]
51769#[inline(always)]
51770#[cfg(target_endian = "big")]
51771#[target_feature(enable = "neon")]
51772#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51773#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51774#[cfg_attr(
51775    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51776    assert_instr(nop)
51777)]
51778#[cfg_attr(
51779    not(target_arch = "arm"),
51780    stable(feature = "neon_intrinsics", since = "1.59.0")
51781)]
51782#[cfg_attr(
51783    target_arch = "arm",
51784    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51785)]
51786pub fn vreinterpretq_f32_p8(a: poly8x16_t) -> float32x4_t {
51787    let a: poly8x16_t =
51788        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
51789    unsafe {
51790        let ret_val: float32x4_t = transmute(a);
51791        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51792    }
51793}
51794#[doc = "Vector reinterpret cast operation"]
51795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p8)"]
51796#[inline(always)]
51797#[cfg(target_endian = "little")]
51798#[target_feature(enable = "neon")]
51799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51800#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51801#[cfg_attr(
51802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51803    assert_instr(nop)
51804)]
51805#[cfg_attr(
51806    not(target_arch = "arm"),
51807    stable(feature = "neon_intrinsics", since = "1.59.0")
51808)]
51809#[cfg_attr(
51810    target_arch = "arm",
51811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51812)]
51813pub fn vreinterpretq_s8_p8(a: poly8x16_t) -> int8x16_t {
51814    unsafe { transmute(a) }
51815}
51816#[doc = "Vector reinterpret cast operation"]
51817#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p8)"]
51818#[inline(always)]
51819#[cfg(target_endian = "big")]
51820#[target_feature(enable = "neon")]
51821#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51822#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51823#[cfg_attr(
51824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51825    assert_instr(nop)
51826)]
51827#[cfg_attr(
51828    not(target_arch = "arm"),
51829    stable(feature = "neon_intrinsics", since = "1.59.0")
51830)]
51831#[cfg_attr(
51832    target_arch = "arm",
51833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51834)]
51835pub fn vreinterpretq_s8_p8(a: poly8x16_t) -> int8x16_t {
51836    let a: poly8x16_t =
51837        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
51838    unsafe {
51839        let ret_val: int8x16_t = transmute(a);
51840        simd_shuffle!(
51841            ret_val,
51842            ret_val,
51843            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
51844        )
51845    }
51846}
51847#[doc = "Vector reinterpret cast operation"]
51848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p8)"]
51849#[inline(always)]
51850#[cfg(target_endian = "little")]
51851#[target_feature(enable = "neon")]
51852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51854#[cfg_attr(
51855    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51856    assert_instr(nop)
51857)]
51858#[cfg_attr(
51859    not(target_arch = "arm"),
51860    stable(feature = "neon_intrinsics", since = "1.59.0")
51861)]
51862#[cfg_attr(
51863    target_arch = "arm",
51864    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51865)]
51866pub fn vreinterpretq_s16_p8(a: poly8x16_t) -> int16x8_t {
51867    unsafe { transmute(a) }
51868}
51869#[doc = "Vector reinterpret cast operation"]
51870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p8)"]
51871#[inline(always)]
51872#[cfg(target_endian = "big")]
51873#[target_feature(enable = "neon")]
51874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51876#[cfg_attr(
51877    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51878    assert_instr(nop)
51879)]
51880#[cfg_attr(
51881    not(target_arch = "arm"),
51882    stable(feature = "neon_intrinsics", since = "1.59.0")
51883)]
51884#[cfg_attr(
51885    target_arch = "arm",
51886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51887)]
51888pub fn vreinterpretq_s16_p8(a: poly8x16_t) -> int16x8_t {
51889    let a: poly8x16_t =
51890        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
51891    unsafe {
51892        let ret_val: int16x8_t = transmute(a);
51893        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51894    }
51895}
51896#[doc = "Vector reinterpret cast operation"]
51897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p8)"]
51898#[inline(always)]
51899#[cfg(target_endian = "little")]
51900#[target_feature(enable = "neon")]
51901#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51902#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51903#[cfg_attr(
51904    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51905    assert_instr(nop)
51906)]
51907#[cfg_attr(
51908    not(target_arch = "arm"),
51909    stable(feature = "neon_intrinsics", since = "1.59.0")
51910)]
51911#[cfg_attr(
51912    target_arch = "arm",
51913    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51914)]
51915pub fn vreinterpretq_s32_p8(a: poly8x16_t) -> int32x4_t {
51916    unsafe { transmute(a) }
51917}
51918#[doc = "Vector reinterpret cast operation"]
51919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p8)"]
51920#[inline(always)]
51921#[cfg(target_endian = "big")]
51922#[target_feature(enable = "neon")]
51923#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51924#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51925#[cfg_attr(
51926    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51927    assert_instr(nop)
51928)]
51929#[cfg_attr(
51930    not(target_arch = "arm"),
51931    stable(feature = "neon_intrinsics", since = "1.59.0")
51932)]
51933#[cfg_attr(
51934    target_arch = "arm",
51935    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51936)]
51937pub fn vreinterpretq_s32_p8(a: poly8x16_t) -> int32x4_t {
51938    let a: poly8x16_t =
51939        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
51940    unsafe {
51941        let ret_val: int32x4_t = transmute(a);
51942        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51943    }
51944}
51945#[doc = "Vector reinterpret cast operation"]
51946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p8)"]
51947#[inline(always)]
51948#[cfg(target_endian = "little")]
51949#[target_feature(enable = "neon")]
51950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51951#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51952#[cfg_attr(
51953    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51954    assert_instr(nop)
51955)]
51956#[cfg_attr(
51957    not(target_arch = "arm"),
51958    stable(feature = "neon_intrinsics", since = "1.59.0")
51959)]
51960#[cfg_attr(
51961    target_arch = "arm",
51962    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51963)]
51964pub fn vreinterpretq_s64_p8(a: poly8x16_t) -> int64x2_t {
51965    unsafe { transmute(a) }
51966}
51967#[doc = "Vector reinterpret cast operation"]
51968#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p8)"]
51969#[inline(always)]
51970#[cfg(target_endian = "big")]
51971#[target_feature(enable = "neon")]
51972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51973#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51974#[cfg_attr(
51975    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51976    assert_instr(nop)
51977)]
51978#[cfg_attr(
51979    not(target_arch = "arm"),
51980    stable(feature = "neon_intrinsics", since = "1.59.0")
51981)]
51982#[cfg_attr(
51983    target_arch = "arm",
51984    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51985)]
51986pub fn vreinterpretq_s64_p8(a: poly8x16_t) -> int64x2_t {
51987    let a: poly8x16_t =
51988        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
51989    unsafe {
51990        let ret_val: int64x2_t = transmute(a);
51991        simd_shuffle!(ret_val, ret_val, [1, 0])
51992    }
51993}
51994#[doc = "Vector reinterpret cast operation"]
51995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p8)"]
51996#[inline(always)]
51997#[cfg(target_endian = "little")]
51998#[target_feature(enable = "neon")]
51999#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52000#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52001#[cfg_attr(
52002    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52003    assert_instr(nop)
52004)]
52005#[cfg_attr(
52006    not(target_arch = "arm"),
52007    stable(feature = "neon_intrinsics", since = "1.59.0")
52008)]
52009#[cfg_attr(
52010    target_arch = "arm",
52011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52012)]
52013pub fn vreinterpretq_u8_p8(a: poly8x16_t) -> uint8x16_t {
52014    unsafe { transmute(a) }
52015}
52016#[doc = "Vector reinterpret cast operation"]
52017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p8)"]
52018#[inline(always)]
52019#[cfg(target_endian = "big")]
52020#[target_feature(enable = "neon")]
52021#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52022#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52023#[cfg_attr(
52024    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52025    assert_instr(nop)
52026)]
52027#[cfg_attr(
52028    not(target_arch = "arm"),
52029    stable(feature = "neon_intrinsics", since = "1.59.0")
52030)]
52031#[cfg_attr(
52032    target_arch = "arm",
52033    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52034)]
52035pub fn vreinterpretq_u8_p8(a: poly8x16_t) -> uint8x16_t {
52036    let a: poly8x16_t =
52037        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52038    unsafe {
52039        let ret_val: uint8x16_t = transmute(a);
52040        simd_shuffle!(
52041            ret_val,
52042            ret_val,
52043            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
52044        )
52045    }
52046}
52047#[doc = "Vector reinterpret cast operation"]
52048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p8)"]
52049#[inline(always)]
52050#[cfg(target_endian = "little")]
52051#[target_feature(enable = "neon")]
52052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52053#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52054#[cfg_attr(
52055    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52056    assert_instr(nop)
52057)]
52058#[cfg_attr(
52059    not(target_arch = "arm"),
52060    stable(feature = "neon_intrinsics", since = "1.59.0")
52061)]
52062#[cfg_attr(
52063    target_arch = "arm",
52064    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52065)]
52066pub fn vreinterpretq_u16_p8(a: poly8x16_t) -> uint16x8_t {
52067    unsafe { transmute(a) }
52068}
52069#[doc = "Vector reinterpret cast operation"]
52070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p8)"]
52071#[inline(always)]
52072#[cfg(target_endian = "big")]
52073#[target_feature(enable = "neon")]
52074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52075#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52076#[cfg_attr(
52077    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52078    assert_instr(nop)
52079)]
52080#[cfg_attr(
52081    not(target_arch = "arm"),
52082    stable(feature = "neon_intrinsics", since = "1.59.0")
52083)]
52084#[cfg_attr(
52085    target_arch = "arm",
52086    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52087)]
52088pub fn vreinterpretq_u16_p8(a: poly8x16_t) -> uint16x8_t {
52089    let a: poly8x16_t =
52090        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52091    unsafe {
52092        let ret_val: uint16x8_t = transmute(a);
52093        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52094    }
52095}
52096#[doc = "Vector reinterpret cast operation"]
52097#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p8)"]
52098#[inline(always)]
52099#[cfg(target_endian = "little")]
52100#[target_feature(enable = "neon")]
52101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52103#[cfg_attr(
52104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52105    assert_instr(nop)
52106)]
52107#[cfg_attr(
52108    not(target_arch = "arm"),
52109    stable(feature = "neon_intrinsics", since = "1.59.0")
52110)]
52111#[cfg_attr(
52112    target_arch = "arm",
52113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52114)]
52115pub fn vreinterpretq_u32_p8(a: poly8x16_t) -> uint32x4_t {
52116    unsafe { transmute(a) }
52117}
52118#[doc = "Vector reinterpret cast operation"]
52119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p8)"]
52120#[inline(always)]
52121#[cfg(target_endian = "big")]
52122#[target_feature(enable = "neon")]
52123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52124#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52125#[cfg_attr(
52126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52127    assert_instr(nop)
52128)]
52129#[cfg_attr(
52130    not(target_arch = "arm"),
52131    stable(feature = "neon_intrinsics", since = "1.59.0")
52132)]
52133#[cfg_attr(
52134    target_arch = "arm",
52135    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52136)]
52137pub fn vreinterpretq_u32_p8(a: poly8x16_t) -> uint32x4_t {
52138    let a: poly8x16_t =
52139        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52140    unsafe {
52141        let ret_val: uint32x4_t = transmute(a);
52142        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52143    }
52144}
52145#[doc = "Vector reinterpret cast operation"]
52146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p8)"]
52147#[inline(always)]
52148#[cfg(target_endian = "little")]
52149#[target_feature(enable = "neon")]
52150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52152#[cfg_attr(
52153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52154    assert_instr(nop)
52155)]
52156#[cfg_attr(
52157    not(target_arch = "arm"),
52158    stable(feature = "neon_intrinsics", since = "1.59.0")
52159)]
52160#[cfg_attr(
52161    target_arch = "arm",
52162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52163)]
52164pub fn vreinterpretq_u64_p8(a: poly8x16_t) -> uint64x2_t {
52165    unsafe { transmute(a) }
52166}
52167#[doc = "Vector reinterpret cast operation"]
52168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p8)"]
52169#[inline(always)]
52170#[cfg(target_endian = "big")]
52171#[target_feature(enable = "neon")]
52172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52173#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52174#[cfg_attr(
52175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52176    assert_instr(nop)
52177)]
52178#[cfg_attr(
52179    not(target_arch = "arm"),
52180    stable(feature = "neon_intrinsics", since = "1.59.0")
52181)]
52182#[cfg_attr(
52183    target_arch = "arm",
52184    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52185)]
52186pub fn vreinterpretq_u64_p8(a: poly8x16_t) -> uint64x2_t {
52187    let a: poly8x16_t =
52188        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52189    unsafe {
52190        let ret_val: uint64x2_t = transmute(a);
52191        simd_shuffle!(ret_val, ret_val, [1, 0])
52192    }
52193}
52194#[doc = "Vector reinterpret cast operation"]
52195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p8)"]
52196#[inline(always)]
52197#[cfg(target_endian = "little")]
52198#[target_feature(enable = "neon")]
52199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52200#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52201#[cfg_attr(
52202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52203    assert_instr(nop)
52204)]
52205#[cfg_attr(
52206    not(target_arch = "arm"),
52207    stable(feature = "neon_intrinsics", since = "1.59.0")
52208)]
52209#[cfg_attr(
52210    target_arch = "arm",
52211    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52212)]
52213pub fn vreinterpretq_p16_p8(a: poly8x16_t) -> poly16x8_t {
52214    unsafe { transmute(a) }
52215}
52216#[doc = "Vector reinterpret cast operation"]
52217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p8)"]
52218#[inline(always)]
52219#[cfg(target_endian = "big")]
52220#[target_feature(enable = "neon")]
52221#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52222#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52223#[cfg_attr(
52224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52225    assert_instr(nop)
52226)]
52227#[cfg_attr(
52228    not(target_arch = "arm"),
52229    stable(feature = "neon_intrinsics", since = "1.59.0")
52230)]
52231#[cfg_attr(
52232    target_arch = "arm",
52233    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52234)]
52235pub fn vreinterpretq_p16_p8(a: poly8x16_t) -> poly16x8_t {
52236    let a: poly8x16_t =
52237        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52238    unsafe {
52239        let ret_val: poly16x8_t = transmute(a);
52240        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52241    }
52242}
52243#[doc = "Vector reinterpret cast operation"]
52244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p16)"]
52245#[inline(always)]
52246#[cfg(target_endian = "little")]
52247#[target_feature(enable = "neon")]
52248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52250#[cfg_attr(
52251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52252    assert_instr(nop)
52253)]
52254#[cfg_attr(
52255    not(target_arch = "arm"),
52256    stable(feature = "neon_intrinsics", since = "1.59.0")
52257)]
52258#[cfg_attr(
52259    target_arch = "arm",
52260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52261)]
52262pub fn vreinterpret_f32_p16(a: poly16x4_t) -> float32x2_t {
52263    unsafe { transmute(a) }
52264}
52265#[doc = "Vector reinterpret cast operation"]
52266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p16)"]
52267#[inline(always)]
52268#[cfg(target_endian = "big")]
52269#[target_feature(enable = "neon")]
52270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52272#[cfg_attr(
52273    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52274    assert_instr(nop)
52275)]
52276#[cfg_attr(
52277    not(target_arch = "arm"),
52278    stable(feature = "neon_intrinsics", since = "1.59.0")
52279)]
52280#[cfg_attr(
52281    target_arch = "arm",
52282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52283)]
52284pub fn vreinterpret_f32_p16(a: poly16x4_t) -> float32x2_t {
52285    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52286    unsafe {
52287        let ret_val: float32x2_t = transmute(a);
52288        simd_shuffle!(ret_val, ret_val, [1, 0])
52289    }
52290}
52291#[doc = "Vector reinterpret cast operation"]
52292#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p16)"]
52293#[inline(always)]
52294#[cfg(target_endian = "little")]
52295#[target_feature(enable = "neon")]
52296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52298#[cfg_attr(
52299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52300    assert_instr(nop)
52301)]
52302#[cfg_attr(
52303    not(target_arch = "arm"),
52304    stable(feature = "neon_intrinsics", since = "1.59.0")
52305)]
52306#[cfg_attr(
52307    target_arch = "arm",
52308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52309)]
52310pub fn vreinterpret_s8_p16(a: poly16x4_t) -> int8x8_t {
52311    unsafe { transmute(a) }
52312}
52313#[doc = "Vector reinterpret cast operation"]
52314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p16)"]
52315#[inline(always)]
52316#[cfg(target_endian = "big")]
52317#[target_feature(enable = "neon")]
52318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52320#[cfg_attr(
52321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52322    assert_instr(nop)
52323)]
52324#[cfg_attr(
52325    not(target_arch = "arm"),
52326    stable(feature = "neon_intrinsics", since = "1.59.0")
52327)]
52328#[cfg_attr(
52329    target_arch = "arm",
52330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52331)]
52332pub fn vreinterpret_s8_p16(a: poly16x4_t) -> int8x8_t {
52333    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52334    unsafe {
52335        let ret_val: int8x8_t = transmute(a);
52336        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52337    }
52338}
52339#[doc = "Vector reinterpret cast operation"]
52340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p16)"]
52341#[inline(always)]
52342#[cfg(target_endian = "little")]
52343#[target_feature(enable = "neon")]
52344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52346#[cfg_attr(
52347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52348    assert_instr(nop)
52349)]
52350#[cfg_attr(
52351    not(target_arch = "arm"),
52352    stable(feature = "neon_intrinsics", since = "1.59.0")
52353)]
52354#[cfg_attr(
52355    target_arch = "arm",
52356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52357)]
52358pub fn vreinterpret_s16_p16(a: poly16x4_t) -> int16x4_t {
52359    unsafe { transmute(a) }
52360}
52361#[doc = "Vector reinterpret cast operation"]
52362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p16)"]
52363#[inline(always)]
52364#[cfg(target_endian = "big")]
52365#[target_feature(enable = "neon")]
52366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52368#[cfg_attr(
52369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52370    assert_instr(nop)
52371)]
52372#[cfg_attr(
52373    not(target_arch = "arm"),
52374    stable(feature = "neon_intrinsics", since = "1.59.0")
52375)]
52376#[cfg_attr(
52377    target_arch = "arm",
52378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52379)]
52380pub fn vreinterpret_s16_p16(a: poly16x4_t) -> int16x4_t {
52381    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52382    unsafe {
52383        let ret_val: int16x4_t = transmute(a);
52384        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52385    }
52386}
52387#[doc = "Vector reinterpret cast operation"]
52388#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p16)"]
52389#[inline(always)]
52390#[cfg(target_endian = "little")]
52391#[target_feature(enable = "neon")]
52392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52394#[cfg_attr(
52395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52396    assert_instr(nop)
52397)]
52398#[cfg_attr(
52399    not(target_arch = "arm"),
52400    stable(feature = "neon_intrinsics", since = "1.59.0")
52401)]
52402#[cfg_attr(
52403    target_arch = "arm",
52404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52405)]
52406pub fn vreinterpret_s32_p16(a: poly16x4_t) -> int32x2_t {
52407    unsafe { transmute(a) }
52408}
52409#[doc = "Vector reinterpret cast operation"]
52410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p16)"]
52411#[inline(always)]
52412#[cfg(target_endian = "big")]
52413#[target_feature(enable = "neon")]
52414#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52415#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52416#[cfg_attr(
52417    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52418    assert_instr(nop)
52419)]
52420#[cfg_attr(
52421    not(target_arch = "arm"),
52422    stable(feature = "neon_intrinsics", since = "1.59.0")
52423)]
52424#[cfg_attr(
52425    target_arch = "arm",
52426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52427)]
52428pub fn vreinterpret_s32_p16(a: poly16x4_t) -> int32x2_t {
52429    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52430    unsafe {
52431        let ret_val: int32x2_t = transmute(a);
52432        simd_shuffle!(ret_val, ret_val, [1, 0])
52433    }
52434}
52435#[doc = "Vector reinterpret cast operation"]
52436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p16)"]
52437#[inline(always)]
52438#[cfg(target_endian = "little")]
52439#[target_feature(enable = "neon")]
52440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52442#[cfg_attr(
52443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52444    assert_instr(nop)
52445)]
52446#[cfg_attr(
52447    not(target_arch = "arm"),
52448    stable(feature = "neon_intrinsics", since = "1.59.0")
52449)]
52450#[cfg_attr(
52451    target_arch = "arm",
52452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52453)]
52454pub fn vreinterpret_s64_p16(a: poly16x4_t) -> int64x1_t {
52455    unsafe { transmute(a) }
52456}
52457#[doc = "Vector reinterpret cast operation"]
52458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p16)"]
52459#[inline(always)]
52460#[cfg(target_endian = "big")]
52461#[target_feature(enable = "neon")]
52462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52464#[cfg_attr(
52465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52466    assert_instr(nop)
52467)]
52468#[cfg_attr(
52469    not(target_arch = "arm"),
52470    stable(feature = "neon_intrinsics", since = "1.59.0")
52471)]
52472#[cfg_attr(
52473    target_arch = "arm",
52474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52475)]
52476pub fn vreinterpret_s64_p16(a: poly16x4_t) -> int64x1_t {
52477    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52478    unsafe { transmute(a) }
52479}
52480#[doc = "Vector reinterpret cast operation"]
52481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p16)"]
52482#[inline(always)]
52483#[cfg(target_endian = "little")]
52484#[target_feature(enable = "neon")]
52485#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52486#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52487#[cfg_attr(
52488    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52489    assert_instr(nop)
52490)]
52491#[cfg_attr(
52492    not(target_arch = "arm"),
52493    stable(feature = "neon_intrinsics", since = "1.59.0")
52494)]
52495#[cfg_attr(
52496    target_arch = "arm",
52497    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52498)]
52499pub fn vreinterpret_u8_p16(a: poly16x4_t) -> uint8x8_t {
52500    unsafe { transmute(a) }
52501}
52502#[doc = "Vector reinterpret cast operation"]
52503#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p16)"]
52504#[inline(always)]
52505#[cfg(target_endian = "big")]
52506#[target_feature(enable = "neon")]
52507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52508#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52509#[cfg_attr(
52510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52511    assert_instr(nop)
52512)]
52513#[cfg_attr(
52514    not(target_arch = "arm"),
52515    stable(feature = "neon_intrinsics", since = "1.59.0")
52516)]
52517#[cfg_attr(
52518    target_arch = "arm",
52519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52520)]
52521pub fn vreinterpret_u8_p16(a: poly16x4_t) -> uint8x8_t {
52522    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52523    unsafe {
52524        let ret_val: uint8x8_t = transmute(a);
52525        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52526    }
52527}
52528#[doc = "Vector reinterpret cast operation"]
52529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p16)"]
52530#[inline(always)]
52531#[cfg(target_endian = "little")]
52532#[target_feature(enable = "neon")]
52533#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52534#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52535#[cfg_attr(
52536    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52537    assert_instr(nop)
52538)]
52539#[cfg_attr(
52540    not(target_arch = "arm"),
52541    stable(feature = "neon_intrinsics", since = "1.59.0")
52542)]
52543#[cfg_attr(
52544    target_arch = "arm",
52545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52546)]
52547pub fn vreinterpret_u16_p16(a: poly16x4_t) -> uint16x4_t {
52548    unsafe { transmute(a) }
52549}
52550#[doc = "Vector reinterpret cast operation"]
52551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p16)"]
52552#[inline(always)]
52553#[cfg(target_endian = "big")]
52554#[target_feature(enable = "neon")]
52555#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52556#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52557#[cfg_attr(
52558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52559    assert_instr(nop)
52560)]
52561#[cfg_attr(
52562    not(target_arch = "arm"),
52563    stable(feature = "neon_intrinsics", since = "1.59.0")
52564)]
52565#[cfg_attr(
52566    target_arch = "arm",
52567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52568)]
52569pub fn vreinterpret_u16_p16(a: poly16x4_t) -> uint16x4_t {
52570    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52571    unsafe {
52572        let ret_val: uint16x4_t = transmute(a);
52573        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52574    }
52575}
52576#[doc = "Vector reinterpret cast operation"]
52577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p16)"]
52578#[inline(always)]
52579#[cfg(target_endian = "little")]
52580#[target_feature(enable = "neon")]
52581#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52582#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52583#[cfg_attr(
52584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52585    assert_instr(nop)
52586)]
52587#[cfg_attr(
52588    not(target_arch = "arm"),
52589    stable(feature = "neon_intrinsics", since = "1.59.0")
52590)]
52591#[cfg_attr(
52592    target_arch = "arm",
52593    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52594)]
52595pub fn vreinterpret_u32_p16(a: poly16x4_t) -> uint32x2_t {
52596    unsafe { transmute(a) }
52597}
52598#[doc = "Vector reinterpret cast operation"]
52599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p16)"]
52600#[inline(always)]
52601#[cfg(target_endian = "big")]
52602#[target_feature(enable = "neon")]
52603#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52604#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52605#[cfg_attr(
52606    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52607    assert_instr(nop)
52608)]
52609#[cfg_attr(
52610    not(target_arch = "arm"),
52611    stable(feature = "neon_intrinsics", since = "1.59.0")
52612)]
52613#[cfg_attr(
52614    target_arch = "arm",
52615    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52616)]
52617pub fn vreinterpret_u32_p16(a: poly16x4_t) -> uint32x2_t {
52618    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52619    unsafe {
52620        let ret_val: uint32x2_t = transmute(a);
52621        simd_shuffle!(ret_val, ret_val, [1, 0])
52622    }
52623}
52624#[doc = "Vector reinterpret cast operation"]
52625#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p16)"]
52626#[inline(always)]
52627#[cfg(target_endian = "little")]
52628#[target_feature(enable = "neon")]
52629#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52630#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52631#[cfg_attr(
52632    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52633    assert_instr(nop)
52634)]
52635#[cfg_attr(
52636    not(target_arch = "arm"),
52637    stable(feature = "neon_intrinsics", since = "1.59.0")
52638)]
52639#[cfg_attr(
52640    target_arch = "arm",
52641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52642)]
52643pub fn vreinterpret_u64_p16(a: poly16x4_t) -> uint64x1_t {
52644    unsafe { transmute(a) }
52645}
52646#[doc = "Vector reinterpret cast operation"]
52647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p16)"]
52648#[inline(always)]
52649#[cfg(target_endian = "big")]
52650#[target_feature(enable = "neon")]
52651#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52652#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52653#[cfg_attr(
52654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52655    assert_instr(nop)
52656)]
52657#[cfg_attr(
52658    not(target_arch = "arm"),
52659    stable(feature = "neon_intrinsics", since = "1.59.0")
52660)]
52661#[cfg_attr(
52662    target_arch = "arm",
52663    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52664)]
52665pub fn vreinterpret_u64_p16(a: poly16x4_t) -> uint64x1_t {
52666    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52667    unsafe { transmute(a) }
52668}
52669#[doc = "Vector reinterpret cast operation"]
52670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p16)"]
52671#[inline(always)]
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 vreinterpret_p8_p16(a: poly16x4_t) -> poly8x8_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/vreinterpret_p8_p16)"]
52693#[inline(always)]
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 vreinterpret_p8_p16(a: poly16x4_t) -> poly8x8_t {
52711    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52712    unsafe {
52713        let ret_val: poly8x8_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_f32_p16)"]
52719#[inline(always)]
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_f32_p16(a: poly16x8_t) -> float32x4_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_f32_p16)"]
52741#[inline(always)]
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_f32_p16(a: poly16x8_t) -> float32x4_t {
52759    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
52760    unsafe {
52761        let ret_val: float32x4_t = transmute(a);
52762        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52763    }
52764}
52765#[doc = "Vector reinterpret cast operation"]
52766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p16)"]
52767#[inline(always)]
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_s8_p16(a: poly16x8_t) -> int8x16_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_s8_p16)"]
52789#[inline(always)]
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_s8_p16(a: poly16x8_t) -> int8x16_t {
52807    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
52808    unsafe {
52809        let ret_val: int8x16_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_s16_p16)"]
52819#[inline(always)]
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_s16_p16(a: poly16x8_t) -> int16x8_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_s16_p16)"]
52841#[inline(always)]
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_s16_p16(a: poly16x8_t) -> int16x8_t {
52859    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
52860    unsafe {
52861        let ret_val: int16x8_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/vreinterpretq_s32_p16)"]
52867#[inline(always)]
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 vreinterpretq_s32_p16(a: poly16x8_t) -> int32x4_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/vreinterpretq_s32_p16)"]
52889#[inline(always)]
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 vreinterpretq_s32_p16(a: poly16x8_t) -> int32x4_t {
52907    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
52908    unsafe {
52909        let ret_val: int32x4_t = transmute(a);
52910        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52911    }
52912}
52913#[doc = "Vector reinterpret cast operation"]
52914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p16)"]
52915#[inline(always)]
52916#[cfg(target_endian = "little")]
52917#[target_feature(enable = "neon")]
52918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52919#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52920#[cfg_attr(
52921    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52922    assert_instr(nop)
52923)]
52924#[cfg_attr(
52925    not(target_arch = "arm"),
52926    stable(feature = "neon_intrinsics", since = "1.59.0")
52927)]
52928#[cfg_attr(
52929    target_arch = "arm",
52930    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52931)]
52932pub fn vreinterpretq_s64_p16(a: poly16x8_t) -> int64x2_t {
52933    unsafe { transmute(a) }
52934}
52935#[doc = "Vector reinterpret cast operation"]
52936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p16)"]
52937#[inline(always)]
52938#[cfg(target_endian = "big")]
52939#[target_feature(enable = "neon")]
52940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52942#[cfg_attr(
52943    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52944    assert_instr(nop)
52945)]
52946#[cfg_attr(
52947    not(target_arch = "arm"),
52948    stable(feature = "neon_intrinsics", since = "1.59.0")
52949)]
52950#[cfg_attr(
52951    target_arch = "arm",
52952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52953)]
52954pub fn vreinterpretq_s64_p16(a: poly16x8_t) -> int64x2_t {
52955    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
52956    unsafe {
52957        let ret_val: int64x2_t = transmute(a);
52958        simd_shuffle!(ret_val, ret_val, [1, 0])
52959    }
52960}
52961#[doc = "Vector reinterpret cast operation"]
52962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p16)"]
52963#[inline(always)]
52964#[cfg(target_endian = "little")]
52965#[target_feature(enable = "neon")]
52966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52968#[cfg_attr(
52969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52970    assert_instr(nop)
52971)]
52972#[cfg_attr(
52973    not(target_arch = "arm"),
52974    stable(feature = "neon_intrinsics", since = "1.59.0")
52975)]
52976#[cfg_attr(
52977    target_arch = "arm",
52978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52979)]
52980pub fn vreinterpretq_u8_p16(a: poly16x8_t) -> uint8x16_t {
52981    unsafe { transmute(a) }
52982}
52983#[doc = "Vector reinterpret cast operation"]
52984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p16)"]
52985#[inline(always)]
52986#[cfg(target_endian = "big")]
52987#[target_feature(enable = "neon")]
52988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52990#[cfg_attr(
52991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52992    assert_instr(nop)
52993)]
52994#[cfg_attr(
52995    not(target_arch = "arm"),
52996    stable(feature = "neon_intrinsics", since = "1.59.0")
52997)]
52998#[cfg_attr(
52999    target_arch = "arm",
53000    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53001)]
53002pub fn vreinterpretq_u8_p16(a: poly16x8_t) -> uint8x16_t {
53003    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53004    unsafe {
53005        let ret_val: uint8x16_t = transmute(a);
53006        simd_shuffle!(
53007            ret_val,
53008            ret_val,
53009            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53010        )
53011    }
53012}
53013#[doc = "Vector reinterpret cast operation"]
53014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p16)"]
53015#[inline(always)]
53016#[cfg(target_endian = "little")]
53017#[target_feature(enable = "neon")]
53018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53020#[cfg_attr(
53021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53022    assert_instr(nop)
53023)]
53024#[cfg_attr(
53025    not(target_arch = "arm"),
53026    stable(feature = "neon_intrinsics", since = "1.59.0")
53027)]
53028#[cfg_attr(
53029    target_arch = "arm",
53030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53031)]
53032pub fn vreinterpretq_u16_p16(a: poly16x8_t) -> uint16x8_t {
53033    unsafe { transmute(a) }
53034}
53035#[doc = "Vector reinterpret cast operation"]
53036#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p16)"]
53037#[inline(always)]
53038#[cfg(target_endian = "big")]
53039#[target_feature(enable = "neon")]
53040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53041#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53042#[cfg_attr(
53043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53044    assert_instr(nop)
53045)]
53046#[cfg_attr(
53047    not(target_arch = "arm"),
53048    stable(feature = "neon_intrinsics", since = "1.59.0")
53049)]
53050#[cfg_attr(
53051    target_arch = "arm",
53052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53053)]
53054pub fn vreinterpretq_u16_p16(a: poly16x8_t) -> uint16x8_t {
53055    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53056    unsafe {
53057        let ret_val: uint16x8_t = transmute(a);
53058        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53059    }
53060}
53061#[doc = "Vector reinterpret cast operation"]
53062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p16)"]
53063#[inline(always)]
53064#[cfg(target_endian = "little")]
53065#[target_feature(enable = "neon")]
53066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53068#[cfg_attr(
53069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53070    assert_instr(nop)
53071)]
53072#[cfg_attr(
53073    not(target_arch = "arm"),
53074    stable(feature = "neon_intrinsics", since = "1.59.0")
53075)]
53076#[cfg_attr(
53077    target_arch = "arm",
53078    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53079)]
53080pub fn vreinterpretq_u32_p16(a: poly16x8_t) -> uint32x4_t {
53081    unsafe { transmute(a) }
53082}
53083#[doc = "Vector reinterpret cast operation"]
53084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p16)"]
53085#[inline(always)]
53086#[cfg(target_endian = "big")]
53087#[target_feature(enable = "neon")]
53088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53089#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53090#[cfg_attr(
53091    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53092    assert_instr(nop)
53093)]
53094#[cfg_attr(
53095    not(target_arch = "arm"),
53096    stable(feature = "neon_intrinsics", since = "1.59.0")
53097)]
53098#[cfg_attr(
53099    target_arch = "arm",
53100    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53101)]
53102pub fn vreinterpretq_u32_p16(a: poly16x8_t) -> uint32x4_t {
53103    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53104    unsafe {
53105        let ret_val: uint32x4_t = transmute(a);
53106        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53107    }
53108}
53109#[doc = "Vector reinterpret cast operation"]
53110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p16)"]
53111#[inline(always)]
53112#[cfg(target_endian = "little")]
53113#[target_feature(enable = "neon")]
53114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53116#[cfg_attr(
53117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53118    assert_instr(nop)
53119)]
53120#[cfg_attr(
53121    not(target_arch = "arm"),
53122    stable(feature = "neon_intrinsics", since = "1.59.0")
53123)]
53124#[cfg_attr(
53125    target_arch = "arm",
53126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53127)]
53128pub fn vreinterpretq_u64_p16(a: poly16x8_t) -> uint64x2_t {
53129    unsafe { transmute(a) }
53130}
53131#[doc = "Vector reinterpret cast operation"]
53132#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p16)"]
53133#[inline(always)]
53134#[cfg(target_endian = "big")]
53135#[target_feature(enable = "neon")]
53136#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53137#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53138#[cfg_attr(
53139    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53140    assert_instr(nop)
53141)]
53142#[cfg_attr(
53143    not(target_arch = "arm"),
53144    stable(feature = "neon_intrinsics", since = "1.59.0")
53145)]
53146#[cfg_attr(
53147    target_arch = "arm",
53148    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53149)]
53150pub fn vreinterpretq_u64_p16(a: poly16x8_t) -> uint64x2_t {
53151    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53152    unsafe {
53153        let ret_val: uint64x2_t = transmute(a);
53154        simd_shuffle!(ret_val, ret_val, [1, 0])
53155    }
53156}
53157#[doc = "Vector reinterpret cast operation"]
53158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p16)"]
53159#[inline(always)]
53160#[cfg(target_endian = "little")]
53161#[target_feature(enable = "neon")]
53162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53164#[cfg_attr(
53165    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53166    assert_instr(nop)
53167)]
53168#[cfg_attr(
53169    not(target_arch = "arm"),
53170    stable(feature = "neon_intrinsics", since = "1.59.0")
53171)]
53172#[cfg_attr(
53173    target_arch = "arm",
53174    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53175)]
53176pub fn vreinterpretq_p8_p16(a: poly16x8_t) -> poly8x16_t {
53177    unsafe { transmute(a) }
53178}
53179#[doc = "Vector reinterpret cast operation"]
53180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p16)"]
53181#[inline(always)]
53182#[cfg(target_endian = "big")]
53183#[target_feature(enable = "neon")]
53184#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53185#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53186#[cfg_attr(
53187    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53188    assert_instr(nop)
53189)]
53190#[cfg_attr(
53191    not(target_arch = "arm"),
53192    stable(feature = "neon_intrinsics", since = "1.59.0")
53193)]
53194#[cfg_attr(
53195    target_arch = "arm",
53196    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53197)]
53198pub fn vreinterpretq_p8_p16(a: poly16x8_t) -> poly8x16_t {
53199    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53200    unsafe {
53201        let ret_val: poly8x16_t = transmute(a);
53202        simd_shuffle!(
53203            ret_val,
53204            ret_val,
53205            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53206        )
53207    }
53208}
53209#[doc = "Vector reinterpret cast operation"]
53210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p128)"]
53211#[inline(always)]
53212#[cfg(target_endian = "little")]
53213#[target_feature(enable = "neon,aes")]
53214#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53216#[cfg_attr(
53217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53218    assert_instr(nop)
53219)]
53220#[cfg_attr(
53221    not(target_arch = "arm"),
53222    stable(feature = "neon_intrinsics", since = "1.59.0")
53223)]
53224#[cfg_attr(
53225    target_arch = "arm",
53226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53227)]
53228pub fn vreinterpretq_s8_p128(a: p128) -> int8x16_t {
53229    unsafe { transmute(a) }
53230}
53231#[doc = "Vector reinterpret cast operation"]
53232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p128)"]
53233#[inline(always)]
53234#[cfg(target_endian = "big")]
53235#[target_feature(enable = "neon,aes")]
53236#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53237#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53238#[cfg_attr(
53239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53240    assert_instr(nop)
53241)]
53242#[cfg_attr(
53243    not(target_arch = "arm"),
53244    stable(feature = "neon_intrinsics", since = "1.59.0")
53245)]
53246#[cfg_attr(
53247    target_arch = "arm",
53248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53249)]
53250pub fn vreinterpretq_s8_p128(a: p128) -> int8x16_t {
53251    unsafe {
53252        let ret_val: int8x16_t = transmute(a);
53253        simd_shuffle!(
53254            ret_val,
53255            ret_val,
53256            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53257        )
53258    }
53259}
53260#[doc = "Vector reinterpret cast operation"]
53261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p128)"]
53262#[inline(always)]
53263#[cfg(target_endian = "little")]
53264#[target_feature(enable = "neon,aes")]
53265#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53266#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53267#[cfg_attr(
53268    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53269    assert_instr(nop)
53270)]
53271#[cfg_attr(
53272    not(target_arch = "arm"),
53273    stable(feature = "neon_intrinsics", since = "1.59.0")
53274)]
53275#[cfg_attr(
53276    target_arch = "arm",
53277    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53278)]
53279pub fn vreinterpretq_s16_p128(a: p128) -> int16x8_t {
53280    unsafe { transmute(a) }
53281}
53282#[doc = "Vector reinterpret cast operation"]
53283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p128)"]
53284#[inline(always)]
53285#[cfg(target_endian = "big")]
53286#[target_feature(enable = "neon,aes")]
53287#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53288#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53289#[cfg_attr(
53290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53291    assert_instr(nop)
53292)]
53293#[cfg_attr(
53294    not(target_arch = "arm"),
53295    stable(feature = "neon_intrinsics", since = "1.59.0")
53296)]
53297#[cfg_attr(
53298    target_arch = "arm",
53299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53300)]
53301pub fn vreinterpretq_s16_p128(a: p128) -> int16x8_t {
53302    unsafe {
53303        let ret_val: int16x8_t = transmute(a);
53304        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53305    }
53306}
53307#[doc = "Vector reinterpret cast operation"]
53308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p128)"]
53309#[inline(always)]
53310#[cfg(target_endian = "little")]
53311#[target_feature(enable = "neon,aes")]
53312#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53314#[cfg_attr(
53315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53316    assert_instr(nop)
53317)]
53318#[cfg_attr(
53319    not(target_arch = "arm"),
53320    stable(feature = "neon_intrinsics", since = "1.59.0")
53321)]
53322#[cfg_attr(
53323    target_arch = "arm",
53324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53325)]
53326pub fn vreinterpretq_s32_p128(a: p128) -> int32x4_t {
53327    unsafe { transmute(a) }
53328}
53329#[doc = "Vector reinterpret cast operation"]
53330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p128)"]
53331#[inline(always)]
53332#[cfg(target_endian = "big")]
53333#[target_feature(enable = "neon,aes")]
53334#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53335#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53336#[cfg_attr(
53337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53338    assert_instr(nop)
53339)]
53340#[cfg_attr(
53341    not(target_arch = "arm"),
53342    stable(feature = "neon_intrinsics", since = "1.59.0")
53343)]
53344#[cfg_attr(
53345    target_arch = "arm",
53346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53347)]
53348pub fn vreinterpretq_s32_p128(a: p128) -> int32x4_t {
53349    unsafe {
53350        let ret_val: int32x4_t = transmute(a);
53351        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53352    }
53353}
53354#[doc = "Vector reinterpret cast operation"]
53355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p128)"]
53356#[inline(always)]
53357#[cfg(target_endian = "little")]
53358#[target_feature(enable = "neon,aes")]
53359#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53360#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53361#[cfg_attr(
53362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53363    assert_instr(nop)
53364)]
53365#[cfg_attr(
53366    not(target_arch = "arm"),
53367    stable(feature = "neon_intrinsics", since = "1.59.0")
53368)]
53369#[cfg_attr(
53370    target_arch = "arm",
53371    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53372)]
53373pub fn vreinterpretq_s64_p128(a: p128) -> int64x2_t {
53374    unsafe { transmute(a) }
53375}
53376#[doc = "Vector reinterpret cast operation"]
53377#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p128)"]
53378#[inline(always)]
53379#[cfg(target_endian = "big")]
53380#[target_feature(enable = "neon,aes")]
53381#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53382#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53383#[cfg_attr(
53384    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53385    assert_instr(nop)
53386)]
53387#[cfg_attr(
53388    not(target_arch = "arm"),
53389    stable(feature = "neon_intrinsics", since = "1.59.0")
53390)]
53391#[cfg_attr(
53392    target_arch = "arm",
53393    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53394)]
53395pub fn vreinterpretq_s64_p128(a: p128) -> int64x2_t {
53396    unsafe {
53397        let ret_val: int64x2_t = transmute(a);
53398        simd_shuffle!(ret_val, ret_val, [1, 0])
53399    }
53400}
53401#[doc = "Vector reinterpret cast operation"]
53402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p128)"]
53403#[inline(always)]
53404#[cfg(target_endian = "little")]
53405#[target_feature(enable = "neon,aes")]
53406#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53407#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53408#[cfg_attr(
53409    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53410    assert_instr(nop)
53411)]
53412#[cfg_attr(
53413    not(target_arch = "arm"),
53414    stable(feature = "neon_intrinsics", since = "1.59.0")
53415)]
53416#[cfg_attr(
53417    target_arch = "arm",
53418    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53419)]
53420pub fn vreinterpretq_u8_p128(a: p128) -> uint8x16_t {
53421    unsafe { transmute(a) }
53422}
53423#[doc = "Vector reinterpret cast operation"]
53424#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p128)"]
53425#[inline(always)]
53426#[cfg(target_endian = "big")]
53427#[target_feature(enable = "neon,aes")]
53428#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53429#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53430#[cfg_attr(
53431    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53432    assert_instr(nop)
53433)]
53434#[cfg_attr(
53435    not(target_arch = "arm"),
53436    stable(feature = "neon_intrinsics", since = "1.59.0")
53437)]
53438#[cfg_attr(
53439    target_arch = "arm",
53440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53441)]
53442pub fn vreinterpretq_u8_p128(a: p128) -> uint8x16_t {
53443    unsafe {
53444        let ret_val: uint8x16_t = transmute(a);
53445        simd_shuffle!(
53446            ret_val,
53447            ret_val,
53448            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53449        )
53450    }
53451}
53452#[doc = "Vector reinterpret cast operation"]
53453#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p128)"]
53454#[inline(always)]
53455#[cfg(target_endian = "little")]
53456#[target_feature(enable = "neon,aes")]
53457#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53458#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53459#[cfg_attr(
53460    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53461    assert_instr(nop)
53462)]
53463#[cfg_attr(
53464    not(target_arch = "arm"),
53465    stable(feature = "neon_intrinsics", since = "1.59.0")
53466)]
53467#[cfg_attr(
53468    target_arch = "arm",
53469    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53470)]
53471pub fn vreinterpretq_u16_p128(a: p128) -> uint16x8_t {
53472    unsafe { transmute(a) }
53473}
53474#[doc = "Vector reinterpret cast operation"]
53475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p128)"]
53476#[inline(always)]
53477#[cfg(target_endian = "big")]
53478#[target_feature(enable = "neon,aes")]
53479#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53480#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53481#[cfg_attr(
53482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53483    assert_instr(nop)
53484)]
53485#[cfg_attr(
53486    not(target_arch = "arm"),
53487    stable(feature = "neon_intrinsics", since = "1.59.0")
53488)]
53489#[cfg_attr(
53490    target_arch = "arm",
53491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53492)]
53493pub fn vreinterpretq_u16_p128(a: p128) -> uint16x8_t {
53494    unsafe {
53495        let ret_val: uint16x8_t = transmute(a);
53496        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53497    }
53498}
53499#[doc = "Vector reinterpret cast operation"]
53500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p128)"]
53501#[inline(always)]
53502#[cfg(target_endian = "little")]
53503#[target_feature(enable = "neon,aes")]
53504#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53506#[cfg_attr(
53507    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53508    assert_instr(nop)
53509)]
53510#[cfg_attr(
53511    not(target_arch = "arm"),
53512    stable(feature = "neon_intrinsics", since = "1.59.0")
53513)]
53514#[cfg_attr(
53515    target_arch = "arm",
53516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53517)]
53518pub fn vreinterpretq_u32_p128(a: p128) -> uint32x4_t {
53519    unsafe { transmute(a) }
53520}
53521#[doc = "Vector reinterpret cast operation"]
53522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p128)"]
53523#[inline(always)]
53524#[cfg(target_endian = "big")]
53525#[target_feature(enable = "neon,aes")]
53526#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53528#[cfg_attr(
53529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53530    assert_instr(nop)
53531)]
53532#[cfg_attr(
53533    not(target_arch = "arm"),
53534    stable(feature = "neon_intrinsics", since = "1.59.0")
53535)]
53536#[cfg_attr(
53537    target_arch = "arm",
53538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53539)]
53540pub fn vreinterpretq_u32_p128(a: p128) -> uint32x4_t {
53541    unsafe {
53542        let ret_val: uint32x4_t = transmute(a);
53543        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53544    }
53545}
53546#[doc = "Vector reinterpret cast operation"]
53547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p128)"]
53548#[inline(always)]
53549#[cfg(target_endian = "little")]
53550#[target_feature(enable = "neon,aes")]
53551#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53553#[cfg_attr(
53554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53555    assert_instr(nop)
53556)]
53557#[cfg_attr(
53558    not(target_arch = "arm"),
53559    stable(feature = "neon_intrinsics", since = "1.59.0")
53560)]
53561#[cfg_attr(
53562    target_arch = "arm",
53563    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53564)]
53565pub fn vreinterpretq_u64_p128(a: p128) -> uint64x2_t {
53566    unsafe { transmute(a) }
53567}
53568#[doc = "Vector reinterpret cast operation"]
53569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p128)"]
53570#[inline(always)]
53571#[cfg(target_endian = "big")]
53572#[target_feature(enable = "neon,aes")]
53573#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53574#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53575#[cfg_attr(
53576    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53577    assert_instr(nop)
53578)]
53579#[cfg_attr(
53580    not(target_arch = "arm"),
53581    stable(feature = "neon_intrinsics", since = "1.59.0")
53582)]
53583#[cfg_attr(
53584    target_arch = "arm",
53585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53586)]
53587pub fn vreinterpretq_u64_p128(a: p128) -> uint64x2_t {
53588    unsafe {
53589        let ret_val: uint64x2_t = transmute(a);
53590        simd_shuffle!(ret_val, ret_val, [1, 0])
53591    }
53592}
53593#[doc = "Vector reinterpret cast operation"]
53594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p128)"]
53595#[inline(always)]
53596#[cfg(target_endian = "little")]
53597#[target_feature(enable = "neon,aes")]
53598#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53599#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53600#[cfg_attr(
53601    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53602    assert_instr(nop)
53603)]
53604#[cfg_attr(
53605    not(target_arch = "arm"),
53606    stable(feature = "neon_intrinsics", since = "1.59.0")
53607)]
53608#[cfg_attr(
53609    target_arch = "arm",
53610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53611)]
53612pub fn vreinterpretq_p8_p128(a: p128) -> poly8x16_t {
53613    unsafe { transmute(a) }
53614}
53615#[doc = "Vector reinterpret cast operation"]
53616#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p128)"]
53617#[inline(always)]
53618#[cfg(target_endian = "big")]
53619#[target_feature(enable = "neon,aes")]
53620#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53622#[cfg_attr(
53623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53624    assert_instr(nop)
53625)]
53626#[cfg_attr(
53627    not(target_arch = "arm"),
53628    stable(feature = "neon_intrinsics", since = "1.59.0")
53629)]
53630#[cfg_attr(
53631    target_arch = "arm",
53632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53633)]
53634pub fn vreinterpretq_p8_p128(a: p128) -> poly8x16_t {
53635    unsafe {
53636        let ret_val: poly8x16_t = transmute(a);
53637        simd_shuffle!(
53638            ret_val,
53639            ret_val,
53640            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53641        )
53642    }
53643}
53644#[doc = "Vector reinterpret cast operation"]
53645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p128)"]
53646#[inline(always)]
53647#[cfg(target_endian = "little")]
53648#[target_feature(enable = "neon,aes")]
53649#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53650#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53651#[cfg_attr(
53652    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53653    assert_instr(nop)
53654)]
53655#[cfg_attr(
53656    not(target_arch = "arm"),
53657    stable(feature = "neon_intrinsics", since = "1.59.0")
53658)]
53659#[cfg_attr(
53660    target_arch = "arm",
53661    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53662)]
53663pub fn vreinterpretq_p16_p128(a: p128) -> poly16x8_t {
53664    unsafe { transmute(a) }
53665}
53666#[doc = "Vector reinterpret cast operation"]
53667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p128)"]
53668#[inline(always)]
53669#[cfg(target_endian = "big")]
53670#[target_feature(enable = "neon,aes")]
53671#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53672#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53673#[cfg_attr(
53674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53675    assert_instr(nop)
53676)]
53677#[cfg_attr(
53678    not(target_arch = "arm"),
53679    stable(feature = "neon_intrinsics", since = "1.59.0")
53680)]
53681#[cfg_attr(
53682    target_arch = "arm",
53683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53684)]
53685pub fn vreinterpretq_p16_p128(a: p128) -> poly16x8_t {
53686    unsafe {
53687        let ret_val: poly16x8_t = transmute(a);
53688        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53689    }
53690}
53691#[doc = "Vector reinterpret cast operation"]
53692#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p128)"]
53693#[inline(always)]
53694#[cfg(target_endian = "little")]
53695#[target_feature(enable = "neon,aes")]
53696#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53698#[cfg_attr(
53699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53700    assert_instr(nop)
53701)]
53702#[cfg_attr(
53703    not(target_arch = "arm"),
53704    stable(feature = "neon_intrinsics", since = "1.59.0")
53705)]
53706#[cfg_attr(
53707    target_arch = "arm",
53708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53709)]
53710pub fn vreinterpretq_p64_p128(a: p128) -> poly64x2_t {
53711    unsafe { transmute(a) }
53712}
53713#[doc = "Vector reinterpret cast operation"]
53714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p128)"]
53715#[inline(always)]
53716#[cfg(target_endian = "big")]
53717#[target_feature(enable = "neon,aes")]
53718#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53720#[cfg_attr(
53721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53722    assert_instr(nop)
53723)]
53724#[cfg_attr(
53725    not(target_arch = "arm"),
53726    stable(feature = "neon_intrinsics", since = "1.59.0")
53727)]
53728#[cfg_attr(
53729    target_arch = "arm",
53730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53731)]
53732pub fn vreinterpretq_p64_p128(a: p128) -> poly64x2_t {
53733    unsafe {
53734        let ret_val: poly64x2_t = transmute(a);
53735        simd_shuffle!(ret_val, ret_val, [1, 0])
53736    }
53737}
53738#[doc = "Vector reinterpret cast operation"]
53739#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s8)"]
53740#[inline(always)]
53741#[cfg(target_endian = "little")]
53742#[target_feature(enable = "neon,aes")]
53743#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53744#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53745#[cfg_attr(
53746    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53747    assert_instr(nop)
53748)]
53749#[cfg_attr(
53750    not(target_arch = "arm"),
53751    stable(feature = "neon_intrinsics", since = "1.59.0")
53752)]
53753#[cfg_attr(
53754    target_arch = "arm",
53755    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53756)]
53757pub fn vreinterpret_p64_s8(a: int8x8_t) -> poly64x1_t {
53758    unsafe { transmute(a) }
53759}
53760#[doc = "Vector reinterpret cast operation"]
53761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s8)"]
53762#[inline(always)]
53763#[cfg(target_endian = "big")]
53764#[target_feature(enable = "neon,aes")]
53765#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53766#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53767#[cfg_attr(
53768    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53769    assert_instr(nop)
53770)]
53771#[cfg_attr(
53772    not(target_arch = "arm"),
53773    stable(feature = "neon_intrinsics", since = "1.59.0")
53774)]
53775#[cfg_attr(
53776    target_arch = "arm",
53777    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53778)]
53779pub fn vreinterpret_p64_s8(a: int8x8_t) -> poly64x1_t {
53780    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53781    unsafe { transmute(a) }
53782}
53783#[doc = "Vector reinterpret cast operation"]
53784#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s8)"]
53785#[inline(always)]
53786#[cfg(target_endian = "little")]
53787#[target_feature(enable = "neon,aes")]
53788#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53790#[cfg_attr(
53791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53792    assert_instr(nop)
53793)]
53794#[cfg_attr(
53795    not(target_arch = "arm"),
53796    stable(feature = "neon_intrinsics", since = "1.59.0")
53797)]
53798#[cfg_attr(
53799    target_arch = "arm",
53800    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53801)]
53802pub fn vreinterpretq_p128_s8(a: int8x16_t) -> p128 {
53803    unsafe { transmute(a) }
53804}
53805#[doc = "Vector reinterpret cast operation"]
53806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s8)"]
53807#[inline(always)]
53808#[cfg(target_endian = "big")]
53809#[target_feature(enable = "neon,aes")]
53810#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53811#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53812#[cfg_attr(
53813    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53814    assert_instr(nop)
53815)]
53816#[cfg_attr(
53817    not(target_arch = "arm"),
53818    stable(feature = "neon_intrinsics", since = "1.59.0")
53819)]
53820#[cfg_attr(
53821    target_arch = "arm",
53822    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53823)]
53824pub fn vreinterpretq_p128_s8(a: int8x16_t) -> p128 {
53825    let a: int8x16_t =
53826        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
53827    unsafe { transmute(a) }
53828}
53829#[doc = "Vector reinterpret cast operation"]
53830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s8)"]
53831#[inline(always)]
53832#[cfg(target_endian = "little")]
53833#[target_feature(enable = "neon,aes")]
53834#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53835#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53836#[cfg_attr(
53837    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53838    assert_instr(nop)
53839)]
53840#[cfg_attr(
53841    not(target_arch = "arm"),
53842    stable(feature = "neon_intrinsics", since = "1.59.0")
53843)]
53844#[cfg_attr(
53845    target_arch = "arm",
53846    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53847)]
53848pub fn vreinterpretq_p64_s8(a: int8x16_t) -> poly64x2_t {
53849    unsafe { transmute(a) }
53850}
53851#[doc = "Vector reinterpret cast operation"]
53852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s8)"]
53853#[inline(always)]
53854#[cfg(target_endian = "big")]
53855#[target_feature(enable = "neon,aes")]
53856#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53858#[cfg_attr(
53859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53860    assert_instr(nop)
53861)]
53862#[cfg_attr(
53863    not(target_arch = "arm"),
53864    stable(feature = "neon_intrinsics", since = "1.59.0")
53865)]
53866#[cfg_attr(
53867    target_arch = "arm",
53868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53869)]
53870pub fn vreinterpretq_p64_s8(a: int8x16_t) -> poly64x2_t {
53871    let a: int8x16_t =
53872        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
53873    unsafe {
53874        let ret_val: poly64x2_t = transmute(a);
53875        simd_shuffle!(ret_val, ret_val, [1, 0])
53876    }
53877}
53878#[doc = "Vector reinterpret cast operation"]
53879#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s16)"]
53880#[inline(always)]
53881#[cfg(target_endian = "little")]
53882#[target_feature(enable = "neon,aes")]
53883#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53884#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53885#[cfg_attr(
53886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53887    assert_instr(nop)
53888)]
53889#[cfg_attr(
53890    not(target_arch = "arm"),
53891    stable(feature = "neon_intrinsics", since = "1.59.0")
53892)]
53893#[cfg_attr(
53894    target_arch = "arm",
53895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53896)]
53897pub fn vreinterpret_p64_s16(a: int16x4_t) -> poly64x1_t {
53898    unsafe { transmute(a) }
53899}
53900#[doc = "Vector reinterpret cast operation"]
53901#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s16)"]
53902#[inline(always)]
53903#[cfg(target_endian = "big")]
53904#[target_feature(enable = "neon,aes")]
53905#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53906#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53907#[cfg_attr(
53908    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53909    assert_instr(nop)
53910)]
53911#[cfg_attr(
53912    not(target_arch = "arm"),
53913    stable(feature = "neon_intrinsics", since = "1.59.0")
53914)]
53915#[cfg_attr(
53916    target_arch = "arm",
53917    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53918)]
53919pub fn vreinterpret_p64_s16(a: int16x4_t) -> poly64x1_t {
53920    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
53921    unsafe { transmute(a) }
53922}
53923#[doc = "Vector reinterpret cast operation"]
53924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s16)"]
53925#[inline(always)]
53926#[cfg(target_endian = "little")]
53927#[target_feature(enable = "neon,aes")]
53928#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53929#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53930#[cfg_attr(
53931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53932    assert_instr(nop)
53933)]
53934#[cfg_attr(
53935    not(target_arch = "arm"),
53936    stable(feature = "neon_intrinsics", since = "1.59.0")
53937)]
53938#[cfg_attr(
53939    target_arch = "arm",
53940    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53941)]
53942pub fn vreinterpretq_p128_s16(a: int16x8_t) -> p128 {
53943    unsafe { transmute(a) }
53944}
53945#[doc = "Vector reinterpret cast operation"]
53946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s16)"]
53947#[inline(always)]
53948#[cfg(target_endian = "big")]
53949#[target_feature(enable = "neon,aes")]
53950#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
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 vreinterpretq_p128_s16(a: int16x8_t) -> p128 {
53965    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53966    unsafe { transmute(a) }
53967}
53968#[doc = "Vector reinterpret cast operation"]
53969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s16)"]
53970#[inline(always)]
53971#[cfg(target_endian = "little")]
53972#[target_feature(enable = "neon,aes")]
53973#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53974#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53975#[cfg_attr(
53976    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53977    assert_instr(nop)
53978)]
53979#[cfg_attr(
53980    not(target_arch = "arm"),
53981    stable(feature = "neon_intrinsics", since = "1.59.0")
53982)]
53983#[cfg_attr(
53984    target_arch = "arm",
53985    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53986)]
53987pub fn vreinterpretq_p64_s16(a: int16x8_t) -> poly64x2_t {
53988    unsafe { transmute(a) }
53989}
53990#[doc = "Vector reinterpret cast operation"]
53991#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s16)"]
53992#[inline(always)]
53993#[cfg(target_endian = "big")]
53994#[target_feature(enable = "neon,aes")]
53995#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53996#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53997#[cfg_attr(
53998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53999    assert_instr(nop)
54000)]
54001#[cfg_attr(
54002    not(target_arch = "arm"),
54003    stable(feature = "neon_intrinsics", since = "1.59.0")
54004)]
54005#[cfg_attr(
54006    target_arch = "arm",
54007    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54008)]
54009pub fn vreinterpretq_p64_s16(a: int16x8_t) -> poly64x2_t {
54010    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54011    unsafe {
54012        let ret_val: poly64x2_t = transmute(a);
54013        simd_shuffle!(ret_val, ret_val, [1, 0])
54014    }
54015}
54016#[doc = "Vector reinterpret cast operation"]
54017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s32)"]
54018#[inline(always)]
54019#[cfg(target_endian = "little")]
54020#[target_feature(enable = "neon,aes")]
54021#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54022#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54023#[cfg_attr(
54024    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54025    assert_instr(nop)
54026)]
54027#[cfg_attr(
54028    not(target_arch = "arm"),
54029    stable(feature = "neon_intrinsics", since = "1.59.0")
54030)]
54031#[cfg_attr(
54032    target_arch = "arm",
54033    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54034)]
54035pub fn vreinterpret_p64_s32(a: int32x2_t) -> poly64x1_t {
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_p64_s32)"]
54040#[inline(always)]
54041#[cfg(target_endian = "big")]
54042#[target_feature(enable = "neon,aes")]
54043#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
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_p64_s32(a: int32x2_t) -> poly64x1_t {
54058    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
54059    unsafe { transmute(a) }
54060}
54061#[doc = "Vector reinterpret cast operation"]
54062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s32)"]
54063#[inline(always)]
54064#[cfg(target_endian = "little")]
54065#[target_feature(enable = "neon,aes")]
54066#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54068#[cfg_attr(
54069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54070    assert_instr(nop)
54071)]
54072#[cfg_attr(
54073    not(target_arch = "arm"),
54074    stable(feature = "neon_intrinsics", since = "1.59.0")
54075)]
54076#[cfg_attr(
54077    target_arch = "arm",
54078    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54079)]
54080pub fn vreinterpretq_p128_s32(a: int32x4_t) -> p128 {
54081    unsafe { transmute(a) }
54082}
54083#[doc = "Vector reinterpret cast operation"]
54084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s32)"]
54085#[inline(always)]
54086#[cfg(target_endian = "big")]
54087#[target_feature(enable = "neon,aes")]
54088#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54089#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54090#[cfg_attr(
54091    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54092    assert_instr(nop)
54093)]
54094#[cfg_attr(
54095    not(target_arch = "arm"),
54096    stable(feature = "neon_intrinsics", since = "1.59.0")
54097)]
54098#[cfg_attr(
54099    target_arch = "arm",
54100    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54101)]
54102pub fn vreinterpretq_p128_s32(a: int32x4_t) -> p128 {
54103    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54104    unsafe { transmute(a) }
54105}
54106#[doc = "Vector reinterpret cast operation"]
54107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s32)"]
54108#[inline(always)]
54109#[cfg(target_endian = "little")]
54110#[target_feature(enable = "neon,aes")]
54111#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54112#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54113#[cfg_attr(
54114    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54115    assert_instr(nop)
54116)]
54117#[cfg_attr(
54118    not(target_arch = "arm"),
54119    stable(feature = "neon_intrinsics", since = "1.59.0")
54120)]
54121#[cfg_attr(
54122    target_arch = "arm",
54123    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54124)]
54125pub fn vreinterpretq_p64_s32(a: int32x4_t) -> poly64x2_t {
54126    unsafe { transmute(a) }
54127}
54128#[doc = "Vector reinterpret cast operation"]
54129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s32)"]
54130#[inline(always)]
54131#[cfg(target_endian = "big")]
54132#[target_feature(enable = "neon,aes")]
54133#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54134#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54135#[cfg_attr(
54136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54137    assert_instr(nop)
54138)]
54139#[cfg_attr(
54140    not(target_arch = "arm"),
54141    stable(feature = "neon_intrinsics", since = "1.59.0")
54142)]
54143#[cfg_attr(
54144    target_arch = "arm",
54145    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54146)]
54147pub fn vreinterpretq_p64_s32(a: int32x4_t) -> poly64x2_t {
54148    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54149    unsafe {
54150        let ret_val: poly64x2_t = transmute(a);
54151        simd_shuffle!(ret_val, ret_val, [1, 0])
54152    }
54153}
54154#[doc = "Vector reinterpret cast operation"]
54155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s64)"]
54156#[inline(always)]
54157#[cfg(target_endian = "little")]
54158#[target_feature(enable = "neon,aes")]
54159#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54161#[cfg_attr(
54162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54163    assert_instr(nop)
54164)]
54165#[cfg_attr(
54166    not(target_arch = "arm"),
54167    stable(feature = "neon_intrinsics", since = "1.59.0")
54168)]
54169#[cfg_attr(
54170    target_arch = "arm",
54171    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54172)]
54173pub fn vreinterpretq_p128_s64(a: int64x2_t) -> p128 {
54174    unsafe { transmute(a) }
54175}
54176#[doc = "Vector reinterpret cast operation"]
54177#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s64)"]
54178#[inline(always)]
54179#[cfg(target_endian = "big")]
54180#[target_feature(enable = "neon,aes")]
54181#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54182#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54183#[cfg_attr(
54184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54185    assert_instr(nop)
54186)]
54187#[cfg_attr(
54188    not(target_arch = "arm"),
54189    stable(feature = "neon_intrinsics", since = "1.59.0")
54190)]
54191#[cfg_attr(
54192    target_arch = "arm",
54193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54194)]
54195pub fn vreinterpretq_p128_s64(a: int64x2_t) -> p128 {
54196    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
54197    unsafe { transmute(a) }
54198}
54199#[doc = "Vector reinterpret cast operation"]
54200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u8)"]
54201#[inline(always)]
54202#[cfg(target_endian = "little")]
54203#[target_feature(enable = "neon,aes")]
54204#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54205#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54206#[cfg_attr(
54207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54208    assert_instr(nop)
54209)]
54210#[cfg_attr(
54211    not(target_arch = "arm"),
54212    stable(feature = "neon_intrinsics", since = "1.59.0")
54213)]
54214#[cfg_attr(
54215    target_arch = "arm",
54216    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54217)]
54218pub fn vreinterpret_p64_u8(a: uint8x8_t) -> poly64x1_t {
54219    unsafe { transmute(a) }
54220}
54221#[doc = "Vector reinterpret cast operation"]
54222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u8)"]
54223#[inline(always)]
54224#[cfg(target_endian = "big")]
54225#[target_feature(enable = "neon,aes")]
54226#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54228#[cfg_attr(
54229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54230    assert_instr(nop)
54231)]
54232#[cfg_attr(
54233    not(target_arch = "arm"),
54234    stable(feature = "neon_intrinsics", since = "1.59.0")
54235)]
54236#[cfg_attr(
54237    target_arch = "arm",
54238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54239)]
54240pub fn vreinterpret_p64_u8(a: uint8x8_t) -> poly64x1_t {
54241    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54242    unsafe { transmute(a) }
54243}
54244#[doc = "Vector reinterpret cast operation"]
54245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u8)"]
54246#[inline(always)]
54247#[cfg(target_endian = "little")]
54248#[target_feature(enable = "neon,aes")]
54249#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54250#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54251#[cfg_attr(
54252    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54253    assert_instr(nop)
54254)]
54255#[cfg_attr(
54256    not(target_arch = "arm"),
54257    stable(feature = "neon_intrinsics", since = "1.59.0")
54258)]
54259#[cfg_attr(
54260    target_arch = "arm",
54261    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54262)]
54263pub fn vreinterpretq_p128_u8(a: uint8x16_t) -> p128 {
54264    unsafe { transmute(a) }
54265}
54266#[doc = "Vector reinterpret cast operation"]
54267#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u8)"]
54268#[inline(always)]
54269#[cfg(target_endian = "big")]
54270#[target_feature(enable = "neon,aes")]
54271#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54272#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54273#[cfg_attr(
54274    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54275    assert_instr(nop)
54276)]
54277#[cfg_attr(
54278    not(target_arch = "arm"),
54279    stable(feature = "neon_intrinsics", since = "1.59.0")
54280)]
54281#[cfg_attr(
54282    target_arch = "arm",
54283    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54284)]
54285pub fn vreinterpretq_p128_u8(a: uint8x16_t) -> p128 {
54286    let a: uint8x16_t =
54287        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54288    unsafe { transmute(a) }
54289}
54290#[doc = "Vector reinterpret cast operation"]
54291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u8)"]
54292#[inline(always)]
54293#[cfg(target_endian = "little")]
54294#[target_feature(enable = "neon,aes")]
54295#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54296#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54297#[cfg_attr(
54298    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54299    assert_instr(nop)
54300)]
54301#[cfg_attr(
54302    not(target_arch = "arm"),
54303    stable(feature = "neon_intrinsics", since = "1.59.0")
54304)]
54305#[cfg_attr(
54306    target_arch = "arm",
54307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54308)]
54309pub fn vreinterpretq_p64_u8(a: uint8x16_t) -> poly64x2_t {
54310    unsafe { transmute(a) }
54311}
54312#[doc = "Vector reinterpret cast operation"]
54313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u8)"]
54314#[inline(always)]
54315#[cfg(target_endian = "big")]
54316#[target_feature(enable = "neon,aes")]
54317#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54318#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54319#[cfg_attr(
54320    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54321    assert_instr(nop)
54322)]
54323#[cfg_attr(
54324    not(target_arch = "arm"),
54325    stable(feature = "neon_intrinsics", since = "1.59.0")
54326)]
54327#[cfg_attr(
54328    target_arch = "arm",
54329    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54330)]
54331pub fn vreinterpretq_p64_u8(a: uint8x16_t) -> poly64x2_t {
54332    let a: uint8x16_t =
54333        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54334    unsafe {
54335        let ret_val: poly64x2_t = transmute(a);
54336        simd_shuffle!(ret_val, ret_val, [1, 0])
54337    }
54338}
54339#[doc = "Vector reinterpret cast operation"]
54340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u16)"]
54341#[inline(always)]
54342#[cfg(target_endian = "little")]
54343#[target_feature(enable = "neon,aes")]
54344#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54346#[cfg_attr(
54347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54348    assert_instr(nop)
54349)]
54350#[cfg_attr(
54351    not(target_arch = "arm"),
54352    stable(feature = "neon_intrinsics", since = "1.59.0")
54353)]
54354#[cfg_attr(
54355    target_arch = "arm",
54356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54357)]
54358pub fn vreinterpret_p64_u16(a: uint16x4_t) -> poly64x1_t {
54359    unsafe { transmute(a) }
54360}
54361#[doc = "Vector reinterpret cast operation"]
54362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u16)"]
54363#[inline(always)]
54364#[cfg(target_endian = "big")]
54365#[target_feature(enable = "neon,aes")]
54366#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54368#[cfg_attr(
54369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54370    assert_instr(nop)
54371)]
54372#[cfg_attr(
54373    not(target_arch = "arm"),
54374    stable(feature = "neon_intrinsics", since = "1.59.0")
54375)]
54376#[cfg_attr(
54377    target_arch = "arm",
54378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54379)]
54380pub fn vreinterpret_p64_u16(a: uint16x4_t) -> poly64x1_t {
54381    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54382    unsafe { transmute(a) }
54383}
54384#[doc = "Vector reinterpret cast operation"]
54385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u16)"]
54386#[inline(always)]
54387#[cfg(target_endian = "little")]
54388#[target_feature(enable = "neon,aes")]
54389#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54390#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54391#[cfg_attr(
54392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54393    assert_instr(nop)
54394)]
54395#[cfg_attr(
54396    not(target_arch = "arm"),
54397    stable(feature = "neon_intrinsics", since = "1.59.0")
54398)]
54399#[cfg_attr(
54400    target_arch = "arm",
54401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54402)]
54403pub fn vreinterpretq_p128_u16(a: uint16x8_t) -> p128 {
54404    unsafe { transmute(a) }
54405}
54406#[doc = "Vector reinterpret cast operation"]
54407#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u16)"]
54408#[inline(always)]
54409#[cfg(target_endian = "big")]
54410#[target_feature(enable = "neon,aes")]
54411#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54412#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54413#[cfg_attr(
54414    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54415    assert_instr(nop)
54416)]
54417#[cfg_attr(
54418    not(target_arch = "arm"),
54419    stable(feature = "neon_intrinsics", since = "1.59.0")
54420)]
54421#[cfg_attr(
54422    target_arch = "arm",
54423    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54424)]
54425pub fn vreinterpretq_p128_u16(a: uint16x8_t) -> p128 {
54426    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54427    unsafe { transmute(a) }
54428}
54429#[doc = "Vector reinterpret cast operation"]
54430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u16)"]
54431#[inline(always)]
54432#[cfg(target_endian = "little")]
54433#[target_feature(enable = "neon,aes")]
54434#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54435#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54436#[cfg_attr(
54437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54438    assert_instr(nop)
54439)]
54440#[cfg_attr(
54441    not(target_arch = "arm"),
54442    stable(feature = "neon_intrinsics", since = "1.59.0")
54443)]
54444#[cfg_attr(
54445    target_arch = "arm",
54446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54447)]
54448pub fn vreinterpretq_p64_u16(a: uint16x8_t) -> poly64x2_t {
54449    unsafe { transmute(a) }
54450}
54451#[doc = "Vector reinterpret cast operation"]
54452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u16)"]
54453#[inline(always)]
54454#[cfg(target_endian = "big")]
54455#[target_feature(enable = "neon,aes")]
54456#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54457#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54458#[cfg_attr(
54459    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54460    assert_instr(nop)
54461)]
54462#[cfg_attr(
54463    not(target_arch = "arm"),
54464    stable(feature = "neon_intrinsics", since = "1.59.0")
54465)]
54466#[cfg_attr(
54467    target_arch = "arm",
54468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54469)]
54470pub fn vreinterpretq_p64_u16(a: uint16x8_t) -> poly64x2_t {
54471    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54472    unsafe {
54473        let ret_val: poly64x2_t = transmute(a);
54474        simd_shuffle!(ret_val, ret_val, [1, 0])
54475    }
54476}
54477#[doc = "Vector reinterpret cast operation"]
54478#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u32)"]
54479#[inline(always)]
54480#[cfg(target_endian = "little")]
54481#[target_feature(enable = "neon,aes")]
54482#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54484#[cfg_attr(
54485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54486    assert_instr(nop)
54487)]
54488#[cfg_attr(
54489    not(target_arch = "arm"),
54490    stable(feature = "neon_intrinsics", since = "1.59.0")
54491)]
54492#[cfg_attr(
54493    target_arch = "arm",
54494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54495)]
54496pub fn vreinterpret_p64_u32(a: uint32x2_t) -> poly64x1_t {
54497    unsafe { transmute(a) }
54498}
54499#[doc = "Vector reinterpret cast operation"]
54500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u32)"]
54501#[inline(always)]
54502#[cfg(target_endian = "big")]
54503#[target_feature(enable = "neon,aes")]
54504#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54506#[cfg_attr(
54507    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54508    assert_instr(nop)
54509)]
54510#[cfg_attr(
54511    not(target_arch = "arm"),
54512    stable(feature = "neon_intrinsics", since = "1.59.0")
54513)]
54514#[cfg_attr(
54515    target_arch = "arm",
54516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54517)]
54518pub fn vreinterpret_p64_u32(a: uint32x2_t) -> poly64x1_t {
54519    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
54520    unsafe { transmute(a) }
54521}
54522#[doc = "Vector reinterpret cast operation"]
54523#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u32)"]
54524#[inline(always)]
54525#[cfg(target_endian = "little")]
54526#[target_feature(enable = "neon,aes")]
54527#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54528#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54529#[cfg_attr(
54530    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54531    assert_instr(nop)
54532)]
54533#[cfg_attr(
54534    not(target_arch = "arm"),
54535    stable(feature = "neon_intrinsics", since = "1.59.0")
54536)]
54537#[cfg_attr(
54538    target_arch = "arm",
54539    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54540)]
54541pub fn vreinterpretq_p128_u32(a: uint32x4_t) -> p128 {
54542    unsafe { transmute(a) }
54543}
54544#[doc = "Vector reinterpret cast operation"]
54545#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u32)"]
54546#[inline(always)]
54547#[cfg(target_endian = "big")]
54548#[target_feature(enable = "neon,aes")]
54549#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54550#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54551#[cfg_attr(
54552    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54553    assert_instr(nop)
54554)]
54555#[cfg_attr(
54556    not(target_arch = "arm"),
54557    stable(feature = "neon_intrinsics", since = "1.59.0")
54558)]
54559#[cfg_attr(
54560    target_arch = "arm",
54561    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54562)]
54563pub fn vreinterpretq_p128_u32(a: uint32x4_t) -> p128 {
54564    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54565    unsafe { transmute(a) }
54566}
54567#[doc = "Vector reinterpret cast operation"]
54568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u32)"]
54569#[inline(always)]
54570#[cfg(target_endian = "little")]
54571#[target_feature(enable = "neon,aes")]
54572#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54573#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54574#[cfg_attr(
54575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54576    assert_instr(nop)
54577)]
54578#[cfg_attr(
54579    not(target_arch = "arm"),
54580    stable(feature = "neon_intrinsics", since = "1.59.0")
54581)]
54582#[cfg_attr(
54583    target_arch = "arm",
54584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54585)]
54586pub fn vreinterpretq_p64_u32(a: uint32x4_t) -> poly64x2_t {
54587    unsafe { transmute(a) }
54588}
54589#[doc = "Vector reinterpret cast operation"]
54590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u32)"]
54591#[inline(always)]
54592#[cfg(target_endian = "big")]
54593#[target_feature(enable = "neon,aes")]
54594#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54596#[cfg_attr(
54597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54598    assert_instr(nop)
54599)]
54600#[cfg_attr(
54601    not(target_arch = "arm"),
54602    stable(feature = "neon_intrinsics", since = "1.59.0")
54603)]
54604#[cfg_attr(
54605    target_arch = "arm",
54606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54607)]
54608pub fn vreinterpretq_p64_u32(a: uint32x4_t) -> poly64x2_t {
54609    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54610    unsafe {
54611        let ret_val: poly64x2_t = transmute(a);
54612        simd_shuffle!(ret_val, ret_val, [1, 0])
54613    }
54614}
54615#[doc = "Vector reinterpret cast operation"]
54616#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u64)"]
54617#[inline(always)]
54618#[cfg(target_endian = "little")]
54619#[target_feature(enable = "neon,aes")]
54620#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54622#[cfg_attr(
54623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54624    assert_instr(nop)
54625)]
54626#[cfg_attr(
54627    not(target_arch = "arm"),
54628    stable(feature = "neon_intrinsics", since = "1.59.0")
54629)]
54630#[cfg_attr(
54631    target_arch = "arm",
54632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54633)]
54634pub fn vreinterpretq_p128_u64(a: uint64x2_t) -> p128 {
54635    unsafe { transmute(a) }
54636}
54637#[doc = "Vector reinterpret cast operation"]
54638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u64)"]
54639#[inline(always)]
54640#[cfg(target_endian = "big")]
54641#[target_feature(enable = "neon,aes")]
54642#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54643#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54644#[cfg_attr(
54645    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54646    assert_instr(nop)
54647)]
54648#[cfg_attr(
54649    not(target_arch = "arm"),
54650    stable(feature = "neon_intrinsics", since = "1.59.0")
54651)]
54652#[cfg_attr(
54653    target_arch = "arm",
54654    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54655)]
54656pub fn vreinterpretq_p128_u64(a: uint64x2_t) -> p128 {
54657    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
54658    unsafe { transmute(a) }
54659}
54660#[doc = "Vector reinterpret cast operation"]
54661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p8)"]
54662#[inline(always)]
54663#[cfg(target_endian = "little")]
54664#[target_feature(enable = "neon,aes")]
54665#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54666#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54667#[cfg_attr(
54668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54669    assert_instr(nop)
54670)]
54671#[cfg_attr(
54672    not(target_arch = "arm"),
54673    stable(feature = "neon_intrinsics", since = "1.59.0")
54674)]
54675#[cfg_attr(
54676    target_arch = "arm",
54677    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54678)]
54679pub fn vreinterpret_p64_p8(a: poly8x8_t) -> poly64x1_t {
54680    unsafe { transmute(a) }
54681}
54682#[doc = "Vector reinterpret cast operation"]
54683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p8)"]
54684#[inline(always)]
54685#[cfg(target_endian = "big")]
54686#[target_feature(enable = "neon,aes")]
54687#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54688#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54689#[cfg_attr(
54690    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54691    assert_instr(nop)
54692)]
54693#[cfg_attr(
54694    not(target_arch = "arm"),
54695    stable(feature = "neon_intrinsics", since = "1.59.0")
54696)]
54697#[cfg_attr(
54698    target_arch = "arm",
54699    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54700)]
54701pub fn vreinterpret_p64_p8(a: poly8x8_t) -> poly64x1_t {
54702    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54703    unsafe { transmute(a) }
54704}
54705#[doc = "Vector reinterpret cast operation"]
54706#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p8)"]
54707#[inline(always)]
54708#[cfg(target_endian = "little")]
54709#[target_feature(enable = "neon,aes")]
54710#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54711#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54712#[cfg_attr(
54713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54714    assert_instr(nop)
54715)]
54716#[cfg_attr(
54717    not(target_arch = "arm"),
54718    stable(feature = "neon_intrinsics", since = "1.59.0")
54719)]
54720#[cfg_attr(
54721    target_arch = "arm",
54722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54723)]
54724pub fn vreinterpretq_p128_p8(a: poly8x16_t) -> p128 {
54725    unsafe { transmute(a) }
54726}
54727#[doc = "Vector reinterpret cast operation"]
54728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p8)"]
54729#[inline(always)]
54730#[cfg(target_endian = "big")]
54731#[target_feature(enable = "neon,aes")]
54732#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54734#[cfg_attr(
54735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54736    assert_instr(nop)
54737)]
54738#[cfg_attr(
54739    not(target_arch = "arm"),
54740    stable(feature = "neon_intrinsics", since = "1.59.0")
54741)]
54742#[cfg_attr(
54743    target_arch = "arm",
54744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54745)]
54746pub fn vreinterpretq_p128_p8(a: poly8x16_t) -> p128 {
54747    let a: poly8x16_t =
54748        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54749    unsafe { transmute(a) }
54750}
54751#[doc = "Vector reinterpret cast operation"]
54752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p8)"]
54753#[inline(always)]
54754#[cfg(target_endian = "little")]
54755#[target_feature(enable = "neon,aes")]
54756#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54758#[cfg_attr(
54759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54760    assert_instr(nop)
54761)]
54762#[cfg_attr(
54763    not(target_arch = "arm"),
54764    stable(feature = "neon_intrinsics", since = "1.59.0")
54765)]
54766#[cfg_attr(
54767    target_arch = "arm",
54768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54769)]
54770pub fn vreinterpretq_p64_p8(a: poly8x16_t) -> poly64x2_t {
54771    unsafe { transmute(a) }
54772}
54773#[doc = "Vector reinterpret cast operation"]
54774#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p8)"]
54775#[inline(always)]
54776#[cfg(target_endian = "big")]
54777#[target_feature(enable = "neon,aes")]
54778#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
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 vreinterpretq_p64_p8(a: poly8x16_t) -> poly64x2_t {
54793    let a: poly8x16_t =
54794        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54795    unsafe {
54796        let ret_val: poly64x2_t = transmute(a);
54797        simd_shuffle!(ret_val, ret_val, [1, 0])
54798    }
54799}
54800#[doc = "Vector reinterpret cast operation"]
54801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p16)"]
54802#[inline(always)]
54803#[cfg(target_endian = "little")]
54804#[target_feature(enable = "neon,aes")]
54805#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54806#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54807#[cfg_attr(
54808    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54809    assert_instr(nop)
54810)]
54811#[cfg_attr(
54812    not(target_arch = "arm"),
54813    stable(feature = "neon_intrinsics", since = "1.59.0")
54814)]
54815#[cfg_attr(
54816    target_arch = "arm",
54817    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54818)]
54819pub fn vreinterpret_p64_p16(a: poly16x4_t) -> poly64x1_t {
54820    unsafe { transmute(a) }
54821}
54822#[doc = "Vector reinterpret cast operation"]
54823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p16)"]
54824#[inline(always)]
54825#[cfg(target_endian = "big")]
54826#[target_feature(enable = "neon,aes")]
54827#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54829#[cfg_attr(
54830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54831    assert_instr(nop)
54832)]
54833#[cfg_attr(
54834    not(target_arch = "arm"),
54835    stable(feature = "neon_intrinsics", since = "1.59.0")
54836)]
54837#[cfg_attr(
54838    target_arch = "arm",
54839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54840)]
54841pub fn vreinterpret_p64_p16(a: poly16x4_t) -> poly64x1_t {
54842    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54843    unsafe { transmute(a) }
54844}
54845#[doc = "Vector reinterpret cast operation"]
54846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p16)"]
54847#[inline(always)]
54848#[cfg(target_endian = "little")]
54849#[target_feature(enable = "neon,aes")]
54850#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54852#[cfg_attr(
54853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54854    assert_instr(nop)
54855)]
54856#[cfg_attr(
54857    not(target_arch = "arm"),
54858    stable(feature = "neon_intrinsics", since = "1.59.0")
54859)]
54860#[cfg_attr(
54861    target_arch = "arm",
54862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54863)]
54864pub fn vreinterpretq_p128_p16(a: poly16x8_t) -> p128 {
54865    unsafe { transmute(a) }
54866}
54867#[doc = "Vector reinterpret cast operation"]
54868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p16)"]
54869#[inline(always)]
54870#[cfg(target_endian = "big")]
54871#[target_feature(enable = "neon,aes")]
54872#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54874#[cfg_attr(
54875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54876    assert_instr(nop)
54877)]
54878#[cfg_attr(
54879    not(target_arch = "arm"),
54880    stable(feature = "neon_intrinsics", since = "1.59.0")
54881)]
54882#[cfg_attr(
54883    target_arch = "arm",
54884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54885)]
54886pub fn vreinterpretq_p128_p16(a: poly16x8_t) -> p128 {
54887    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54888    unsafe { transmute(a) }
54889}
54890#[doc = "Vector reinterpret cast operation"]
54891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p16)"]
54892#[inline(always)]
54893#[cfg(target_endian = "little")]
54894#[target_feature(enable = "neon,aes")]
54895#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54896#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54897#[cfg_attr(
54898    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54899    assert_instr(nop)
54900)]
54901#[cfg_attr(
54902    not(target_arch = "arm"),
54903    stable(feature = "neon_intrinsics", since = "1.59.0")
54904)]
54905#[cfg_attr(
54906    target_arch = "arm",
54907    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54908)]
54909pub fn vreinterpretq_p64_p16(a: poly16x8_t) -> poly64x2_t {
54910    unsafe { transmute(a) }
54911}
54912#[doc = "Vector reinterpret cast operation"]
54913#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p16)"]
54914#[inline(always)]
54915#[cfg(target_endian = "big")]
54916#[target_feature(enable = "neon,aes")]
54917#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54918#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54919#[cfg_attr(
54920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54921    assert_instr(nop)
54922)]
54923#[cfg_attr(
54924    not(target_arch = "arm"),
54925    stable(feature = "neon_intrinsics", since = "1.59.0")
54926)]
54927#[cfg_attr(
54928    target_arch = "arm",
54929    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54930)]
54931pub fn vreinterpretq_p64_p16(a: poly16x8_t) -> poly64x2_t {
54932    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54933    unsafe {
54934        let ret_val: poly64x2_t = transmute(a);
54935        simd_shuffle!(ret_val, ret_val, [1, 0])
54936    }
54937}
54938#[doc = "Vector reinterpret cast operation"]
54939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p64)"]
54940#[inline(always)]
54941#[cfg(target_endian = "little")]
54942#[target_feature(enable = "neon,aes")]
54943#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54944#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54945#[cfg_attr(
54946    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54947    assert_instr(nop)
54948)]
54949#[cfg_attr(
54950    not(target_arch = "arm"),
54951    stable(feature = "neon_intrinsics", since = "1.59.0")
54952)]
54953#[cfg_attr(
54954    target_arch = "arm",
54955    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54956)]
54957pub fn vreinterpret_s8_p64(a: poly64x1_t) -> int8x8_t {
54958    unsafe { transmute(a) }
54959}
54960#[doc = "Vector reinterpret cast operation"]
54961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p64)"]
54962#[inline(always)]
54963#[cfg(target_endian = "big")]
54964#[target_feature(enable = "neon,aes")]
54965#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54966#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54967#[cfg_attr(
54968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54969    assert_instr(nop)
54970)]
54971#[cfg_attr(
54972    not(target_arch = "arm"),
54973    stable(feature = "neon_intrinsics", since = "1.59.0")
54974)]
54975#[cfg_attr(
54976    target_arch = "arm",
54977    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54978)]
54979pub fn vreinterpret_s8_p64(a: poly64x1_t) -> int8x8_t {
54980    unsafe {
54981        let ret_val: int8x8_t = transmute(a);
54982        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
54983    }
54984}
54985#[doc = "Vector reinterpret cast operation"]
54986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p64)"]
54987#[inline(always)]
54988#[cfg(target_endian = "little")]
54989#[target_feature(enable = "neon,aes")]
54990#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54992#[cfg_attr(
54993    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54994    assert_instr(nop)
54995)]
54996#[cfg_attr(
54997    not(target_arch = "arm"),
54998    stable(feature = "neon_intrinsics", since = "1.59.0")
54999)]
55000#[cfg_attr(
55001    target_arch = "arm",
55002    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55003)]
55004pub fn vreinterpret_s16_p64(a: poly64x1_t) -> int16x4_t {
55005    unsafe { transmute(a) }
55006}
55007#[doc = "Vector reinterpret cast operation"]
55008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p64)"]
55009#[inline(always)]
55010#[cfg(target_endian = "big")]
55011#[target_feature(enable = "neon,aes")]
55012#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55014#[cfg_attr(
55015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55016    assert_instr(nop)
55017)]
55018#[cfg_attr(
55019    not(target_arch = "arm"),
55020    stable(feature = "neon_intrinsics", since = "1.59.0")
55021)]
55022#[cfg_attr(
55023    target_arch = "arm",
55024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55025)]
55026pub fn vreinterpret_s16_p64(a: poly64x1_t) -> int16x4_t {
55027    unsafe {
55028        let ret_val: int16x4_t = transmute(a);
55029        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55030    }
55031}
55032#[doc = "Vector reinterpret cast operation"]
55033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p64)"]
55034#[inline(always)]
55035#[cfg(target_endian = "little")]
55036#[target_feature(enable = "neon,aes")]
55037#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
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_s32_p64(a: poly64x1_t) -> int32x2_t {
55052    unsafe { transmute(a) }
55053}
55054#[doc = "Vector reinterpret cast operation"]
55055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p64)"]
55056#[inline(always)]
55057#[cfg(target_endian = "big")]
55058#[target_feature(enable = "neon,aes")]
55059#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55060#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55061#[cfg_attr(
55062    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55063    assert_instr(nop)
55064)]
55065#[cfg_attr(
55066    not(target_arch = "arm"),
55067    stable(feature = "neon_intrinsics", since = "1.59.0")
55068)]
55069#[cfg_attr(
55070    target_arch = "arm",
55071    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55072)]
55073pub fn vreinterpret_s32_p64(a: poly64x1_t) -> int32x2_t {
55074    unsafe {
55075        let ret_val: int32x2_t = transmute(a);
55076        simd_shuffle!(ret_val, ret_val, [1, 0])
55077    }
55078}
55079#[doc = "Vector reinterpret cast operation"]
55080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p64)"]
55081#[inline(always)]
55082#[cfg(target_endian = "little")]
55083#[target_feature(enable = "neon,aes")]
55084#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55085#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55086#[cfg_attr(
55087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55088    assert_instr(nop)
55089)]
55090#[cfg_attr(
55091    not(target_arch = "arm"),
55092    stable(feature = "neon_intrinsics", since = "1.59.0")
55093)]
55094#[cfg_attr(
55095    target_arch = "arm",
55096    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55097)]
55098pub fn vreinterpret_u8_p64(a: poly64x1_t) -> uint8x8_t {
55099    unsafe { transmute(a) }
55100}
55101#[doc = "Vector reinterpret cast operation"]
55102#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p64)"]
55103#[inline(always)]
55104#[cfg(target_endian = "big")]
55105#[target_feature(enable = "neon,aes")]
55106#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55108#[cfg_attr(
55109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55110    assert_instr(nop)
55111)]
55112#[cfg_attr(
55113    not(target_arch = "arm"),
55114    stable(feature = "neon_intrinsics", since = "1.59.0")
55115)]
55116#[cfg_attr(
55117    target_arch = "arm",
55118    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55119)]
55120pub fn vreinterpret_u8_p64(a: poly64x1_t) -> uint8x8_t {
55121    unsafe {
55122        let ret_val: uint8x8_t = transmute(a);
55123        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55124    }
55125}
55126#[doc = "Vector reinterpret cast operation"]
55127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p64)"]
55128#[inline(always)]
55129#[cfg(target_endian = "little")]
55130#[target_feature(enable = "neon,aes")]
55131#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55132#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55133#[cfg_attr(
55134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55135    assert_instr(nop)
55136)]
55137#[cfg_attr(
55138    not(target_arch = "arm"),
55139    stable(feature = "neon_intrinsics", since = "1.59.0")
55140)]
55141#[cfg_attr(
55142    target_arch = "arm",
55143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55144)]
55145pub fn vreinterpret_u16_p64(a: poly64x1_t) -> uint16x4_t {
55146    unsafe { transmute(a) }
55147}
55148#[doc = "Vector reinterpret cast operation"]
55149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p64)"]
55150#[inline(always)]
55151#[cfg(target_endian = "big")]
55152#[target_feature(enable = "neon,aes")]
55153#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55154#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55155#[cfg_attr(
55156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55157    assert_instr(nop)
55158)]
55159#[cfg_attr(
55160    not(target_arch = "arm"),
55161    stable(feature = "neon_intrinsics", since = "1.59.0")
55162)]
55163#[cfg_attr(
55164    target_arch = "arm",
55165    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55166)]
55167pub fn vreinterpret_u16_p64(a: poly64x1_t) -> uint16x4_t {
55168    unsafe {
55169        let ret_val: uint16x4_t = transmute(a);
55170        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55171    }
55172}
55173#[doc = "Vector reinterpret cast operation"]
55174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p64)"]
55175#[inline(always)]
55176#[cfg(target_endian = "little")]
55177#[target_feature(enable = "neon,aes")]
55178#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55180#[cfg_attr(
55181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55182    assert_instr(nop)
55183)]
55184#[cfg_attr(
55185    not(target_arch = "arm"),
55186    stable(feature = "neon_intrinsics", since = "1.59.0")
55187)]
55188#[cfg_attr(
55189    target_arch = "arm",
55190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55191)]
55192pub fn vreinterpret_u32_p64(a: poly64x1_t) -> uint32x2_t {
55193    unsafe { transmute(a) }
55194}
55195#[doc = "Vector reinterpret cast operation"]
55196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p64)"]
55197#[inline(always)]
55198#[cfg(target_endian = "big")]
55199#[target_feature(enable = "neon,aes")]
55200#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55201#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55202#[cfg_attr(
55203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55204    assert_instr(nop)
55205)]
55206#[cfg_attr(
55207    not(target_arch = "arm"),
55208    stable(feature = "neon_intrinsics", since = "1.59.0")
55209)]
55210#[cfg_attr(
55211    target_arch = "arm",
55212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55213)]
55214pub fn vreinterpret_u32_p64(a: poly64x1_t) -> uint32x2_t {
55215    unsafe {
55216        let ret_val: uint32x2_t = transmute(a);
55217        simd_shuffle!(ret_val, ret_val, [1, 0])
55218    }
55219}
55220#[doc = "Vector reinterpret cast operation"]
55221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p64)"]
55222#[inline(always)]
55223#[cfg(target_endian = "little")]
55224#[target_feature(enable = "neon,aes")]
55225#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55226#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55227#[cfg_attr(
55228    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55229    assert_instr(nop)
55230)]
55231#[cfg_attr(
55232    not(target_arch = "arm"),
55233    stable(feature = "neon_intrinsics", since = "1.59.0")
55234)]
55235#[cfg_attr(
55236    target_arch = "arm",
55237    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55238)]
55239pub fn vreinterpret_p8_p64(a: poly64x1_t) -> poly8x8_t {
55240    unsafe { transmute(a) }
55241}
55242#[doc = "Vector reinterpret cast operation"]
55243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p64)"]
55244#[inline(always)]
55245#[cfg(target_endian = "big")]
55246#[target_feature(enable = "neon,aes")]
55247#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55248#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55249#[cfg_attr(
55250    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55251    assert_instr(nop)
55252)]
55253#[cfg_attr(
55254    not(target_arch = "arm"),
55255    stable(feature = "neon_intrinsics", since = "1.59.0")
55256)]
55257#[cfg_attr(
55258    target_arch = "arm",
55259    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55260)]
55261pub fn vreinterpret_p8_p64(a: poly64x1_t) -> poly8x8_t {
55262    unsafe {
55263        let ret_val: poly8x8_t = transmute(a);
55264        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55265    }
55266}
55267#[doc = "Vector reinterpret cast operation"]
55268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p64)"]
55269#[inline(always)]
55270#[cfg(target_endian = "little")]
55271#[target_feature(enable = "neon,aes")]
55272#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55274#[cfg_attr(
55275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55276    assert_instr(nop)
55277)]
55278#[cfg_attr(
55279    not(target_arch = "arm"),
55280    stable(feature = "neon_intrinsics", since = "1.59.0")
55281)]
55282#[cfg_attr(
55283    target_arch = "arm",
55284    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55285)]
55286pub fn vreinterpret_p16_p64(a: poly64x1_t) -> poly16x4_t {
55287    unsafe { transmute(a) }
55288}
55289#[doc = "Vector reinterpret cast operation"]
55290#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p64)"]
55291#[inline(always)]
55292#[cfg(target_endian = "big")]
55293#[target_feature(enable = "neon,aes")]
55294#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55295#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55296#[cfg_attr(
55297    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55298    assert_instr(nop)
55299)]
55300#[cfg_attr(
55301    not(target_arch = "arm"),
55302    stable(feature = "neon_intrinsics", since = "1.59.0")
55303)]
55304#[cfg_attr(
55305    target_arch = "arm",
55306    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55307)]
55308pub fn vreinterpret_p16_p64(a: poly64x1_t) -> poly16x4_t {
55309    unsafe {
55310        let ret_val: poly16x4_t = transmute(a);
55311        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55312    }
55313}
55314#[doc = "Vector reinterpret cast operation"]
55315#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p64)"]
55316#[inline(always)]
55317#[cfg(target_endian = "little")]
55318#[target_feature(enable = "neon,aes")]
55319#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55320#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55321#[cfg_attr(
55322    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55323    assert_instr(nop)
55324)]
55325#[cfg_attr(
55326    not(target_arch = "arm"),
55327    stable(feature = "neon_intrinsics", since = "1.59.0")
55328)]
55329#[cfg_attr(
55330    target_arch = "arm",
55331    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55332)]
55333pub fn vreinterpretq_p128_p64(a: poly64x2_t) -> p128 {
55334    unsafe { transmute(a) }
55335}
55336#[doc = "Vector reinterpret cast operation"]
55337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p64)"]
55338#[inline(always)]
55339#[cfg(target_endian = "big")]
55340#[target_feature(enable = "neon,aes")]
55341#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55342#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55343#[cfg_attr(
55344    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55345    assert_instr(nop)
55346)]
55347#[cfg_attr(
55348    not(target_arch = "arm"),
55349    stable(feature = "neon_intrinsics", since = "1.59.0")
55350)]
55351#[cfg_attr(
55352    target_arch = "arm",
55353    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55354)]
55355pub fn vreinterpretq_p128_p64(a: poly64x2_t) -> p128 {
55356    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55357    unsafe { transmute(a) }
55358}
55359#[doc = "Vector reinterpret cast operation"]
55360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p64)"]
55361#[inline(always)]
55362#[cfg(target_endian = "little")]
55363#[target_feature(enable = "neon,aes")]
55364#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55366#[cfg_attr(
55367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55368    assert_instr(nop)
55369)]
55370#[cfg_attr(
55371    not(target_arch = "arm"),
55372    stable(feature = "neon_intrinsics", since = "1.59.0")
55373)]
55374#[cfg_attr(
55375    target_arch = "arm",
55376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55377)]
55378pub fn vreinterpretq_s8_p64(a: poly64x2_t) -> int8x16_t {
55379    unsafe { transmute(a) }
55380}
55381#[doc = "Vector reinterpret cast operation"]
55382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p64)"]
55383#[inline(always)]
55384#[cfg(target_endian = "big")]
55385#[target_feature(enable = "neon,aes")]
55386#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55388#[cfg_attr(
55389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55390    assert_instr(nop)
55391)]
55392#[cfg_attr(
55393    not(target_arch = "arm"),
55394    stable(feature = "neon_intrinsics", since = "1.59.0")
55395)]
55396#[cfg_attr(
55397    target_arch = "arm",
55398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55399)]
55400pub fn vreinterpretq_s8_p64(a: poly64x2_t) -> int8x16_t {
55401    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55402    unsafe {
55403        let ret_val: int8x16_t = transmute(a);
55404        simd_shuffle!(
55405            ret_val,
55406            ret_val,
55407            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55408        )
55409    }
55410}
55411#[doc = "Vector reinterpret cast operation"]
55412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p64)"]
55413#[inline(always)]
55414#[cfg(target_endian = "little")]
55415#[target_feature(enable = "neon,aes")]
55416#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55418#[cfg_attr(
55419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55420    assert_instr(nop)
55421)]
55422#[cfg_attr(
55423    not(target_arch = "arm"),
55424    stable(feature = "neon_intrinsics", since = "1.59.0")
55425)]
55426#[cfg_attr(
55427    target_arch = "arm",
55428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55429)]
55430pub fn vreinterpretq_s16_p64(a: poly64x2_t) -> int16x8_t {
55431    unsafe { transmute(a) }
55432}
55433#[doc = "Vector reinterpret cast operation"]
55434#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p64)"]
55435#[inline(always)]
55436#[cfg(target_endian = "big")]
55437#[target_feature(enable = "neon,aes")]
55438#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55440#[cfg_attr(
55441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55442    assert_instr(nop)
55443)]
55444#[cfg_attr(
55445    not(target_arch = "arm"),
55446    stable(feature = "neon_intrinsics", since = "1.59.0")
55447)]
55448#[cfg_attr(
55449    target_arch = "arm",
55450    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55451)]
55452pub fn vreinterpretq_s16_p64(a: poly64x2_t) -> int16x8_t {
55453    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55454    unsafe {
55455        let ret_val: int16x8_t = transmute(a);
55456        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55457    }
55458}
55459#[doc = "Vector reinterpret cast operation"]
55460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p64)"]
55461#[inline(always)]
55462#[cfg(target_endian = "little")]
55463#[target_feature(enable = "neon,aes")]
55464#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55465#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55466#[cfg_attr(
55467    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55468    assert_instr(nop)
55469)]
55470#[cfg_attr(
55471    not(target_arch = "arm"),
55472    stable(feature = "neon_intrinsics", since = "1.59.0")
55473)]
55474#[cfg_attr(
55475    target_arch = "arm",
55476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55477)]
55478pub fn vreinterpretq_s32_p64(a: poly64x2_t) -> int32x4_t {
55479    unsafe { transmute(a) }
55480}
55481#[doc = "Vector reinterpret cast operation"]
55482#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p64)"]
55483#[inline(always)]
55484#[cfg(target_endian = "big")]
55485#[target_feature(enable = "neon,aes")]
55486#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55487#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55488#[cfg_attr(
55489    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55490    assert_instr(nop)
55491)]
55492#[cfg_attr(
55493    not(target_arch = "arm"),
55494    stable(feature = "neon_intrinsics", since = "1.59.0")
55495)]
55496#[cfg_attr(
55497    target_arch = "arm",
55498    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55499)]
55500pub fn vreinterpretq_s32_p64(a: poly64x2_t) -> int32x4_t {
55501    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55502    unsafe {
55503        let ret_val: int32x4_t = transmute(a);
55504        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55505    }
55506}
55507#[doc = "Vector reinterpret cast operation"]
55508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p64)"]
55509#[inline(always)]
55510#[cfg(target_endian = "little")]
55511#[target_feature(enable = "neon,aes")]
55512#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55514#[cfg_attr(
55515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55516    assert_instr(nop)
55517)]
55518#[cfg_attr(
55519    not(target_arch = "arm"),
55520    stable(feature = "neon_intrinsics", since = "1.59.0")
55521)]
55522#[cfg_attr(
55523    target_arch = "arm",
55524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55525)]
55526pub fn vreinterpretq_u8_p64(a: poly64x2_t) -> uint8x16_t {
55527    unsafe { transmute(a) }
55528}
55529#[doc = "Vector reinterpret cast operation"]
55530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p64)"]
55531#[inline(always)]
55532#[cfg(target_endian = "big")]
55533#[target_feature(enable = "neon,aes")]
55534#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55535#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55536#[cfg_attr(
55537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55538    assert_instr(nop)
55539)]
55540#[cfg_attr(
55541    not(target_arch = "arm"),
55542    stable(feature = "neon_intrinsics", since = "1.59.0")
55543)]
55544#[cfg_attr(
55545    target_arch = "arm",
55546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55547)]
55548pub fn vreinterpretq_u8_p64(a: poly64x2_t) -> uint8x16_t {
55549    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55550    unsafe {
55551        let ret_val: uint8x16_t = transmute(a);
55552        simd_shuffle!(
55553            ret_val,
55554            ret_val,
55555            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55556        )
55557    }
55558}
55559#[doc = "Vector reinterpret cast operation"]
55560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p64)"]
55561#[inline(always)]
55562#[cfg(target_endian = "little")]
55563#[target_feature(enable = "neon,aes")]
55564#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55565#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55566#[cfg_attr(
55567    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55568    assert_instr(nop)
55569)]
55570#[cfg_attr(
55571    not(target_arch = "arm"),
55572    stable(feature = "neon_intrinsics", since = "1.59.0")
55573)]
55574#[cfg_attr(
55575    target_arch = "arm",
55576    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55577)]
55578pub fn vreinterpretq_u16_p64(a: poly64x2_t) -> uint16x8_t {
55579    unsafe { transmute(a) }
55580}
55581#[doc = "Vector reinterpret cast operation"]
55582#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p64)"]
55583#[inline(always)]
55584#[cfg(target_endian = "big")]
55585#[target_feature(enable = "neon,aes")]
55586#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55588#[cfg_attr(
55589    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55590    assert_instr(nop)
55591)]
55592#[cfg_attr(
55593    not(target_arch = "arm"),
55594    stable(feature = "neon_intrinsics", since = "1.59.0")
55595)]
55596#[cfg_attr(
55597    target_arch = "arm",
55598    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55599)]
55600pub fn vreinterpretq_u16_p64(a: poly64x2_t) -> uint16x8_t {
55601    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55602    unsafe {
55603        let ret_val: uint16x8_t = transmute(a);
55604        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55605    }
55606}
55607#[doc = "Vector reinterpret cast operation"]
55608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p64)"]
55609#[inline(always)]
55610#[cfg(target_endian = "little")]
55611#[target_feature(enable = "neon,aes")]
55612#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55613#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55614#[cfg_attr(
55615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55616    assert_instr(nop)
55617)]
55618#[cfg_attr(
55619    not(target_arch = "arm"),
55620    stable(feature = "neon_intrinsics", since = "1.59.0")
55621)]
55622#[cfg_attr(
55623    target_arch = "arm",
55624    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55625)]
55626pub fn vreinterpretq_u32_p64(a: poly64x2_t) -> uint32x4_t {
55627    unsafe { transmute(a) }
55628}
55629#[doc = "Vector reinterpret cast operation"]
55630#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p64)"]
55631#[inline(always)]
55632#[cfg(target_endian = "big")]
55633#[target_feature(enable = "neon,aes")]
55634#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55635#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55636#[cfg_attr(
55637    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55638    assert_instr(nop)
55639)]
55640#[cfg_attr(
55641    not(target_arch = "arm"),
55642    stable(feature = "neon_intrinsics", since = "1.59.0")
55643)]
55644#[cfg_attr(
55645    target_arch = "arm",
55646    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55647)]
55648pub fn vreinterpretq_u32_p64(a: poly64x2_t) -> uint32x4_t {
55649    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55650    unsafe {
55651        let ret_val: uint32x4_t = transmute(a);
55652        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55653    }
55654}
55655#[doc = "Vector reinterpret cast operation"]
55656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p64)"]
55657#[inline(always)]
55658#[cfg(target_endian = "little")]
55659#[target_feature(enable = "neon,aes")]
55660#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55661#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55662#[cfg_attr(
55663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55664    assert_instr(nop)
55665)]
55666#[cfg_attr(
55667    not(target_arch = "arm"),
55668    stable(feature = "neon_intrinsics", since = "1.59.0")
55669)]
55670#[cfg_attr(
55671    target_arch = "arm",
55672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55673)]
55674pub fn vreinterpretq_p8_p64(a: poly64x2_t) -> poly8x16_t {
55675    unsafe { transmute(a) }
55676}
55677#[doc = "Vector reinterpret cast operation"]
55678#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p64)"]
55679#[inline(always)]
55680#[cfg(target_endian = "big")]
55681#[target_feature(enable = "neon,aes")]
55682#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55683#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55684#[cfg_attr(
55685    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55686    assert_instr(nop)
55687)]
55688#[cfg_attr(
55689    not(target_arch = "arm"),
55690    stable(feature = "neon_intrinsics", since = "1.59.0")
55691)]
55692#[cfg_attr(
55693    target_arch = "arm",
55694    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55695)]
55696pub fn vreinterpretq_p8_p64(a: poly64x2_t) -> poly8x16_t {
55697    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55698    unsafe {
55699        let ret_val: poly8x16_t = transmute(a);
55700        simd_shuffle!(
55701            ret_val,
55702            ret_val,
55703            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55704        )
55705    }
55706}
55707#[doc = "Vector reinterpret cast operation"]
55708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p64)"]
55709#[inline(always)]
55710#[cfg(target_endian = "little")]
55711#[target_feature(enable = "neon,aes")]
55712#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55714#[cfg_attr(
55715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55716    assert_instr(nop)
55717)]
55718#[cfg_attr(
55719    not(target_arch = "arm"),
55720    stable(feature = "neon_intrinsics", since = "1.59.0")
55721)]
55722#[cfg_attr(
55723    target_arch = "arm",
55724    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55725)]
55726pub fn vreinterpretq_p16_p64(a: poly64x2_t) -> poly16x8_t {
55727    unsafe { transmute(a) }
55728}
55729#[doc = "Vector reinterpret cast operation"]
55730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p64)"]
55731#[inline(always)]
55732#[cfg(target_endian = "big")]
55733#[target_feature(enable = "neon,aes")]
55734#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55736#[cfg_attr(
55737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55738    assert_instr(nop)
55739)]
55740#[cfg_attr(
55741    not(target_arch = "arm"),
55742    stable(feature = "neon_intrinsics", since = "1.59.0")
55743)]
55744#[cfg_attr(
55745    target_arch = "arm",
55746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55747)]
55748pub fn vreinterpretq_p16_p64(a: poly64x2_t) -> poly16x8_t {
55749    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55750    unsafe {
55751        let ret_val: poly16x8_t = transmute(a);
55752        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55753    }
55754}
55755#[doc = "Reversing vector elements (swap endianness)"]
55756#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_p8)"]
55757#[inline(always)]
55758#[target_feature(enable = "neon")]
55759#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55760#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55761#[cfg_attr(
55762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55763    assert_instr(rev16)
55764)]
55765#[cfg_attr(
55766    not(target_arch = "arm"),
55767    stable(feature = "neon_intrinsics", since = "1.59.0")
55768)]
55769#[cfg_attr(
55770    target_arch = "arm",
55771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55772)]
55773pub fn vrev16_p8(a: poly8x8_t) -> poly8x8_t {
55774    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
55775}
55776#[doc = "Reversing vector elements (swap endianness)"]
55777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_s8)"]
55778#[inline(always)]
55779#[target_feature(enable = "neon")]
55780#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55781#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55782#[cfg_attr(
55783    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55784    assert_instr(rev16)
55785)]
55786#[cfg_attr(
55787    not(target_arch = "arm"),
55788    stable(feature = "neon_intrinsics", since = "1.59.0")
55789)]
55790#[cfg_attr(
55791    target_arch = "arm",
55792    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55793)]
55794pub fn vrev16_s8(a: int8x8_t) -> int8x8_t {
55795    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
55796}
55797#[doc = "Reversing vector elements (swap endianness)"]
55798#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_u8)"]
55799#[inline(always)]
55800#[target_feature(enable = "neon")]
55801#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55802#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55803#[cfg_attr(
55804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55805    assert_instr(rev16)
55806)]
55807#[cfg_attr(
55808    not(target_arch = "arm"),
55809    stable(feature = "neon_intrinsics", since = "1.59.0")
55810)]
55811#[cfg_attr(
55812    target_arch = "arm",
55813    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55814)]
55815pub fn vrev16_u8(a: uint8x8_t) -> uint8x8_t {
55816    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
55817}
55818#[doc = "Reversing vector elements (swap endianness)"]
55819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_p8)"]
55820#[inline(always)]
55821#[target_feature(enable = "neon")]
55822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55823#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55824#[cfg_attr(
55825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55826    assert_instr(rev16)
55827)]
55828#[cfg_attr(
55829    not(target_arch = "arm"),
55830    stable(feature = "neon_intrinsics", since = "1.59.0")
55831)]
55832#[cfg_attr(
55833    target_arch = "arm",
55834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55835)]
55836pub fn vrev16q_p8(a: poly8x16_t) -> poly8x16_t {
55837    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
55838}
55839#[doc = "Reversing vector elements (swap endianness)"]
55840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_s8)"]
55841#[inline(always)]
55842#[target_feature(enable = "neon")]
55843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55844#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55845#[cfg_attr(
55846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55847    assert_instr(rev16)
55848)]
55849#[cfg_attr(
55850    not(target_arch = "arm"),
55851    stable(feature = "neon_intrinsics", since = "1.59.0")
55852)]
55853#[cfg_attr(
55854    target_arch = "arm",
55855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55856)]
55857pub fn vrev16q_s8(a: int8x16_t) -> int8x16_t {
55858    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
55859}
55860#[doc = "Reversing vector elements (swap endianness)"]
55861#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_u8)"]
55862#[inline(always)]
55863#[target_feature(enable = "neon")]
55864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55865#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55866#[cfg_attr(
55867    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55868    assert_instr(rev16)
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 vrev16q_u8(a: uint8x16_t) -> uint8x16_t {
55879    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
55880}
55881#[doc = "Reversing vector elements (swap endianness)"]
55882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_p16)"]
55883#[inline(always)]
55884#[target_feature(enable = "neon")]
55885#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55886#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
55887#[cfg_attr(
55888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55889    assert_instr(rev32)
55890)]
55891#[cfg_attr(
55892    not(target_arch = "arm"),
55893    stable(feature = "neon_intrinsics", since = "1.59.0")
55894)]
55895#[cfg_attr(
55896    target_arch = "arm",
55897    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55898)]
55899pub fn vrev32_p16(a: poly16x4_t) -> poly16x4_t {
55900    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
55901}
55902#[doc = "Reversing vector elements (swap endianness)"]
55903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_p8)"]
55904#[inline(always)]
55905#[target_feature(enable = "neon")]
55906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55907#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
55908#[cfg_attr(
55909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55910    assert_instr(rev32)
55911)]
55912#[cfg_attr(
55913    not(target_arch = "arm"),
55914    stable(feature = "neon_intrinsics", since = "1.59.0")
55915)]
55916#[cfg_attr(
55917    target_arch = "arm",
55918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55919)]
55920pub fn vrev32_p8(a: poly8x8_t) -> poly8x8_t {
55921    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
55922}
55923#[doc = "Reversing vector elements (swap endianness)"]
55924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_s16)"]
55925#[inline(always)]
55926#[target_feature(enable = "neon")]
55927#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55928#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
55929#[cfg_attr(
55930    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55931    assert_instr(rev32)
55932)]
55933#[cfg_attr(
55934    not(target_arch = "arm"),
55935    stable(feature = "neon_intrinsics", since = "1.59.0")
55936)]
55937#[cfg_attr(
55938    target_arch = "arm",
55939    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55940)]
55941pub fn vrev32_s16(a: int16x4_t) -> int16x4_t {
55942    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
55943}
55944#[doc = "Reversing vector elements (swap endianness)"]
55945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_s8)"]
55946#[inline(always)]
55947#[target_feature(enable = "neon")]
55948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55949#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
55950#[cfg_attr(
55951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55952    assert_instr(rev32)
55953)]
55954#[cfg_attr(
55955    not(target_arch = "arm"),
55956    stable(feature = "neon_intrinsics", since = "1.59.0")
55957)]
55958#[cfg_attr(
55959    target_arch = "arm",
55960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55961)]
55962pub fn vrev32_s8(a: int8x8_t) -> int8x8_t {
55963    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
55964}
55965#[doc = "Reversing vector elements (swap endianness)"]
55966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_u16)"]
55967#[inline(always)]
55968#[target_feature(enable = "neon")]
55969#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55970#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
55971#[cfg_attr(
55972    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55973    assert_instr(rev32)
55974)]
55975#[cfg_attr(
55976    not(target_arch = "arm"),
55977    stable(feature = "neon_intrinsics", since = "1.59.0")
55978)]
55979#[cfg_attr(
55980    target_arch = "arm",
55981    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55982)]
55983pub fn vrev32_u16(a: uint16x4_t) -> uint16x4_t {
55984    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
55985}
55986#[doc = "Reversing vector elements (swap endianness)"]
55987#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_u8)"]
55988#[inline(always)]
55989#[target_feature(enable = "neon")]
55990#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55991#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
55992#[cfg_attr(
55993    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55994    assert_instr(rev32)
55995)]
55996#[cfg_attr(
55997    not(target_arch = "arm"),
55998    stable(feature = "neon_intrinsics", since = "1.59.0")
55999)]
56000#[cfg_attr(
56001    target_arch = "arm",
56002    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56003)]
56004pub fn vrev32_u8(a: uint8x8_t) -> uint8x8_t {
56005    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56006}
56007#[doc = "Reversing vector elements (swap endianness)"]
56008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_p16)"]
56009#[inline(always)]
56010#[target_feature(enable = "neon")]
56011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56012#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
56013#[cfg_attr(
56014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56015    assert_instr(rev32)
56016)]
56017#[cfg_attr(
56018    not(target_arch = "arm"),
56019    stable(feature = "neon_intrinsics", since = "1.59.0")
56020)]
56021#[cfg_attr(
56022    target_arch = "arm",
56023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56024)]
56025pub fn vrev32q_p16(a: poly16x8_t) -> poly16x8_t {
56026    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
56027}
56028#[doc = "Reversing vector elements (swap endianness)"]
56029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_p8)"]
56030#[inline(always)]
56031#[target_feature(enable = "neon")]
56032#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56033#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
56034#[cfg_attr(
56035    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56036    assert_instr(rev32)
56037)]
56038#[cfg_attr(
56039    not(target_arch = "arm"),
56040    stable(feature = "neon_intrinsics", since = "1.59.0")
56041)]
56042#[cfg_attr(
56043    target_arch = "arm",
56044    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56045)]
56046pub fn vrev32q_p8(a: poly8x16_t) -> poly8x16_t {
56047    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
56048}
56049#[doc = "Reversing vector elements (swap endianness)"]
56050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_s16)"]
56051#[inline(always)]
56052#[target_feature(enable = "neon")]
56053#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56054#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
56055#[cfg_attr(
56056    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56057    assert_instr(rev32)
56058)]
56059#[cfg_attr(
56060    not(target_arch = "arm"),
56061    stable(feature = "neon_intrinsics", since = "1.59.0")
56062)]
56063#[cfg_attr(
56064    target_arch = "arm",
56065    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56066)]
56067pub fn vrev32q_s16(a: int16x8_t) -> int16x8_t {
56068    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
56069}
56070#[doc = "Reversing vector elements (swap endianness)"]
56071#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_s8)"]
56072#[inline(always)]
56073#[target_feature(enable = "neon")]
56074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56075#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
56076#[cfg_attr(
56077    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56078    assert_instr(rev32)
56079)]
56080#[cfg_attr(
56081    not(target_arch = "arm"),
56082    stable(feature = "neon_intrinsics", since = "1.59.0")
56083)]
56084#[cfg_attr(
56085    target_arch = "arm",
56086    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56087)]
56088pub fn vrev32q_s8(a: int8x16_t) -> int8x16_t {
56089    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
56090}
56091#[doc = "Reversing vector elements (swap endianness)"]
56092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_u16)"]
56093#[inline(always)]
56094#[target_feature(enable = "neon")]
56095#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56096#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
56097#[cfg_attr(
56098    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56099    assert_instr(rev32)
56100)]
56101#[cfg_attr(
56102    not(target_arch = "arm"),
56103    stable(feature = "neon_intrinsics", since = "1.59.0")
56104)]
56105#[cfg_attr(
56106    target_arch = "arm",
56107    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56108)]
56109pub fn vrev32q_u16(a: uint16x8_t) -> uint16x8_t {
56110    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
56111}
56112#[doc = "Reversing vector elements (swap endianness)"]
56113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_u8)"]
56114#[inline(always)]
56115#[target_feature(enable = "neon")]
56116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56117#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
56118#[cfg_attr(
56119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56120    assert_instr(rev32)
56121)]
56122#[cfg_attr(
56123    not(target_arch = "arm"),
56124    stable(feature = "neon_intrinsics", since = "1.59.0")
56125)]
56126#[cfg_attr(
56127    target_arch = "arm",
56128    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56129)]
56130pub fn vrev32q_u8(a: uint8x16_t) -> uint8x16_t {
56131    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
56132}
56133#[doc = "Reversing vector elements (swap endianness)"]
56134#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_f32)"]
56135#[inline(always)]
56136#[target_feature(enable = "neon")]
56137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56138#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56139#[cfg_attr(
56140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56141    assert_instr(rev64)
56142)]
56143#[cfg_attr(
56144    not(target_arch = "arm"),
56145    stable(feature = "neon_intrinsics", since = "1.59.0")
56146)]
56147#[cfg_attr(
56148    target_arch = "arm",
56149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56150)]
56151pub fn vrev64_f32(a: float32x2_t) -> float32x2_t {
56152    unsafe { simd_shuffle!(a, a, [1, 0]) }
56153}
56154#[doc = "Reversing vector elements (swap endianness)"]
56155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_p16)"]
56156#[inline(always)]
56157#[target_feature(enable = "neon")]
56158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56159#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56160#[cfg_attr(
56161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56162    assert_instr(rev64)
56163)]
56164#[cfg_attr(
56165    not(target_arch = "arm"),
56166    stable(feature = "neon_intrinsics", since = "1.59.0")
56167)]
56168#[cfg_attr(
56169    target_arch = "arm",
56170    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56171)]
56172pub fn vrev64_p16(a: poly16x4_t) -> poly16x4_t {
56173    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
56174}
56175#[doc = "Reversing vector elements (swap endianness)"]
56176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_p8)"]
56177#[inline(always)]
56178#[target_feature(enable = "neon")]
56179#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56180#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56181#[cfg_attr(
56182    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56183    assert_instr(rev64)
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 vrev64_p8(a: poly8x8_t) -> poly8x8_t {
56194    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
56195}
56196#[doc = "Reversing vector elements (swap endianness)"]
56197#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s16)"]
56198#[inline(always)]
56199#[target_feature(enable = "neon")]
56200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56201#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56202#[cfg_attr(
56203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56204    assert_instr(rev64)
56205)]
56206#[cfg_attr(
56207    not(target_arch = "arm"),
56208    stable(feature = "neon_intrinsics", since = "1.59.0")
56209)]
56210#[cfg_attr(
56211    target_arch = "arm",
56212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56213)]
56214pub fn vrev64_s16(a: int16x4_t) -> int16x4_t {
56215    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
56216}
56217#[doc = "Reversing vector elements (swap endianness)"]
56218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s32)"]
56219#[inline(always)]
56220#[target_feature(enable = "neon")]
56221#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56222#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56223#[cfg_attr(
56224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56225    assert_instr(rev64)
56226)]
56227#[cfg_attr(
56228    not(target_arch = "arm"),
56229    stable(feature = "neon_intrinsics", since = "1.59.0")
56230)]
56231#[cfg_attr(
56232    target_arch = "arm",
56233    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56234)]
56235pub fn vrev64_s32(a: int32x2_t) -> int32x2_t {
56236    unsafe { simd_shuffle!(a, a, [1, 0]) }
56237}
56238#[doc = "Reversing vector elements (swap endianness)"]
56239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s8)"]
56240#[inline(always)]
56241#[target_feature(enable = "neon")]
56242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56243#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56244#[cfg_attr(
56245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56246    assert_instr(rev64)
56247)]
56248#[cfg_attr(
56249    not(target_arch = "arm"),
56250    stable(feature = "neon_intrinsics", since = "1.59.0")
56251)]
56252#[cfg_attr(
56253    target_arch = "arm",
56254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56255)]
56256pub fn vrev64_s8(a: int8x8_t) -> int8x8_t {
56257    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
56258}
56259#[doc = "Reversing vector elements (swap endianness)"]
56260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u16)"]
56261#[inline(always)]
56262#[target_feature(enable = "neon")]
56263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56264#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56265#[cfg_attr(
56266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56267    assert_instr(rev64)
56268)]
56269#[cfg_attr(
56270    not(target_arch = "arm"),
56271    stable(feature = "neon_intrinsics", since = "1.59.0")
56272)]
56273#[cfg_attr(
56274    target_arch = "arm",
56275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56276)]
56277pub fn vrev64_u16(a: uint16x4_t) -> uint16x4_t {
56278    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
56279}
56280#[doc = "Reversing vector elements (swap endianness)"]
56281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u32)"]
56282#[inline(always)]
56283#[target_feature(enable = "neon")]
56284#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56285#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56286#[cfg_attr(
56287    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56288    assert_instr(rev64)
56289)]
56290#[cfg_attr(
56291    not(target_arch = "arm"),
56292    stable(feature = "neon_intrinsics", since = "1.59.0")
56293)]
56294#[cfg_attr(
56295    target_arch = "arm",
56296    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56297)]
56298pub fn vrev64_u32(a: uint32x2_t) -> uint32x2_t {
56299    unsafe { simd_shuffle!(a, a, [1, 0]) }
56300}
56301#[doc = "Reversing vector elements (swap endianness)"]
56302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u8)"]
56303#[inline(always)]
56304#[target_feature(enable = "neon")]
56305#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56306#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56307#[cfg_attr(
56308    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56309    assert_instr(rev64)
56310)]
56311#[cfg_attr(
56312    not(target_arch = "arm"),
56313    stable(feature = "neon_intrinsics", since = "1.59.0")
56314)]
56315#[cfg_attr(
56316    target_arch = "arm",
56317    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56318)]
56319pub fn vrev64_u8(a: uint8x8_t) -> uint8x8_t {
56320    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
56321}
56322#[doc = "Reversing vector elements (swap endianness)"]
56323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_f32)"]
56324#[inline(always)]
56325#[target_feature(enable = "neon")]
56326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56327#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56328#[cfg_attr(
56329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56330    assert_instr(rev64)
56331)]
56332#[cfg_attr(
56333    not(target_arch = "arm"),
56334    stable(feature = "neon_intrinsics", since = "1.59.0")
56335)]
56336#[cfg_attr(
56337    target_arch = "arm",
56338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56339)]
56340pub fn vrev64q_f32(a: float32x4_t) -> float32x4_t {
56341    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
56342}
56343#[doc = "Reversing vector elements (swap endianness)"]
56344#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_p16)"]
56345#[inline(always)]
56346#[target_feature(enable = "neon")]
56347#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56348#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56349#[cfg_attr(
56350    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56351    assert_instr(rev64)
56352)]
56353#[cfg_attr(
56354    not(target_arch = "arm"),
56355    stable(feature = "neon_intrinsics", since = "1.59.0")
56356)]
56357#[cfg_attr(
56358    target_arch = "arm",
56359    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56360)]
56361pub fn vrev64q_p16(a: poly16x8_t) -> poly16x8_t {
56362    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56363}
56364#[doc = "Reversing vector elements (swap endianness)"]
56365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_p8)"]
56366#[inline(always)]
56367#[target_feature(enable = "neon")]
56368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56369#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56370#[cfg_attr(
56371    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56372    assert_instr(rev64)
56373)]
56374#[cfg_attr(
56375    not(target_arch = "arm"),
56376    stable(feature = "neon_intrinsics", since = "1.59.0")
56377)]
56378#[cfg_attr(
56379    target_arch = "arm",
56380    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56381)]
56382pub fn vrev64q_p8(a: poly8x16_t) -> poly8x16_t {
56383    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
56384}
56385#[doc = "Reversing vector elements (swap endianness)"]
56386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s16)"]
56387#[inline(always)]
56388#[target_feature(enable = "neon")]
56389#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56390#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56391#[cfg_attr(
56392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56393    assert_instr(rev64)
56394)]
56395#[cfg_attr(
56396    not(target_arch = "arm"),
56397    stable(feature = "neon_intrinsics", since = "1.59.0")
56398)]
56399#[cfg_attr(
56400    target_arch = "arm",
56401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56402)]
56403pub fn vrev64q_s16(a: int16x8_t) -> int16x8_t {
56404    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56405}
56406#[doc = "Reversing vector elements (swap endianness)"]
56407#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s32)"]
56408#[inline(always)]
56409#[target_feature(enable = "neon")]
56410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56411#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56412#[cfg_attr(
56413    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56414    assert_instr(rev64)
56415)]
56416#[cfg_attr(
56417    not(target_arch = "arm"),
56418    stable(feature = "neon_intrinsics", since = "1.59.0")
56419)]
56420#[cfg_attr(
56421    target_arch = "arm",
56422    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56423)]
56424pub fn vrev64q_s32(a: int32x4_t) -> int32x4_t {
56425    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
56426}
56427#[doc = "Reversing vector elements (swap endianness)"]
56428#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s8)"]
56429#[inline(always)]
56430#[target_feature(enable = "neon")]
56431#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56432#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56433#[cfg_attr(
56434    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56435    assert_instr(rev64)
56436)]
56437#[cfg_attr(
56438    not(target_arch = "arm"),
56439    stable(feature = "neon_intrinsics", since = "1.59.0")
56440)]
56441#[cfg_attr(
56442    target_arch = "arm",
56443    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56444)]
56445pub fn vrev64q_s8(a: int8x16_t) -> int8x16_t {
56446    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
56447}
56448#[doc = "Reversing vector elements (swap endianness)"]
56449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u16)"]
56450#[inline(always)]
56451#[target_feature(enable = "neon")]
56452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56453#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56454#[cfg_attr(
56455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56456    assert_instr(rev64)
56457)]
56458#[cfg_attr(
56459    not(target_arch = "arm"),
56460    stable(feature = "neon_intrinsics", since = "1.59.0")
56461)]
56462#[cfg_attr(
56463    target_arch = "arm",
56464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56465)]
56466pub fn vrev64q_u16(a: uint16x8_t) -> uint16x8_t {
56467    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56468}
56469#[doc = "Reversing vector elements (swap endianness)"]
56470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u32)"]
56471#[inline(always)]
56472#[target_feature(enable = "neon")]
56473#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56474#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56475#[cfg_attr(
56476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56477    assert_instr(rev64)
56478)]
56479#[cfg_attr(
56480    not(target_arch = "arm"),
56481    stable(feature = "neon_intrinsics", since = "1.59.0")
56482)]
56483#[cfg_attr(
56484    target_arch = "arm",
56485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56486)]
56487pub fn vrev64q_u32(a: uint32x4_t) -> uint32x4_t {
56488    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
56489}
56490#[doc = "Reversing vector elements (swap endianness)"]
56491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u8)"]
56492#[inline(always)]
56493#[target_feature(enable = "neon")]
56494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56495#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56496#[cfg_attr(
56497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56498    assert_instr(rev64)
56499)]
56500#[cfg_attr(
56501    not(target_arch = "arm"),
56502    stable(feature = "neon_intrinsics", since = "1.59.0")
56503)]
56504#[cfg_attr(
56505    target_arch = "arm",
56506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56507)]
56508pub fn vrev64q_u8(a: uint8x16_t) -> uint8x16_t {
56509    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
56510}
56511#[doc = "Reverse elements in 64-bit doublewords"]
56512#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_f16)"]
56513#[inline(always)]
56514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56515#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrev64))]
56516#[cfg_attr(
56517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56518    assert_instr(rev64)
56519)]
56520#[target_feature(enable = "neon,fp16")]
56521#[cfg_attr(
56522    not(target_arch = "arm"),
56523    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
56524)]
56525#[cfg_attr(
56526    target_arch = "arm",
56527    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56528)]
56529#[cfg(not(target_arch = "arm64ec"))]
56530pub fn vrev64_f16(a: float16x4_t) -> float16x4_t {
56531    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
56532}
56533#[doc = "Reverse elements in 64-bit doublewords"]
56534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_f16)"]
56535#[inline(always)]
56536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56537#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrev64))]
56538#[cfg_attr(
56539    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56540    assert_instr(rev64)
56541)]
56542#[target_feature(enable = "neon,fp16")]
56543#[cfg_attr(
56544    not(target_arch = "arm"),
56545    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
56546)]
56547#[cfg_attr(
56548    target_arch = "arm",
56549    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56550)]
56551#[cfg(not(target_arch = "arm64ec"))]
56552pub fn vrev64q_f16(a: float16x8_t) -> float16x8_t {
56553    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56554}
56555#[doc = "Rounding halving add"]
56556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s8)"]
56557#[inline(always)]
56558#[target_feature(enable = "neon")]
56559#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56560#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
56561#[cfg_attr(
56562    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56563    assert_instr(srhadd)
56564)]
56565#[cfg_attr(
56566    not(target_arch = "arm"),
56567    stable(feature = "neon_intrinsics", since = "1.59.0")
56568)]
56569#[cfg_attr(
56570    target_arch = "arm",
56571    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56572)]
56573pub fn vrhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
56574    unsafe extern "unadjusted" {
56575        #[cfg_attr(
56576            any(target_arch = "aarch64", target_arch = "arm64ec"),
56577            link_name = "llvm.aarch64.neon.srhadd.v8i8"
56578        )]
56579        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i8")]
56580        fn _vrhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
56581    }
56582    unsafe { _vrhadd_s8(a, b) }
56583}
56584#[doc = "Rounding halving add"]
56585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s8)"]
56586#[inline(always)]
56587#[target_feature(enable = "neon")]
56588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56589#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
56590#[cfg_attr(
56591    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56592    assert_instr(srhadd)
56593)]
56594#[cfg_attr(
56595    not(target_arch = "arm"),
56596    stable(feature = "neon_intrinsics", since = "1.59.0")
56597)]
56598#[cfg_attr(
56599    target_arch = "arm",
56600    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56601)]
56602pub fn vrhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
56603    unsafe extern "unadjusted" {
56604        #[cfg_attr(
56605            any(target_arch = "aarch64", target_arch = "arm64ec"),
56606            link_name = "llvm.aarch64.neon.srhadd.v16i8"
56607        )]
56608        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v16i8")]
56609        fn _vrhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
56610    }
56611    unsafe { _vrhaddq_s8(a, b) }
56612}
56613#[doc = "Rounding halving add"]
56614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s16)"]
56615#[inline(always)]
56616#[target_feature(enable = "neon")]
56617#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56618#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
56619#[cfg_attr(
56620    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56621    assert_instr(srhadd)
56622)]
56623#[cfg_attr(
56624    not(target_arch = "arm"),
56625    stable(feature = "neon_intrinsics", since = "1.59.0")
56626)]
56627#[cfg_attr(
56628    target_arch = "arm",
56629    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56630)]
56631pub fn vrhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
56632    unsafe extern "unadjusted" {
56633        #[cfg_attr(
56634            any(target_arch = "aarch64", target_arch = "arm64ec"),
56635            link_name = "llvm.aarch64.neon.srhadd.v4i16"
56636        )]
56637        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i16")]
56638        fn _vrhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
56639    }
56640    unsafe { _vrhadd_s16(a, b) }
56641}
56642#[doc = "Rounding halving add"]
56643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s16)"]
56644#[inline(always)]
56645#[target_feature(enable = "neon")]
56646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56647#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
56648#[cfg_attr(
56649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56650    assert_instr(srhadd)
56651)]
56652#[cfg_attr(
56653    not(target_arch = "arm"),
56654    stable(feature = "neon_intrinsics", since = "1.59.0")
56655)]
56656#[cfg_attr(
56657    target_arch = "arm",
56658    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56659)]
56660pub fn vrhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
56661    unsafe extern "unadjusted" {
56662        #[cfg_attr(
56663            any(target_arch = "aarch64", target_arch = "arm64ec"),
56664            link_name = "llvm.aarch64.neon.srhadd.v8i16"
56665        )]
56666        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i16")]
56667        fn _vrhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
56668    }
56669    unsafe { _vrhaddq_s16(a, b) }
56670}
56671#[doc = "Rounding halving add"]
56672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s32)"]
56673#[inline(always)]
56674#[target_feature(enable = "neon")]
56675#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56676#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
56677#[cfg_attr(
56678    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56679    assert_instr(srhadd)
56680)]
56681#[cfg_attr(
56682    not(target_arch = "arm"),
56683    stable(feature = "neon_intrinsics", since = "1.59.0")
56684)]
56685#[cfg_attr(
56686    target_arch = "arm",
56687    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56688)]
56689pub fn vrhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
56690    unsafe extern "unadjusted" {
56691        #[cfg_attr(
56692            any(target_arch = "aarch64", target_arch = "arm64ec"),
56693            link_name = "llvm.aarch64.neon.srhadd.v2i32"
56694        )]
56695        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v2i32")]
56696        fn _vrhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
56697    }
56698    unsafe { _vrhadd_s32(a, b) }
56699}
56700#[doc = "Rounding halving add"]
56701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s32)"]
56702#[inline(always)]
56703#[target_feature(enable = "neon")]
56704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56705#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
56706#[cfg_attr(
56707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56708    assert_instr(srhadd)
56709)]
56710#[cfg_attr(
56711    not(target_arch = "arm"),
56712    stable(feature = "neon_intrinsics", since = "1.59.0")
56713)]
56714#[cfg_attr(
56715    target_arch = "arm",
56716    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56717)]
56718pub fn vrhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
56719    unsafe extern "unadjusted" {
56720        #[cfg_attr(
56721            any(target_arch = "aarch64", target_arch = "arm64ec"),
56722            link_name = "llvm.aarch64.neon.srhadd.v4i32"
56723        )]
56724        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i32")]
56725        fn _vrhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
56726    }
56727    unsafe { _vrhaddq_s32(a, b) }
56728}
56729#[doc = "Rounding halving add"]
56730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u8)"]
56731#[inline(always)]
56732#[target_feature(enable = "neon")]
56733#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56734#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
56735#[cfg_attr(
56736    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56737    assert_instr(urhadd)
56738)]
56739#[cfg_attr(
56740    not(target_arch = "arm"),
56741    stable(feature = "neon_intrinsics", since = "1.59.0")
56742)]
56743#[cfg_attr(
56744    target_arch = "arm",
56745    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56746)]
56747pub fn vrhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
56748    unsafe extern "unadjusted" {
56749        #[cfg_attr(
56750            any(target_arch = "aarch64", target_arch = "arm64ec"),
56751            link_name = "llvm.aarch64.neon.urhadd.v8i8"
56752        )]
56753        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i8")]
56754        fn _vrhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
56755    }
56756    unsafe { _vrhadd_u8(a, b) }
56757}
56758#[doc = "Rounding halving add"]
56759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u8)"]
56760#[inline(always)]
56761#[target_feature(enable = "neon")]
56762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56763#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
56764#[cfg_attr(
56765    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56766    assert_instr(urhadd)
56767)]
56768#[cfg_attr(
56769    not(target_arch = "arm"),
56770    stable(feature = "neon_intrinsics", since = "1.59.0")
56771)]
56772#[cfg_attr(
56773    target_arch = "arm",
56774    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56775)]
56776pub fn vrhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
56777    unsafe extern "unadjusted" {
56778        #[cfg_attr(
56779            any(target_arch = "aarch64", target_arch = "arm64ec"),
56780            link_name = "llvm.aarch64.neon.urhadd.v16i8"
56781        )]
56782        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v16i8")]
56783        fn _vrhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
56784    }
56785    unsafe { _vrhaddq_u8(a, b) }
56786}
56787#[doc = "Rounding halving add"]
56788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u16)"]
56789#[inline(always)]
56790#[target_feature(enable = "neon")]
56791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56792#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
56793#[cfg_attr(
56794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56795    assert_instr(urhadd)
56796)]
56797#[cfg_attr(
56798    not(target_arch = "arm"),
56799    stable(feature = "neon_intrinsics", since = "1.59.0")
56800)]
56801#[cfg_attr(
56802    target_arch = "arm",
56803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56804)]
56805pub fn vrhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
56806    unsafe extern "unadjusted" {
56807        #[cfg_attr(
56808            any(target_arch = "aarch64", target_arch = "arm64ec"),
56809            link_name = "llvm.aarch64.neon.urhadd.v4i16"
56810        )]
56811        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i16")]
56812        fn _vrhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
56813    }
56814    unsafe { _vrhadd_u16(a, b) }
56815}
56816#[doc = "Rounding halving add"]
56817#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u16)"]
56818#[inline(always)]
56819#[target_feature(enable = "neon")]
56820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56821#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
56822#[cfg_attr(
56823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56824    assert_instr(urhadd)
56825)]
56826#[cfg_attr(
56827    not(target_arch = "arm"),
56828    stable(feature = "neon_intrinsics", since = "1.59.0")
56829)]
56830#[cfg_attr(
56831    target_arch = "arm",
56832    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56833)]
56834pub fn vrhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
56835    unsafe extern "unadjusted" {
56836        #[cfg_attr(
56837            any(target_arch = "aarch64", target_arch = "arm64ec"),
56838            link_name = "llvm.aarch64.neon.urhadd.v8i16"
56839        )]
56840        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i16")]
56841        fn _vrhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
56842    }
56843    unsafe { _vrhaddq_u16(a, b) }
56844}
56845#[doc = "Rounding halving add"]
56846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u32)"]
56847#[inline(always)]
56848#[target_feature(enable = "neon")]
56849#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56850#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
56851#[cfg_attr(
56852    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56853    assert_instr(urhadd)
56854)]
56855#[cfg_attr(
56856    not(target_arch = "arm"),
56857    stable(feature = "neon_intrinsics", since = "1.59.0")
56858)]
56859#[cfg_attr(
56860    target_arch = "arm",
56861    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56862)]
56863pub fn vrhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
56864    unsafe extern "unadjusted" {
56865        #[cfg_attr(
56866            any(target_arch = "aarch64", target_arch = "arm64ec"),
56867            link_name = "llvm.aarch64.neon.urhadd.v2i32"
56868        )]
56869        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v2i32")]
56870        fn _vrhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
56871    }
56872    unsafe { _vrhadd_u32(a, b) }
56873}
56874#[doc = "Rounding halving add"]
56875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u32)"]
56876#[inline(always)]
56877#[target_feature(enable = "neon")]
56878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56879#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
56880#[cfg_attr(
56881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56882    assert_instr(urhadd)
56883)]
56884#[cfg_attr(
56885    not(target_arch = "arm"),
56886    stable(feature = "neon_intrinsics", since = "1.59.0")
56887)]
56888#[cfg_attr(
56889    target_arch = "arm",
56890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56891)]
56892pub fn vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
56893    unsafe extern "unadjusted" {
56894        #[cfg_attr(
56895            any(target_arch = "aarch64", target_arch = "arm64ec"),
56896            link_name = "llvm.aarch64.neon.urhadd.v4i32"
56897        )]
56898        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i32")]
56899        fn _vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
56900    }
56901    unsafe { _vrhaddq_u32(a, b) }
56902}
56903#[doc = "Floating-point round to integral, to nearest with ties to even"]
56904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndn_f16)"]
56905#[inline(always)]
56906#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
56907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
56908#[cfg_attr(
56909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56910    assert_instr(frintn)
56911)]
56912#[target_feature(enable = "neon,fp16")]
56913#[cfg_attr(
56914    not(target_arch = "arm"),
56915    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
56916)]
56917#[cfg_attr(
56918    target_arch = "arm",
56919    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56920)]
56921#[cfg(not(target_arch = "arm64ec"))]
56922pub fn vrndn_f16(a: float16x4_t) -> float16x4_t {
56923    unsafe extern "unadjusted" {
56924        #[cfg_attr(
56925            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
56926            link_name = "llvm.roundeven.v4f16"
56927        )]
56928        fn _vrndn_f16(a: float16x4_t) -> float16x4_t;
56929    }
56930    unsafe { _vrndn_f16(a) }
56931}
56932#[doc = "Floating-point round to integral, to nearest with ties to even"]
56933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndnq_f16)"]
56934#[inline(always)]
56935#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
56936#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
56937#[cfg_attr(
56938    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56939    assert_instr(frintn)
56940)]
56941#[target_feature(enable = "neon,fp16")]
56942#[cfg_attr(
56943    not(target_arch = "arm"),
56944    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
56945)]
56946#[cfg_attr(
56947    target_arch = "arm",
56948    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56949)]
56950#[cfg(not(target_arch = "arm64ec"))]
56951pub fn vrndnq_f16(a: float16x8_t) -> float16x8_t {
56952    unsafe extern "unadjusted" {
56953        #[cfg_attr(
56954            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
56955            link_name = "llvm.roundeven.v8f16"
56956        )]
56957        fn _vrndnq_f16(a: float16x8_t) -> float16x8_t;
56958    }
56959    unsafe { _vrndnq_f16(a) }
56960}
56961#[doc = "Floating-point round to integral, to nearest with ties to even"]
56962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndn_f32)"]
56963#[inline(always)]
56964#[target_feature(enable = "neon")]
56965#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
56966#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
56967#[cfg_attr(
56968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56969    assert_instr(frintn)
56970)]
56971#[cfg_attr(
56972    not(target_arch = "arm"),
56973    stable(feature = "neon_intrinsics", since = "1.59.0")
56974)]
56975#[cfg_attr(
56976    target_arch = "arm",
56977    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56978)]
56979pub fn vrndn_f32(a: float32x2_t) -> float32x2_t {
56980    unsafe extern "unadjusted" {
56981        #[cfg_attr(
56982            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
56983            link_name = "llvm.roundeven.v2f32"
56984        )]
56985        fn _vrndn_f32(a: float32x2_t) -> float32x2_t;
56986    }
56987    unsafe { _vrndn_f32(a) }
56988}
56989#[doc = "Floating-point round to integral, to nearest with ties to even"]
56990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndnq_f32)"]
56991#[inline(always)]
56992#[target_feature(enable = "neon")]
56993#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
56994#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
56995#[cfg_attr(
56996    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56997    assert_instr(frintn)
56998)]
56999#[cfg_attr(
57000    not(target_arch = "arm"),
57001    stable(feature = "neon_intrinsics", since = "1.59.0")
57002)]
57003#[cfg_attr(
57004    target_arch = "arm",
57005    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57006)]
57007pub fn vrndnq_f32(a: float32x4_t) -> float32x4_t {
57008    unsafe extern "unadjusted" {
57009        #[cfg_attr(
57010            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
57011            link_name = "llvm.roundeven.v4f32"
57012        )]
57013        fn _vrndnq_f32(a: float32x4_t) -> float32x4_t;
57014    }
57015    unsafe { _vrndnq_f32(a) }
57016}
57017#[doc = "Signed rounding shift left"]
57018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s8)"]
57019#[inline(always)]
57020#[target_feature(enable = "neon")]
57021#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57022#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57023#[cfg_attr(
57024    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57025    assert_instr(srshl)
57026)]
57027#[cfg_attr(
57028    not(target_arch = "arm"),
57029    stable(feature = "neon_intrinsics", since = "1.59.0")
57030)]
57031#[cfg_attr(
57032    target_arch = "arm",
57033    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57034)]
57035pub fn vrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
57036    unsafe extern "unadjusted" {
57037        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i8")]
57038        #[cfg_attr(
57039            any(target_arch = "aarch64", target_arch = "arm64ec"),
57040            link_name = "llvm.aarch64.neon.srshl.v8i8"
57041        )]
57042        fn _vrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
57043    }
57044    unsafe { _vrshl_s8(a, b) }
57045}
57046#[doc = "Signed rounding shift left"]
57047#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s8)"]
57048#[inline(always)]
57049#[target_feature(enable = "neon")]
57050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57052#[cfg_attr(
57053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57054    assert_instr(srshl)
57055)]
57056#[cfg_attr(
57057    not(target_arch = "arm"),
57058    stable(feature = "neon_intrinsics", since = "1.59.0")
57059)]
57060#[cfg_attr(
57061    target_arch = "arm",
57062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57063)]
57064pub fn vrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
57065    unsafe extern "unadjusted" {
57066        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v16i8")]
57067        #[cfg_attr(
57068            any(target_arch = "aarch64", target_arch = "arm64ec"),
57069            link_name = "llvm.aarch64.neon.srshl.v16i8"
57070        )]
57071        fn _vrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
57072    }
57073    unsafe { _vrshlq_s8(a, b) }
57074}
57075#[doc = "Signed rounding shift left"]
57076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s16)"]
57077#[inline(always)]
57078#[target_feature(enable = "neon")]
57079#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57080#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57081#[cfg_attr(
57082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57083    assert_instr(srshl)
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 vrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
57094    unsafe extern "unadjusted" {
57095        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i16")]
57096        #[cfg_attr(
57097            any(target_arch = "aarch64", target_arch = "arm64ec"),
57098            link_name = "llvm.aarch64.neon.srshl.v4i16"
57099        )]
57100        fn _vrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
57101    }
57102    unsafe { _vrshl_s16(a, b) }
57103}
57104#[doc = "Signed rounding shift left"]
57105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s16)"]
57106#[inline(always)]
57107#[target_feature(enable = "neon")]
57108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57110#[cfg_attr(
57111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57112    assert_instr(srshl)
57113)]
57114#[cfg_attr(
57115    not(target_arch = "arm"),
57116    stable(feature = "neon_intrinsics", since = "1.59.0")
57117)]
57118#[cfg_attr(
57119    target_arch = "arm",
57120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57121)]
57122pub fn vrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
57123    unsafe extern "unadjusted" {
57124        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i16")]
57125        #[cfg_attr(
57126            any(target_arch = "aarch64", target_arch = "arm64ec"),
57127            link_name = "llvm.aarch64.neon.srshl.v8i16"
57128        )]
57129        fn _vrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
57130    }
57131    unsafe { _vrshlq_s16(a, b) }
57132}
57133#[doc = "Signed rounding shift left"]
57134#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s32)"]
57135#[inline(always)]
57136#[target_feature(enable = "neon")]
57137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57138#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57139#[cfg_attr(
57140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57141    assert_instr(srshl)
57142)]
57143#[cfg_attr(
57144    not(target_arch = "arm"),
57145    stable(feature = "neon_intrinsics", since = "1.59.0")
57146)]
57147#[cfg_attr(
57148    target_arch = "arm",
57149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57150)]
57151pub fn vrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
57152    unsafe extern "unadjusted" {
57153        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i32")]
57154        #[cfg_attr(
57155            any(target_arch = "aarch64", target_arch = "arm64ec"),
57156            link_name = "llvm.aarch64.neon.srshl.v2i32"
57157        )]
57158        fn _vrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
57159    }
57160    unsafe { _vrshl_s32(a, b) }
57161}
57162#[doc = "Signed rounding shift left"]
57163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s32)"]
57164#[inline(always)]
57165#[target_feature(enable = "neon")]
57166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57167#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57168#[cfg_attr(
57169    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57170    assert_instr(srshl)
57171)]
57172#[cfg_attr(
57173    not(target_arch = "arm"),
57174    stable(feature = "neon_intrinsics", since = "1.59.0")
57175)]
57176#[cfg_attr(
57177    target_arch = "arm",
57178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57179)]
57180pub fn vrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
57181    unsafe extern "unadjusted" {
57182        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i32")]
57183        #[cfg_attr(
57184            any(target_arch = "aarch64", target_arch = "arm64ec"),
57185            link_name = "llvm.aarch64.neon.srshl.v4i32"
57186        )]
57187        fn _vrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
57188    }
57189    unsafe { _vrshlq_s32(a, b) }
57190}
57191#[doc = "Signed rounding shift left"]
57192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s64)"]
57193#[inline(always)]
57194#[target_feature(enable = "neon")]
57195#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57196#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57197#[cfg_attr(
57198    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57199    assert_instr(srshl)
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 vrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
57210    unsafe extern "unadjusted" {
57211        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v1i64")]
57212        #[cfg_attr(
57213            any(target_arch = "aarch64", target_arch = "arm64ec"),
57214            link_name = "llvm.aarch64.neon.srshl.v1i64"
57215        )]
57216        fn _vrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
57217    }
57218    unsafe { _vrshl_s64(a, b) }
57219}
57220#[doc = "Signed rounding shift left"]
57221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s64)"]
57222#[inline(always)]
57223#[target_feature(enable = "neon")]
57224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57226#[cfg_attr(
57227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57228    assert_instr(srshl)
57229)]
57230#[cfg_attr(
57231    not(target_arch = "arm"),
57232    stable(feature = "neon_intrinsics", since = "1.59.0")
57233)]
57234#[cfg_attr(
57235    target_arch = "arm",
57236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57237)]
57238pub fn vrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
57239    unsafe extern "unadjusted" {
57240        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i64")]
57241        #[cfg_attr(
57242            any(target_arch = "aarch64", target_arch = "arm64ec"),
57243            link_name = "llvm.aarch64.neon.srshl.v2i64"
57244        )]
57245        fn _vrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
57246    }
57247    unsafe { _vrshlq_s64(a, b) }
57248}
57249#[doc = "Unsigned rounding shift left"]
57250#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u8)"]
57251#[inline(always)]
57252#[target_feature(enable = "neon")]
57253#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57254#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57255#[cfg_attr(
57256    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57257    assert_instr(urshl)
57258)]
57259#[cfg_attr(
57260    not(target_arch = "arm"),
57261    stable(feature = "neon_intrinsics", since = "1.59.0")
57262)]
57263#[cfg_attr(
57264    target_arch = "arm",
57265    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57266)]
57267pub fn vrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
57268    unsafe extern "unadjusted" {
57269        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i8")]
57270        #[cfg_attr(
57271            any(target_arch = "aarch64", target_arch = "arm64ec"),
57272            link_name = "llvm.aarch64.neon.urshl.v8i8"
57273        )]
57274        fn _vrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
57275    }
57276    unsafe { _vrshl_u8(a, b) }
57277}
57278#[doc = "Unsigned rounding shift left"]
57279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u8)"]
57280#[inline(always)]
57281#[target_feature(enable = "neon")]
57282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57284#[cfg_attr(
57285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57286    assert_instr(urshl)
57287)]
57288#[cfg_attr(
57289    not(target_arch = "arm"),
57290    stable(feature = "neon_intrinsics", since = "1.59.0")
57291)]
57292#[cfg_attr(
57293    target_arch = "arm",
57294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57295)]
57296pub fn vrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
57297    unsafe extern "unadjusted" {
57298        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v16i8")]
57299        #[cfg_attr(
57300            any(target_arch = "aarch64", target_arch = "arm64ec"),
57301            link_name = "llvm.aarch64.neon.urshl.v16i8"
57302        )]
57303        fn _vrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
57304    }
57305    unsafe { _vrshlq_u8(a, b) }
57306}
57307#[doc = "Unsigned rounding shift left"]
57308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u16)"]
57309#[inline(always)]
57310#[target_feature(enable = "neon")]
57311#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57312#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57313#[cfg_attr(
57314    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57315    assert_instr(urshl)
57316)]
57317#[cfg_attr(
57318    not(target_arch = "arm"),
57319    stable(feature = "neon_intrinsics", since = "1.59.0")
57320)]
57321#[cfg_attr(
57322    target_arch = "arm",
57323    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57324)]
57325pub fn vrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
57326    unsafe extern "unadjusted" {
57327        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i16")]
57328        #[cfg_attr(
57329            any(target_arch = "aarch64", target_arch = "arm64ec"),
57330            link_name = "llvm.aarch64.neon.urshl.v4i16"
57331        )]
57332        fn _vrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
57333    }
57334    unsafe { _vrshl_u16(a, b) }
57335}
57336#[doc = "Unsigned rounding shift left"]
57337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u16)"]
57338#[inline(always)]
57339#[target_feature(enable = "neon")]
57340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57342#[cfg_attr(
57343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57344    assert_instr(urshl)
57345)]
57346#[cfg_attr(
57347    not(target_arch = "arm"),
57348    stable(feature = "neon_intrinsics", since = "1.59.0")
57349)]
57350#[cfg_attr(
57351    target_arch = "arm",
57352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57353)]
57354pub fn vrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
57355    unsafe extern "unadjusted" {
57356        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i16")]
57357        #[cfg_attr(
57358            any(target_arch = "aarch64", target_arch = "arm64ec"),
57359            link_name = "llvm.aarch64.neon.urshl.v8i16"
57360        )]
57361        fn _vrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
57362    }
57363    unsafe { _vrshlq_u16(a, b) }
57364}
57365#[doc = "Unsigned rounding shift left"]
57366#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u32)"]
57367#[inline(always)]
57368#[target_feature(enable = "neon")]
57369#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57370#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57371#[cfg_attr(
57372    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57373    assert_instr(urshl)
57374)]
57375#[cfg_attr(
57376    not(target_arch = "arm"),
57377    stable(feature = "neon_intrinsics", since = "1.59.0")
57378)]
57379#[cfg_attr(
57380    target_arch = "arm",
57381    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57382)]
57383pub fn vrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
57384    unsafe extern "unadjusted" {
57385        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i32")]
57386        #[cfg_attr(
57387            any(target_arch = "aarch64", target_arch = "arm64ec"),
57388            link_name = "llvm.aarch64.neon.urshl.v2i32"
57389        )]
57390        fn _vrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
57391    }
57392    unsafe { _vrshl_u32(a, b) }
57393}
57394#[doc = "Unsigned rounding shift left"]
57395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u32)"]
57396#[inline(always)]
57397#[target_feature(enable = "neon")]
57398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57399#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57400#[cfg_attr(
57401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57402    assert_instr(urshl)
57403)]
57404#[cfg_attr(
57405    not(target_arch = "arm"),
57406    stable(feature = "neon_intrinsics", since = "1.59.0")
57407)]
57408#[cfg_attr(
57409    target_arch = "arm",
57410    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57411)]
57412pub fn vrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
57413    unsafe extern "unadjusted" {
57414        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i32")]
57415        #[cfg_attr(
57416            any(target_arch = "aarch64", target_arch = "arm64ec"),
57417            link_name = "llvm.aarch64.neon.urshl.v4i32"
57418        )]
57419        fn _vrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
57420    }
57421    unsafe { _vrshlq_u32(a, b) }
57422}
57423#[doc = "Unsigned rounding shift left"]
57424#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u64)"]
57425#[inline(always)]
57426#[target_feature(enable = "neon")]
57427#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57428#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57429#[cfg_attr(
57430    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57431    assert_instr(urshl)
57432)]
57433#[cfg_attr(
57434    not(target_arch = "arm"),
57435    stable(feature = "neon_intrinsics", since = "1.59.0")
57436)]
57437#[cfg_attr(
57438    target_arch = "arm",
57439    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57440)]
57441pub fn vrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
57442    unsafe extern "unadjusted" {
57443        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v1i64")]
57444        #[cfg_attr(
57445            any(target_arch = "aarch64", target_arch = "arm64ec"),
57446            link_name = "llvm.aarch64.neon.urshl.v1i64"
57447        )]
57448        fn _vrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
57449    }
57450    unsafe { _vrshl_u64(a, b) }
57451}
57452#[doc = "Unsigned rounding shift left"]
57453#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u64)"]
57454#[inline(always)]
57455#[target_feature(enable = "neon")]
57456#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57457#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57458#[cfg_attr(
57459    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57460    assert_instr(urshl)
57461)]
57462#[cfg_attr(
57463    not(target_arch = "arm"),
57464    stable(feature = "neon_intrinsics", since = "1.59.0")
57465)]
57466#[cfg_attr(
57467    target_arch = "arm",
57468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57469)]
57470pub fn vrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
57471    unsafe extern "unadjusted" {
57472        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i64")]
57473        #[cfg_attr(
57474            any(target_arch = "aarch64", target_arch = "arm64ec"),
57475            link_name = "llvm.aarch64.neon.urshl.v2i64"
57476        )]
57477        fn _vrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
57478    }
57479    unsafe { _vrshlq_u64(a, b) }
57480}
57481#[doc = "Signed rounding shift right"]
57482#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s8)"]
57483#[inline(always)]
57484#[target_feature(enable = "neon")]
57485#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57486#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57487#[cfg_attr(
57488    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57489    assert_instr(srshr, N = 2)
57490)]
57491#[rustc_legacy_const_generics(1)]
57492#[cfg_attr(
57493    not(target_arch = "arm"),
57494    stable(feature = "neon_intrinsics", since = "1.59.0")
57495)]
57496#[cfg_attr(
57497    target_arch = "arm",
57498    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57499)]
57500pub fn vrshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
57501    static_assert!(N >= 1 && N <= 8);
57502    vrshl_s8(a, vdup_n_s8(-N as _))
57503}
57504#[doc = "Signed rounding shift right"]
57505#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s8)"]
57506#[inline(always)]
57507#[target_feature(enable = "neon")]
57508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57509#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57510#[cfg_attr(
57511    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57512    assert_instr(srshr, N = 2)
57513)]
57514#[rustc_legacy_const_generics(1)]
57515#[cfg_attr(
57516    not(target_arch = "arm"),
57517    stable(feature = "neon_intrinsics", since = "1.59.0")
57518)]
57519#[cfg_attr(
57520    target_arch = "arm",
57521    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57522)]
57523pub fn vrshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
57524    static_assert!(N >= 1 && N <= 8);
57525    vrshlq_s8(a, vdupq_n_s8(-N as _))
57526}
57527#[doc = "Signed rounding shift right"]
57528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s16)"]
57529#[inline(always)]
57530#[target_feature(enable = "neon")]
57531#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57532#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57533#[cfg_attr(
57534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57535    assert_instr(srshr, N = 2)
57536)]
57537#[rustc_legacy_const_generics(1)]
57538#[cfg_attr(
57539    not(target_arch = "arm"),
57540    stable(feature = "neon_intrinsics", since = "1.59.0")
57541)]
57542#[cfg_attr(
57543    target_arch = "arm",
57544    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57545)]
57546pub fn vrshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
57547    static_assert!(N >= 1 && N <= 16);
57548    vrshl_s16(a, vdup_n_s16(-N as _))
57549}
57550#[doc = "Signed rounding shift right"]
57551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s16)"]
57552#[inline(always)]
57553#[target_feature(enable = "neon")]
57554#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57555#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57556#[cfg_attr(
57557    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57558    assert_instr(srshr, N = 2)
57559)]
57560#[rustc_legacy_const_generics(1)]
57561#[cfg_attr(
57562    not(target_arch = "arm"),
57563    stable(feature = "neon_intrinsics", since = "1.59.0")
57564)]
57565#[cfg_attr(
57566    target_arch = "arm",
57567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57568)]
57569pub fn vrshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
57570    static_assert!(N >= 1 && N <= 16);
57571    vrshlq_s16(a, vdupq_n_s16(-N as _))
57572}
57573#[doc = "Signed rounding shift right"]
57574#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s32)"]
57575#[inline(always)]
57576#[target_feature(enable = "neon")]
57577#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57578#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57579#[cfg_attr(
57580    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57581    assert_instr(srshr, N = 2)
57582)]
57583#[rustc_legacy_const_generics(1)]
57584#[cfg_attr(
57585    not(target_arch = "arm"),
57586    stable(feature = "neon_intrinsics", since = "1.59.0")
57587)]
57588#[cfg_attr(
57589    target_arch = "arm",
57590    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57591)]
57592pub fn vrshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
57593    static_assert!(N >= 1 && N <= 32);
57594    vrshl_s32(a, vdup_n_s32(-N as _))
57595}
57596#[doc = "Signed rounding shift right"]
57597#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s32)"]
57598#[inline(always)]
57599#[target_feature(enable = "neon")]
57600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57601#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57602#[cfg_attr(
57603    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57604    assert_instr(srshr, N = 2)
57605)]
57606#[rustc_legacy_const_generics(1)]
57607#[cfg_attr(
57608    not(target_arch = "arm"),
57609    stable(feature = "neon_intrinsics", since = "1.59.0")
57610)]
57611#[cfg_attr(
57612    target_arch = "arm",
57613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57614)]
57615pub fn vrshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
57616    static_assert!(N >= 1 && N <= 32);
57617    vrshlq_s32(a, vdupq_n_s32(-N as _))
57618}
57619#[doc = "Signed rounding shift right"]
57620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s64)"]
57621#[inline(always)]
57622#[target_feature(enable = "neon")]
57623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57625#[cfg_attr(
57626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57627    assert_instr(srshr, N = 2)
57628)]
57629#[rustc_legacy_const_generics(1)]
57630#[cfg_attr(
57631    not(target_arch = "arm"),
57632    stable(feature = "neon_intrinsics", since = "1.59.0")
57633)]
57634#[cfg_attr(
57635    target_arch = "arm",
57636    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57637)]
57638pub fn vrshr_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
57639    static_assert!(N >= 1 && N <= 64);
57640    vrshl_s64(a, vdup_n_s64(-N as _))
57641}
57642#[doc = "Signed rounding shift right"]
57643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s64)"]
57644#[inline(always)]
57645#[target_feature(enable = "neon")]
57646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57647#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57648#[cfg_attr(
57649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57650    assert_instr(srshr, N = 2)
57651)]
57652#[rustc_legacy_const_generics(1)]
57653#[cfg_attr(
57654    not(target_arch = "arm"),
57655    stable(feature = "neon_intrinsics", since = "1.59.0")
57656)]
57657#[cfg_attr(
57658    target_arch = "arm",
57659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57660)]
57661pub fn vrshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
57662    static_assert!(N >= 1 && N <= 64);
57663    vrshlq_s64(a, vdupq_n_s64(-N as _))
57664}
57665#[doc = "Unsigned rounding shift right"]
57666#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u8)"]
57667#[inline(always)]
57668#[target_feature(enable = "neon")]
57669#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57670#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57671#[cfg_attr(
57672    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57673    assert_instr(urshr, N = 2)
57674)]
57675#[rustc_legacy_const_generics(1)]
57676#[cfg_attr(
57677    not(target_arch = "arm"),
57678    stable(feature = "neon_intrinsics", since = "1.59.0")
57679)]
57680#[cfg_attr(
57681    target_arch = "arm",
57682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57683)]
57684pub fn vrshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
57685    static_assert!(N >= 1 && N <= 8);
57686    vrshl_u8(a, vdup_n_s8(-N as _))
57687}
57688#[doc = "Unsigned rounding shift right"]
57689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u8)"]
57690#[inline(always)]
57691#[target_feature(enable = "neon")]
57692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57693#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57694#[cfg_attr(
57695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57696    assert_instr(urshr, N = 2)
57697)]
57698#[rustc_legacy_const_generics(1)]
57699#[cfg_attr(
57700    not(target_arch = "arm"),
57701    stable(feature = "neon_intrinsics", since = "1.59.0")
57702)]
57703#[cfg_attr(
57704    target_arch = "arm",
57705    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57706)]
57707pub fn vrshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
57708    static_assert!(N >= 1 && N <= 8);
57709    vrshlq_u8(a, vdupq_n_s8(-N as _))
57710}
57711#[doc = "Unsigned rounding shift right"]
57712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u16)"]
57713#[inline(always)]
57714#[target_feature(enable = "neon")]
57715#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57716#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57717#[cfg_attr(
57718    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57719    assert_instr(urshr, N = 2)
57720)]
57721#[rustc_legacy_const_generics(1)]
57722#[cfg_attr(
57723    not(target_arch = "arm"),
57724    stable(feature = "neon_intrinsics", since = "1.59.0")
57725)]
57726#[cfg_attr(
57727    target_arch = "arm",
57728    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57729)]
57730pub fn vrshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
57731    static_assert!(N >= 1 && N <= 16);
57732    vrshl_u16(a, vdup_n_s16(-N as _))
57733}
57734#[doc = "Unsigned rounding shift right"]
57735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u16)"]
57736#[inline(always)]
57737#[target_feature(enable = "neon")]
57738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57739#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57740#[cfg_attr(
57741    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57742    assert_instr(urshr, N = 2)
57743)]
57744#[rustc_legacy_const_generics(1)]
57745#[cfg_attr(
57746    not(target_arch = "arm"),
57747    stable(feature = "neon_intrinsics", since = "1.59.0")
57748)]
57749#[cfg_attr(
57750    target_arch = "arm",
57751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57752)]
57753pub fn vrshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
57754    static_assert!(N >= 1 && N <= 16);
57755    vrshlq_u16(a, vdupq_n_s16(-N as _))
57756}
57757#[doc = "Unsigned rounding shift right"]
57758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u32)"]
57759#[inline(always)]
57760#[target_feature(enable = "neon")]
57761#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57762#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57763#[cfg_attr(
57764    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57765    assert_instr(urshr, N = 2)
57766)]
57767#[rustc_legacy_const_generics(1)]
57768#[cfg_attr(
57769    not(target_arch = "arm"),
57770    stable(feature = "neon_intrinsics", since = "1.59.0")
57771)]
57772#[cfg_attr(
57773    target_arch = "arm",
57774    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57775)]
57776pub fn vrshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
57777    static_assert!(N >= 1 && N <= 32);
57778    vrshl_u32(a, vdup_n_s32(-N as _))
57779}
57780#[doc = "Unsigned rounding shift right"]
57781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u32)"]
57782#[inline(always)]
57783#[target_feature(enable = "neon")]
57784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57785#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57786#[cfg_attr(
57787    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57788    assert_instr(urshr, N = 2)
57789)]
57790#[rustc_legacy_const_generics(1)]
57791#[cfg_attr(
57792    not(target_arch = "arm"),
57793    stable(feature = "neon_intrinsics", since = "1.59.0")
57794)]
57795#[cfg_attr(
57796    target_arch = "arm",
57797    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57798)]
57799pub fn vrshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
57800    static_assert!(N >= 1 && N <= 32);
57801    vrshlq_u32(a, vdupq_n_s32(-N as _))
57802}
57803#[doc = "Unsigned rounding shift right"]
57804#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u64)"]
57805#[inline(always)]
57806#[target_feature(enable = "neon")]
57807#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57808#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57809#[cfg_attr(
57810    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57811    assert_instr(urshr, N = 2)
57812)]
57813#[rustc_legacy_const_generics(1)]
57814#[cfg_attr(
57815    not(target_arch = "arm"),
57816    stable(feature = "neon_intrinsics", since = "1.59.0")
57817)]
57818#[cfg_attr(
57819    target_arch = "arm",
57820    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57821)]
57822pub fn vrshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
57823    static_assert!(N >= 1 && N <= 64);
57824    vrshl_u64(a, vdup_n_s64(-N as _))
57825}
57826#[doc = "Unsigned rounding shift right"]
57827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u64)"]
57828#[inline(always)]
57829#[target_feature(enable = "neon")]
57830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57832#[cfg_attr(
57833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57834    assert_instr(urshr, N = 2)
57835)]
57836#[rustc_legacy_const_generics(1)]
57837#[cfg_attr(
57838    not(target_arch = "arm"),
57839    stable(feature = "neon_intrinsics", since = "1.59.0")
57840)]
57841#[cfg_attr(
57842    target_arch = "arm",
57843    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57844)]
57845pub fn vrshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
57846    static_assert!(N >= 1 && N <= 64);
57847    vrshlq_u64(a, vdupq_n_s64(-N as _))
57848}
57849#[doc = "Rounding shift right narrow"]
57850#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"]
57851#[inline(always)]
57852#[cfg(target_arch = "arm")]
57853#[target_feature(enable = "neon,v7")]
57854#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
57855#[rustc_legacy_const_generics(1)]
57856#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57857pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
57858    static_assert!(N >= 1 && N <= 8);
57859    unsafe extern "unadjusted" {
57860        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v8i8")]
57861        fn _vrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
57862    }
57863    unsafe { _vrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
57864}
57865#[doc = "Rounding shift right narrow"]
57866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"]
57867#[inline(always)]
57868#[cfg(target_arch = "arm")]
57869#[target_feature(enable = "neon,v7")]
57870#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
57871#[rustc_legacy_const_generics(1)]
57872#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57873pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
57874    static_assert!(N >= 1 && N <= 16);
57875    unsafe extern "unadjusted" {
57876        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v4i16")]
57877        fn _vrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
57878    }
57879    unsafe { _vrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
57880}
57881#[doc = "Rounding shift right narrow"]
57882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"]
57883#[inline(always)]
57884#[cfg(target_arch = "arm")]
57885#[target_feature(enable = "neon,v7")]
57886#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
57887#[rustc_legacy_const_generics(1)]
57888#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57889pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
57890    static_assert!(N >= 1 && N <= 32);
57891    unsafe extern "unadjusted" {
57892        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v2i32")]
57893        fn _vrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
57894    }
57895    unsafe { _vrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
57896}
57897#[doc = "Rounding shift right narrow"]
57898#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"]
57899#[inline(always)]
57900#[target_feature(enable = "neon")]
57901#[cfg(not(target_arch = "arm"))]
57902#[cfg_attr(test, assert_instr(rshrn, N = 2))]
57903#[rustc_legacy_const_generics(1)]
57904#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57905pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
57906    static_assert!(N >= 1 && N <= 8);
57907    unsafe extern "unadjusted" {
57908        #[cfg_attr(
57909            any(target_arch = "aarch64", target_arch = "arm64ec"),
57910            link_name = "llvm.aarch64.neon.rshrn.v8i8"
57911        )]
57912        fn _vrshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
57913    }
57914    unsafe { _vrshrn_n_s16(a, N) }
57915}
57916#[doc = "Rounding shift right narrow"]
57917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"]
57918#[inline(always)]
57919#[target_feature(enable = "neon")]
57920#[cfg(not(target_arch = "arm"))]
57921#[cfg_attr(test, assert_instr(rshrn, N = 2))]
57922#[rustc_legacy_const_generics(1)]
57923#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57924pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
57925    static_assert!(N >= 1 && N <= 16);
57926    unsafe extern "unadjusted" {
57927        #[cfg_attr(
57928            any(target_arch = "aarch64", target_arch = "arm64ec"),
57929            link_name = "llvm.aarch64.neon.rshrn.v4i16"
57930        )]
57931        fn _vrshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
57932    }
57933    unsafe { _vrshrn_n_s32(a, N) }
57934}
57935#[doc = "Rounding shift right narrow"]
57936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"]
57937#[inline(always)]
57938#[target_feature(enable = "neon")]
57939#[cfg(not(target_arch = "arm"))]
57940#[cfg_attr(test, assert_instr(rshrn, N = 2))]
57941#[rustc_legacy_const_generics(1)]
57942#[stable(feature = "neon_intrinsics", since = "1.59.0")]
57943pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
57944    static_assert!(N >= 1 && N <= 32);
57945    unsafe extern "unadjusted" {
57946        #[cfg_attr(
57947            any(target_arch = "aarch64", target_arch = "arm64ec"),
57948            link_name = "llvm.aarch64.neon.rshrn.v2i32"
57949        )]
57950        fn _vrshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
57951    }
57952    unsafe { _vrshrn_n_s64(a, N) }
57953}
57954#[doc = "Rounding shift right narrow"]
57955#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u16)"]
57956#[inline(always)]
57957#[target_feature(enable = "neon")]
57958#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57959#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
57960#[cfg_attr(
57961    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57962    assert_instr(rshrn, N = 2)
57963)]
57964#[rustc_legacy_const_generics(1)]
57965#[cfg_attr(
57966    not(target_arch = "arm"),
57967    stable(feature = "neon_intrinsics", since = "1.59.0")
57968)]
57969#[cfg_attr(
57970    target_arch = "arm",
57971    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57972)]
57973pub fn vrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
57974    static_assert!(N >= 1 && N <= 8);
57975    unsafe { transmute(vrshrn_n_s16::<N>(transmute(a))) }
57976}
57977#[doc = "Rounding shift right narrow"]
57978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u32)"]
57979#[inline(always)]
57980#[target_feature(enable = "neon")]
57981#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57982#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
57983#[cfg_attr(
57984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57985    assert_instr(rshrn, N = 2)
57986)]
57987#[rustc_legacy_const_generics(1)]
57988#[cfg_attr(
57989    not(target_arch = "arm"),
57990    stable(feature = "neon_intrinsics", since = "1.59.0")
57991)]
57992#[cfg_attr(
57993    target_arch = "arm",
57994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57995)]
57996pub fn vrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
57997    static_assert!(N >= 1 && N <= 16);
57998    unsafe { transmute(vrshrn_n_s32::<N>(transmute(a))) }
57999}
58000#[doc = "Rounding shift right narrow"]
58001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u64)"]
58002#[inline(always)]
58003#[target_feature(enable = "neon")]
58004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58005#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
58006#[cfg_attr(
58007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58008    assert_instr(rshrn, N = 2)
58009)]
58010#[rustc_legacy_const_generics(1)]
58011#[cfg_attr(
58012    not(target_arch = "arm"),
58013    stable(feature = "neon_intrinsics", since = "1.59.0")
58014)]
58015#[cfg_attr(
58016    target_arch = "arm",
58017    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58018)]
58019pub fn vrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
58020    static_assert!(N >= 1 && N <= 32);
58021    unsafe { transmute(vrshrn_n_s64::<N>(transmute(a))) }
58022}
58023#[doc = "Reciprocal square-root estimate."]
58024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_f16)"]
58025#[inline(always)]
58026#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58027#[target_feature(enable = "neon,fp16")]
58028#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58029#[cfg_attr(
58030    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58031    assert_instr(frsqrte)
58032)]
58033#[cfg_attr(
58034    not(target_arch = "arm"),
58035    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
58036)]
58037#[cfg_attr(
58038    target_arch = "arm",
58039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58040)]
58041#[cfg(not(target_arch = "arm64ec"))]
58042pub fn vrsqrte_f16(a: float16x4_t) -> float16x4_t {
58043    unsafe extern "unadjusted" {
58044        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4f16")]
58045        #[cfg_attr(
58046            any(target_arch = "aarch64", target_arch = "arm64ec"),
58047            link_name = "llvm.aarch64.neon.frsqrte.v4f16"
58048        )]
58049        fn _vrsqrte_f16(a: float16x4_t) -> float16x4_t;
58050    }
58051    unsafe { _vrsqrte_f16(a) }
58052}
58053#[doc = "Reciprocal square-root estimate."]
58054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_f16)"]
58055#[inline(always)]
58056#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58057#[target_feature(enable = "neon,fp16")]
58058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58059#[cfg_attr(
58060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58061    assert_instr(frsqrte)
58062)]
58063#[cfg_attr(
58064    not(target_arch = "arm"),
58065    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
58066)]
58067#[cfg_attr(
58068    target_arch = "arm",
58069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58070)]
58071#[cfg(not(target_arch = "arm64ec"))]
58072pub fn vrsqrteq_f16(a: float16x8_t) -> float16x8_t {
58073    unsafe extern "unadjusted" {
58074        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v8f16")]
58075        #[cfg_attr(
58076            any(target_arch = "aarch64", target_arch = "arm64ec"),
58077            link_name = "llvm.aarch64.neon.frsqrte.v8f16"
58078        )]
58079        fn _vrsqrteq_f16(a: float16x8_t) -> float16x8_t;
58080    }
58081    unsafe { _vrsqrteq_f16(a) }
58082}
58083#[doc = "Reciprocal square-root estimate."]
58084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_f32)"]
58085#[inline(always)]
58086#[target_feature(enable = "neon")]
58087#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58088#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58089#[cfg_attr(
58090    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58091    assert_instr(frsqrte)
58092)]
58093#[cfg_attr(
58094    not(target_arch = "arm"),
58095    stable(feature = "neon_intrinsics", since = "1.59.0")
58096)]
58097#[cfg_attr(
58098    target_arch = "arm",
58099    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58100)]
58101pub fn vrsqrte_f32(a: float32x2_t) -> float32x2_t {
58102    unsafe extern "unadjusted" {
58103        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2f32")]
58104        #[cfg_attr(
58105            any(target_arch = "aarch64", target_arch = "arm64ec"),
58106            link_name = "llvm.aarch64.neon.frsqrte.v2f32"
58107        )]
58108        fn _vrsqrte_f32(a: float32x2_t) -> float32x2_t;
58109    }
58110    unsafe { _vrsqrte_f32(a) }
58111}
58112#[doc = "Reciprocal square-root estimate."]
58113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_f32)"]
58114#[inline(always)]
58115#[target_feature(enable = "neon")]
58116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58118#[cfg_attr(
58119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58120    assert_instr(frsqrte)
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 vrsqrteq_f32(a: float32x4_t) -> float32x4_t {
58131    unsafe extern "unadjusted" {
58132        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4f32")]
58133        #[cfg_attr(
58134            any(target_arch = "aarch64", target_arch = "arm64ec"),
58135            link_name = "llvm.aarch64.neon.frsqrte.v4f32"
58136        )]
58137        fn _vrsqrteq_f32(a: float32x4_t) -> float32x4_t;
58138    }
58139    unsafe { _vrsqrteq_f32(a) }
58140}
58141#[doc = "Unsigned reciprocal square root estimate"]
58142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_u32)"]
58143#[inline(always)]
58144#[target_feature(enable = "neon")]
58145#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58146#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58147#[cfg_attr(
58148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58149    assert_instr(ursqrte)
58150)]
58151#[cfg_attr(
58152    not(target_arch = "arm"),
58153    stable(feature = "neon_intrinsics", since = "1.59.0")
58154)]
58155#[cfg_attr(
58156    target_arch = "arm",
58157    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58158)]
58159pub fn vrsqrte_u32(a: uint32x2_t) -> uint32x2_t {
58160    unsafe extern "unadjusted" {
58161        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2i32")]
58162        #[cfg_attr(
58163            any(target_arch = "aarch64", target_arch = "arm64ec"),
58164            link_name = "llvm.aarch64.neon.ursqrte.v2i32"
58165        )]
58166        fn _vrsqrte_u32(a: uint32x2_t) -> uint32x2_t;
58167    }
58168    unsafe { _vrsqrte_u32(a) }
58169}
58170#[doc = "Unsigned reciprocal square root estimate"]
58171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_u32)"]
58172#[inline(always)]
58173#[target_feature(enable = "neon")]
58174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58175#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58176#[cfg_attr(
58177    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58178    assert_instr(ursqrte)
58179)]
58180#[cfg_attr(
58181    not(target_arch = "arm"),
58182    stable(feature = "neon_intrinsics", since = "1.59.0")
58183)]
58184#[cfg_attr(
58185    target_arch = "arm",
58186    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58187)]
58188pub fn vrsqrteq_u32(a: uint32x4_t) -> uint32x4_t {
58189    unsafe extern "unadjusted" {
58190        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4i32")]
58191        #[cfg_attr(
58192            any(target_arch = "aarch64", target_arch = "arm64ec"),
58193            link_name = "llvm.aarch64.neon.ursqrte.v4i32"
58194        )]
58195        fn _vrsqrteq_u32(a: uint32x4_t) -> uint32x4_t;
58196    }
58197    unsafe { _vrsqrteq_u32(a) }
58198}
58199#[doc = "Floating-point reciprocal square root step"]
58200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrts_f16)"]
58201#[inline(always)]
58202#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58203#[target_feature(enable = "neon,fp16")]
58204#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
58205#[cfg_attr(
58206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58207    assert_instr(frsqrts)
58208)]
58209#[cfg_attr(
58210    not(target_arch = "arm"),
58211    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
58212)]
58213#[cfg_attr(
58214    target_arch = "arm",
58215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58216)]
58217#[cfg(not(target_arch = "arm64ec"))]
58218pub fn vrsqrts_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
58219    unsafe extern "unadjusted" {
58220        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v4f16")]
58221        #[cfg_attr(
58222            any(target_arch = "aarch64", target_arch = "arm64ec"),
58223            link_name = "llvm.aarch64.neon.frsqrts.v4f16"
58224        )]
58225        fn _vrsqrts_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
58226    }
58227    unsafe { _vrsqrts_f16(a, b) }
58228}
58229#[doc = "Floating-point reciprocal square root step"]
58230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrtsq_f16)"]
58231#[inline(always)]
58232#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58233#[target_feature(enable = "neon,fp16")]
58234#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
58235#[cfg_attr(
58236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58237    assert_instr(frsqrts)
58238)]
58239#[cfg_attr(
58240    not(target_arch = "arm"),
58241    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
58242)]
58243#[cfg_attr(
58244    target_arch = "arm",
58245    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58246)]
58247#[cfg(not(target_arch = "arm64ec"))]
58248pub fn vrsqrtsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
58249    unsafe extern "unadjusted" {
58250        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v8f16")]
58251        #[cfg_attr(
58252            any(target_arch = "aarch64", target_arch = "arm64ec"),
58253            link_name = "llvm.aarch64.neon.frsqrts.v8f16"
58254        )]
58255        fn _vrsqrtsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
58256    }
58257    unsafe { _vrsqrtsq_f16(a, b) }
58258}
58259#[doc = "Floating-point reciprocal square root step"]
58260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrts_f32)"]
58261#[inline(always)]
58262#[target_feature(enable = "neon")]
58263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
58265#[cfg_attr(
58266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58267    assert_instr(frsqrts)
58268)]
58269#[cfg_attr(
58270    not(target_arch = "arm"),
58271    stable(feature = "neon_intrinsics", since = "1.59.0")
58272)]
58273#[cfg_attr(
58274    target_arch = "arm",
58275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58276)]
58277pub fn vrsqrts_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
58278    unsafe extern "unadjusted" {
58279        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v2f32")]
58280        #[cfg_attr(
58281            any(target_arch = "aarch64", target_arch = "arm64ec"),
58282            link_name = "llvm.aarch64.neon.frsqrts.v2f32"
58283        )]
58284        fn _vrsqrts_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
58285    }
58286    unsafe { _vrsqrts_f32(a, b) }
58287}
58288#[doc = "Floating-point reciprocal square root step"]
58289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrtsq_f32)"]
58290#[inline(always)]
58291#[target_feature(enable = "neon")]
58292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
58294#[cfg_attr(
58295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58296    assert_instr(frsqrts)
58297)]
58298#[cfg_attr(
58299    not(target_arch = "arm"),
58300    stable(feature = "neon_intrinsics", since = "1.59.0")
58301)]
58302#[cfg_attr(
58303    target_arch = "arm",
58304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58305)]
58306pub fn vrsqrtsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
58307    unsafe extern "unadjusted" {
58308        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v4f32")]
58309        #[cfg_attr(
58310            any(target_arch = "aarch64", target_arch = "arm64ec"),
58311            link_name = "llvm.aarch64.neon.frsqrts.v4f32"
58312        )]
58313        fn _vrsqrtsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
58314    }
58315    unsafe { _vrsqrtsq_f32(a, b) }
58316}
58317#[doc = "Signed rounding shift right and accumulate"]
58318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s8)"]
58319#[inline(always)]
58320#[target_feature(enable = "neon")]
58321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58322#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58323#[cfg_attr(
58324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58325    assert_instr(srsra, N = 2)
58326)]
58327#[rustc_legacy_const_generics(2)]
58328#[cfg_attr(
58329    not(target_arch = "arm"),
58330    stable(feature = "neon_intrinsics", since = "1.59.0")
58331)]
58332#[cfg_attr(
58333    target_arch = "arm",
58334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58335)]
58336pub fn vrsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
58337    static_assert!(N >= 1 && N <= 8);
58338    unsafe { simd_add(a, vrshr_n_s8::<N>(b)) }
58339}
58340#[doc = "Signed rounding shift right and accumulate"]
58341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s8)"]
58342#[inline(always)]
58343#[target_feature(enable = "neon")]
58344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58346#[cfg_attr(
58347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58348    assert_instr(srsra, N = 2)
58349)]
58350#[rustc_legacy_const_generics(2)]
58351#[cfg_attr(
58352    not(target_arch = "arm"),
58353    stable(feature = "neon_intrinsics", since = "1.59.0")
58354)]
58355#[cfg_attr(
58356    target_arch = "arm",
58357    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58358)]
58359pub fn vrsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
58360    static_assert!(N >= 1 && N <= 8);
58361    unsafe { simd_add(a, vrshrq_n_s8::<N>(b)) }
58362}
58363#[doc = "Signed rounding shift right and accumulate"]
58364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s16)"]
58365#[inline(always)]
58366#[target_feature(enable = "neon")]
58367#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58368#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58369#[cfg_attr(
58370    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58371    assert_instr(srsra, N = 2)
58372)]
58373#[rustc_legacy_const_generics(2)]
58374#[cfg_attr(
58375    not(target_arch = "arm"),
58376    stable(feature = "neon_intrinsics", since = "1.59.0")
58377)]
58378#[cfg_attr(
58379    target_arch = "arm",
58380    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58381)]
58382pub fn vrsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
58383    static_assert!(N >= 1 && N <= 16);
58384    unsafe { simd_add(a, vrshr_n_s16::<N>(b)) }
58385}
58386#[doc = "Signed rounding shift right and accumulate"]
58387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s16)"]
58388#[inline(always)]
58389#[target_feature(enable = "neon")]
58390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58392#[cfg_attr(
58393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58394    assert_instr(srsra, N = 2)
58395)]
58396#[rustc_legacy_const_generics(2)]
58397#[cfg_attr(
58398    not(target_arch = "arm"),
58399    stable(feature = "neon_intrinsics", since = "1.59.0")
58400)]
58401#[cfg_attr(
58402    target_arch = "arm",
58403    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58404)]
58405pub fn vrsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
58406    static_assert!(N >= 1 && N <= 16);
58407    unsafe { simd_add(a, vrshrq_n_s16::<N>(b)) }
58408}
58409#[doc = "Signed rounding shift right and accumulate"]
58410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s32)"]
58411#[inline(always)]
58412#[target_feature(enable = "neon")]
58413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58414#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58415#[cfg_attr(
58416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58417    assert_instr(srsra, N = 2)
58418)]
58419#[rustc_legacy_const_generics(2)]
58420#[cfg_attr(
58421    not(target_arch = "arm"),
58422    stable(feature = "neon_intrinsics", since = "1.59.0")
58423)]
58424#[cfg_attr(
58425    target_arch = "arm",
58426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58427)]
58428pub fn vrsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
58429    static_assert!(N >= 1 && N <= 32);
58430    unsafe { simd_add(a, vrshr_n_s32::<N>(b)) }
58431}
58432#[doc = "Signed rounding shift right and accumulate"]
58433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s32)"]
58434#[inline(always)]
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(vrsra, N = 2))]
58438#[cfg_attr(
58439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58440    assert_instr(srsra, N = 2)
58441)]
58442#[rustc_legacy_const_generics(2)]
58443#[cfg_attr(
58444    not(target_arch = "arm"),
58445    stable(feature = "neon_intrinsics", since = "1.59.0")
58446)]
58447#[cfg_attr(
58448    target_arch = "arm",
58449    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58450)]
58451pub fn vrsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
58452    static_assert!(N >= 1 && N <= 32);
58453    unsafe { simd_add(a, vrshrq_n_s32::<N>(b)) }
58454}
58455#[doc = "Signed rounding shift right and accumulate"]
58456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s64)"]
58457#[inline(always)]
58458#[target_feature(enable = "neon")]
58459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58461#[cfg_attr(
58462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58463    assert_instr(srsra, N = 2)
58464)]
58465#[rustc_legacy_const_generics(2)]
58466#[cfg_attr(
58467    not(target_arch = "arm"),
58468    stable(feature = "neon_intrinsics", since = "1.59.0")
58469)]
58470#[cfg_attr(
58471    target_arch = "arm",
58472    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58473)]
58474pub fn vrsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
58475    static_assert!(N >= 1 && N <= 64);
58476    unsafe { simd_add(a, vrshr_n_s64::<N>(b)) }
58477}
58478#[doc = "Signed rounding shift right and accumulate"]
58479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s64)"]
58480#[inline(always)]
58481#[target_feature(enable = "neon")]
58482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58484#[cfg_attr(
58485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58486    assert_instr(srsra, N = 2)
58487)]
58488#[rustc_legacy_const_generics(2)]
58489#[cfg_attr(
58490    not(target_arch = "arm"),
58491    stable(feature = "neon_intrinsics", since = "1.59.0")
58492)]
58493#[cfg_attr(
58494    target_arch = "arm",
58495    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58496)]
58497pub fn vrsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
58498    static_assert!(N >= 1 && N <= 64);
58499    unsafe { simd_add(a, vrshrq_n_s64::<N>(b)) }
58500}
58501#[doc = "Unsigned rounding shift right and accumulate"]
58502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u8)"]
58503#[inline(always)]
58504#[target_feature(enable = "neon")]
58505#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58506#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58507#[cfg_attr(
58508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58509    assert_instr(ursra, N = 2)
58510)]
58511#[rustc_legacy_const_generics(2)]
58512#[cfg_attr(
58513    not(target_arch = "arm"),
58514    stable(feature = "neon_intrinsics", since = "1.59.0")
58515)]
58516#[cfg_attr(
58517    target_arch = "arm",
58518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58519)]
58520pub fn vrsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
58521    static_assert!(N >= 1 && N <= 8);
58522    unsafe { simd_add(a, vrshr_n_u8::<N>(b)) }
58523}
58524#[doc = "Unsigned rounding shift right and accumulate"]
58525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u8)"]
58526#[inline(always)]
58527#[target_feature(enable = "neon")]
58528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58529#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58530#[cfg_attr(
58531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58532    assert_instr(ursra, N = 2)
58533)]
58534#[rustc_legacy_const_generics(2)]
58535#[cfg_attr(
58536    not(target_arch = "arm"),
58537    stable(feature = "neon_intrinsics", since = "1.59.0")
58538)]
58539#[cfg_attr(
58540    target_arch = "arm",
58541    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58542)]
58543pub fn vrsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
58544    static_assert!(N >= 1 && N <= 8);
58545    unsafe { simd_add(a, vrshrq_n_u8::<N>(b)) }
58546}
58547#[doc = "Unsigned rounding shift right and accumulate"]
58548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u16)"]
58549#[inline(always)]
58550#[target_feature(enable = "neon")]
58551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58553#[cfg_attr(
58554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58555    assert_instr(ursra, N = 2)
58556)]
58557#[rustc_legacy_const_generics(2)]
58558#[cfg_attr(
58559    not(target_arch = "arm"),
58560    stable(feature = "neon_intrinsics", since = "1.59.0")
58561)]
58562#[cfg_attr(
58563    target_arch = "arm",
58564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58565)]
58566pub fn vrsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
58567    static_assert!(N >= 1 && N <= 16);
58568    unsafe { simd_add(a, vrshr_n_u16::<N>(b)) }
58569}
58570#[doc = "Unsigned rounding shift right and accumulate"]
58571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u16)"]
58572#[inline(always)]
58573#[target_feature(enable = "neon")]
58574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58576#[cfg_attr(
58577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58578    assert_instr(ursra, N = 2)
58579)]
58580#[rustc_legacy_const_generics(2)]
58581#[cfg_attr(
58582    not(target_arch = "arm"),
58583    stable(feature = "neon_intrinsics", since = "1.59.0")
58584)]
58585#[cfg_attr(
58586    target_arch = "arm",
58587    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58588)]
58589pub fn vrsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
58590    static_assert!(N >= 1 && N <= 16);
58591    unsafe { simd_add(a, vrshrq_n_u16::<N>(b)) }
58592}
58593#[doc = "Unsigned rounding shift right and accumulate"]
58594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u32)"]
58595#[inline(always)]
58596#[target_feature(enable = "neon")]
58597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58598#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58599#[cfg_attr(
58600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58601    assert_instr(ursra, N = 2)
58602)]
58603#[rustc_legacy_const_generics(2)]
58604#[cfg_attr(
58605    not(target_arch = "arm"),
58606    stable(feature = "neon_intrinsics", since = "1.59.0")
58607)]
58608#[cfg_attr(
58609    target_arch = "arm",
58610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58611)]
58612pub fn vrsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
58613    static_assert!(N >= 1 && N <= 32);
58614    unsafe { simd_add(a, vrshr_n_u32::<N>(b)) }
58615}
58616#[doc = "Unsigned rounding shift right and accumulate"]
58617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u32)"]
58618#[inline(always)]
58619#[target_feature(enable = "neon")]
58620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58622#[cfg_attr(
58623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58624    assert_instr(ursra, N = 2)
58625)]
58626#[rustc_legacy_const_generics(2)]
58627#[cfg_attr(
58628    not(target_arch = "arm"),
58629    stable(feature = "neon_intrinsics", since = "1.59.0")
58630)]
58631#[cfg_attr(
58632    target_arch = "arm",
58633    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58634)]
58635pub fn vrsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
58636    static_assert!(N >= 1 && N <= 32);
58637    unsafe { simd_add(a, vrshrq_n_u32::<N>(b)) }
58638}
58639#[doc = "Unsigned rounding shift right and accumulate"]
58640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u64)"]
58641#[inline(always)]
58642#[target_feature(enable = "neon")]
58643#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58644#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58645#[cfg_attr(
58646    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58647    assert_instr(ursra, N = 2)
58648)]
58649#[rustc_legacy_const_generics(2)]
58650#[cfg_attr(
58651    not(target_arch = "arm"),
58652    stable(feature = "neon_intrinsics", since = "1.59.0")
58653)]
58654#[cfg_attr(
58655    target_arch = "arm",
58656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58657)]
58658pub fn vrsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
58659    static_assert!(N >= 1 && N <= 64);
58660    unsafe { simd_add(a, vrshr_n_u64::<N>(b)) }
58661}
58662#[doc = "Unsigned rounding shift right and accumulate"]
58663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u64)"]
58664#[inline(always)]
58665#[target_feature(enable = "neon")]
58666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58668#[cfg_attr(
58669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58670    assert_instr(ursra, N = 2)
58671)]
58672#[rustc_legacy_const_generics(2)]
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 vrsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
58682    static_assert!(N >= 1 && N <= 64);
58683    unsafe { simd_add(a, vrshrq_n_u64::<N>(b)) }
58684}
58685#[doc = "Rounding subtract returning high narrow"]
58686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s16)"]
58687#[inline(always)]
58688#[target_feature(enable = "neon")]
58689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58691#[cfg_attr(
58692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58693    assert_instr(rsubhn)
58694)]
58695#[cfg_attr(
58696    not(target_arch = "arm"),
58697    stable(feature = "neon_intrinsics", since = "1.59.0")
58698)]
58699#[cfg_attr(
58700    target_arch = "arm",
58701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58702)]
58703pub fn vrsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
58704    unsafe extern "unadjusted" {
58705        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v8i8")]
58706        #[cfg_attr(
58707            any(target_arch = "aarch64", target_arch = "arm64ec"),
58708            link_name = "llvm.aarch64.neon.rsubhn.v8i8"
58709        )]
58710        fn _vrsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t;
58711    }
58712    unsafe { _vrsubhn_s16(a, b) }
58713}
58714#[doc = "Rounding subtract returning high narrow"]
58715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s32)"]
58716#[inline(always)]
58717#[target_feature(enable = "neon")]
58718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58720#[cfg_attr(
58721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58722    assert_instr(rsubhn)
58723)]
58724#[cfg_attr(
58725    not(target_arch = "arm"),
58726    stable(feature = "neon_intrinsics", since = "1.59.0")
58727)]
58728#[cfg_attr(
58729    target_arch = "arm",
58730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58731)]
58732pub fn vrsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
58733    unsafe extern "unadjusted" {
58734        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v4i16")]
58735        #[cfg_attr(
58736            any(target_arch = "aarch64", target_arch = "arm64ec"),
58737            link_name = "llvm.aarch64.neon.rsubhn.v4i16"
58738        )]
58739        fn _vrsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t;
58740    }
58741    unsafe { _vrsubhn_s32(a, b) }
58742}
58743#[doc = "Rounding subtract returning high narrow"]
58744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s64)"]
58745#[inline(always)]
58746#[target_feature(enable = "neon")]
58747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58749#[cfg_attr(
58750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58751    assert_instr(rsubhn)
58752)]
58753#[cfg_attr(
58754    not(target_arch = "arm"),
58755    stable(feature = "neon_intrinsics", since = "1.59.0")
58756)]
58757#[cfg_attr(
58758    target_arch = "arm",
58759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58760)]
58761pub fn vrsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
58762    unsafe extern "unadjusted" {
58763        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v2i32")]
58764        #[cfg_attr(
58765            any(target_arch = "aarch64", target_arch = "arm64ec"),
58766            link_name = "llvm.aarch64.neon.rsubhn.v2i32"
58767        )]
58768        fn _vrsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t;
58769    }
58770    unsafe { _vrsubhn_s64(a, b) }
58771}
58772#[doc = "Rounding subtract returning high narrow"]
58773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u16)"]
58774#[inline(always)]
58775#[cfg(target_endian = "little")]
58776#[target_feature(enable = "neon")]
58777#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58778#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58779#[cfg_attr(
58780    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58781    assert_instr(rsubhn)
58782)]
58783#[cfg_attr(
58784    not(target_arch = "arm"),
58785    stable(feature = "neon_intrinsics", since = "1.59.0")
58786)]
58787#[cfg_attr(
58788    target_arch = "arm",
58789    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58790)]
58791pub fn vrsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
58792    unsafe { transmute(vrsubhn_s16(transmute(a), transmute(b))) }
58793}
58794#[doc = "Rounding subtract returning high narrow"]
58795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u16)"]
58796#[inline(always)]
58797#[cfg(target_endian = "big")]
58798#[target_feature(enable = "neon")]
58799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58800#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58801#[cfg_attr(
58802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58803    assert_instr(rsubhn)
58804)]
58805#[cfg_attr(
58806    not(target_arch = "arm"),
58807    stable(feature = "neon_intrinsics", since = "1.59.0")
58808)]
58809#[cfg_attr(
58810    target_arch = "arm",
58811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58812)]
58813pub fn vrsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
58814    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
58815    let b: uint16x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
58816    unsafe {
58817        let ret_val: uint8x8_t = transmute(vrsubhn_s16(transmute(a), transmute(b)));
58818        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
58819    }
58820}
58821#[doc = "Rounding subtract returning high narrow"]
58822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u32)"]
58823#[inline(always)]
58824#[cfg(target_endian = "little")]
58825#[target_feature(enable = "neon")]
58826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58827#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58828#[cfg_attr(
58829    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58830    assert_instr(rsubhn)
58831)]
58832#[cfg_attr(
58833    not(target_arch = "arm"),
58834    stable(feature = "neon_intrinsics", since = "1.59.0")
58835)]
58836#[cfg_attr(
58837    target_arch = "arm",
58838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58839)]
58840pub fn vrsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
58841    unsafe { transmute(vrsubhn_s32(transmute(a), transmute(b))) }
58842}
58843#[doc = "Rounding subtract returning high narrow"]
58844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u32)"]
58845#[inline(always)]
58846#[cfg(target_endian = "big")]
58847#[target_feature(enable = "neon")]
58848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58850#[cfg_attr(
58851    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58852    assert_instr(rsubhn)
58853)]
58854#[cfg_attr(
58855    not(target_arch = "arm"),
58856    stable(feature = "neon_intrinsics", since = "1.59.0")
58857)]
58858#[cfg_attr(
58859    target_arch = "arm",
58860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58861)]
58862pub fn vrsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
58863    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
58864    let b: uint32x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
58865    unsafe {
58866        let ret_val: uint16x4_t = transmute(vrsubhn_s32(transmute(a), transmute(b)));
58867        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
58868    }
58869}
58870#[doc = "Rounding subtract returning high narrow"]
58871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u64)"]
58872#[inline(always)]
58873#[cfg(target_endian = "little")]
58874#[target_feature(enable = "neon")]
58875#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58876#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58877#[cfg_attr(
58878    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58879    assert_instr(rsubhn)
58880)]
58881#[cfg_attr(
58882    not(target_arch = "arm"),
58883    stable(feature = "neon_intrinsics", since = "1.59.0")
58884)]
58885#[cfg_attr(
58886    target_arch = "arm",
58887    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58888)]
58889pub fn vrsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
58890    unsafe { transmute(vrsubhn_s64(transmute(a), transmute(b))) }
58891}
58892#[doc = "Rounding subtract returning high narrow"]
58893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u64)"]
58894#[inline(always)]
58895#[cfg(target_endian = "big")]
58896#[target_feature(enable = "neon")]
58897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58898#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58899#[cfg_attr(
58900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58901    assert_instr(rsubhn)
58902)]
58903#[cfg_attr(
58904    not(target_arch = "arm"),
58905    stable(feature = "neon_intrinsics", since = "1.59.0")
58906)]
58907#[cfg_attr(
58908    target_arch = "arm",
58909    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58910)]
58911pub fn vrsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
58912    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
58913    let b: uint64x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
58914    unsafe {
58915        let ret_val: uint32x2_t = transmute(vrsubhn_s64(transmute(a), transmute(b)));
58916        simd_shuffle!(ret_val, ret_val, [1, 0])
58917    }
58918}
58919#[doc = "Insert vector element from another vector element"]
58920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_f16)"]
58921#[inline(always)]
58922#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
58924#[cfg_attr(
58925    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58926    assert_instr(nop, LANE = 0)
58927)]
58928#[rustc_legacy_const_generics(2)]
58929#[target_feature(enable = "neon,fp16")]
58930#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
58931#[cfg(not(target_arch = "arm64ec"))]
58932pub fn vset_lane_f16<const LANE: i32>(a: f16, b: float16x4_t) -> float16x4_t {
58933    static_assert_uimm_bits!(LANE, 2);
58934    unsafe { simd_insert!(b, LANE as u32, a) }
58935}
58936#[doc = "Insert vector element from another vector element"]
58937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_f16)"]
58938#[inline(always)]
58939#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58940#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
58941#[cfg_attr(
58942    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58943    assert_instr(nop, LANE = 0)
58944)]
58945#[rustc_legacy_const_generics(2)]
58946#[target_feature(enable = "neon,fp16")]
58947#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
58948#[cfg(not(target_arch = "arm64ec"))]
58949pub fn vsetq_lane_f16<const LANE: i32>(a: f16, b: float16x8_t) -> float16x8_t {
58950    static_assert_uimm_bits!(LANE, 3);
58951    unsafe { simd_insert!(b, LANE as u32, a) }
58952}
58953#[doc = "Insert vector element from another vector element"]
58954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_f32)"]
58955#[inline(always)]
58956#[target_feature(enable = "neon")]
58957#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58958#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
58959#[cfg_attr(
58960    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58961    assert_instr(nop, LANE = 0)
58962)]
58963#[rustc_legacy_const_generics(2)]
58964#[cfg_attr(
58965    not(target_arch = "arm"),
58966    stable(feature = "neon_intrinsics", since = "1.59.0")
58967)]
58968#[cfg_attr(
58969    target_arch = "arm",
58970    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58971)]
58972pub fn vset_lane_f32<const LANE: i32>(a: f32, b: float32x2_t) -> float32x2_t {
58973    static_assert_uimm_bits!(LANE, 1);
58974    unsafe { simd_insert!(b, LANE as u32, a) }
58975}
58976#[doc = "Insert vector element from another vector element"]
58977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_f32)"]
58978#[inline(always)]
58979#[target_feature(enable = "neon")]
58980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58981#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
58982#[cfg_attr(
58983    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58984    assert_instr(nop, LANE = 0)
58985)]
58986#[rustc_legacy_const_generics(2)]
58987#[cfg_attr(
58988    not(target_arch = "arm"),
58989    stable(feature = "neon_intrinsics", since = "1.59.0")
58990)]
58991#[cfg_attr(
58992    target_arch = "arm",
58993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58994)]
58995pub fn vsetq_lane_f32<const LANE: i32>(a: f32, b: float32x4_t) -> float32x4_t {
58996    static_assert_uimm_bits!(LANE, 2);
58997    unsafe { simd_insert!(b, LANE as u32, a) }
58998}
58999#[doc = "Insert vector element from another vector element"]
59000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s8)"]
59001#[inline(always)]
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(nop, LANE = 0))]
59005#[cfg_attr(
59006    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59007    assert_instr(nop, LANE = 0)
59008)]
59009#[rustc_legacy_const_generics(2)]
59010#[cfg_attr(
59011    not(target_arch = "arm"),
59012    stable(feature = "neon_intrinsics", since = "1.59.0")
59013)]
59014#[cfg_attr(
59015    target_arch = "arm",
59016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59017)]
59018pub fn vset_lane_s8<const LANE: i32>(a: i8, b: int8x8_t) -> int8x8_t {
59019    static_assert_uimm_bits!(LANE, 3);
59020    unsafe { simd_insert!(b, LANE as u32, a) }
59021}
59022#[doc = "Insert vector element from another vector element"]
59023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s8)"]
59024#[inline(always)]
59025#[target_feature(enable = "neon")]
59026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59028#[cfg_attr(
59029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59030    assert_instr(nop, LANE = 0)
59031)]
59032#[rustc_legacy_const_generics(2)]
59033#[cfg_attr(
59034    not(target_arch = "arm"),
59035    stable(feature = "neon_intrinsics", since = "1.59.0")
59036)]
59037#[cfg_attr(
59038    target_arch = "arm",
59039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59040)]
59041pub fn vsetq_lane_s8<const LANE: i32>(a: i8, b: int8x16_t) -> int8x16_t {
59042    static_assert_uimm_bits!(LANE, 4);
59043    unsafe { simd_insert!(b, LANE as u32, a) }
59044}
59045#[doc = "Insert vector element from another vector element"]
59046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s16)"]
59047#[inline(always)]
59048#[target_feature(enable = "neon")]
59049#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59050#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59051#[cfg_attr(
59052    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59053    assert_instr(nop, LANE = 0)
59054)]
59055#[rustc_legacy_const_generics(2)]
59056#[cfg_attr(
59057    not(target_arch = "arm"),
59058    stable(feature = "neon_intrinsics", since = "1.59.0")
59059)]
59060#[cfg_attr(
59061    target_arch = "arm",
59062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59063)]
59064pub fn vset_lane_s16<const LANE: i32>(a: i16, b: int16x4_t) -> int16x4_t {
59065    static_assert_uimm_bits!(LANE, 2);
59066    unsafe { simd_insert!(b, LANE as u32, a) }
59067}
59068#[doc = "Insert vector element from another vector element"]
59069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s16)"]
59070#[inline(always)]
59071#[target_feature(enable = "neon")]
59072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59073#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59074#[cfg_attr(
59075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59076    assert_instr(nop, LANE = 0)
59077)]
59078#[rustc_legacy_const_generics(2)]
59079#[cfg_attr(
59080    not(target_arch = "arm"),
59081    stable(feature = "neon_intrinsics", since = "1.59.0")
59082)]
59083#[cfg_attr(
59084    target_arch = "arm",
59085    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59086)]
59087pub fn vsetq_lane_s16<const LANE: i32>(a: i16, b: int16x8_t) -> int16x8_t {
59088    static_assert_uimm_bits!(LANE, 3);
59089    unsafe { simd_insert!(b, LANE as u32, a) }
59090}
59091#[doc = "Insert vector element from another vector element"]
59092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s32)"]
59093#[inline(always)]
59094#[target_feature(enable = "neon")]
59095#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59096#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59097#[cfg_attr(
59098    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59099    assert_instr(nop, LANE = 0)
59100)]
59101#[rustc_legacy_const_generics(2)]
59102#[cfg_attr(
59103    not(target_arch = "arm"),
59104    stable(feature = "neon_intrinsics", since = "1.59.0")
59105)]
59106#[cfg_attr(
59107    target_arch = "arm",
59108    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59109)]
59110pub fn vset_lane_s32<const LANE: i32>(a: i32, b: int32x2_t) -> int32x2_t {
59111    static_assert_uimm_bits!(LANE, 1);
59112    unsafe { simd_insert!(b, LANE as u32, a) }
59113}
59114#[doc = "Insert vector element from another vector element"]
59115#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s32)"]
59116#[inline(always)]
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(nop, LANE = 0))]
59120#[cfg_attr(
59121    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59122    assert_instr(nop, LANE = 0)
59123)]
59124#[rustc_legacy_const_generics(2)]
59125#[cfg_attr(
59126    not(target_arch = "arm"),
59127    stable(feature = "neon_intrinsics", since = "1.59.0")
59128)]
59129#[cfg_attr(
59130    target_arch = "arm",
59131    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59132)]
59133pub fn vsetq_lane_s32<const LANE: i32>(a: i32, b: int32x4_t) -> int32x4_t {
59134    static_assert_uimm_bits!(LANE, 2);
59135    unsafe { simd_insert!(b, LANE as u32, a) }
59136}
59137#[doc = "Insert vector element from another vector element"]
59138#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s64)"]
59139#[inline(always)]
59140#[target_feature(enable = "neon")]
59141#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59142#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59143#[cfg_attr(
59144    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59145    assert_instr(nop, LANE = 0)
59146)]
59147#[rustc_legacy_const_generics(2)]
59148#[cfg_attr(
59149    not(target_arch = "arm"),
59150    stable(feature = "neon_intrinsics", since = "1.59.0")
59151)]
59152#[cfg_attr(
59153    target_arch = "arm",
59154    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59155)]
59156pub fn vsetq_lane_s64<const LANE: i32>(a: i64, b: int64x2_t) -> int64x2_t {
59157    static_assert_uimm_bits!(LANE, 1);
59158    unsafe { simd_insert!(b, LANE as u32, a) }
59159}
59160#[doc = "Insert vector element from another vector element"]
59161#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u8)"]
59162#[inline(always)]
59163#[target_feature(enable = "neon")]
59164#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59165#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59166#[cfg_attr(
59167    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59168    assert_instr(nop, LANE = 0)
59169)]
59170#[rustc_legacy_const_generics(2)]
59171#[cfg_attr(
59172    not(target_arch = "arm"),
59173    stable(feature = "neon_intrinsics", since = "1.59.0")
59174)]
59175#[cfg_attr(
59176    target_arch = "arm",
59177    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59178)]
59179pub fn vset_lane_u8<const LANE: i32>(a: u8, b: uint8x8_t) -> uint8x8_t {
59180    static_assert_uimm_bits!(LANE, 3);
59181    unsafe { simd_insert!(b, LANE as u32, a) }
59182}
59183#[doc = "Insert vector element from another vector element"]
59184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u8)"]
59185#[inline(always)]
59186#[target_feature(enable = "neon")]
59187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59188#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59189#[cfg_attr(
59190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59191    assert_instr(nop, LANE = 0)
59192)]
59193#[rustc_legacy_const_generics(2)]
59194#[cfg_attr(
59195    not(target_arch = "arm"),
59196    stable(feature = "neon_intrinsics", since = "1.59.0")
59197)]
59198#[cfg_attr(
59199    target_arch = "arm",
59200    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59201)]
59202pub fn vsetq_lane_u8<const LANE: i32>(a: u8, b: uint8x16_t) -> uint8x16_t {
59203    static_assert_uimm_bits!(LANE, 4);
59204    unsafe { simd_insert!(b, LANE as u32, a) }
59205}
59206#[doc = "Insert vector element from another vector element"]
59207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u16)"]
59208#[inline(always)]
59209#[target_feature(enable = "neon")]
59210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59212#[cfg_attr(
59213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59214    assert_instr(nop, LANE = 0)
59215)]
59216#[rustc_legacy_const_generics(2)]
59217#[cfg_attr(
59218    not(target_arch = "arm"),
59219    stable(feature = "neon_intrinsics", since = "1.59.0")
59220)]
59221#[cfg_attr(
59222    target_arch = "arm",
59223    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59224)]
59225pub fn vset_lane_u16<const LANE: i32>(a: u16, b: uint16x4_t) -> uint16x4_t {
59226    static_assert_uimm_bits!(LANE, 2);
59227    unsafe { simd_insert!(b, LANE as u32, a) }
59228}
59229#[doc = "Insert vector element from another vector element"]
59230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u16)"]
59231#[inline(always)]
59232#[target_feature(enable = "neon")]
59233#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59234#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59235#[cfg_attr(
59236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59237    assert_instr(nop, LANE = 0)
59238)]
59239#[rustc_legacy_const_generics(2)]
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 vsetq_lane_u16<const LANE: i32>(a: u16, b: uint16x8_t) -> uint16x8_t {
59249    static_assert_uimm_bits!(LANE, 3);
59250    unsafe { simd_insert!(b, LANE as u32, a) }
59251}
59252#[doc = "Insert vector element from another vector element"]
59253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u32)"]
59254#[inline(always)]
59255#[target_feature(enable = "neon")]
59256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59257#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59258#[cfg_attr(
59259    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59260    assert_instr(nop, LANE = 0)
59261)]
59262#[rustc_legacy_const_generics(2)]
59263#[cfg_attr(
59264    not(target_arch = "arm"),
59265    stable(feature = "neon_intrinsics", since = "1.59.0")
59266)]
59267#[cfg_attr(
59268    target_arch = "arm",
59269    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59270)]
59271pub fn vset_lane_u32<const LANE: i32>(a: u32, b: uint32x2_t) -> uint32x2_t {
59272    static_assert_uimm_bits!(LANE, 1);
59273    unsafe { simd_insert!(b, LANE as u32, a) }
59274}
59275#[doc = "Insert vector element from another vector element"]
59276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u32)"]
59277#[inline(always)]
59278#[target_feature(enable = "neon")]
59279#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59280#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59281#[cfg_attr(
59282    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59283    assert_instr(nop, LANE = 0)
59284)]
59285#[rustc_legacy_const_generics(2)]
59286#[cfg_attr(
59287    not(target_arch = "arm"),
59288    stable(feature = "neon_intrinsics", since = "1.59.0")
59289)]
59290#[cfg_attr(
59291    target_arch = "arm",
59292    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59293)]
59294pub fn vsetq_lane_u32<const LANE: i32>(a: u32, b: uint32x4_t) -> uint32x4_t {
59295    static_assert_uimm_bits!(LANE, 2);
59296    unsafe { simd_insert!(b, LANE as u32, a) }
59297}
59298#[doc = "Insert vector element from another vector element"]
59299#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u64)"]
59300#[inline(always)]
59301#[target_feature(enable = "neon")]
59302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59303#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59304#[cfg_attr(
59305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59306    assert_instr(nop, LANE = 0)
59307)]
59308#[rustc_legacy_const_generics(2)]
59309#[cfg_attr(
59310    not(target_arch = "arm"),
59311    stable(feature = "neon_intrinsics", since = "1.59.0")
59312)]
59313#[cfg_attr(
59314    target_arch = "arm",
59315    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59316)]
59317pub fn vsetq_lane_u64<const LANE: i32>(a: u64, b: uint64x2_t) -> uint64x2_t {
59318    static_assert_uimm_bits!(LANE, 1);
59319    unsafe { simd_insert!(b, LANE as u32, a) }
59320}
59321#[doc = "Insert vector element from another vector element"]
59322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p8)"]
59323#[inline(always)]
59324#[target_feature(enable = "neon")]
59325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59326#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59327#[cfg_attr(
59328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59329    assert_instr(nop, LANE = 0)
59330)]
59331#[rustc_legacy_const_generics(2)]
59332#[cfg_attr(
59333    not(target_arch = "arm"),
59334    stable(feature = "neon_intrinsics", since = "1.59.0")
59335)]
59336#[cfg_attr(
59337    target_arch = "arm",
59338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59339)]
59340pub fn vset_lane_p8<const LANE: i32>(a: p8, b: poly8x8_t) -> poly8x8_t {
59341    static_assert_uimm_bits!(LANE, 3);
59342    unsafe { simd_insert!(b, LANE as u32, a) }
59343}
59344#[doc = "Insert vector element from another vector element"]
59345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p8)"]
59346#[inline(always)]
59347#[target_feature(enable = "neon")]
59348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59349#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59350#[cfg_attr(
59351    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59352    assert_instr(nop, LANE = 0)
59353)]
59354#[rustc_legacy_const_generics(2)]
59355#[cfg_attr(
59356    not(target_arch = "arm"),
59357    stable(feature = "neon_intrinsics", since = "1.59.0")
59358)]
59359#[cfg_attr(
59360    target_arch = "arm",
59361    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59362)]
59363pub fn vsetq_lane_p8<const LANE: i32>(a: p8, b: poly8x16_t) -> poly8x16_t {
59364    static_assert_uimm_bits!(LANE, 4);
59365    unsafe { simd_insert!(b, LANE as u32, a) }
59366}
59367#[doc = "Insert vector element from another vector element"]
59368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p16)"]
59369#[inline(always)]
59370#[target_feature(enable = "neon")]
59371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59373#[cfg_attr(
59374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59375    assert_instr(nop, LANE = 0)
59376)]
59377#[rustc_legacy_const_generics(2)]
59378#[cfg_attr(
59379    not(target_arch = "arm"),
59380    stable(feature = "neon_intrinsics", since = "1.59.0")
59381)]
59382#[cfg_attr(
59383    target_arch = "arm",
59384    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59385)]
59386pub fn vset_lane_p16<const LANE: i32>(a: p16, b: poly16x4_t) -> poly16x4_t {
59387    static_assert_uimm_bits!(LANE, 2);
59388    unsafe { simd_insert!(b, LANE as u32, a) }
59389}
59390#[doc = "Insert vector element from another vector element"]
59391#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p16)"]
59392#[inline(always)]
59393#[target_feature(enable = "neon")]
59394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59396#[cfg_attr(
59397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59398    assert_instr(nop, LANE = 0)
59399)]
59400#[rustc_legacy_const_generics(2)]
59401#[cfg_attr(
59402    not(target_arch = "arm"),
59403    stable(feature = "neon_intrinsics", since = "1.59.0")
59404)]
59405#[cfg_attr(
59406    target_arch = "arm",
59407    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59408)]
59409pub fn vsetq_lane_p16<const LANE: i32>(a: p16, b: poly16x8_t) -> poly16x8_t {
59410    static_assert_uimm_bits!(LANE, 3);
59411    unsafe { simd_insert!(b, LANE as u32, a) }
59412}
59413#[doc = "Insert vector element from another vector element"]
59414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p64)"]
59415#[inline(always)]
59416#[target_feature(enable = "neon,aes")]
59417#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59419#[cfg_attr(
59420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59421    assert_instr(nop, LANE = 0)
59422)]
59423#[rustc_legacy_const_generics(2)]
59424#[cfg_attr(
59425    not(target_arch = "arm"),
59426    stable(feature = "neon_intrinsics", since = "1.59.0")
59427)]
59428#[cfg_attr(
59429    target_arch = "arm",
59430    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59431)]
59432pub fn vset_lane_p64<const LANE: i32>(a: p64, b: poly64x1_t) -> poly64x1_t {
59433    static_assert!(LANE == 0);
59434    unsafe { simd_insert!(b, LANE as u32, a) }
59435}
59436#[doc = "Insert vector element from another vector element"]
59437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s64)"]
59438#[inline(always)]
59439#[target_feature(enable = "neon")]
59440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59442#[cfg_attr(
59443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59444    assert_instr(nop, LANE = 0)
59445)]
59446#[rustc_legacy_const_generics(2)]
59447#[cfg_attr(
59448    not(target_arch = "arm"),
59449    stable(feature = "neon_intrinsics", since = "1.59.0")
59450)]
59451#[cfg_attr(
59452    target_arch = "arm",
59453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59454)]
59455pub fn vset_lane_s64<const LANE: i32>(a: i64, b: int64x1_t) -> int64x1_t {
59456    static_assert!(LANE == 0);
59457    unsafe { simd_insert!(b, LANE as u32, a) }
59458}
59459#[doc = "Insert vector element from another vector element"]
59460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u64)"]
59461#[inline(always)]
59462#[target_feature(enable = "neon")]
59463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59465#[cfg_attr(
59466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59467    assert_instr(nop, LANE = 0)
59468)]
59469#[rustc_legacy_const_generics(2)]
59470#[cfg_attr(
59471    not(target_arch = "arm"),
59472    stable(feature = "neon_intrinsics", since = "1.59.0")
59473)]
59474#[cfg_attr(
59475    target_arch = "arm",
59476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59477)]
59478pub fn vset_lane_u64<const LANE: i32>(a: u64, b: uint64x1_t) -> uint64x1_t {
59479    static_assert!(LANE == 0);
59480    unsafe { simd_insert!(b, LANE as u32, a) }
59481}
59482#[doc = "Insert vector element from another vector element"]
59483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p64)"]
59484#[inline(always)]
59485#[target_feature(enable = "neon,aes")]
59486#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59487#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59488#[cfg_attr(
59489    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59490    assert_instr(nop, LANE = 0)
59491)]
59492#[rustc_legacy_const_generics(2)]
59493#[cfg_attr(
59494    not(target_arch = "arm"),
59495    stable(feature = "neon_intrinsics", since = "1.59.0")
59496)]
59497#[cfg_attr(
59498    target_arch = "arm",
59499    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59500)]
59501pub fn vsetq_lane_p64<const LANE: i32>(a: p64, b: poly64x2_t) -> poly64x2_t {
59502    static_assert_uimm_bits!(LANE, 1);
59503    unsafe { simd_insert!(b, LANE as u32, a) }
59504}
59505#[doc = "SHA1 hash update accelerator, choose."]
59506#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1cq_u32)"]
59507#[inline(always)]
59508#[target_feature(enable = "sha2")]
59509#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59510#[cfg_attr(test, assert_instr(sha1c))]
59511#[cfg_attr(
59512    target_arch = "arm",
59513    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59514)]
59515#[cfg_attr(
59516    not(target_arch = "arm"),
59517    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59518)]
59519pub fn vsha1cq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
59520    unsafe extern "unadjusted" {
59521        #[cfg_attr(
59522            any(target_arch = "aarch64", target_arch = "arm64ec"),
59523            link_name = "llvm.aarch64.crypto.sha1c"
59524        )]
59525        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1c")]
59526        fn _vsha1cq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
59527    }
59528    unsafe { _vsha1cq_u32(hash_abcd, hash_e, wk) }
59529}
59530#[doc = "SHA1 fixed rotate."]
59531#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1h_u32)"]
59532#[inline(always)]
59533#[target_feature(enable = "sha2")]
59534#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59535#[cfg_attr(test, assert_instr(sha1h))]
59536#[cfg_attr(
59537    target_arch = "arm",
59538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59539)]
59540#[cfg_attr(
59541    not(target_arch = "arm"),
59542    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59543)]
59544pub fn vsha1h_u32(hash_e: u32) -> u32 {
59545    unsafe extern "unadjusted" {
59546        #[cfg_attr(
59547            any(target_arch = "aarch64", target_arch = "arm64ec"),
59548            link_name = "llvm.aarch64.crypto.sha1h"
59549        )]
59550        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1h")]
59551        fn _vsha1h_u32(hash_e: u32) -> u32;
59552    }
59553    unsafe { _vsha1h_u32(hash_e) }
59554}
59555#[doc = "SHA1 hash update accelerator, majority"]
59556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1mq_u32)"]
59557#[inline(always)]
59558#[target_feature(enable = "sha2")]
59559#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59560#[cfg_attr(test, assert_instr(sha1m))]
59561#[cfg_attr(
59562    target_arch = "arm",
59563    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59564)]
59565#[cfg_attr(
59566    not(target_arch = "arm"),
59567    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59568)]
59569pub fn vsha1mq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
59570    unsafe extern "unadjusted" {
59571        #[cfg_attr(
59572            any(target_arch = "aarch64", target_arch = "arm64ec"),
59573            link_name = "llvm.aarch64.crypto.sha1m"
59574        )]
59575        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1m")]
59576        fn _vsha1mq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
59577    }
59578    unsafe { _vsha1mq_u32(hash_abcd, hash_e, wk) }
59579}
59580#[doc = "SHA1 hash update accelerator, parity"]
59581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1pq_u32)"]
59582#[inline(always)]
59583#[target_feature(enable = "sha2")]
59584#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59585#[cfg_attr(test, assert_instr(sha1p))]
59586#[cfg_attr(
59587    target_arch = "arm",
59588    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59589)]
59590#[cfg_attr(
59591    not(target_arch = "arm"),
59592    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59593)]
59594pub fn vsha1pq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
59595    unsafe extern "unadjusted" {
59596        #[cfg_attr(
59597            any(target_arch = "aarch64", target_arch = "arm64ec"),
59598            link_name = "llvm.aarch64.crypto.sha1p"
59599        )]
59600        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1p")]
59601        fn _vsha1pq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
59602    }
59603    unsafe { _vsha1pq_u32(hash_abcd, hash_e, wk) }
59604}
59605#[doc = "SHA1 schedule update accelerator, first part."]
59606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su0q_u32)"]
59607#[inline(always)]
59608#[target_feature(enable = "sha2")]
59609#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59610#[cfg_attr(test, assert_instr(sha1su0))]
59611#[cfg_attr(
59612    target_arch = "arm",
59613    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59614)]
59615#[cfg_attr(
59616    not(target_arch = "arm"),
59617    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59618)]
59619pub fn vsha1su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t, w8_11: uint32x4_t) -> uint32x4_t {
59620    unsafe extern "unadjusted" {
59621        #[cfg_attr(
59622            any(target_arch = "aarch64", target_arch = "arm64ec"),
59623            link_name = "llvm.aarch64.crypto.sha1su0"
59624        )]
59625        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1su0")]
59626        fn _vsha1su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t, w8_11: uint32x4_t) -> uint32x4_t;
59627    }
59628    unsafe { _vsha1su0q_u32(w0_3, w4_7, w8_11) }
59629}
59630#[doc = "SHA1 schedule update accelerator, second part."]
59631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su1q_u32)"]
59632#[inline(always)]
59633#[target_feature(enable = "sha2")]
59634#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59635#[cfg_attr(test, assert_instr(sha1su1))]
59636#[cfg_attr(
59637    target_arch = "arm",
59638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59639)]
59640#[cfg_attr(
59641    not(target_arch = "arm"),
59642    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59643)]
59644pub fn vsha1su1q_u32(tw0_3: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t {
59645    unsafe extern "unadjusted" {
59646        #[cfg_attr(
59647            any(target_arch = "aarch64", target_arch = "arm64ec"),
59648            link_name = "llvm.aarch64.crypto.sha1su1"
59649        )]
59650        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1su1")]
59651        fn _vsha1su1q_u32(tw0_3: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t;
59652    }
59653    unsafe { _vsha1su1q_u32(tw0_3, w12_15) }
59654}
59655#[doc = "SHA1 schedule update accelerator, upper part."]
59656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256h2q_u32)"]
59657#[inline(always)]
59658#[target_feature(enable = "sha2")]
59659#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59660#[cfg_attr(test, assert_instr(sha256h2))]
59661#[cfg_attr(
59662    target_arch = "arm",
59663    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59664)]
59665#[cfg_attr(
59666    not(target_arch = "arm"),
59667    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59668)]
59669pub fn vsha256h2q_u32(hash_abcd: uint32x4_t, hash_efgh: uint32x4_t, wk: uint32x4_t) -> uint32x4_t {
59670    unsafe extern "unadjusted" {
59671        #[cfg_attr(
59672            any(target_arch = "aarch64", target_arch = "arm64ec"),
59673            link_name = "llvm.aarch64.crypto.sha256h2"
59674        )]
59675        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256h2")]
59676        fn _vsha256h2q_u32(
59677            hash_abcd: uint32x4_t,
59678            hash_efgh: uint32x4_t,
59679            wk: uint32x4_t,
59680        ) -> uint32x4_t;
59681    }
59682    unsafe { _vsha256h2q_u32(hash_abcd, hash_efgh, wk) }
59683}
59684#[doc = "SHA1 schedule update accelerator, first part."]
59685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256hq_u32)"]
59686#[inline(always)]
59687#[target_feature(enable = "sha2")]
59688#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59689#[cfg_attr(test, assert_instr(sha256h))]
59690#[cfg_attr(
59691    target_arch = "arm",
59692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59693)]
59694#[cfg_attr(
59695    not(target_arch = "arm"),
59696    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59697)]
59698pub fn vsha256hq_u32(hash_abcd: uint32x4_t, hash_efgh: uint32x4_t, wk: uint32x4_t) -> uint32x4_t {
59699    unsafe extern "unadjusted" {
59700        #[cfg_attr(
59701            any(target_arch = "aarch64", target_arch = "arm64ec"),
59702            link_name = "llvm.aarch64.crypto.sha256h"
59703        )]
59704        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256h")]
59705        fn _vsha256hq_u32(
59706            hash_abcd: uint32x4_t,
59707            hash_efgh: uint32x4_t,
59708            wk: uint32x4_t,
59709        ) -> uint32x4_t;
59710    }
59711    unsafe { _vsha256hq_u32(hash_abcd, hash_efgh, wk) }
59712}
59713#[doc = "SHA256 schedule update accelerator, first part."]
59714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su0q_u32)"]
59715#[inline(always)]
59716#[target_feature(enable = "sha2")]
59717#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59718#[cfg_attr(test, assert_instr(sha256su0))]
59719#[cfg_attr(
59720    target_arch = "arm",
59721    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59722)]
59723#[cfg_attr(
59724    not(target_arch = "arm"),
59725    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59726)]
59727pub fn vsha256su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t) -> uint32x4_t {
59728    unsafe extern "unadjusted" {
59729        #[cfg_attr(
59730            any(target_arch = "aarch64", target_arch = "arm64ec"),
59731            link_name = "llvm.aarch64.crypto.sha256su0"
59732        )]
59733        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256su0")]
59734        fn _vsha256su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t) -> uint32x4_t;
59735    }
59736    unsafe { _vsha256su0q_u32(w0_3, w4_7) }
59737}
59738#[doc = "SHA256 schedule update accelerator, second part."]
59739#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su1q_u32)"]
59740#[inline(always)]
59741#[target_feature(enable = "sha2")]
59742#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59743#[cfg_attr(test, assert_instr(sha256su1))]
59744#[cfg_attr(
59745    target_arch = "arm",
59746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59747)]
59748#[cfg_attr(
59749    not(target_arch = "arm"),
59750    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59751)]
59752pub fn vsha256su1q_u32(tw0_3: uint32x4_t, w8_11: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t {
59753    unsafe extern "unadjusted" {
59754        #[cfg_attr(
59755            any(target_arch = "aarch64", target_arch = "arm64ec"),
59756            link_name = "llvm.aarch64.crypto.sha256su1"
59757        )]
59758        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256su1")]
59759        fn _vsha256su1q_u32(tw0_3: uint32x4_t, w8_11: uint32x4_t, w12_15: uint32x4_t)
59760            -> uint32x4_t;
59761    }
59762    unsafe { _vsha256su1q_u32(tw0_3, w8_11, w12_15) }
59763}
59764#[inline(always)]
59765#[target_feature(enable = "neon")]
59766#[cfg(target_arch = "arm")]
59767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59768#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59769#[rustc_legacy_const_generics(2)]
59770fn vshiftlins_v16i8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
59771    unsafe extern "unadjusted" {
59772        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v16i8")]
59773        fn _vshiftlins_v16i8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t;
59774    }
59775    unsafe { _vshiftlins_v16i8(a, b, const { int8x16_t([N as i8; 16]) }) }
59776}
59777#[inline(always)]
59778#[target_feature(enable = "neon")]
59779#[cfg(target_arch = "arm")]
59780#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59781#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59782#[rustc_legacy_const_generics(2)]
59783fn vshiftlins_v1i64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
59784    unsafe extern "unadjusted" {
59785        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v1i64")]
59786        fn _vshiftlins_v1i64(a: int64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t;
59787    }
59788    unsafe { _vshiftlins_v1i64(a, b, const { int64x1_t([N as i64; 1]) }) }
59789}
59790#[inline(always)]
59791#[target_feature(enable = "neon")]
59792#[cfg(target_arch = "arm")]
59793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59794#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59795#[rustc_legacy_const_generics(2)]
59796fn vshiftlins_v2i32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
59797    unsafe extern "unadjusted" {
59798        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i32")]
59799        fn _vshiftlins_v2i32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t;
59800    }
59801    unsafe { _vshiftlins_v2i32(a, b, const { int32x2_t([N; 2]) }) }
59802}
59803#[inline(always)]
59804#[target_feature(enable = "neon")]
59805#[cfg(target_arch = "arm")]
59806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59807#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59808#[rustc_legacy_const_generics(2)]
59809fn vshiftlins_v2i64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
59810    unsafe extern "unadjusted" {
59811        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i64")]
59812        fn _vshiftlins_v2i64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t;
59813    }
59814    unsafe { _vshiftlins_v2i64(a, b, const { int64x2_t([N as i64; 2]) }) }
59815}
59816#[inline(always)]
59817#[target_feature(enable = "neon")]
59818#[cfg(target_arch = "arm")]
59819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59820#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59821#[rustc_legacy_const_generics(2)]
59822fn vshiftlins_v4i16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
59823    unsafe extern "unadjusted" {
59824        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i16")]
59825        fn _vshiftlins_v4i16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t;
59826    }
59827    unsafe { _vshiftlins_v4i16(a, b, const { int16x4_t([N as i16; 4]) }) }
59828}
59829#[inline(always)]
59830#[target_feature(enable = "neon")]
59831#[cfg(target_arch = "arm")]
59832#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59833#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59834#[rustc_legacy_const_generics(2)]
59835fn vshiftlins_v4i32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
59836    unsafe extern "unadjusted" {
59837        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i32")]
59838        fn _vshiftlins_v4i32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t;
59839    }
59840    unsafe { _vshiftlins_v4i32(a, b, const { int32x4_t([N; 4]) }) }
59841}
59842#[inline(always)]
59843#[target_feature(enable = "neon")]
59844#[cfg(target_arch = "arm")]
59845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59846#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59847#[rustc_legacy_const_generics(2)]
59848fn vshiftlins_v8i16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
59849    unsafe extern "unadjusted" {
59850        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i16")]
59851        fn _vshiftlins_v8i16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t;
59852    }
59853    unsafe { _vshiftlins_v8i16(a, b, const { int16x8_t([N as i16; 8]) }) }
59854}
59855#[inline(always)]
59856#[target_feature(enable = "neon")]
59857#[cfg(target_arch = "arm")]
59858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59859#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59860#[rustc_legacy_const_generics(2)]
59861fn vshiftlins_v8i8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
59862    unsafe extern "unadjusted" {
59863        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i8")]
59864        fn _vshiftlins_v8i8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
59865    }
59866    unsafe { _vshiftlins_v8i8(a, b, const { int8x8_t([N as i8; 8]) }) }
59867}
59868#[doc = "Shift Right and Insert (immediate)"]
59869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v16i8)"]
59870#[inline(always)]
59871#[target_feature(enable = "neon")]
59872#[cfg(target_arch = "arm")]
59873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59874#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59875#[rustc_legacy_const_generics(2)]
59876fn vshiftrins_v16i8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
59877    unsafe extern "unadjusted" {
59878        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v16i8")]
59879        fn _vshiftrins_v16i8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t;
59880    }
59881    unsafe { _vshiftrins_v16i8(a, b, const { int8x16_t([-N as i8; 16]) }) }
59882}
59883#[doc = "Shift Right and Insert (immediate)"]
59884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v1i64)"]
59885#[inline(always)]
59886#[target_feature(enable = "neon")]
59887#[cfg(target_arch = "arm")]
59888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59889#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59890#[rustc_legacy_const_generics(2)]
59891fn vshiftrins_v1i64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
59892    unsafe extern "unadjusted" {
59893        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v1i64")]
59894        fn _vshiftrins_v1i64(a: int64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t;
59895    }
59896    unsafe { _vshiftrins_v1i64(a, b, const { int64x1_t([-N as i64; 1]) }) }
59897}
59898#[doc = "Shift Right and Insert (immediate)"]
59899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v2i32)"]
59900#[inline(always)]
59901#[target_feature(enable = "neon")]
59902#[cfg(target_arch = "arm")]
59903#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59904#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59905#[rustc_legacy_const_generics(2)]
59906fn vshiftrins_v2i32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
59907    unsafe extern "unadjusted" {
59908        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i32")]
59909        fn _vshiftrins_v2i32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t;
59910    }
59911    unsafe { _vshiftrins_v2i32(a, b, const { int32x2_t([-N; 2]) }) }
59912}
59913#[doc = "Shift Right and Insert (immediate)"]
59914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v2i64)"]
59915#[inline(always)]
59916#[target_feature(enable = "neon")]
59917#[cfg(target_arch = "arm")]
59918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59919#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59920#[rustc_legacy_const_generics(2)]
59921fn vshiftrins_v2i64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
59922    unsafe extern "unadjusted" {
59923        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i64")]
59924        fn _vshiftrins_v2i64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t;
59925    }
59926    unsafe { _vshiftrins_v2i64(a, b, const { int64x2_t([-N as i64; 2]) }) }
59927}
59928#[doc = "Shift Right and Insert (immediate)"]
59929#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v4i16)"]
59930#[inline(always)]
59931#[target_feature(enable = "neon")]
59932#[cfg(target_arch = "arm")]
59933#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59934#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59935#[rustc_legacy_const_generics(2)]
59936fn vshiftrins_v4i16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
59937    unsafe extern "unadjusted" {
59938        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i16")]
59939        fn _vshiftrins_v4i16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t;
59940    }
59941    unsafe { _vshiftrins_v4i16(a, b, const { int16x4_t([-N as i16; 4]) }) }
59942}
59943#[doc = "Shift Right and Insert (immediate)"]
59944#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v4i32)"]
59945#[inline(always)]
59946#[target_feature(enable = "neon")]
59947#[cfg(target_arch = "arm")]
59948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59949#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59950#[rustc_legacy_const_generics(2)]
59951fn vshiftrins_v4i32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
59952    unsafe extern "unadjusted" {
59953        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i32")]
59954        fn _vshiftrins_v4i32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t;
59955    }
59956    unsafe { _vshiftrins_v4i32(a, b, const { int32x4_t([-N; 4]) }) }
59957}
59958#[doc = "Shift Right and Insert (immediate)"]
59959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v8i16)"]
59960#[inline(always)]
59961#[target_feature(enable = "neon")]
59962#[cfg(target_arch = "arm")]
59963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59964#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59965#[rustc_legacy_const_generics(2)]
59966fn vshiftrins_v8i16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
59967    unsafe extern "unadjusted" {
59968        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i16")]
59969        fn _vshiftrins_v8i16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t;
59970    }
59971    unsafe { _vshiftrins_v8i16(a, b, const { int16x8_t([-N as i16; 8]) }) }
59972}
59973#[doc = "Shift Right and Insert (immediate)"]
59974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v8i8)"]
59975#[inline(always)]
59976#[target_feature(enable = "neon")]
59977#[cfg(target_arch = "arm")]
59978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59979#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59980#[rustc_legacy_const_generics(2)]
59981fn vshiftrins_v8i8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
59982    unsafe extern "unadjusted" {
59983        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i8")]
59984        fn _vshiftrins_v8i8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
59985    }
59986    unsafe { _vshiftrins_v8i8(a, b, const { int8x8_t([-N as i8; 8]) }) }
59987}
59988#[doc = "Shift left"]
59989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s8)"]
59990#[inline(always)]
59991#[target_feature(enable = "neon")]
59992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59993#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
59994#[cfg_attr(
59995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59996    assert_instr(shl, N = 2)
59997)]
59998#[rustc_legacy_const_generics(1)]
59999#[cfg_attr(
60000    not(target_arch = "arm"),
60001    stable(feature = "neon_intrinsics", since = "1.59.0")
60002)]
60003#[cfg_attr(
60004    target_arch = "arm",
60005    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60006)]
60007pub fn vshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
60008    static_assert_uimm_bits!(N, 3);
60009    unsafe { simd_shl(a, vdup_n_s8(N as _)) }
60010}
60011#[doc = "Shift left"]
60012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s8)"]
60013#[inline(always)]
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(vshl, N = 2))]
60017#[cfg_attr(
60018    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60019    assert_instr(shl, 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 vshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
60031    static_assert_uimm_bits!(N, 3);
60032    unsafe { simd_shl(a, vdupq_n_s8(N as _)) }
60033}
60034#[doc = "Shift left"]
60035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s16)"]
60036#[inline(always)]
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(vshl, N = 2))]
60040#[cfg_attr(
60041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60042    assert_instr(shl, 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 vshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
60054    static_assert_uimm_bits!(N, 4);
60055    unsafe { simd_shl(a, vdup_n_s16(N as _)) }
60056}
60057#[doc = "Shift left"]
60058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s16)"]
60059#[inline(always)]
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(vshl, N = 2))]
60063#[cfg_attr(
60064    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60065    assert_instr(shl, 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 vshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
60077    static_assert_uimm_bits!(N, 4);
60078    unsafe { simd_shl(a, vdupq_n_s16(N as _)) }
60079}
60080#[doc = "Shift left"]
60081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s32)"]
60082#[inline(always)]
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(vshl, N = 2))]
60086#[cfg_attr(
60087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60088    assert_instr(shl, 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 vshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
60100    static_assert_uimm_bits!(N, 5);
60101    unsafe { simd_shl(a, vdup_n_s32(N as _)) }
60102}
60103#[doc = "Shift left"]
60104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s32)"]
60105#[inline(always)]
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(vshl, N = 2))]
60109#[cfg_attr(
60110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60111    assert_instr(shl, 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 vshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
60123    static_assert_uimm_bits!(N, 5);
60124    unsafe { simd_shl(a, vdupq_n_s32(N as _)) }
60125}
60126#[doc = "Shift left"]
60127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s64)"]
60128#[inline(always)]
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(vshl, N = 2))]
60132#[cfg_attr(
60133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60134    assert_instr(shl, 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 vshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
60146    static_assert_uimm_bits!(N, 6);
60147    unsafe { simd_shl(a, vdup_n_s64(N as _)) }
60148}
60149#[doc = "Shift left"]
60150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s64)"]
60151#[inline(always)]
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(vshl, N = 2))]
60155#[cfg_attr(
60156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60157    assert_instr(shl, 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 vshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
60169    static_assert_uimm_bits!(N, 6);
60170    unsafe { simd_shl(a, vdupq_n_s64(N as _)) }
60171}
60172#[doc = "Shift left"]
60173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u8)"]
60174#[inline(always)]
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(vshl, N = 2))]
60178#[cfg_attr(
60179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60180    assert_instr(shl, 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 vshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
60192    static_assert_uimm_bits!(N, 3);
60193    unsafe { simd_shl(a, vdup_n_u8(N as _)) }
60194}
60195#[doc = "Shift left"]
60196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u8)"]
60197#[inline(always)]
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(vshl, N = 2))]
60201#[cfg_attr(
60202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60203    assert_instr(shl, 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 vshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
60215    static_assert_uimm_bits!(N, 3);
60216    unsafe { simd_shl(a, vdupq_n_u8(N as _)) }
60217}
60218#[doc = "Shift left"]
60219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u16)"]
60220#[inline(always)]
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(vshl, N = 2))]
60224#[cfg_attr(
60225    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60226    assert_instr(shl, 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 vshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
60238    static_assert_uimm_bits!(N, 4);
60239    unsafe { simd_shl(a, vdup_n_u16(N as _)) }
60240}
60241#[doc = "Shift left"]
60242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u16)"]
60243#[inline(always)]
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(vshl, N = 2))]
60247#[cfg_attr(
60248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60249    assert_instr(shl, 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 vshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
60261    static_assert_uimm_bits!(N, 4);
60262    unsafe { simd_shl(a, vdupq_n_u16(N as _)) }
60263}
60264#[doc = "Shift left"]
60265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u32)"]
60266#[inline(always)]
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(vshl, N = 2))]
60270#[cfg_attr(
60271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60272    assert_instr(shl, 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 vshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
60284    static_assert_uimm_bits!(N, 5);
60285    unsafe { simd_shl(a, vdup_n_u32(N as _)) }
60286}
60287#[doc = "Shift left"]
60288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u32)"]
60289#[inline(always)]
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(vshl, N = 2))]
60293#[cfg_attr(
60294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60295    assert_instr(shl, 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 vshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
60307    static_assert_uimm_bits!(N, 5);
60308    unsafe { simd_shl(a, vdupq_n_u32(N as _)) }
60309}
60310#[doc = "Shift left"]
60311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u64)"]
60312#[inline(always)]
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(vshl, N = 2))]
60316#[cfg_attr(
60317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60318    assert_instr(shl, 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 vshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
60330    static_assert_uimm_bits!(N, 6);
60331    unsafe { simd_shl(a, vdup_n_u64(N as _)) }
60332}
60333#[doc = "Shift left"]
60334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u64)"]
60335#[inline(always)]
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(vshl, N = 2))]
60339#[cfg_attr(
60340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60341    assert_instr(shl, 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 vshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
60353    static_assert_uimm_bits!(N, 6);
60354    unsafe { simd_shl(a, vdupq_n_u64(N as _)) }
60355}
60356#[doc = "Signed Shift left"]
60357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s8)"]
60358#[inline(always)]
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(vshl))]
60362#[cfg_attr(
60363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60364    assert_instr(sshl)
60365)]
60366#[cfg_attr(
60367    not(target_arch = "arm"),
60368    stable(feature = "neon_intrinsics", since = "1.59.0")
60369)]
60370#[cfg_attr(
60371    target_arch = "arm",
60372    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60373)]
60374pub fn vshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
60375    unsafe extern "unadjusted" {
60376        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i8")]
60377        #[cfg_attr(
60378            any(target_arch = "aarch64", target_arch = "arm64ec"),
60379            link_name = "llvm.aarch64.neon.sshl.v8i8"
60380        )]
60381        fn _vshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
60382    }
60383    unsafe { _vshl_s8(a, b) }
60384}
60385#[doc = "Signed Shift left"]
60386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s8)"]
60387#[inline(always)]
60388#[target_feature(enable = "neon")]
60389#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60390#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60391#[cfg_attr(
60392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60393    assert_instr(sshl)
60394)]
60395#[cfg_attr(
60396    not(target_arch = "arm"),
60397    stable(feature = "neon_intrinsics", since = "1.59.0")
60398)]
60399#[cfg_attr(
60400    target_arch = "arm",
60401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60402)]
60403pub fn vshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
60404    unsafe extern "unadjusted" {
60405        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v16i8")]
60406        #[cfg_attr(
60407            any(target_arch = "aarch64", target_arch = "arm64ec"),
60408            link_name = "llvm.aarch64.neon.sshl.v16i8"
60409        )]
60410        fn _vshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
60411    }
60412    unsafe { _vshlq_s8(a, b) }
60413}
60414#[doc = "Signed Shift left"]
60415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s16)"]
60416#[inline(always)]
60417#[target_feature(enable = "neon")]
60418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60419#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60420#[cfg_attr(
60421    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60422    assert_instr(sshl)
60423)]
60424#[cfg_attr(
60425    not(target_arch = "arm"),
60426    stable(feature = "neon_intrinsics", since = "1.59.0")
60427)]
60428#[cfg_attr(
60429    target_arch = "arm",
60430    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60431)]
60432pub fn vshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
60433    unsafe extern "unadjusted" {
60434        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i16")]
60435        #[cfg_attr(
60436            any(target_arch = "aarch64", target_arch = "arm64ec"),
60437            link_name = "llvm.aarch64.neon.sshl.v4i16"
60438        )]
60439        fn _vshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
60440    }
60441    unsafe { _vshl_s16(a, b) }
60442}
60443#[doc = "Signed Shift left"]
60444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s16)"]
60445#[inline(always)]
60446#[target_feature(enable = "neon")]
60447#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60448#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60449#[cfg_attr(
60450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60451    assert_instr(sshl)
60452)]
60453#[cfg_attr(
60454    not(target_arch = "arm"),
60455    stable(feature = "neon_intrinsics", since = "1.59.0")
60456)]
60457#[cfg_attr(
60458    target_arch = "arm",
60459    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60460)]
60461pub fn vshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
60462    unsafe extern "unadjusted" {
60463        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i16")]
60464        #[cfg_attr(
60465            any(target_arch = "aarch64", target_arch = "arm64ec"),
60466            link_name = "llvm.aarch64.neon.sshl.v8i16"
60467        )]
60468        fn _vshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
60469    }
60470    unsafe { _vshlq_s16(a, b) }
60471}
60472#[doc = "Signed Shift left"]
60473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s32)"]
60474#[inline(always)]
60475#[target_feature(enable = "neon")]
60476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60477#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60478#[cfg_attr(
60479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60480    assert_instr(sshl)
60481)]
60482#[cfg_attr(
60483    not(target_arch = "arm"),
60484    stable(feature = "neon_intrinsics", since = "1.59.0")
60485)]
60486#[cfg_attr(
60487    target_arch = "arm",
60488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60489)]
60490pub fn vshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
60491    unsafe extern "unadjusted" {
60492        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i32")]
60493        #[cfg_attr(
60494            any(target_arch = "aarch64", target_arch = "arm64ec"),
60495            link_name = "llvm.aarch64.neon.sshl.v2i32"
60496        )]
60497        fn _vshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
60498    }
60499    unsafe { _vshl_s32(a, b) }
60500}
60501#[doc = "Signed Shift left"]
60502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s32)"]
60503#[inline(always)]
60504#[target_feature(enable = "neon")]
60505#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60506#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60507#[cfg_attr(
60508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60509    assert_instr(sshl)
60510)]
60511#[cfg_attr(
60512    not(target_arch = "arm"),
60513    stable(feature = "neon_intrinsics", since = "1.59.0")
60514)]
60515#[cfg_attr(
60516    target_arch = "arm",
60517    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60518)]
60519pub fn vshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
60520    unsafe extern "unadjusted" {
60521        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i32")]
60522        #[cfg_attr(
60523            any(target_arch = "aarch64", target_arch = "arm64ec"),
60524            link_name = "llvm.aarch64.neon.sshl.v4i32"
60525        )]
60526        fn _vshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
60527    }
60528    unsafe { _vshlq_s32(a, b) }
60529}
60530#[doc = "Signed Shift left"]
60531#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s64)"]
60532#[inline(always)]
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(vshl))]
60536#[cfg_attr(
60537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60538    assert_instr(sshl)
60539)]
60540#[cfg_attr(
60541    not(target_arch = "arm"),
60542    stable(feature = "neon_intrinsics", since = "1.59.0")
60543)]
60544#[cfg_attr(
60545    target_arch = "arm",
60546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60547)]
60548pub fn vshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
60549    unsafe extern "unadjusted" {
60550        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v1i64")]
60551        #[cfg_attr(
60552            any(target_arch = "aarch64", target_arch = "arm64ec"),
60553            link_name = "llvm.aarch64.neon.sshl.v1i64"
60554        )]
60555        fn _vshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
60556    }
60557    unsafe { _vshl_s64(a, b) }
60558}
60559#[doc = "Signed Shift left"]
60560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s64)"]
60561#[inline(always)]
60562#[target_feature(enable = "neon")]
60563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60564#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60565#[cfg_attr(
60566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60567    assert_instr(sshl)
60568)]
60569#[cfg_attr(
60570    not(target_arch = "arm"),
60571    stable(feature = "neon_intrinsics", since = "1.59.0")
60572)]
60573#[cfg_attr(
60574    target_arch = "arm",
60575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60576)]
60577pub fn vshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
60578    unsafe extern "unadjusted" {
60579        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i64")]
60580        #[cfg_attr(
60581            any(target_arch = "aarch64", target_arch = "arm64ec"),
60582            link_name = "llvm.aarch64.neon.sshl.v2i64"
60583        )]
60584        fn _vshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
60585    }
60586    unsafe { _vshlq_s64(a, b) }
60587}
60588#[doc = "Unsigned Shift left"]
60589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u8)"]
60590#[inline(always)]
60591#[target_feature(enable = "neon")]
60592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60593#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60594#[cfg_attr(
60595    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60596    assert_instr(ushl)
60597)]
60598#[cfg_attr(
60599    not(target_arch = "arm"),
60600    stable(feature = "neon_intrinsics", since = "1.59.0")
60601)]
60602#[cfg_attr(
60603    target_arch = "arm",
60604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60605)]
60606pub fn vshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
60607    unsafe extern "unadjusted" {
60608        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i8")]
60609        #[cfg_attr(
60610            any(target_arch = "aarch64", target_arch = "arm64ec"),
60611            link_name = "llvm.aarch64.neon.ushl.v8i8"
60612        )]
60613        fn _vshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
60614    }
60615    unsafe { _vshl_u8(a, b) }
60616}
60617#[doc = "Unsigned Shift left"]
60618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u8)"]
60619#[inline(always)]
60620#[target_feature(enable = "neon")]
60621#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60622#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60623#[cfg_attr(
60624    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60625    assert_instr(ushl)
60626)]
60627#[cfg_attr(
60628    not(target_arch = "arm"),
60629    stable(feature = "neon_intrinsics", since = "1.59.0")
60630)]
60631#[cfg_attr(
60632    target_arch = "arm",
60633    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60634)]
60635pub fn vshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
60636    unsafe extern "unadjusted" {
60637        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v16i8")]
60638        #[cfg_attr(
60639            any(target_arch = "aarch64", target_arch = "arm64ec"),
60640            link_name = "llvm.aarch64.neon.ushl.v16i8"
60641        )]
60642        fn _vshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
60643    }
60644    unsafe { _vshlq_u8(a, b) }
60645}
60646#[doc = "Unsigned Shift left"]
60647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u16)"]
60648#[inline(always)]
60649#[target_feature(enable = "neon")]
60650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60651#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60652#[cfg_attr(
60653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60654    assert_instr(ushl)
60655)]
60656#[cfg_attr(
60657    not(target_arch = "arm"),
60658    stable(feature = "neon_intrinsics", since = "1.59.0")
60659)]
60660#[cfg_attr(
60661    target_arch = "arm",
60662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60663)]
60664pub fn vshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
60665    unsafe extern "unadjusted" {
60666        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i16")]
60667        #[cfg_attr(
60668            any(target_arch = "aarch64", target_arch = "arm64ec"),
60669            link_name = "llvm.aarch64.neon.ushl.v4i16"
60670        )]
60671        fn _vshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
60672    }
60673    unsafe { _vshl_u16(a, b) }
60674}
60675#[doc = "Unsigned Shift left"]
60676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u16)"]
60677#[inline(always)]
60678#[target_feature(enable = "neon")]
60679#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60680#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60681#[cfg_attr(
60682    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60683    assert_instr(ushl)
60684)]
60685#[cfg_attr(
60686    not(target_arch = "arm"),
60687    stable(feature = "neon_intrinsics", since = "1.59.0")
60688)]
60689#[cfg_attr(
60690    target_arch = "arm",
60691    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60692)]
60693pub fn vshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
60694    unsafe extern "unadjusted" {
60695        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i16")]
60696        #[cfg_attr(
60697            any(target_arch = "aarch64", target_arch = "arm64ec"),
60698            link_name = "llvm.aarch64.neon.ushl.v8i16"
60699        )]
60700        fn _vshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
60701    }
60702    unsafe { _vshlq_u16(a, b) }
60703}
60704#[doc = "Unsigned Shift left"]
60705#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u32)"]
60706#[inline(always)]
60707#[target_feature(enable = "neon")]
60708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60710#[cfg_attr(
60711    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60712    assert_instr(ushl)
60713)]
60714#[cfg_attr(
60715    not(target_arch = "arm"),
60716    stable(feature = "neon_intrinsics", since = "1.59.0")
60717)]
60718#[cfg_attr(
60719    target_arch = "arm",
60720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60721)]
60722pub fn vshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
60723    unsafe extern "unadjusted" {
60724        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i32")]
60725        #[cfg_attr(
60726            any(target_arch = "aarch64", target_arch = "arm64ec"),
60727            link_name = "llvm.aarch64.neon.ushl.v2i32"
60728        )]
60729        fn _vshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
60730    }
60731    unsafe { _vshl_u32(a, b) }
60732}
60733#[doc = "Unsigned Shift left"]
60734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u32)"]
60735#[inline(always)]
60736#[target_feature(enable = "neon")]
60737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60738#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60739#[cfg_attr(
60740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60741    assert_instr(ushl)
60742)]
60743#[cfg_attr(
60744    not(target_arch = "arm"),
60745    stable(feature = "neon_intrinsics", since = "1.59.0")
60746)]
60747#[cfg_attr(
60748    target_arch = "arm",
60749    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60750)]
60751pub fn vshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
60752    unsafe extern "unadjusted" {
60753        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i32")]
60754        #[cfg_attr(
60755            any(target_arch = "aarch64", target_arch = "arm64ec"),
60756            link_name = "llvm.aarch64.neon.ushl.v4i32"
60757        )]
60758        fn _vshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
60759    }
60760    unsafe { _vshlq_u32(a, b) }
60761}
60762#[doc = "Unsigned Shift left"]
60763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u64)"]
60764#[inline(always)]
60765#[target_feature(enable = "neon")]
60766#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60768#[cfg_attr(
60769    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60770    assert_instr(ushl)
60771)]
60772#[cfg_attr(
60773    not(target_arch = "arm"),
60774    stable(feature = "neon_intrinsics", since = "1.59.0")
60775)]
60776#[cfg_attr(
60777    target_arch = "arm",
60778    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60779)]
60780pub fn vshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
60781    unsafe extern "unadjusted" {
60782        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v1i64")]
60783        #[cfg_attr(
60784            any(target_arch = "aarch64", target_arch = "arm64ec"),
60785            link_name = "llvm.aarch64.neon.ushl.v1i64"
60786        )]
60787        fn _vshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
60788    }
60789    unsafe { _vshl_u64(a, b) }
60790}
60791#[doc = "Unsigned Shift left"]
60792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u64)"]
60793#[inline(always)]
60794#[target_feature(enable = "neon")]
60795#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60796#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60797#[cfg_attr(
60798    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60799    assert_instr(ushl)
60800)]
60801#[cfg_attr(
60802    not(target_arch = "arm"),
60803    stable(feature = "neon_intrinsics", since = "1.59.0")
60804)]
60805#[cfg_attr(
60806    target_arch = "arm",
60807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60808)]
60809pub fn vshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
60810    unsafe extern "unadjusted" {
60811        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i64")]
60812        #[cfg_attr(
60813            any(target_arch = "aarch64", target_arch = "arm64ec"),
60814            link_name = "llvm.aarch64.neon.ushl.v2i64"
60815        )]
60816        fn _vshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
60817    }
60818    unsafe { _vshlq_u64(a, b) }
60819}
60820#[doc = "Signed shift left long"]
60821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s16)"]
60822#[inline(always)]
60823#[target_feature(enable = "neon")]
60824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60825#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s16", N = 2))]
60826#[cfg_attr(
60827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60828    assert_instr(sshll, N = 2)
60829)]
60830#[rustc_legacy_const_generics(1)]
60831#[cfg_attr(
60832    not(target_arch = "arm"),
60833    stable(feature = "neon_intrinsics", since = "1.59.0")
60834)]
60835#[cfg_attr(
60836    target_arch = "arm",
60837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60838)]
60839pub fn vshll_n_s16<const N: i32>(a: int16x4_t) -> int32x4_t {
60840    static_assert!(N >= 0 && N <= 16);
60841    unsafe { simd_shl(simd_cast(a), vdupq_n_s32(N as _)) }
60842}
60843#[doc = "Signed shift left long"]
60844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s32)"]
60845#[inline(always)]
60846#[target_feature(enable = "neon")]
60847#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60848#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s32", N = 2))]
60849#[cfg_attr(
60850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60851    assert_instr(sshll, N = 2)
60852)]
60853#[rustc_legacy_const_generics(1)]
60854#[cfg_attr(
60855    not(target_arch = "arm"),
60856    stable(feature = "neon_intrinsics", since = "1.59.0")
60857)]
60858#[cfg_attr(
60859    target_arch = "arm",
60860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60861)]
60862pub fn vshll_n_s32<const N: i32>(a: int32x2_t) -> int64x2_t {
60863    static_assert!(N >= 0 && N <= 32);
60864    unsafe { simd_shl(simd_cast(a), vdupq_n_s64(N as _)) }
60865}
60866#[doc = "Signed shift left long"]
60867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s8)"]
60868#[inline(always)]
60869#[target_feature(enable = "neon")]
60870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60871#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s8", N = 2))]
60872#[cfg_attr(
60873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60874    assert_instr(sshll, N = 2)
60875)]
60876#[rustc_legacy_const_generics(1)]
60877#[cfg_attr(
60878    not(target_arch = "arm"),
60879    stable(feature = "neon_intrinsics", since = "1.59.0")
60880)]
60881#[cfg_attr(
60882    target_arch = "arm",
60883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60884)]
60885pub fn vshll_n_s8<const N: i32>(a: int8x8_t) -> int16x8_t {
60886    static_assert!(N >= 0 && N <= 8);
60887    unsafe { simd_shl(simd_cast(a), vdupq_n_s16(N as _)) }
60888}
60889#[doc = "Signed shift left long"]
60890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u16)"]
60891#[inline(always)]
60892#[target_feature(enable = "neon")]
60893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60894#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u16", N = 2))]
60895#[cfg_attr(
60896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60897    assert_instr(ushll, N = 2)
60898)]
60899#[rustc_legacy_const_generics(1)]
60900#[cfg_attr(
60901    not(target_arch = "arm"),
60902    stable(feature = "neon_intrinsics", since = "1.59.0")
60903)]
60904#[cfg_attr(
60905    target_arch = "arm",
60906    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60907)]
60908pub fn vshll_n_u16<const N: i32>(a: uint16x4_t) -> uint32x4_t {
60909    static_assert!(N >= 0 && N <= 16);
60910    unsafe { simd_shl(simd_cast(a), vdupq_n_u32(N as _)) }
60911}
60912#[doc = "Signed shift left long"]
60913#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u32)"]
60914#[inline(always)]
60915#[target_feature(enable = "neon")]
60916#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60917#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u32", N = 2))]
60918#[cfg_attr(
60919    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60920    assert_instr(ushll, N = 2)
60921)]
60922#[rustc_legacy_const_generics(1)]
60923#[cfg_attr(
60924    not(target_arch = "arm"),
60925    stable(feature = "neon_intrinsics", since = "1.59.0")
60926)]
60927#[cfg_attr(
60928    target_arch = "arm",
60929    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60930)]
60931pub fn vshll_n_u32<const N: i32>(a: uint32x2_t) -> uint64x2_t {
60932    static_assert!(N >= 0 && N <= 32);
60933    unsafe { simd_shl(simd_cast(a), vdupq_n_u64(N as _)) }
60934}
60935#[doc = "Signed shift left long"]
60936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u8)"]
60937#[inline(always)]
60938#[target_feature(enable = "neon")]
60939#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60940#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u8", N = 2))]
60941#[cfg_attr(
60942    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60943    assert_instr(ushll, N = 2)
60944)]
60945#[rustc_legacy_const_generics(1)]
60946#[cfg_attr(
60947    not(target_arch = "arm"),
60948    stable(feature = "neon_intrinsics", since = "1.59.0")
60949)]
60950#[cfg_attr(
60951    target_arch = "arm",
60952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60953)]
60954pub fn vshll_n_u8<const N: i32>(a: uint8x8_t) -> uint16x8_t {
60955    static_assert!(N >= 0 && N <= 8);
60956    unsafe { simd_shl(simd_cast(a), vdupq_n_u16(N as _)) }
60957}
60958#[doc = "Shift right"]
60959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s8)"]
60960#[inline(always)]
60961#[target_feature(enable = "neon")]
60962#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60963#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
60964#[cfg_attr(
60965    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60966    assert_instr(sshr, N = 2)
60967)]
60968#[rustc_legacy_const_generics(1)]
60969#[cfg_attr(
60970    not(target_arch = "arm"),
60971    stable(feature = "neon_intrinsics", since = "1.59.0")
60972)]
60973#[cfg_attr(
60974    target_arch = "arm",
60975    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60976)]
60977pub fn vshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
60978    static_assert!(N >= 1 && N <= 8);
60979    let n: i32 = if N == 8 { 7 } else { N };
60980    unsafe { simd_shr(a, vdup_n_s8(n as _)) }
60981}
60982#[doc = "Shift right"]
60983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s8)"]
60984#[inline(always)]
60985#[target_feature(enable = "neon")]
60986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60987#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
60988#[cfg_attr(
60989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60990    assert_instr(sshr, N = 2)
60991)]
60992#[rustc_legacy_const_generics(1)]
60993#[cfg_attr(
60994    not(target_arch = "arm"),
60995    stable(feature = "neon_intrinsics", since = "1.59.0")
60996)]
60997#[cfg_attr(
60998    target_arch = "arm",
60999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61000)]
61001pub fn vshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
61002    static_assert!(N >= 1 && N <= 8);
61003    let n: i32 = if N == 8 { 7 } else { N };
61004    unsafe { simd_shr(a, vdupq_n_s8(n as _)) }
61005}
61006#[doc = "Shift right"]
61007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s16)"]
61008#[inline(always)]
61009#[target_feature(enable = "neon")]
61010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61011#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
61012#[cfg_attr(
61013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61014    assert_instr(sshr, N = 2)
61015)]
61016#[rustc_legacy_const_generics(1)]
61017#[cfg_attr(
61018    not(target_arch = "arm"),
61019    stable(feature = "neon_intrinsics", since = "1.59.0")
61020)]
61021#[cfg_attr(
61022    target_arch = "arm",
61023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61024)]
61025pub fn vshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
61026    static_assert!(N >= 1 && N <= 16);
61027    let n: i32 = if N == 16 { 15 } else { N };
61028    unsafe { simd_shr(a, vdup_n_s16(n as _)) }
61029}
61030#[doc = "Shift right"]
61031#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s16)"]
61032#[inline(always)]
61033#[target_feature(enable = "neon")]
61034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61035#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
61036#[cfg_attr(
61037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61038    assert_instr(sshr, N = 2)
61039)]
61040#[rustc_legacy_const_generics(1)]
61041#[cfg_attr(
61042    not(target_arch = "arm"),
61043    stable(feature = "neon_intrinsics", since = "1.59.0")
61044)]
61045#[cfg_attr(
61046    target_arch = "arm",
61047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61048)]
61049pub fn vshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
61050    static_assert!(N >= 1 && N <= 16);
61051    let n: i32 = if N == 16 { 15 } else { N };
61052    unsafe { simd_shr(a, vdupq_n_s16(n as _)) }
61053}
61054#[doc = "Shift right"]
61055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s32)"]
61056#[inline(always)]
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("vshr.s32", N = 2))]
61060#[cfg_attr(
61061    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61062    assert_instr(sshr, N = 2)
61063)]
61064#[rustc_legacy_const_generics(1)]
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 vshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
61074    static_assert!(N >= 1 && N <= 32);
61075    let n: i32 = if N == 32 { 31 } else { N };
61076    unsafe { simd_shr(a, vdup_n_s32(n as _)) }
61077}
61078#[doc = "Shift right"]
61079#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s32)"]
61080#[inline(always)]
61081#[target_feature(enable = "neon")]
61082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61083#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s32", N = 2))]
61084#[cfg_attr(
61085    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61086    assert_instr(sshr, N = 2)
61087)]
61088#[rustc_legacy_const_generics(1)]
61089#[cfg_attr(
61090    not(target_arch = "arm"),
61091    stable(feature = "neon_intrinsics", since = "1.59.0")
61092)]
61093#[cfg_attr(
61094    target_arch = "arm",
61095    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61096)]
61097pub fn vshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
61098    static_assert!(N >= 1 && N <= 32);
61099    let n: i32 = if N == 32 { 31 } else { N };
61100    unsafe { simd_shr(a, vdupq_n_s32(n as _)) }
61101}
61102#[doc = "Shift right"]
61103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s64)"]
61104#[inline(always)]
61105#[target_feature(enable = "neon")]
61106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61107#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s64", N = 2))]
61108#[cfg_attr(
61109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61110    assert_instr(sshr, N = 2)
61111)]
61112#[rustc_legacy_const_generics(1)]
61113#[cfg_attr(
61114    not(target_arch = "arm"),
61115    stable(feature = "neon_intrinsics", since = "1.59.0")
61116)]
61117#[cfg_attr(
61118    target_arch = "arm",
61119    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61120)]
61121pub fn vshr_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
61122    static_assert!(N >= 1 && N <= 64);
61123    let n: i32 = if N == 64 { 63 } else { N };
61124    unsafe { simd_shr(a, vdup_n_s64(n as _)) }
61125}
61126#[doc = "Shift right"]
61127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s64)"]
61128#[inline(always)]
61129#[target_feature(enable = "neon")]
61130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61131#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s64", N = 2))]
61132#[cfg_attr(
61133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61134    assert_instr(sshr, N = 2)
61135)]
61136#[rustc_legacy_const_generics(1)]
61137#[cfg_attr(
61138    not(target_arch = "arm"),
61139    stable(feature = "neon_intrinsics", since = "1.59.0")
61140)]
61141#[cfg_attr(
61142    target_arch = "arm",
61143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61144)]
61145pub fn vshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
61146    static_assert!(N >= 1 && N <= 64);
61147    let n: i32 = if N == 64 { 63 } else { N };
61148    unsafe { simd_shr(a, vdupq_n_s64(n as _)) }
61149}
61150#[doc = "Shift right"]
61151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u8)"]
61152#[inline(always)]
61153#[target_feature(enable = "neon")]
61154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61155#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
61156#[cfg_attr(
61157    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61158    assert_instr(ushr, N = 2)
61159)]
61160#[rustc_legacy_const_generics(1)]
61161#[cfg_attr(
61162    not(target_arch = "arm"),
61163    stable(feature = "neon_intrinsics", since = "1.59.0")
61164)]
61165#[cfg_attr(
61166    target_arch = "arm",
61167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61168)]
61169pub fn vshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
61170    static_assert!(N >= 1 && N <= 8);
61171    let n: i32 = if N == 8 {
61172        return vdup_n_u8(0);
61173    } else {
61174        N
61175    };
61176    unsafe { simd_shr(a, vdup_n_u8(n as _)) }
61177}
61178#[doc = "Shift right"]
61179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u8)"]
61180#[inline(always)]
61181#[target_feature(enable = "neon")]
61182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61183#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
61184#[cfg_attr(
61185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61186    assert_instr(ushr, N = 2)
61187)]
61188#[rustc_legacy_const_generics(1)]
61189#[cfg_attr(
61190    not(target_arch = "arm"),
61191    stable(feature = "neon_intrinsics", since = "1.59.0")
61192)]
61193#[cfg_attr(
61194    target_arch = "arm",
61195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61196)]
61197pub fn vshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
61198    static_assert!(N >= 1 && N <= 8);
61199    let n: i32 = if N == 8 {
61200        return vdupq_n_u8(0);
61201    } else {
61202        N
61203    };
61204    unsafe { simd_shr(a, vdupq_n_u8(n as _)) }
61205}
61206#[doc = "Shift right"]
61207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u16)"]
61208#[inline(always)]
61209#[target_feature(enable = "neon")]
61210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61211#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
61212#[cfg_attr(
61213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61214    assert_instr(ushr, N = 2)
61215)]
61216#[rustc_legacy_const_generics(1)]
61217#[cfg_attr(
61218    not(target_arch = "arm"),
61219    stable(feature = "neon_intrinsics", since = "1.59.0")
61220)]
61221#[cfg_attr(
61222    target_arch = "arm",
61223    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61224)]
61225pub fn vshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
61226    static_assert!(N >= 1 && N <= 16);
61227    let n: i32 = if N == 16 {
61228        return vdup_n_u16(0);
61229    } else {
61230        N
61231    };
61232    unsafe { simd_shr(a, vdup_n_u16(n as _)) }
61233}
61234#[doc = "Shift right"]
61235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u16)"]
61236#[inline(always)]
61237#[target_feature(enable = "neon")]
61238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61239#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
61240#[cfg_attr(
61241    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61242    assert_instr(ushr, N = 2)
61243)]
61244#[rustc_legacy_const_generics(1)]
61245#[cfg_attr(
61246    not(target_arch = "arm"),
61247    stable(feature = "neon_intrinsics", since = "1.59.0")
61248)]
61249#[cfg_attr(
61250    target_arch = "arm",
61251    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61252)]
61253pub fn vshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
61254    static_assert!(N >= 1 && N <= 16);
61255    let n: i32 = if N == 16 {
61256        return vdupq_n_u16(0);
61257    } else {
61258        N
61259    };
61260    unsafe { simd_shr(a, vdupq_n_u16(n as _)) }
61261}
61262#[doc = "Shift right"]
61263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u32)"]
61264#[inline(always)]
61265#[target_feature(enable = "neon")]
61266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61267#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
61268#[cfg_attr(
61269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61270    assert_instr(ushr, N = 2)
61271)]
61272#[rustc_legacy_const_generics(1)]
61273#[cfg_attr(
61274    not(target_arch = "arm"),
61275    stable(feature = "neon_intrinsics", since = "1.59.0")
61276)]
61277#[cfg_attr(
61278    target_arch = "arm",
61279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61280)]
61281pub fn vshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
61282    static_assert!(N >= 1 && N <= 32);
61283    let n: i32 = if N == 32 {
61284        return vdup_n_u32(0);
61285    } else {
61286        N
61287    };
61288    unsafe { simd_shr(a, vdup_n_u32(n as _)) }
61289}
61290#[doc = "Shift right"]
61291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u32)"]
61292#[inline(always)]
61293#[target_feature(enable = "neon")]
61294#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61295#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
61296#[cfg_attr(
61297    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61298    assert_instr(ushr, N = 2)
61299)]
61300#[rustc_legacy_const_generics(1)]
61301#[cfg_attr(
61302    not(target_arch = "arm"),
61303    stable(feature = "neon_intrinsics", since = "1.59.0")
61304)]
61305#[cfg_attr(
61306    target_arch = "arm",
61307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61308)]
61309pub fn vshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
61310    static_assert!(N >= 1 && N <= 32);
61311    let n: i32 = if N == 32 {
61312        return vdupq_n_u32(0);
61313    } else {
61314        N
61315    };
61316    unsafe { simd_shr(a, vdupq_n_u32(n as _)) }
61317}
61318#[doc = "Shift right"]
61319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u64)"]
61320#[inline(always)]
61321#[target_feature(enable = "neon")]
61322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61323#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
61324#[cfg_attr(
61325    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61326    assert_instr(ushr, N = 2)
61327)]
61328#[rustc_legacy_const_generics(1)]
61329#[cfg_attr(
61330    not(target_arch = "arm"),
61331    stable(feature = "neon_intrinsics", since = "1.59.0")
61332)]
61333#[cfg_attr(
61334    target_arch = "arm",
61335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61336)]
61337pub fn vshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
61338    static_assert!(N >= 1 && N <= 64);
61339    let n: i32 = if N == 64 {
61340        return vdup_n_u64(0);
61341    } else {
61342        N
61343    };
61344    unsafe { simd_shr(a, vdup_n_u64(n as _)) }
61345}
61346#[doc = "Shift right"]
61347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u64)"]
61348#[inline(always)]
61349#[target_feature(enable = "neon")]
61350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61351#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
61352#[cfg_attr(
61353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61354    assert_instr(ushr, N = 2)
61355)]
61356#[rustc_legacy_const_generics(1)]
61357#[cfg_attr(
61358    not(target_arch = "arm"),
61359    stable(feature = "neon_intrinsics", since = "1.59.0")
61360)]
61361#[cfg_attr(
61362    target_arch = "arm",
61363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61364)]
61365pub fn vshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
61366    static_assert!(N >= 1 && N <= 64);
61367    let n: i32 = if N == 64 {
61368        return vdupq_n_u64(0);
61369    } else {
61370        N
61371    };
61372    unsafe { simd_shr(a, vdupq_n_u64(n as _)) }
61373}
61374#[doc = "Shift right narrow"]
61375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s16)"]
61376#[inline(always)]
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("vshrn.i16", N = 2))]
61380#[cfg_attr(
61381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61382    assert_instr(shrn, N = 2)
61383)]
61384#[rustc_legacy_const_generics(1)]
61385#[cfg_attr(
61386    not(target_arch = "arm"),
61387    stable(feature = "neon_intrinsics", since = "1.59.0")
61388)]
61389#[cfg_attr(
61390    target_arch = "arm",
61391    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61392)]
61393pub fn vshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
61394    static_assert!(N >= 1 && N <= 8);
61395    unsafe { simd_cast(simd_shr(a, vdupq_n_s16(N as _))) }
61396}
61397#[doc = "Shift right narrow"]
61398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s32)"]
61399#[inline(always)]
61400#[target_feature(enable = "neon")]
61401#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61402#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
61403#[cfg_attr(
61404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61405    assert_instr(shrn, N = 2)
61406)]
61407#[rustc_legacy_const_generics(1)]
61408#[cfg_attr(
61409    not(target_arch = "arm"),
61410    stable(feature = "neon_intrinsics", since = "1.59.0")
61411)]
61412#[cfg_attr(
61413    target_arch = "arm",
61414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61415)]
61416pub fn vshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
61417    static_assert!(N >= 1 && N <= 16);
61418    unsafe { simd_cast(simd_shr(a, vdupq_n_s32(N as _))) }
61419}
61420#[doc = "Shift right narrow"]
61421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s64)"]
61422#[inline(always)]
61423#[target_feature(enable = "neon")]
61424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61425#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
61426#[cfg_attr(
61427    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61428    assert_instr(shrn, N = 2)
61429)]
61430#[rustc_legacy_const_generics(1)]
61431#[cfg_attr(
61432    not(target_arch = "arm"),
61433    stable(feature = "neon_intrinsics", since = "1.59.0")
61434)]
61435#[cfg_attr(
61436    target_arch = "arm",
61437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61438)]
61439pub fn vshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
61440    static_assert!(N >= 1 && N <= 32);
61441    unsafe { simd_cast(simd_shr(a, vdupq_n_s64(N as _))) }
61442}
61443#[doc = "Shift right narrow"]
61444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u16)"]
61445#[inline(always)]
61446#[target_feature(enable = "neon")]
61447#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61448#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i16", N = 2))]
61449#[cfg_attr(
61450    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61451    assert_instr(shrn, N = 2)
61452)]
61453#[rustc_legacy_const_generics(1)]
61454#[cfg_attr(
61455    not(target_arch = "arm"),
61456    stable(feature = "neon_intrinsics", since = "1.59.0")
61457)]
61458#[cfg_attr(
61459    target_arch = "arm",
61460    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61461)]
61462pub fn vshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
61463    static_assert!(N >= 1 && N <= 8);
61464    unsafe { simd_cast(simd_shr(a, vdupq_n_u16(N as _))) }
61465}
61466#[doc = "Shift right narrow"]
61467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u32)"]
61468#[inline(always)]
61469#[target_feature(enable = "neon")]
61470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61471#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
61472#[cfg_attr(
61473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61474    assert_instr(shrn, N = 2)
61475)]
61476#[rustc_legacy_const_generics(1)]
61477#[cfg_attr(
61478    not(target_arch = "arm"),
61479    stable(feature = "neon_intrinsics", since = "1.59.0")
61480)]
61481#[cfg_attr(
61482    target_arch = "arm",
61483    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61484)]
61485pub fn vshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
61486    static_assert!(N >= 1 && N <= 16);
61487    unsafe { simd_cast(simd_shr(a, vdupq_n_u32(N as _))) }
61488}
61489#[doc = "Shift right narrow"]
61490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u64)"]
61491#[inline(always)]
61492#[target_feature(enable = "neon")]
61493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61494#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
61495#[cfg_attr(
61496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61497    assert_instr(shrn, N = 2)
61498)]
61499#[rustc_legacy_const_generics(1)]
61500#[cfg_attr(
61501    not(target_arch = "arm"),
61502    stable(feature = "neon_intrinsics", since = "1.59.0")
61503)]
61504#[cfg_attr(
61505    target_arch = "arm",
61506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61507)]
61508pub fn vshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
61509    static_assert!(N >= 1 && N <= 32);
61510    unsafe { simd_cast(simd_shr(a, vdupq_n_u64(N as _))) }
61511}
61512#[doc = "Shift Left and Insert (immediate)"]
61513#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s8)"]
61514#[inline(always)]
61515#[cfg(target_arch = "arm")]
61516#[target_feature(enable = "neon,v7")]
61517#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61518#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61519#[rustc_legacy_const_generics(2)]
61520pub fn vsli_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
61521    static_assert_uimm_bits!(N, 3);
61522    vshiftlins_v8i8::<N>(a, b)
61523}
61524#[doc = "Shift Left and Insert (immediate)"]
61525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s8)"]
61526#[inline(always)]
61527#[cfg(target_arch = "arm")]
61528#[target_feature(enable = "neon,v7")]
61529#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61530#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61531#[rustc_legacy_const_generics(2)]
61532pub fn vsliq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
61533    static_assert_uimm_bits!(N, 3);
61534    vshiftlins_v16i8::<N>(a, b)
61535}
61536#[doc = "Shift Left and Insert (immediate)"]
61537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s16)"]
61538#[inline(always)]
61539#[cfg(target_arch = "arm")]
61540#[target_feature(enable = "neon,v7")]
61541#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61542#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61543#[rustc_legacy_const_generics(2)]
61544pub fn vsli_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
61545    static_assert_uimm_bits!(N, 4);
61546    vshiftlins_v4i16::<N>(a, b)
61547}
61548#[doc = "Shift Left and Insert (immediate)"]
61549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s16)"]
61550#[inline(always)]
61551#[cfg(target_arch = "arm")]
61552#[target_feature(enable = "neon,v7")]
61553#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61554#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61555#[rustc_legacy_const_generics(2)]
61556pub fn vsliq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
61557    static_assert_uimm_bits!(N, 4);
61558    vshiftlins_v8i16::<N>(a, b)
61559}
61560#[doc = "Shift Left and Insert (immediate)"]
61561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s32)"]
61562#[inline(always)]
61563#[cfg(target_arch = "arm")]
61564#[target_feature(enable = "neon,v7")]
61565#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61566#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
61567#[rustc_legacy_const_generics(2)]
61568pub fn vsli_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
61569    static_assert!(N >= 0 && N <= 31);
61570    vshiftlins_v2i32::<N>(a, b)
61571}
61572#[doc = "Shift Left and Insert (immediate)"]
61573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s32)"]
61574#[inline(always)]
61575#[cfg(target_arch = "arm")]
61576#[target_feature(enable = "neon,v7")]
61577#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61578#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
61579#[rustc_legacy_const_generics(2)]
61580pub fn vsliq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
61581    static_assert!(N >= 0 && N <= 31);
61582    vshiftlins_v4i32::<N>(a, b)
61583}
61584#[doc = "Shift Left and Insert (immediate)"]
61585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s64)"]
61586#[inline(always)]
61587#[cfg(target_arch = "arm")]
61588#[target_feature(enable = "neon,v7")]
61589#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61590#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
61591#[rustc_legacy_const_generics(2)]
61592pub fn vsli_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
61593    static_assert!(N >= 0 && N <= 63);
61594    vshiftlins_v1i64::<N>(a, b)
61595}
61596#[doc = "Shift Left and Insert (immediate)"]
61597#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s64)"]
61598#[inline(always)]
61599#[cfg(target_arch = "arm")]
61600#[target_feature(enable = "neon,v7")]
61601#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61602#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
61603#[rustc_legacy_const_generics(2)]
61604pub fn vsliq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
61605    static_assert!(N >= 0 && N <= 63);
61606    vshiftlins_v2i64::<N>(a, b)
61607}
61608#[doc = "Shift Left and Insert (immediate)"]
61609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u8)"]
61610#[inline(always)]
61611#[cfg(target_arch = "arm")]
61612#[target_feature(enable = "neon,v7")]
61613#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61614#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61615#[rustc_legacy_const_generics(2)]
61616pub fn vsli_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
61617    static_assert_uimm_bits!(N, 3);
61618    unsafe { transmute(vshiftlins_v8i8::<N>(transmute(a), transmute(b))) }
61619}
61620#[doc = "Shift Left and Insert (immediate)"]
61621#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u8)"]
61622#[inline(always)]
61623#[cfg(target_arch = "arm")]
61624#[target_feature(enable = "neon,v7")]
61625#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61626#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61627#[rustc_legacy_const_generics(2)]
61628pub fn vsliq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
61629    static_assert_uimm_bits!(N, 3);
61630    unsafe { transmute(vshiftlins_v16i8::<N>(transmute(a), transmute(b))) }
61631}
61632#[doc = "Shift Left and Insert (immediate)"]
61633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u16)"]
61634#[inline(always)]
61635#[cfg(target_arch = "arm")]
61636#[target_feature(enable = "neon,v7")]
61637#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61638#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61639#[rustc_legacy_const_generics(2)]
61640pub fn vsli_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
61641    static_assert_uimm_bits!(N, 4);
61642    unsafe { transmute(vshiftlins_v4i16::<N>(transmute(a), transmute(b))) }
61643}
61644#[doc = "Shift Left and Insert (immediate)"]
61645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u16)"]
61646#[inline(always)]
61647#[cfg(target_arch = "arm")]
61648#[target_feature(enable = "neon,v7")]
61649#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61650#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61651#[rustc_legacy_const_generics(2)]
61652pub fn vsliq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
61653    static_assert_uimm_bits!(N, 4);
61654    unsafe { transmute(vshiftlins_v8i16::<N>(transmute(a), transmute(b))) }
61655}
61656#[doc = "Shift Left and Insert (immediate)"]
61657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u32)"]
61658#[inline(always)]
61659#[cfg(target_arch = "arm")]
61660#[target_feature(enable = "neon,v7")]
61661#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61662#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
61663#[rustc_legacy_const_generics(2)]
61664pub fn vsli_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
61665    static_assert!(N >= 0 && N <= 31);
61666    unsafe { transmute(vshiftlins_v2i32::<N>(transmute(a), transmute(b))) }
61667}
61668#[doc = "Shift Left and Insert (immediate)"]
61669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u32)"]
61670#[inline(always)]
61671#[cfg(target_arch = "arm")]
61672#[target_feature(enable = "neon,v7")]
61673#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61674#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
61675#[rustc_legacy_const_generics(2)]
61676pub fn vsliq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
61677    static_assert!(N >= 0 && N <= 31);
61678    unsafe { transmute(vshiftlins_v4i32::<N>(transmute(a), transmute(b))) }
61679}
61680#[doc = "Shift Left and Insert (immediate)"]
61681#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u64)"]
61682#[inline(always)]
61683#[cfg(target_arch = "arm")]
61684#[target_feature(enable = "neon,v7")]
61685#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61686#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
61687#[rustc_legacy_const_generics(2)]
61688pub fn vsli_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
61689    static_assert!(N >= 0 && N <= 63);
61690    unsafe { transmute(vshiftlins_v1i64::<N>(transmute(a), transmute(b))) }
61691}
61692#[doc = "Shift Left and Insert (immediate)"]
61693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u64)"]
61694#[inline(always)]
61695#[cfg(target_arch = "arm")]
61696#[target_feature(enable = "neon,v7")]
61697#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61698#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
61699#[rustc_legacy_const_generics(2)]
61700pub fn vsliq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
61701    static_assert!(N >= 0 && N <= 63);
61702    unsafe { transmute(vshiftlins_v2i64::<N>(transmute(a), transmute(b))) }
61703}
61704#[doc = "Shift Left and Insert (immediate)"]
61705#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_p8)"]
61706#[inline(always)]
61707#[cfg(target_arch = "arm")]
61708#[target_feature(enable = "neon,v7")]
61709#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61710#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61711#[rustc_legacy_const_generics(2)]
61712pub fn vsli_n_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
61713    static_assert_uimm_bits!(N, 3);
61714    unsafe { transmute(vshiftlins_v8i8::<N>(transmute(a), transmute(b))) }
61715}
61716#[doc = "Shift Left and Insert (immediate)"]
61717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_p8)"]
61718#[inline(always)]
61719#[cfg(target_arch = "arm")]
61720#[target_feature(enable = "neon,v7")]
61721#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61722#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61723#[rustc_legacy_const_generics(2)]
61724pub fn vsliq_n_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
61725    static_assert_uimm_bits!(N, 3);
61726    unsafe { transmute(vshiftlins_v16i8::<N>(transmute(a), transmute(b))) }
61727}
61728#[doc = "Shift Left and Insert (immediate)"]
61729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_p16)"]
61730#[inline(always)]
61731#[cfg(target_arch = "arm")]
61732#[target_feature(enable = "neon,v7")]
61733#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61734#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61735#[rustc_legacy_const_generics(2)]
61736pub fn vsli_n_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
61737    static_assert_uimm_bits!(N, 4);
61738    unsafe { transmute(vshiftlins_v4i16::<N>(transmute(a), transmute(b))) }
61739}
61740#[doc = "Shift Left and Insert (immediate)"]
61741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_p16)"]
61742#[inline(always)]
61743#[cfg(target_arch = "arm")]
61744#[target_feature(enable = "neon,v7")]
61745#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61746#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61747#[rustc_legacy_const_generics(2)]
61748pub fn vsliq_n_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
61749    static_assert_uimm_bits!(N, 4);
61750    unsafe { transmute(vshiftlins_v8i16::<N>(transmute(a), transmute(b))) }
61751}
61752#[doc = "Signed shift right and accumulate"]
61753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s8)"]
61754#[inline(always)]
61755#[target_feature(enable = "neon")]
61756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61758#[cfg_attr(
61759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61760    assert_instr(ssra, N = 2)
61761)]
61762#[rustc_legacy_const_generics(2)]
61763#[cfg_attr(
61764    not(target_arch = "arm"),
61765    stable(feature = "neon_intrinsics", since = "1.59.0")
61766)]
61767#[cfg_attr(
61768    target_arch = "arm",
61769    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61770)]
61771pub fn vsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
61772    static_assert!(N >= 1 && N <= 8);
61773    unsafe { simd_add(a, vshr_n_s8::<N>(b)) }
61774}
61775#[doc = "Signed shift right and accumulate"]
61776#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s8)"]
61777#[inline(always)]
61778#[target_feature(enable = "neon")]
61779#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61780#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61781#[cfg_attr(
61782    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61783    assert_instr(ssra, N = 2)
61784)]
61785#[rustc_legacy_const_generics(2)]
61786#[cfg_attr(
61787    not(target_arch = "arm"),
61788    stable(feature = "neon_intrinsics", since = "1.59.0")
61789)]
61790#[cfg_attr(
61791    target_arch = "arm",
61792    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61793)]
61794pub fn vsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
61795    static_assert!(N >= 1 && N <= 8);
61796    unsafe { simd_add(a, vshrq_n_s8::<N>(b)) }
61797}
61798#[doc = "Signed shift right and accumulate"]
61799#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s16)"]
61800#[inline(always)]
61801#[target_feature(enable = "neon")]
61802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61803#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61804#[cfg_attr(
61805    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61806    assert_instr(ssra, N = 2)
61807)]
61808#[rustc_legacy_const_generics(2)]
61809#[cfg_attr(
61810    not(target_arch = "arm"),
61811    stable(feature = "neon_intrinsics", since = "1.59.0")
61812)]
61813#[cfg_attr(
61814    target_arch = "arm",
61815    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61816)]
61817pub fn vsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
61818    static_assert!(N >= 1 && N <= 16);
61819    unsafe { simd_add(a, vshr_n_s16::<N>(b)) }
61820}
61821#[doc = "Signed shift right and accumulate"]
61822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s16)"]
61823#[inline(always)]
61824#[target_feature(enable = "neon")]
61825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61827#[cfg_attr(
61828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61829    assert_instr(ssra, N = 2)
61830)]
61831#[rustc_legacy_const_generics(2)]
61832#[cfg_attr(
61833    not(target_arch = "arm"),
61834    stable(feature = "neon_intrinsics", since = "1.59.0")
61835)]
61836#[cfg_attr(
61837    target_arch = "arm",
61838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61839)]
61840pub fn vsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
61841    static_assert!(N >= 1 && N <= 16);
61842    unsafe { simd_add(a, vshrq_n_s16::<N>(b)) }
61843}
61844#[doc = "Signed shift right and accumulate"]
61845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s32)"]
61846#[inline(always)]
61847#[target_feature(enable = "neon")]
61848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61850#[cfg_attr(
61851    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61852    assert_instr(ssra, N = 2)
61853)]
61854#[rustc_legacy_const_generics(2)]
61855#[cfg_attr(
61856    not(target_arch = "arm"),
61857    stable(feature = "neon_intrinsics", since = "1.59.0")
61858)]
61859#[cfg_attr(
61860    target_arch = "arm",
61861    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61862)]
61863pub fn vsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
61864    static_assert!(N >= 1 && N <= 32);
61865    unsafe { simd_add(a, vshr_n_s32::<N>(b)) }
61866}
61867#[doc = "Signed shift right and accumulate"]
61868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s32)"]
61869#[inline(always)]
61870#[target_feature(enable = "neon")]
61871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61873#[cfg_attr(
61874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61875    assert_instr(ssra, N = 2)
61876)]
61877#[rustc_legacy_const_generics(2)]
61878#[cfg_attr(
61879    not(target_arch = "arm"),
61880    stable(feature = "neon_intrinsics", since = "1.59.0")
61881)]
61882#[cfg_attr(
61883    target_arch = "arm",
61884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61885)]
61886pub fn vsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
61887    static_assert!(N >= 1 && N <= 32);
61888    unsafe { simd_add(a, vshrq_n_s32::<N>(b)) }
61889}
61890#[doc = "Signed shift right and accumulate"]
61891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s64)"]
61892#[inline(always)]
61893#[target_feature(enable = "neon")]
61894#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61895#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61896#[cfg_attr(
61897    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61898    assert_instr(ssra, N = 2)
61899)]
61900#[rustc_legacy_const_generics(2)]
61901#[cfg_attr(
61902    not(target_arch = "arm"),
61903    stable(feature = "neon_intrinsics", since = "1.59.0")
61904)]
61905#[cfg_attr(
61906    target_arch = "arm",
61907    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61908)]
61909pub fn vsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
61910    static_assert!(N >= 1 && N <= 64);
61911    unsafe { simd_add(a, vshr_n_s64::<N>(b)) }
61912}
61913#[doc = "Signed shift right and accumulate"]
61914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s64)"]
61915#[inline(always)]
61916#[target_feature(enable = "neon")]
61917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61918#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61919#[cfg_attr(
61920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61921    assert_instr(ssra, N = 2)
61922)]
61923#[rustc_legacy_const_generics(2)]
61924#[cfg_attr(
61925    not(target_arch = "arm"),
61926    stable(feature = "neon_intrinsics", since = "1.59.0")
61927)]
61928#[cfg_attr(
61929    target_arch = "arm",
61930    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61931)]
61932pub fn vsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
61933    static_assert!(N >= 1 && N <= 64);
61934    unsafe { simd_add(a, vshrq_n_s64::<N>(b)) }
61935}
61936#[doc = "Unsigned shift right and accumulate"]
61937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u8)"]
61938#[inline(always)]
61939#[target_feature(enable = "neon")]
61940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61942#[cfg_attr(
61943    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61944    assert_instr(usra, N = 2)
61945)]
61946#[rustc_legacy_const_generics(2)]
61947#[cfg_attr(
61948    not(target_arch = "arm"),
61949    stable(feature = "neon_intrinsics", since = "1.59.0")
61950)]
61951#[cfg_attr(
61952    target_arch = "arm",
61953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61954)]
61955pub fn vsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
61956    static_assert!(N >= 1 && N <= 8);
61957    unsafe { simd_add(a, vshr_n_u8::<N>(b)) }
61958}
61959#[doc = "Unsigned shift right and accumulate"]
61960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u8)"]
61961#[inline(always)]
61962#[target_feature(enable = "neon")]
61963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61964#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61965#[cfg_attr(
61966    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61967    assert_instr(usra, N = 2)
61968)]
61969#[rustc_legacy_const_generics(2)]
61970#[cfg_attr(
61971    not(target_arch = "arm"),
61972    stable(feature = "neon_intrinsics", since = "1.59.0")
61973)]
61974#[cfg_attr(
61975    target_arch = "arm",
61976    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61977)]
61978pub fn vsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
61979    static_assert!(N >= 1 && N <= 8);
61980    unsafe { simd_add(a, vshrq_n_u8::<N>(b)) }
61981}
61982#[doc = "Unsigned shift right and accumulate"]
61983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u16)"]
61984#[inline(always)]
61985#[target_feature(enable = "neon")]
61986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61988#[cfg_attr(
61989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61990    assert_instr(usra, N = 2)
61991)]
61992#[rustc_legacy_const_generics(2)]
61993#[cfg_attr(
61994    not(target_arch = "arm"),
61995    stable(feature = "neon_intrinsics", since = "1.59.0")
61996)]
61997#[cfg_attr(
61998    target_arch = "arm",
61999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62000)]
62001pub fn vsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
62002    static_assert!(N >= 1 && N <= 16);
62003    unsafe { simd_add(a, vshr_n_u16::<N>(b)) }
62004}
62005#[doc = "Unsigned shift right and accumulate"]
62006#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u16)"]
62007#[inline(always)]
62008#[target_feature(enable = "neon")]
62009#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62011#[cfg_attr(
62012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62013    assert_instr(usra, N = 2)
62014)]
62015#[rustc_legacy_const_generics(2)]
62016#[cfg_attr(
62017    not(target_arch = "arm"),
62018    stable(feature = "neon_intrinsics", since = "1.59.0")
62019)]
62020#[cfg_attr(
62021    target_arch = "arm",
62022    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62023)]
62024pub fn vsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
62025    static_assert!(N >= 1 && N <= 16);
62026    unsafe { simd_add(a, vshrq_n_u16::<N>(b)) }
62027}
62028#[doc = "Unsigned shift right and accumulate"]
62029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u32)"]
62030#[inline(always)]
62031#[target_feature(enable = "neon")]
62032#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62033#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62034#[cfg_attr(
62035    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62036    assert_instr(usra, N = 2)
62037)]
62038#[rustc_legacy_const_generics(2)]
62039#[cfg_attr(
62040    not(target_arch = "arm"),
62041    stable(feature = "neon_intrinsics", since = "1.59.0")
62042)]
62043#[cfg_attr(
62044    target_arch = "arm",
62045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62046)]
62047pub fn vsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
62048    static_assert!(N >= 1 && N <= 32);
62049    unsafe { simd_add(a, vshr_n_u32::<N>(b)) }
62050}
62051#[doc = "Unsigned shift right and accumulate"]
62052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u32)"]
62053#[inline(always)]
62054#[target_feature(enable = "neon")]
62055#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62056#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62057#[cfg_attr(
62058    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62059    assert_instr(usra, N = 2)
62060)]
62061#[rustc_legacy_const_generics(2)]
62062#[cfg_attr(
62063    not(target_arch = "arm"),
62064    stable(feature = "neon_intrinsics", since = "1.59.0")
62065)]
62066#[cfg_attr(
62067    target_arch = "arm",
62068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62069)]
62070pub fn vsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
62071    static_assert!(N >= 1 && N <= 32);
62072    unsafe { simd_add(a, vshrq_n_u32::<N>(b)) }
62073}
62074#[doc = "Unsigned shift right and accumulate"]
62075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u64)"]
62076#[inline(always)]
62077#[target_feature(enable = "neon")]
62078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62080#[cfg_attr(
62081    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62082    assert_instr(usra, N = 2)
62083)]
62084#[rustc_legacy_const_generics(2)]
62085#[cfg_attr(
62086    not(target_arch = "arm"),
62087    stable(feature = "neon_intrinsics", since = "1.59.0")
62088)]
62089#[cfg_attr(
62090    target_arch = "arm",
62091    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62092)]
62093pub fn vsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
62094    static_assert!(N >= 1 && N <= 64);
62095    unsafe { simd_add(a, vshr_n_u64::<N>(b)) }
62096}
62097#[doc = "Unsigned shift right and accumulate"]
62098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u64)"]
62099#[inline(always)]
62100#[target_feature(enable = "neon")]
62101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62103#[cfg_attr(
62104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62105    assert_instr(usra, N = 2)
62106)]
62107#[rustc_legacy_const_generics(2)]
62108#[cfg_attr(
62109    not(target_arch = "arm"),
62110    stable(feature = "neon_intrinsics", since = "1.59.0")
62111)]
62112#[cfg_attr(
62113    target_arch = "arm",
62114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62115)]
62116pub fn vsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
62117    static_assert!(N >= 1 && N <= 64);
62118    unsafe { simd_add(a, vshrq_n_u64::<N>(b)) }
62119}
62120#[doc = "Shift Right and Insert (immediate)"]
62121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s8)"]
62122#[inline(always)]
62123#[target_feature(enable = "neon,v7")]
62124#[cfg(target_arch = "arm")]
62125#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62126#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62127#[rustc_legacy_const_generics(2)]
62128pub fn vsri_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
62129    static_assert!(1 <= N && N <= 8);
62130    vshiftrins_v8i8::<N>(a, b)
62131}
62132#[doc = "Shift Right and Insert (immediate)"]
62133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s8)"]
62134#[inline(always)]
62135#[target_feature(enable = "neon,v7")]
62136#[cfg(target_arch = "arm")]
62137#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62138#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62139#[rustc_legacy_const_generics(2)]
62140pub fn vsriq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
62141    static_assert!(1 <= N && N <= 8);
62142    vshiftrins_v16i8::<N>(a, b)
62143}
62144#[doc = "Shift Right and Insert (immediate)"]
62145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s16)"]
62146#[inline(always)]
62147#[target_feature(enable = "neon,v7")]
62148#[cfg(target_arch = "arm")]
62149#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62150#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62151#[rustc_legacy_const_generics(2)]
62152pub fn vsri_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
62153    static_assert!(1 <= N && N <= 16);
62154    vshiftrins_v4i16::<N>(a, b)
62155}
62156#[doc = "Shift Right and Insert (immediate)"]
62157#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s16)"]
62158#[inline(always)]
62159#[target_feature(enable = "neon,v7")]
62160#[cfg(target_arch = "arm")]
62161#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62162#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62163#[rustc_legacy_const_generics(2)]
62164pub fn vsriq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
62165    static_assert!(1 <= N && N <= 16);
62166    vshiftrins_v8i16::<N>(a, b)
62167}
62168#[doc = "Shift Right and Insert (immediate)"]
62169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s32)"]
62170#[inline(always)]
62171#[target_feature(enable = "neon,v7")]
62172#[cfg(target_arch = "arm")]
62173#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62174#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
62175#[rustc_legacy_const_generics(2)]
62176pub fn vsri_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
62177    static_assert!(1 <= N && N <= 32);
62178    vshiftrins_v2i32::<N>(a, b)
62179}
62180#[doc = "Shift Right and Insert (immediate)"]
62181#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s32)"]
62182#[inline(always)]
62183#[target_feature(enable = "neon,v7")]
62184#[cfg(target_arch = "arm")]
62185#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62186#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
62187#[rustc_legacy_const_generics(2)]
62188pub fn vsriq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
62189    static_assert!(1 <= N && N <= 32);
62190    vshiftrins_v4i32::<N>(a, b)
62191}
62192#[doc = "Shift Right and Insert (immediate)"]
62193#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s64)"]
62194#[inline(always)]
62195#[target_feature(enable = "neon,v7")]
62196#[cfg(target_arch = "arm")]
62197#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62198#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
62199#[rustc_legacy_const_generics(2)]
62200pub fn vsri_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
62201    static_assert!(1 <= N && N <= 64);
62202    vshiftrins_v1i64::<N>(a, b)
62203}
62204#[doc = "Shift Right and Insert (immediate)"]
62205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s64)"]
62206#[inline(always)]
62207#[target_feature(enable = "neon,v7")]
62208#[cfg(target_arch = "arm")]
62209#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62210#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
62211#[rustc_legacy_const_generics(2)]
62212pub fn vsriq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
62213    static_assert!(1 <= N && N <= 64);
62214    vshiftrins_v2i64::<N>(a, b)
62215}
62216#[doc = "Shift Right and Insert (immediate)"]
62217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u8)"]
62218#[inline(always)]
62219#[cfg(target_arch = "arm")]
62220#[target_feature(enable = "neon,v7")]
62221#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62222#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62223#[rustc_legacy_const_generics(2)]
62224pub fn vsri_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
62225    static_assert!(1 <= N && N <= 8);
62226    unsafe { transmute(vshiftrins_v8i8::<N>(transmute(a), transmute(b))) }
62227}
62228#[doc = "Shift Right and Insert (immediate)"]
62229#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u8)"]
62230#[inline(always)]
62231#[cfg(target_arch = "arm")]
62232#[target_feature(enable = "neon,v7")]
62233#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62234#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62235#[rustc_legacy_const_generics(2)]
62236pub fn vsriq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
62237    static_assert!(1 <= N && N <= 8);
62238    unsafe { transmute(vshiftrins_v16i8::<N>(transmute(a), transmute(b))) }
62239}
62240#[doc = "Shift Right and Insert (immediate)"]
62241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u16)"]
62242#[inline(always)]
62243#[cfg(target_arch = "arm")]
62244#[target_feature(enable = "neon,v7")]
62245#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62246#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62247#[rustc_legacy_const_generics(2)]
62248pub fn vsri_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
62249    static_assert!(1 <= N && N <= 16);
62250    unsafe { transmute(vshiftrins_v4i16::<N>(transmute(a), transmute(b))) }
62251}
62252#[doc = "Shift Right and Insert (immediate)"]
62253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u16)"]
62254#[inline(always)]
62255#[cfg(target_arch = "arm")]
62256#[target_feature(enable = "neon,v7")]
62257#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62258#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62259#[rustc_legacy_const_generics(2)]
62260pub fn vsriq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
62261    static_assert!(1 <= N && N <= 16);
62262    unsafe { transmute(vshiftrins_v8i16::<N>(transmute(a), transmute(b))) }
62263}
62264#[doc = "Shift Right and Insert (immediate)"]
62265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u32)"]
62266#[inline(always)]
62267#[cfg(target_arch = "arm")]
62268#[target_feature(enable = "neon,v7")]
62269#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62270#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
62271#[rustc_legacy_const_generics(2)]
62272pub fn vsri_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
62273    static_assert!(1 <= N && N <= 32);
62274    unsafe { transmute(vshiftrins_v2i32::<N>(transmute(a), transmute(b))) }
62275}
62276#[doc = "Shift Right and Insert (immediate)"]
62277#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u32)"]
62278#[inline(always)]
62279#[cfg(target_arch = "arm")]
62280#[target_feature(enable = "neon,v7")]
62281#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62282#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
62283#[rustc_legacy_const_generics(2)]
62284pub fn vsriq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
62285    static_assert!(1 <= N && N <= 32);
62286    unsafe { transmute(vshiftrins_v4i32::<N>(transmute(a), transmute(b))) }
62287}
62288#[doc = "Shift Right and Insert (immediate)"]
62289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u64)"]
62290#[inline(always)]
62291#[cfg(target_arch = "arm")]
62292#[target_feature(enable = "neon,v7")]
62293#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62294#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
62295#[rustc_legacy_const_generics(2)]
62296pub fn vsri_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
62297    static_assert!(1 <= N && N <= 64);
62298    unsafe { transmute(vshiftrins_v1i64::<N>(transmute(a), transmute(b))) }
62299}
62300#[doc = "Shift Right and Insert (immediate)"]
62301#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u64)"]
62302#[inline(always)]
62303#[cfg(target_arch = "arm")]
62304#[target_feature(enable = "neon,v7")]
62305#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62306#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
62307#[rustc_legacy_const_generics(2)]
62308pub fn vsriq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
62309    static_assert!(1 <= N && N <= 64);
62310    unsafe { transmute(vshiftrins_v2i64::<N>(transmute(a), transmute(b))) }
62311}
62312#[doc = "Shift Right and Insert (immediate)"]
62313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_p8)"]
62314#[inline(always)]
62315#[cfg(target_arch = "arm")]
62316#[target_feature(enable = "neon,v7")]
62317#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62318#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62319#[rustc_legacy_const_generics(2)]
62320pub fn vsri_n_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
62321    static_assert!(1 <= N && N <= 8);
62322    unsafe { transmute(vshiftrins_v8i8::<N>(transmute(a), transmute(b))) }
62323}
62324#[doc = "Shift Right and Insert (immediate)"]
62325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_p8)"]
62326#[inline(always)]
62327#[cfg(target_arch = "arm")]
62328#[target_feature(enable = "neon,v7")]
62329#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62330#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62331#[rustc_legacy_const_generics(2)]
62332pub fn vsriq_n_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
62333    static_assert!(1 <= N && N <= 8);
62334    unsafe { transmute(vshiftrins_v16i8::<N>(transmute(a), transmute(b))) }
62335}
62336#[doc = "Shift Right and Insert (immediate)"]
62337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_p16)"]
62338#[inline(always)]
62339#[cfg(target_arch = "arm")]
62340#[target_feature(enable = "neon,v7")]
62341#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62342#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62343#[rustc_legacy_const_generics(2)]
62344pub fn vsri_n_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
62345    static_assert!(1 <= N && N <= 16);
62346    unsafe { transmute(vshiftrins_v4i16::<N>(transmute(a), transmute(b))) }
62347}
62348#[doc = "Shift Right and Insert (immediate)"]
62349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_p16)"]
62350#[inline(always)]
62351#[cfg(target_arch = "arm")]
62352#[target_feature(enable = "neon,v7")]
62353#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62354#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62355#[rustc_legacy_const_generics(2)]
62356pub fn vsriq_n_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
62357    static_assert!(1 <= N && N <= 16);
62358    unsafe { transmute(vshiftrins_v8i16::<N>(transmute(a), transmute(b))) }
62359}
62360#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16)"]
62362#[doc = "## Safety"]
62363#[doc = "  * Neon intrinsic unsafe"]
62364#[inline(always)]
62365#[cfg(target_arch = "arm")]
62366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62367#[target_feature(enable = "neon,fp16")]
62368#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62369#[cfg(not(target_arch = "arm64ec"))]
62370#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62371pub unsafe fn vst1_f16(ptr: *mut f16, a: float16x4_t) {
62372    vst1_v4f16(
62373        ptr as *const i8,
62374        transmute(a),
62375        crate::mem::align_of::<f16>() as i32,
62376    )
62377}
62378#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16)"]
62380#[doc = "## Safety"]
62381#[doc = "  * Neon intrinsic unsafe"]
62382#[inline(always)]
62383#[cfg(target_arch = "arm")]
62384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62385#[target_feature(enable = "neon,fp16")]
62386#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62387#[cfg(not(target_arch = "arm64ec"))]
62388#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62389pub unsafe fn vst1q_f16(ptr: *mut f16, a: float16x8_t) {
62390    vst1q_v8f16(
62391        ptr as *const i8,
62392        transmute(a),
62393        crate::mem::align_of::<f16>() as i32,
62394    )
62395}
62396#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62397#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x2)"]
62398#[doc = "## Safety"]
62399#[doc = "  * Neon intrinsic unsafe"]
62400#[inline(always)]
62401#[cfg(target_arch = "arm")]
62402#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62403#[cfg_attr(test, assert_instr(vst1))]
62404#[target_feature(enable = "neon,fp16")]
62405#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62406#[cfg(not(target_arch = "arm64ec"))]
62407pub unsafe fn vst1_f16_x2(a: *mut f16, b: float16x4x2_t) {
62408    unsafe extern "unadjusted" {
62409        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0.v4f16")]
62410        fn _vst1_f16_x2(ptr: *mut f16, a: float16x4_t, b: float16x4_t);
62411    }
62412    _vst1_f16_x2(a, b.0, b.1)
62413}
62414#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x2)"]
62416#[doc = "## Safety"]
62417#[doc = "  * Neon intrinsic unsafe"]
62418#[inline(always)]
62419#[cfg(target_arch = "arm")]
62420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62421#[cfg_attr(test, assert_instr(vst1))]
62422#[target_feature(enable = "neon,fp16")]
62423#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62424#[cfg(not(target_arch = "arm64ec"))]
62425pub unsafe fn vst1q_f16_x2(a: *mut f16, b: float16x8x2_t) {
62426    unsafe extern "unadjusted" {
62427        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0.v8f16")]
62428        fn _vst1q_f16_x2(ptr: *mut f16, a: float16x8_t, b: float16x8_t);
62429    }
62430    _vst1q_f16_x2(a, b.0, b.1)
62431}
62432#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x2)"]
62434#[doc = "## Safety"]
62435#[doc = "  * Neon intrinsic unsafe"]
62436#[inline(always)]
62437#[cfg(not(target_arch = "arm"))]
62438#[cfg_attr(test, assert_instr(st1))]
62439#[target_feature(enable = "neon,fp16")]
62440#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62441#[cfg(not(target_arch = "arm64ec"))]
62442pub unsafe fn vst1_f16_x2(a: *mut f16, b: float16x4x2_t) {
62443    unsafe extern "unadjusted" {
62444        #[cfg_attr(
62445            any(target_arch = "aarch64", target_arch = "arm64ec"),
62446            link_name = "llvm.aarch64.neon.st1x2.v4f16.p0"
62447        )]
62448        fn _vst1_f16_x2(a: float16x4_t, b: float16x4_t, ptr: *mut f16);
62449    }
62450    _vst1_f16_x2(b.0, b.1, a)
62451}
62452#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62453#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x2)"]
62454#[doc = "## Safety"]
62455#[doc = "  * Neon intrinsic unsafe"]
62456#[inline(always)]
62457#[cfg(not(target_arch = "arm"))]
62458#[cfg_attr(test, assert_instr(st1))]
62459#[target_feature(enable = "neon,fp16")]
62460#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62461#[cfg(not(target_arch = "arm64ec"))]
62462pub unsafe fn vst1q_f16_x2(a: *mut f16, b: float16x8x2_t) {
62463    unsafe extern "unadjusted" {
62464        #[cfg_attr(
62465            any(target_arch = "aarch64", target_arch = "arm64ec"),
62466            link_name = "llvm.aarch64.neon.st1x2.v8f16.p0"
62467        )]
62468        fn _vst1q_f16_x2(a: float16x8_t, b: float16x8_t, ptr: *mut f16);
62469    }
62470    _vst1q_f16_x2(b.0, b.1, a)
62471}
62472#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x3)"]
62474#[doc = "## Safety"]
62475#[doc = "  * Neon intrinsic unsafe"]
62476#[inline(always)]
62477#[cfg(target_arch = "arm")]
62478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62479#[cfg_attr(test, assert_instr(vst1))]
62480#[target_feature(enable = "neon,fp16")]
62481#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62482#[cfg(not(target_arch = "arm64ec"))]
62483pub unsafe fn vst1_f16_x3(a: *mut f16, b: float16x4x3_t) {
62484    unsafe extern "unadjusted" {
62485        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4f16")]
62486        fn _vst1_f16_x3(ptr: *mut f16, a: float16x4_t, b: float16x4_t, c: float16x4_t);
62487    }
62488    _vst1_f16_x3(a, b.0, b.1, b.2)
62489}
62490#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x3)"]
62492#[doc = "## Safety"]
62493#[doc = "  * Neon intrinsic unsafe"]
62494#[inline(always)]
62495#[cfg(target_arch = "arm")]
62496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62497#[cfg_attr(test, assert_instr(vst1))]
62498#[target_feature(enable = "neon,fp16")]
62499#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62500#[cfg(not(target_arch = "arm64ec"))]
62501pub unsafe fn vst1q_f16_x3(a: *mut f16, b: float16x8x3_t) {
62502    unsafe extern "unadjusted" {
62503        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8f16")]
62504        fn _vst1q_f16_x3(ptr: *mut f16, a: float16x8_t, b: float16x8_t, c: float16x8_t);
62505    }
62506    _vst1q_f16_x3(a, b.0, b.1, b.2)
62507}
62508#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x3)"]
62510#[doc = "## Safety"]
62511#[doc = "  * Neon intrinsic unsafe"]
62512#[inline(always)]
62513#[cfg(not(target_arch = "arm"))]
62514#[cfg_attr(test, assert_instr(st1))]
62515#[target_feature(enable = "neon,fp16")]
62516#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62517#[cfg(not(target_arch = "arm64ec"))]
62518pub unsafe fn vst1_f16_x3(a: *mut f16, b: float16x4x3_t) {
62519    unsafe extern "unadjusted" {
62520        #[cfg_attr(
62521            any(target_arch = "aarch64", target_arch = "arm64ec"),
62522            link_name = "llvm.aarch64.neon.st1x3.v4f16.p0"
62523        )]
62524        fn _vst1_f16_x3(a: float16x4_t, b: float16x4_t, c: float16x4_t, ptr: *mut f16);
62525    }
62526    _vst1_f16_x3(b.0, b.1, b.2, a)
62527}
62528#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x3)"]
62530#[doc = "## Safety"]
62531#[doc = "  * Neon intrinsic unsafe"]
62532#[inline(always)]
62533#[cfg(not(target_arch = "arm"))]
62534#[cfg_attr(test, assert_instr(st1))]
62535#[target_feature(enable = "neon,fp16")]
62536#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62537#[cfg(not(target_arch = "arm64ec"))]
62538pub unsafe fn vst1q_f16_x3(a: *mut f16, b: float16x8x3_t) {
62539    unsafe extern "unadjusted" {
62540        #[cfg_attr(
62541            any(target_arch = "aarch64", target_arch = "arm64ec"),
62542            link_name = "llvm.aarch64.neon.st1x3.v8f16.p0"
62543        )]
62544        fn _vst1q_f16_x3(a: float16x8_t, b: float16x8_t, c: float16x8_t, ptr: *mut f16);
62545    }
62546    _vst1q_f16_x3(b.0, b.1, b.2, a)
62547}
62548#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x4)"]
62550#[doc = "## Safety"]
62551#[doc = "  * Neon intrinsic unsafe"]
62552#[inline(always)]
62553#[target_feature(enable = "neon")]
62554#[cfg(target_arch = "arm")]
62555#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62556#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
62557#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62558#[cfg(not(target_arch = "arm64ec"))]
62559#[cfg_attr(test, assert_instr(vst1))]
62560pub unsafe fn vst1_f16_x4(a: *mut f16, b: float16x4x4_t) {
62561    unsafe extern "unadjusted" {
62562        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4f16")]
62563        fn _vst1_f16_x4(
62564            ptr: *mut f16,
62565            a: float16x4_t,
62566            b: float16x4_t,
62567            c: float16x4_t,
62568            d: float16x4_t,
62569        );
62570    }
62571    _vst1_f16_x4(a, b.0, b.1, b.2, b.3)
62572}
62573#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62574#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x4)"]
62575#[doc = "## Safety"]
62576#[doc = "  * Neon intrinsic unsafe"]
62577#[inline(always)]
62578#[target_feature(enable = "neon")]
62579#[cfg(target_arch = "arm")]
62580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62581#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
62582#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62583#[cfg(not(target_arch = "arm64ec"))]
62584#[cfg_attr(test, assert_instr(vst1))]
62585pub unsafe fn vst1q_f16_x4(a: *mut f16, b: float16x8x4_t) {
62586    unsafe extern "unadjusted" {
62587        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8f16")]
62588        fn _vst1q_f16_x4(
62589            ptr: *mut f16,
62590            a: float16x8_t,
62591            b: float16x8_t,
62592            c: float16x8_t,
62593            d: float16x8_t,
62594        );
62595    }
62596    _vst1q_f16_x4(a, b.0, b.1, b.2, b.3)
62597}
62598#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x4)"]
62600#[doc = "## Safety"]
62601#[doc = "  * Neon intrinsic unsafe"]
62602#[inline(always)]
62603#[cfg(not(target_arch = "arm"))]
62604#[cfg_attr(test, assert_instr(st1))]
62605#[target_feature(enable = "neon,fp16")]
62606#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62607#[cfg(not(target_arch = "arm64ec"))]
62608pub unsafe fn vst1_f16_x4(a: *mut f16, b: float16x4x4_t) {
62609    unsafe extern "unadjusted" {
62610        #[cfg_attr(
62611            any(target_arch = "aarch64", target_arch = "arm64ec"),
62612            link_name = "llvm.aarch64.neon.st1x4.v4f16.p0"
62613        )]
62614        fn _vst1_f16_x4(
62615            a: float16x4_t,
62616            b: float16x4_t,
62617            c: float16x4_t,
62618            d: float16x4_t,
62619            ptr: *mut f16,
62620        );
62621    }
62622    _vst1_f16_x4(b.0, b.1, b.2, b.3, a)
62623}
62624#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62625#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x4)"]
62626#[doc = "## Safety"]
62627#[doc = "  * Neon intrinsic unsafe"]
62628#[inline(always)]
62629#[cfg(not(target_arch = "arm"))]
62630#[cfg_attr(test, assert_instr(st1))]
62631#[target_feature(enable = "neon,fp16")]
62632#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62633#[cfg(not(target_arch = "arm64ec"))]
62634pub unsafe fn vst1q_f16_x4(a: *mut f16, b: float16x8x4_t) {
62635    unsafe extern "unadjusted" {
62636        #[cfg_attr(
62637            any(target_arch = "aarch64", target_arch = "arm64ec"),
62638            link_name = "llvm.aarch64.neon.st1x4.v8f16.p0"
62639        )]
62640        fn _vst1q_f16_x4(
62641            a: float16x8_t,
62642            b: float16x8_t,
62643            c: float16x8_t,
62644            d: float16x8_t,
62645            ptr: *mut f16,
62646        );
62647    }
62648    _vst1q_f16_x4(b.0, b.1, b.2, b.3, a)
62649}
62650#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32)"]
62652#[doc = "## Safety"]
62653#[doc = "  * Neon intrinsic unsafe"]
62654#[inline(always)]
62655#[target_feature(enable = "neon")]
62656#[cfg(target_arch = "arm")]
62657#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62658#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62659#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62660pub unsafe fn vst1_f32(ptr: *mut f32, a: float32x2_t) {
62661    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
62662    vst1_v2f32::<ALIGN>(ptr as *const i8, transmute(a))
62663}
62664#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32)"]
62666#[doc = "## Safety"]
62667#[doc = "  * Neon intrinsic unsafe"]
62668#[inline(always)]
62669#[target_feature(enable = "neon")]
62670#[cfg(target_arch = "arm")]
62671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62672#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62673#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62674pub unsafe fn vst1q_f32(ptr: *mut f32, a: float32x4_t) {
62675    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
62676    vst1q_v4f32::<ALIGN>(ptr as *const i8, transmute(a))
62677}
62678#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62679#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8)"]
62680#[doc = "## Safety"]
62681#[doc = "  * Neon intrinsic unsafe"]
62682#[inline(always)]
62683#[target_feature(enable = "neon")]
62684#[cfg(target_arch = "arm")]
62685#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62686#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62687#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62688pub unsafe fn vst1_s8(ptr: *mut i8, a: int8x8_t) {
62689    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
62690    vst1_v8i8::<ALIGN>(ptr as *const i8, a)
62691}
62692#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8)"]
62694#[doc = "## Safety"]
62695#[doc = "  * Neon intrinsic unsafe"]
62696#[inline(always)]
62697#[target_feature(enable = "neon")]
62698#[cfg(target_arch = "arm")]
62699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62700#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62701#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62702pub unsafe fn vst1q_s8(ptr: *mut i8, a: int8x16_t) {
62703    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
62704    vst1q_v16i8::<ALIGN>(ptr as *const i8, a)
62705}
62706#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16)"]
62708#[doc = "## Safety"]
62709#[doc = "  * Neon intrinsic unsafe"]
62710#[inline(always)]
62711#[target_feature(enable = "neon")]
62712#[cfg(target_arch = "arm")]
62713#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62714#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62715#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62716pub unsafe fn vst1_s16(ptr: *mut i16, a: int16x4_t) {
62717    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
62718    vst1_v4i16::<ALIGN>(ptr as *const i8, a)
62719}
62720#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62721#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16)"]
62722#[doc = "## Safety"]
62723#[doc = "  * Neon intrinsic unsafe"]
62724#[inline(always)]
62725#[target_feature(enable = "neon")]
62726#[cfg(target_arch = "arm")]
62727#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62728#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62729#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62730pub unsafe fn vst1q_s16(ptr: *mut i16, a: int16x8_t) {
62731    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
62732    vst1q_v8i16::<ALIGN>(ptr as *const i8, a)
62733}
62734#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32)"]
62736#[doc = "## Safety"]
62737#[doc = "  * Neon intrinsic unsafe"]
62738#[inline(always)]
62739#[target_feature(enable = "neon")]
62740#[cfg(target_arch = "arm")]
62741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62742#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62743#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62744pub unsafe fn vst1_s32(ptr: *mut i32, a: int32x2_t) {
62745    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
62746    vst1_v2i32::<ALIGN>(ptr as *const i8, a)
62747}
62748#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32)"]
62750#[doc = "## Safety"]
62751#[doc = "  * Neon intrinsic unsafe"]
62752#[inline(always)]
62753#[target_feature(enable = "neon")]
62754#[cfg(target_arch = "arm")]
62755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62756#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62757#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62758pub unsafe fn vst1q_s32(ptr: *mut i32, a: int32x4_t) {
62759    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
62760    vst1q_v4i32::<ALIGN>(ptr as *const i8, a)
62761}
62762#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64)"]
62764#[doc = "## Safety"]
62765#[doc = "  * Neon intrinsic unsafe"]
62766#[inline(always)]
62767#[target_feature(enable = "neon")]
62768#[cfg(target_arch = "arm")]
62769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62770#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62771#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
62772pub unsafe fn vst1_s64(ptr: *mut i64, a: int64x1_t) {
62773    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
62774    vst1_v1i64::<ALIGN>(ptr as *const i8, a)
62775}
62776#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64)"]
62778#[doc = "## Safety"]
62779#[doc = "  * Neon intrinsic unsafe"]
62780#[inline(always)]
62781#[target_feature(enable = "neon")]
62782#[cfg(target_arch = "arm")]
62783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62784#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62785#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
62786pub unsafe fn vst1q_s64(ptr: *mut i64, a: int64x2_t) {
62787    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
62788    vst1q_v2i64::<ALIGN>(ptr as *const i8, a)
62789}
62790#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8)"]
62792#[doc = "## Safety"]
62793#[doc = "  * Neon intrinsic unsafe"]
62794#[inline(always)]
62795#[target_feature(enable = "neon")]
62796#[cfg(target_arch = "arm")]
62797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62798#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62799#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62800pub unsafe fn vst1_u8(ptr: *mut u8, a: uint8x8_t) {
62801    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
62802    vst1_v8i8::<ALIGN>(ptr as *const i8, transmute(a))
62803}
62804#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62805#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8)"]
62806#[doc = "## Safety"]
62807#[doc = "  * Neon intrinsic unsafe"]
62808#[inline(always)]
62809#[target_feature(enable = "neon")]
62810#[cfg(target_arch = "arm")]
62811#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62812#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62813#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62814pub unsafe fn vst1q_u8(ptr: *mut u8, a: uint8x16_t) {
62815    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
62816    vst1q_v16i8::<ALIGN>(ptr as *const i8, transmute(a))
62817}
62818#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16)"]
62820#[doc = "## Safety"]
62821#[doc = "  * Neon intrinsic unsafe"]
62822#[inline(always)]
62823#[target_feature(enable = "neon")]
62824#[cfg(target_arch = "arm")]
62825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62826#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62827#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62828pub unsafe fn vst1_u16(ptr: *mut u16, a: uint16x4_t) {
62829    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
62830    vst1_v4i16::<ALIGN>(ptr as *const i8, transmute(a))
62831}
62832#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16)"]
62834#[doc = "## Safety"]
62835#[doc = "  * Neon intrinsic unsafe"]
62836#[inline(always)]
62837#[target_feature(enable = "neon")]
62838#[cfg(target_arch = "arm")]
62839#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62840#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62841#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62842pub unsafe fn vst1q_u16(ptr: *mut u16, a: uint16x8_t) {
62843    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
62844    vst1q_v8i16::<ALIGN>(ptr as *const i8, transmute(a))
62845}
62846#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32)"]
62848#[doc = "## Safety"]
62849#[doc = "  * Neon intrinsic unsafe"]
62850#[inline(always)]
62851#[target_feature(enable = "neon")]
62852#[cfg(target_arch = "arm")]
62853#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62854#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62855#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62856pub unsafe fn vst1_u32(ptr: *mut u32, a: uint32x2_t) {
62857    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
62858    vst1_v2i32::<ALIGN>(ptr as *const i8, transmute(a))
62859}
62860#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62861#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32)"]
62862#[doc = "## Safety"]
62863#[doc = "  * Neon intrinsic unsafe"]
62864#[inline(always)]
62865#[target_feature(enable = "neon")]
62866#[cfg(target_arch = "arm")]
62867#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62868#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62869#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62870pub unsafe fn vst1q_u32(ptr: *mut u32, a: uint32x4_t) {
62871    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
62872    vst1q_v4i32::<ALIGN>(ptr as *const i8, transmute(a))
62873}
62874#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64)"]
62876#[doc = "## Safety"]
62877#[doc = "  * Neon intrinsic unsafe"]
62878#[inline(always)]
62879#[target_feature(enable = "neon")]
62880#[cfg(target_arch = "arm")]
62881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62882#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62883#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
62884pub unsafe fn vst1_u64(ptr: *mut u64, a: uint64x1_t) {
62885    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
62886    vst1_v1i64::<ALIGN>(ptr as *const i8, transmute(a))
62887}
62888#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62889#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64)"]
62890#[doc = "## Safety"]
62891#[doc = "  * Neon intrinsic unsafe"]
62892#[inline(always)]
62893#[target_feature(enable = "neon")]
62894#[cfg(target_arch = "arm")]
62895#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62896#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62897#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
62898pub unsafe fn vst1q_u64(ptr: *mut u64, a: uint64x2_t) {
62899    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
62900    vst1q_v2i64::<ALIGN>(ptr as *const i8, transmute(a))
62901}
62902#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8)"]
62904#[doc = "## Safety"]
62905#[doc = "  * Neon intrinsic unsafe"]
62906#[inline(always)]
62907#[target_feature(enable = "neon")]
62908#[cfg(target_arch = "arm")]
62909#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62910#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62911#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62912pub unsafe fn vst1_p8(ptr: *mut p8, a: poly8x8_t) {
62913    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
62914    vst1_v8i8::<ALIGN>(ptr as *const i8, transmute(a))
62915}
62916#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8)"]
62918#[doc = "## Safety"]
62919#[doc = "  * Neon intrinsic unsafe"]
62920#[inline(always)]
62921#[target_feature(enable = "neon")]
62922#[cfg(target_arch = "arm")]
62923#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62924#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62925#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62926pub unsafe fn vst1q_p8(ptr: *mut p8, a: poly8x16_t) {
62927    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
62928    vst1q_v16i8::<ALIGN>(ptr as *const i8, transmute(a))
62929}
62930#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16)"]
62932#[doc = "## Safety"]
62933#[doc = "  * Neon intrinsic unsafe"]
62934#[inline(always)]
62935#[target_feature(enable = "neon")]
62936#[cfg(target_arch = "arm")]
62937#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62938#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62939#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62940pub unsafe fn vst1_p16(ptr: *mut p16, a: poly16x4_t) {
62941    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
62942    vst1_v4i16::<ALIGN>(ptr as *const i8, transmute(a))
62943}
62944#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16)"]
62946#[doc = "## Safety"]
62947#[doc = "  * Neon intrinsic unsafe"]
62948#[inline(always)]
62949#[target_feature(enable = "neon")]
62950#[cfg(target_arch = "arm")]
62951#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62952#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62953#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62954pub unsafe fn vst1q_p16(ptr: *mut p16, a: poly16x8_t) {
62955    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
62956    vst1q_v8i16::<ALIGN>(ptr as *const i8, transmute(a))
62957}
62958#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64)"]
62960#[doc = "## Safety"]
62961#[doc = "  * Neon intrinsic unsafe"]
62962#[inline(always)]
62963#[target_feature(enable = "neon")]
62964#[cfg(target_arch = "arm")]
62965#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62966#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62967#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
62968pub unsafe fn vst1_p64(ptr: *mut p64, a: poly64x1_t) {
62969    const ALIGN: i32 = crate::mem::align_of::<p64>() as i32;
62970    vst1_v1i64::<ALIGN>(ptr as *const i8, transmute(a))
62971}
62972#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64)"]
62974#[doc = "## Safety"]
62975#[doc = "  * Neon intrinsic unsafe"]
62976#[inline(always)]
62977#[target_feature(enable = "neon")]
62978#[cfg(target_arch = "arm")]
62979#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62980#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62981#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
62982pub unsafe fn vst1q_p64(ptr: *mut p64, a: poly64x2_t) {
62983    const ALIGN: i32 = crate::mem::align_of::<p64>() as i32;
62984    vst1q_v2i64::<ALIGN>(ptr as *const i8, transmute(a))
62985}
62986#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62987#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)"]
62988#[doc = "## Safety"]
62989#[doc = "  * Neon intrinsic unsafe"]
62990#[inline(always)]
62991#[cfg(target_arch = "arm")]
62992#[target_feature(enable = "neon,v7")]
62993#[cfg_attr(test, assert_instr(vst1))]
62994#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62995pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
62996    unsafe extern "unadjusted" {
62997        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2f32.p0")]
62998        fn _vst1_f32_x2(ptr: *mut f32, a: float32x2_t, b: float32x2_t);
62999    }
63000    _vst1_f32_x2(a, b.0, b.1)
63001}
63002#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)"]
63004#[doc = "## Safety"]
63005#[doc = "  * Neon intrinsic unsafe"]
63006#[inline(always)]
63007#[cfg(target_arch = "arm")]
63008#[target_feature(enable = "neon,v7")]
63009#[cfg_attr(test, assert_instr(vst1))]
63010#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63011pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
63012    unsafe extern "unadjusted" {
63013        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4f32.p0")]
63014        fn _vst1q_f32_x2(ptr: *mut f32, a: float32x4_t, b: float32x4_t);
63015    }
63016    _vst1q_f32_x2(a, b.0, b.1)
63017}
63018#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)"]
63020#[doc = "## Safety"]
63021#[doc = "  * Neon intrinsic unsafe"]
63022#[inline(always)]
63023#[target_feature(enable = "neon")]
63024#[cfg(not(target_arch = "arm"))]
63025#[cfg_attr(test, assert_instr(st1))]
63026#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63027pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
63028    unsafe extern "unadjusted" {
63029        #[cfg_attr(
63030            any(target_arch = "aarch64", target_arch = "arm64ec"),
63031            link_name = "llvm.aarch64.neon.st1x2.v2f32.p0"
63032        )]
63033        fn _vst1_f32_x2(a: float32x2_t, b: float32x2_t, ptr: *mut f32);
63034    }
63035    _vst1_f32_x2(b.0, b.1, a)
63036}
63037#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)"]
63039#[doc = "## Safety"]
63040#[doc = "  * Neon intrinsic unsafe"]
63041#[inline(always)]
63042#[target_feature(enable = "neon")]
63043#[cfg(not(target_arch = "arm"))]
63044#[cfg_attr(test, assert_instr(st1))]
63045#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63046pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
63047    unsafe extern "unadjusted" {
63048        #[cfg_attr(
63049            any(target_arch = "aarch64", target_arch = "arm64ec"),
63050            link_name = "llvm.aarch64.neon.st1x2.v4f32.p0"
63051        )]
63052        fn _vst1q_f32_x2(a: float32x4_t, b: float32x4_t, ptr: *mut f32);
63053    }
63054    _vst1q_f32_x2(b.0, b.1, a)
63055}
63056#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x3)"]
63058#[doc = "## Safety"]
63059#[doc = "  * Neon intrinsic unsafe"]
63060#[inline(always)]
63061#[target_feature(enable = "neon")]
63062#[cfg(not(target_arch = "arm"))]
63063#[cfg_attr(test, assert_instr(st1))]
63064#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63065pub unsafe fn vst1_f32_x3(a: *mut f32, b: float32x2x3_t) {
63066    unsafe extern "unadjusted" {
63067        #[cfg_attr(
63068            any(target_arch = "aarch64", target_arch = "arm64ec"),
63069            link_name = "llvm.aarch64.neon.st1x3.v2f32.p0"
63070        )]
63071        fn _vst1_f32_x3(a: float32x2_t, b: float32x2_t, c: float32x2_t, ptr: *mut f32);
63072    }
63073    _vst1_f32_x3(b.0, b.1, b.2, a)
63074}
63075#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x3)"]
63077#[doc = "## Safety"]
63078#[doc = "  * Neon intrinsic unsafe"]
63079#[inline(always)]
63080#[target_feature(enable = "neon")]
63081#[cfg(not(target_arch = "arm"))]
63082#[cfg_attr(test, assert_instr(st1))]
63083#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63084pub unsafe fn vst1q_f32_x3(a: *mut f32, b: float32x4x3_t) {
63085    unsafe extern "unadjusted" {
63086        #[cfg_attr(
63087            any(target_arch = "aarch64", target_arch = "arm64ec"),
63088            link_name = "llvm.aarch64.neon.st1x3.v4f32.p0"
63089        )]
63090        fn _vst1q_f32_x3(a: float32x4_t, b: float32x4_t, c: float32x4_t, ptr: *mut f32);
63091    }
63092    _vst1q_f32_x3(b.0, b.1, b.2, a)
63093}
63094#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)"]
63096#[doc = "## Safety"]
63097#[doc = "  * Neon intrinsic unsafe"]
63098#[inline(always)]
63099#[cfg(target_arch = "arm")]
63100#[target_feature(enable = "neon,v7")]
63101#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63102#[cfg_attr(test, assert_instr(vst1))]
63103pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
63104    unsafe extern "unadjusted" {
63105        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2f32.p0")]
63106        fn _vst1_f32_x4(
63107            ptr: *mut f32,
63108            a: float32x2_t,
63109            b: float32x2_t,
63110            c: float32x2_t,
63111            d: float32x2_t,
63112        );
63113    }
63114    _vst1_f32_x4(a, b.0, b.1, b.2, b.3)
63115}
63116#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)"]
63118#[doc = "## Safety"]
63119#[doc = "  * Neon intrinsic unsafe"]
63120#[inline(always)]
63121#[cfg(target_arch = "arm")]
63122#[target_feature(enable = "neon,v7")]
63123#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63124#[cfg_attr(test, assert_instr(vst1))]
63125pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
63126    unsafe extern "unadjusted" {
63127        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4f32.p0")]
63128        fn _vst1q_f32_x4(
63129            ptr: *mut f32,
63130            a: float32x4_t,
63131            b: float32x4_t,
63132            c: float32x4_t,
63133            d: float32x4_t,
63134        );
63135    }
63136    _vst1q_f32_x4(a, b.0, b.1, b.2, b.3)
63137}
63138#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63139#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)"]
63140#[doc = "## Safety"]
63141#[doc = "  * Neon intrinsic unsafe"]
63142#[inline(always)]
63143#[target_feature(enable = "neon")]
63144#[cfg(not(target_arch = "arm"))]
63145#[cfg_attr(test, assert_instr(st1))]
63146#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63147pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
63148    unsafe extern "unadjusted" {
63149        #[cfg_attr(
63150            any(target_arch = "aarch64", target_arch = "arm64ec"),
63151            link_name = "llvm.aarch64.neon.st1x4.v2f32.p0"
63152        )]
63153        fn _vst1_f32_x4(
63154            a: float32x2_t,
63155            b: float32x2_t,
63156            c: float32x2_t,
63157            d: float32x2_t,
63158            ptr: *mut f32,
63159        );
63160    }
63161    _vst1_f32_x4(b.0, b.1, b.2, b.3, a)
63162}
63163#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63164#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)"]
63165#[doc = "## Safety"]
63166#[doc = "  * Neon intrinsic unsafe"]
63167#[inline(always)]
63168#[target_feature(enable = "neon")]
63169#[cfg(not(target_arch = "arm"))]
63170#[cfg_attr(test, assert_instr(st1))]
63171#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63172pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
63173    unsafe extern "unadjusted" {
63174        #[cfg_attr(
63175            any(target_arch = "aarch64", target_arch = "arm64ec"),
63176            link_name = "llvm.aarch64.neon.st1x4.v4f32.p0"
63177        )]
63178        fn _vst1q_f32_x4(
63179            a: float32x4_t,
63180            b: float32x4_t,
63181            c: float32x4_t,
63182            d: float32x4_t,
63183            ptr: *mut f32,
63184        );
63185    }
63186    _vst1q_f32_x4(b.0, b.1, b.2, b.3, a)
63187}
63188#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_f16)"]
63190#[doc = "## Safety"]
63191#[doc = "  * Neon intrinsic unsafe"]
63192#[inline(always)]
63193#[target_feature(enable = "neon")]
63194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63196#[cfg_attr(
63197    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63198    assert_instr(nop, LANE = 0)
63199)]
63200#[rustc_legacy_const_generics(2)]
63201#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
63202#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
63203#[cfg(not(target_arch = "arm64ec"))]
63204pub unsafe fn vst1_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4_t) {
63205    static_assert_uimm_bits!(LANE, 2);
63206    *a = simd_extract!(b, LANE as u32);
63207}
63208#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_f16)"]
63210#[doc = "## Safety"]
63211#[doc = "  * Neon intrinsic unsafe"]
63212#[inline(always)]
63213#[target_feature(enable = "neon")]
63214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63216#[cfg_attr(
63217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63218    assert_instr(nop, LANE = 0)
63219)]
63220#[rustc_legacy_const_generics(2)]
63221#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
63222#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
63223#[cfg(not(target_arch = "arm64ec"))]
63224pub unsafe fn vst1q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8_t) {
63225    static_assert_uimm_bits!(LANE, 3);
63226    *a = simd_extract!(b, LANE as u32);
63227}
63228#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63229#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_f32)"]
63230#[doc = "## Safety"]
63231#[doc = "  * Neon intrinsic unsafe"]
63232#[inline(always)]
63233#[target_feature(enable = "neon")]
63234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63235#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63236#[cfg_attr(
63237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63238    assert_instr(nop, LANE = 0)
63239)]
63240#[rustc_legacy_const_generics(2)]
63241#[cfg_attr(
63242    not(target_arch = "arm"),
63243    stable(feature = "neon_intrinsics", since = "1.59.0")
63244)]
63245#[cfg_attr(
63246    target_arch = "arm",
63247    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63248)]
63249pub unsafe fn vst1_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2_t) {
63250    static_assert_uimm_bits!(LANE, 1);
63251    *a = simd_extract!(b, LANE as u32);
63252}
63253#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63254#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_f32)"]
63255#[doc = "## Safety"]
63256#[doc = "  * Neon intrinsic unsafe"]
63257#[inline(always)]
63258#[target_feature(enable = "neon")]
63259#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63260#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63261#[cfg_attr(
63262    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63263    assert_instr(nop, LANE = 0)
63264)]
63265#[rustc_legacy_const_generics(2)]
63266#[cfg_attr(
63267    not(target_arch = "arm"),
63268    stable(feature = "neon_intrinsics", since = "1.59.0")
63269)]
63270#[cfg_attr(
63271    target_arch = "arm",
63272    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63273)]
63274pub unsafe fn vst1q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4_t) {
63275    static_assert_uimm_bits!(LANE, 2);
63276    *a = simd_extract!(b, LANE as u32);
63277}
63278#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s8)"]
63280#[doc = "## Safety"]
63281#[doc = "  * Neon intrinsic unsafe"]
63282#[inline(always)]
63283#[target_feature(enable = "neon")]
63284#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63285#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63286#[cfg_attr(
63287    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63288    assert_instr(nop, LANE = 0)
63289)]
63290#[rustc_legacy_const_generics(2)]
63291#[cfg_attr(
63292    not(target_arch = "arm"),
63293    stable(feature = "neon_intrinsics", since = "1.59.0")
63294)]
63295#[cfg_attr(
63296    target_arch = "arm",
63297    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63298)]
63299pub unsafe fn vst1_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8_t) {
63300    static_assert_uimm_bits!(LANE, 3);
63301    *a = simd_extract!(b, LANE as u32);
63302}
63303#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s8)"]
63305#[doc = "## Safety"]
63306#[doc = "  * Neon intrinsic unsafe"]
63307#[inline(always)]
63308#[target_feature(enable = "neon")]
63309#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63310#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63311#[cfg_attr(
63312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63313    assert_instr(nop, LANE = 0)
63314)]
63315#[rustc_legacy_const_generics(2)]
63316#[cfg_attr(
63317    not(target_arch = "arm"),
63318    stable(feature = "neon_intrinsics", since = "1.59.0")
63319)]
63320#[cfg_attr(
63321    target_arch = "arm",
63322    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63323)]
63324pub unsafe fn vst1q_lane_s8<const LANE: i32>(a: *mut i8, b: int8x16_t) {
63325    static_assert_uimm_bits!(LANE, 4);
63326    *a = simd_extract!(b, LANE as u32);
63327}
63328#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s16)"]
63330#[doc = "## Safety"]
63331#[doc = "  * Neon intrinsic unsafe"]
63332#[inline(always)]
63333#[target_feature(enable = "neon")]
63334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63335#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63336#[cfg_attr(
63337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63338    assert_instr(nop, LANE = 0)
63339)]
63340#[rustc_legacy_const_generics(2)]
63341#[cfg_attr(
63342    not(target_arch = "arm"),
63343    stable(feature = "neon_intrinsics", since = "1.59.0")
63344)]
63345#[cfg_attr(
63346    target_arch = "arm",
63347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63348)]
63349pub unsafe fn vst1_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4_t) {
63350    static_assert_uimm_bits!(LANE, 2);
63351    *a = simd_extract!(b, LANE as u32);
63352}
63353#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63354#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s16)"]
63355#[doc = "## Safety"]
63356#[doc = "  * Neon intrinsic unsafe"]
63357#[inline(always)]
63358#[target_feature(enable = "neon")]
63359#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63360#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63361#[cfg_attr(
63362    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63363    assert_instr(nop, LANE = 0)
63364)]
63365#[rustc_legacy_const_generics(2)]
63366#[cfg_attr(
63367    not(target_arch = "arm"),
63368    stable(feature = "neon_intrinsics", since = "1.59.0")
63369)]
63370#[cfg_attr(
63371    target_arch = "arm",
63372    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63373)]
63374pub unsafe fn vst1q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8_t) {
63375    static_assert_uimm_bits!(LANE, 3);
63376    *a = simd_extract!(b, LANE as u32);
63377}
63378#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s32)"]
63380#[doc = "## Safety"]
63381#[doc = "  * Neon intrinsic unsafe"]
63382#[inline(always)]
63383#[target_feature(enable = "neon")]
63384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63386#[cfg_attr(
63387    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63388    assert_instr(nop, LANE = 0)
63389)]
63390#[rustc_legacy_const_generics(2)]
63391#[cfg_attr(
63392    not(target_arch = "arm"),
63393    stable(feature = "neon_intrinsics", since = "1.59.0")
63394)]
63395#[cfg_attr(
63396    target_arch = "arm",
63397    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63398)]
63399pub unsafe fn vst1_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2_t) {
63400    static_assert_uimm_bits!(LANE, 1);
63401    *a = simd_extract!(b, LANE as u32);
63402}
63403#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s32)"]
63405#[doc = "## Safety"]
63406#[doc = "  * Neon intrinsic unsafe"]
63407#[inline(always)]
63408#[target_feature(enable = "neon")]
63409#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63410#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63411#[cfg_attr(
63412    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63413    assert_instr(nop, LANE = 0)
63414)]
63415#[rustc_legacy_const_generics(2)]
63416#[cfg_attr(
63417    not(target_arch = "arm"),
63418    stable(feature = "neon_intrinsics", since = "1.59.0")
63419)]
63420#[cfg_attr(
63421    target_arch = "arm",
63422    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63423)]
63424pub unsafe fn vst1q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4_t) {
63425    static_assert_uimm_bits!(LANE, 2);
63426    *a = simd_extract!(b, LANE as u32);
63427}
63428#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s64)"]
63430#[doc = "## Safety"]
63431#[doc = "  * Neon intrinsic unsafe"]
63432#[inline(always)]
63433#[target_feature(enable = "neon")]
63434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63435#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63436#[cfg_attr(
63437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63438    assert_instr(nop, LANE = 0)
63439)]
63440#[rustc_legacy_const_generics(2)]
63441#[cfg_attr(
63442    not(target_arch = "arm"),
63443    stable(feature = "neon_intrinsics", since = "1.59.0")
63444)]
63445#[cfg_attr(
63446    target_arch = "arm",
63447    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63448)]
63449pub unsafe fn vst1q_lane_s64<const LANE: i32>(a: *mut i64, b: int64x2_t) {
63450    static_assert_uimm_bits!(LANE, 1);
63451    *a = simd_extract!(b, LANE as u32);
63452}
63453#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u8)"]
63455#[doc = "## Safety"]
63456#[doc = "  * Neon intrinsic unsafe"]
63457#[inline(always)]
63458#[target_feature(enable = "neon")]
63459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63461#[cfg_attr(
63462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63463    assert_instr(nop, LANE = 0)
63464)]
63465#[rustc_legacy_const_generics(2)]
63466#[cfg_attr(
63467    not(target_arch = "arm"),
63468    stable(feature = "neon_intrinsics", since = "1.59.0")
63469)]
63470#[cfg_attr(
63471    target_arch = "arm",
63472    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63473)]
63474pub unsafe fn vst1_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8_t) {
63475    static_assert_uimm_bits!(LANE, 3);
63476    *a = simd_extract!(b, LANE as u32);
63477}
63478#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u8)"]
63480#[doc = "## Safety"]
63481#[doc = "  * Neon intrinsic unsafe"]
63482#[inline(always)]
63483#[target_feature(enable = "neon")]
63484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63486#[cfg_attr(
63487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63488    assert_instr(nop, LANE = 0)
63489)]
63490#[rustc_legacy_const_generics(2)]
63491#[cfg_attr(
63492    not(target_arch = "arm"),
63493    stable(feature = "neon_intrinsics", since = "1.59.0")
63494)]
63495#[cfg_attr(
63496    target_arch = "arm",
63497    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63498)]
63499pub unsafe fn vst1q_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x16_t) {
63500    static_assert_uimm_bits!(LANE, 4);
63501    *a = simd_extract!(b, LANE as u32);
63502}
63503#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63504#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u16)"]
63505#[doc = "## Safety"]
63506#[doc = "  * Neon intrinsic unsafe"]
63507#[inline(always)]
63508#[target_feature(enable = "neon")]
63509#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63510#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63511#[cfg_attr(
63512    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63513    assert_instr(nop, LANE = 0)
63514)]
63515#[rustc_legacy_const_generics(2)]
63516#[cfg_attr(
63517    not(target_arch = "arm"),
63518    stable(feature = "neon_intrinsics", since = "1.59.0")
63519)]
63520#[cfg_attr(
63521    target_arch = "arm",
63522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63523)]
63524pub unsafe fn vst1_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4_t) {
63525    static_assert_uimm_bits!(LANE, 2);
63526    *a = simd_extract!(b, LANE as u32);
63527}
63528#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u16)"]
63530#[doc = "## Safety"]
63531#[doc = "  * Neon intrinsic unsafe"]
63532#[inline(always)]
63533#[target_feature(enable = "neon")]
63534#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63535#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63536#[cfg_attr(
63537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63538    assert_instr(nop, LANE = 0)
63539)]
63540#[rustc_legacy_const_generics(2)]
63541#[cfg_attr(
63542    not(target_arch = "arm"),
63543    stable(feature = "neon_intrinsics", since = "1.59.0")
63544)]
63545#[cfg_attr(
63546    target_arch = "arm",
63547    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63548)]
63549pub unsafe fn vst1q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8_t) {
63550    static_assert_uimm_bits!(LANE, 3);
63551    *a = simd_extract!(b, LANE as u32);
63552}
63553#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u32)"]
63555#[doc = "## Safety"]
63556#[doc = "  * Neon intrinsic unsafe"]
63557#[inline(always)]
63558#[target_feature(enable = "neon")]
63559#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63560#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63561#[cfg_attr(
63562    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63563    assert_instr(nop, LANE = 0)
63564)]
63565#[rustc_legacy_const_generics(2)]
63566#[cfg_attr(
63567    not(target_arch = "arm"),
63568    stable(feature = "neon_intrinsics", since = "1.59.0")
63569)]
63570#[cfg_attr(
63571    target_arch = "arm",
63572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63573)]
63574pub unsafe fn vst1_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2_t) {
63575    static_assert_uimm_bits!(LANE, 1);
63576    *a = simd_extract!(b, LANE as u32);
63577}
63578#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63579#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u32)"]
63580#[doc = "## Safety"]
63581#[doc = "  * Neon intrinsic unsafe"]
63582#[inline(always)]
63583#[target_feature(enable = "neon")]
63584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63585#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63586#[cfg_attr(
63587    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63588    assert_instr(nop, LANE = 0)
63589)]
63590#[rustc_legacy_const_generics(2)]
63591#[cfg_attr(
63592    not(target_arch = "arm"),
63593    stable(feature = "neon_intrinsics", since = "1.59.0")
63594)]
63595#[cfg_attr(
63596    target_arch = "arm",
63597    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63598)]
63599pub unsafe fn vst1q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4_t) {
63600    static_assert_uimm_bits!(LANE, 2);
63601    *a = simd_extract!(b, LANE as u32);
63602}
63603#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u64)"]
63605#[doc = "## Safety"]
63606#[doc = "  * Neon intrinsic unsafe"]
63607#[inline(always)]
63608#[target_feature(enable = "neon")]
63609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63611#[cfg_attr(
63612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63613    assert_instr(nop, LANE = 0)
63614)]
63615#[rustc_legacy_const_generics(2)]
63616#[cfg_attr(
63617    not(target_arch = "arm"),
63618    stable(feature = "neon_intrinsics", since = "1.59.0")
63619)]
63620#[cfg_attr(
63621    target_arch = "arm",
63622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63623)]
63624pub unsafe fn vst1q_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x2_t) {
63625    static_assert_uimm_bits!(LANE, 1);
63626    *a = simd_extract!(b, LANE as u32);
63627}
63628#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p8)"]
63630#[doc = "## Safety"]
63631#[doc = "  * Neon intrinsic unsafe"]
63632#[inline(always)]
63633#[target_feature(enable = "neon")]
63634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63635#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63636#[cfg_attr(
63637    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63638    assert_instr(nop, LANE = 0)
63639)]
63640#[rustc_legacy_const_generics(2)]
63641#[cfg_attr(
63642    not(target_arch = "arm"),
63643    stable(feature = "neon_intrinsics", since = "1.59.0")
63644)]
63645#[cfg_attr(
63646    target_arch = "arm",
63647    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63648)]
63649pub unsafe fn vst1_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8_t) {
63650    static_assert_uimm_bits!(LANE, 3);
63651    *a = simd_extract!(b, LANE as u32);
63652}
63653#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63654#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p8)"]
63655#[doc = "## Safety"]
63656#[doc = "  * Neon intrinsic unsafe"]
63657#[inline(always)]
63658#[target_feature(enable = "neon")]
63659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63660#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63661#[cfg_attr(
63662    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63663    assert_instr(nop, LANE = 0)
63664)]
63665#[rustc_legacy_const_generics(2)]
63666#[cfg_attr(
63667    not(target_arch = "arm"),
63668    stable(feature = "neon_intrinsics", since = "1.59.0")
63669)]
63670#[cfg_attr(
63671    target_arch = "arm",
63672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63673)]
63674pub unsafe fn vst1q_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x16_t) {
63675    static_assert_uimm_bits!(LANE, 4);
63676    *a = simd_extract!(b, LANE as u32);
63677}
63678#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63679#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p16)"]
63680#[doc = "## Safety"]
63681#[doc = "  * Neon intrinsic unsafe"]
63682#[inline(always)]
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(nop, LANE = 0))]
63686#[cfg_attr(
63687    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63688    assert_instr(nop, LANE = 0)
63689)]
63690#[rustc_legacy_const_generics(2)]
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 unsafe fn vst1_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4_t) {
63700    static_assert_uimm_bits!(LANE, 2);
63701    *a = simd_extract!(b, LANE as u32);
63702}
63703#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p16)"]
63705#[doc = "## Safety"]
63706#[doc = "  * Neon intrinsic unsafe"]
63707#[inline(always)]
63708#[target_feature(enable = "neon")]
63709#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63710#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63711#[cfg_attr(
63712    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63713    assert_instr(nop, LANE = 0)
63714)]
63715#[rustc_legacy_const_generics(2)]
63716#[cfg_attr(
63717    not(target_arch = "arm"),
63718    stable(feature = "neon_intrinsics", since = "1.59.0")
63719)]
63720#[cfg_attr(
63721    target_arch = "arm",
63722    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63723)]
63724pub unsafe fn vst1q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8_t) {
63725    static_assert_uimm_bits!(LANE, 3);
63726    *a = simd_extract!(b, LANE as u32);
63727}
63728#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p64)"]
63730#[doc = "## Safety"]
63731#[doc = "  * Neon intrinsic unsafe"]
63732#[inline(always)]
63733#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63734#[target_feature(enable = "neon,aes")]
63735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63736#[cfg_attr(
63737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63738    assert_instr(nop, LANE = 0)
63739)]
63740#[rustc_legacy_const_generics(2)]
63741#[cfg_attr(
63742    not(target_arch = "arm"),
63743    stable(feature = "neon_intrinsics", since = "1.59.0")
63744)]
63745#[cfg_attr(
63746    target_arch = "arm",
63747    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63748)]
63749pub unsafe fn vst1_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x1_t) {
63750    static_assert!(LANE == 0);
63751    *a = simd_extract!(b, LANE as u32);
63752}
63753#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s64)"]
63755#[doc = "## Safety"]
63756#[doc = "  * Neon intrinsic unsafe"]
63757#[inline(always)]
63758#[target_feature(enable = "neon")]
63759#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63760#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63761#[cfg_attr(
63762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63763    assert_instr(nop, LANE = 0)
63764)]
63765#[rustc_legacy_const_generics(2)]
63766#[cfg_attr(
63767    not(target_arch = "arm"),
63768    stable(feature = "neon_intrinsics", since = "1.59.0")
63769)]
63770#[cfg_attr(
63771    target_arch = "arm",
63772    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63773)]
63774pub unsafe fn vst1_lane_s64<const LANE: i32>(a: *mut i64, b: int64x1_t) {
63775    static_assert!(LANE == 0);
63776    *a = simd_extract!(b, LANE as u32);
63777}
63778#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u64)"]
63780#[doc = "## Safety"]
63781#[doc = "  * Neon intrinsic unsafe"]
63782#[inline(always)]
63783#[target_feature(enable = "neon")]
63784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63785#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63786#[cfg_attr(
63787    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63788    assert_instr(nop, LANE = 0)
63789)]
63790#[rustc_legacy_const_generics(2)]
63791#[cfg_attr(
63792    not(target_arch = "arm"),
63793    stable(feature = "neon_intrinsics", since = "1.59.0")
63794)]
63795#[cfg_attr(
63796    target_arch = "arm",
63797    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63798)]
63799pub unsafe fn vst1_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x1_t) {
63800    static_assert!(LANE == 0);
63801    *a = simd_extract!(b, LANE as u32);
63802}
63803#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63804#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x2)"]
63805#[doc = "## Safety"]
63806#[doc = "  * Neon intrinsic unsafe"]
63807#[inline(always)]
63808#[target_feature(enable = "neon,aes")]
63809#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63810#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
63811#[cfg_attr(
63812    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63813    assert_instr(st1)
63814)]
63815#[cfg_attr(
63816    not(target_arch = "arm"),
63817    stable(feature = "neon_intrinsics", since = "1.59.0")
63818)]
63819#[cfg_attr(
63820    target_arch = "arm",
63821    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63822)]
63823pub unsafe fn vst1_p64_x2(a: *mut p64, b: poly64x1x2_t) {
63824    vst1_s64_x2(transmute(a), transmute(b))
63825}
63826#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x3)"]
63828#[doc = "## Safety"]
63829#[doc = "  * Neon intrinsic unsafe"]
63830#[inline(always)]
63831#[target_feature(enable = "neon,aes")]
63832#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63833#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
63834#[cfg_attr(
63835    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63836    assert_instr(st1)
63837)]
63838#[cfg_attr(
63839    not(target_arch = "arm"),
63840    stable(feature = "neon_intrinsics", since = "1.59.0")
63841)]
63842#[cfg_attr(
63843    target_arch = "arm",
63844    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63845)]
63846pub unsafe fn vst1_p64_x3(a: *mut p64, b: poly64x1x3_t) {
63847    vst1_s64_x3(transmute(a), transmute(b))
63848}
63849#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63850#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x4)"]
63851#[doc = "## Safety"]
63852#[doc = "  * Neon intrinsic unsafe"]
63853#[inline(always)]
63854#[target_feature(enable = "neon,aes")]
63855#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63856#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
63857#[cfg_attr(
63858    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63859    assert_instr(st1)
63860)]
63861#[cfg_attr(
63862    not(target_arch = "arm"),
63863    stable(feature = "neon_intrinsics", since = "1.59.0")
63864)]
63865#[cfg_attr(
63866    target_arch = "arm",
63867    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63868)]
63869pub unsafe fn vst1_p64_x4(a: *mut p64, b: poly64x1x4_t) {
63870    vst1_s64_x4(transmute(a), transmute(b))
63871}
63872#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63873#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x2)"]
63874#[doc = "## Safety"]
63875#[doc = "  * Neon intrinsic unsafe"]
63876#[inline(always)]
63877#[target_feature(enable = "neon,aes")]
63878#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
63880#[cfg_attr(
63881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63882    assert_instr(st1)
63883)]
63884#[cfg_attr(
63885    not(target_arch = "arm"),
63886    stable(feature = "neon_intrinsics", since = "1.59.0")
63887)]
63888#[cfg_attr(
63889    target_arch = "arm",
63890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63891)]
63892pub unsafe fn vst1q_p64_x2(a: *mut p64, b: poly64x2x2_t) {
63893    vst1q_s64_x2(transmute(a), transmute(b))
63894}
63895#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x3)"]
63897#[doc = "## Safety"]
63898#[doc = "  * Neon intrinsic unsafe"]
63899#[inline(always)]
63900#[target_feature(enable = "neon,aes")]
63901#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63902#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
63903#[cfg_attr(
63904    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63905    assert_instr(st1)
63906)]
63907#[cfg_attr(
63908    not(target_arch = "arm"),
63909    stable(feature = "neon_intrinsics", since = "1.59.0")
63910)]
63911#[cfg_attr(
63912    target_arch = "arm",
63913    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63914)]
63915pub unsafe fn vst1q_p64_x3(a: *mut p64, b: poly64x2x3_t) {
63916    vst1q_s64_x3(transmute(a), transmute(b))
63917}
63918#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x4)"]
63920#[doc = "## Safety"]
63921#[doc = "  * Neon intrinsic unsafe"]
63922#[inline(always)]
63923#[target_feature(enable = "neon,aes")]
63924#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
63926#[cfg_attr(
63927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63928    assert_instr(st1)
63929)]
63930#[cfg_attr(
63931    not(target_arch = "arm"),
63932    stable(feature = "neon_intrinsics", since = "1.59.0")
63933)]
63934#[cfg_attr(
63935    target_arch = "arm",
63936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63937)]
63938pub unsafe fn vst1q_p64_x4(a: *mut p64, b: poly64x2x4_t) {
63939    vst1q_s64_x4(transmute(a), transmute(b))
63940}
63941#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63942#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)"]
63943#[doc = "## Safety"]
63944#[doc = "  * Neon intrinsic unsafe"]
63945#[inline(always)]
63946#[target_feature(enable = "neon")]
63947#[cfg(not(target_arch = "arm"))]
63948#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63949#[cfg_attr(test, assert_instr(st1))]
63950pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
63951    unsafe extern "unadjusted" {
63952        #[cfg_attr(
63953            any(target_arch = "aarch64", target_arch = "arm64ec"),
63954            link_name = "llvm.aarch64.neon.st1x2.v8i8.p0"
63955        )]
63956        fn _vst1_s8_x2(a: int8x8_t, b: int8x8_t, ptr: *mut i8);
63957    }
63958    _vst1_s8_x2(b.0, b.1, a)
63959}
63960#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)"]
63962#[doc = "## Safety"]
63963#[doc = "  * Neon intrinsic unsafe"]
63964#[inline(always)]
63965#[target_feature(enable = "neon")]
63966#[cfg(not(target_arch = "arm"))]
63967#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63968#[cfg_attr(test, assert_instr(st1))]
63969pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
63970    unsafe extern "unadjusted" {
63971        #[cfg_attr(
63972            any(target_arch = "aarch64", target_arch = "arm64ec"),
63973            link_name = "llvm.aarch64.neon.st1x2.v16i8.p0"
63974        )]
63975        fn _vst1q_s8_x2(a: int8x16_t, b: int8x16_t, ptr: *mut i8);
63976    }
63977    _vst1q_s8_x2(b.0, b.1, a)
63978}
63979#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)"]
63981#[doc = "## Safety"]
63982#[doc = "  * Neon intrinsic unsafe"]
63983#[inline(always)]
63984#[target_feature(enable = "neon")]
63985#[cfg(not(target_arch = "arm"))]
63986#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63987#[cfg_attr(test, assert_instr(st1))]
63988pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
63989    unsafe extern "unadjusted" {
63990        #[cfg_attr(
63991            any(target_arch = "aarch64", target_arch = "arm64ec"),
63992            link_name = "llvm.aarch64.neon.st1x2.v4i16.p0"
63993        )]
63994        fn _vst1_s16_x2(a: int16x4_t, b: int16x4_t, ptr: *mut i16);
63995    }
63996    _vst1_s16_x2(b.0, b.1, a)
63997}
63998#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63999#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)"]
64000#[doc = "## Safety"]
64001#[doc = "  * Neon intrinsic unsafe"]
64002#[inline(always)]
64003#[target_feature(enable = "neon")]
64004#[cfg(not(target_arch = "arm"))]
64005#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64006#[cfg_attr(test, assert_instr(st1))]
64007pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
64008    unsafe extern "unadjusted" {
64009        #[cfg_attr(
64010            any(target_arch = "aarch64", target_arch = "arm64ec"),
64011            link_name = "llvm.aarch64.neon.st1x2.v8i16.p0"
64012        )]
64013        fn _vst1q_s16_x2(a: int16x8_t, b: int16x8_t, ptr: *mut i16);
64014    }
64015    _vst1q_s16_x2(b.0, b.1, a)
64016}
64017#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)"]
64019#[doc = "## Safety"]
64020#[doc = "  * Neon intrinsic unsafe"]
64021#[inline(always)]
64022#[target_feature(enable = "neon")]
64023#[cfg(not(target_arch = "arm"))]
64024#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64025#[cfg_attr(test, assert_instr(st1))]
64026pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
64027    unsafe extern "unadjusted" {
64028        #[cfg_attr(
64029            any(target_arch = "aarch64", target_arch = "arm64ec"),
64030            link_name = "llvm.aarch64.neon.st1x2.v2i32.p0"
64031        )]
64032        fn _vst1_s32_x2(a: int32x2_t, b: int32x2_t, ptr: *mut i32);
64033    }
64034    _vst1_s32_x2(b.0, b.1, a)
64035}
64036#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)"]
64038#[doc = "## Safety"]
64039#[doc = "  * Neon intrinsic unsafe"]
64040#[inline(always)]
64041#[target_feature(enable = "neon")]
64042#[cfg(not(target_arch = "arm"))]
64043#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64044#[cfg_attr(test, assert_instr(st1))]
64045pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
64046    unsafe extern "unadjusted" {
64047        #[cfg_attr(
64048            any(target_arch = "aarch64", target_arch = "arm64ec"),
64049            link_name = "llvm.aarch64.neon.st1x2.v4i32.p0"
64050        )]
64051        fn _vst1q_s32_x2(a: int32x4_t, b: int32x4_t, ptr: *mut i32);
64052    }
64053    _vst1q_s32_x2(b.0, b.1, a)
64054}
64055#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64056#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)"]
64057#[doc = "## Safety"]
64058#[doc = "  * Neon intrinsic unsafe"]
64059#[inline(always)]
64060#[target_feature(enable = "neon")]
64061#[cfg(not(target_arch = "arm"))]
64062#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64063#[cfg_attr(test, assert_instr(st1))]
64064pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
64065    unsafe extern "unadjusted" {
64066        #[cfg_attr(
64067            any(target_arch = "aarch64", target_arch = "arm64ec"),
64068            link_name = "llvm.aarch64.neon.st1x2.v1i64.p0"
64069        )]
64070        fn _vst1_s64_x2(a: int64x1_t, b: int64x1_t, ptr: *mut i64);
64071    }
64072    _vst1_s64_x2(b.0, b.1, a)
64073}
64074#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)"]
64076#[doc = "## Safety"]
64077#[doc = "  * Neon intrinsic unsafe"]
64078#[inline(always)]
64079#[target_feature(enable = "neon")]
64080#[cfg(not(target_arch = "arm"))]
64081#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64082#[cfg_attr(test, assert_instr(st1))]
64083pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
64084    unsafe extern "unadjusted" {
64085        #[cfg_attr(
64086            any(target_arch = "aarch64", target_arch = "arm64ec"),
64087            link_name = "llvm.aarch64.neon.st1x2.v2i64.p0"
64088        )]
64089        fn _vst1q_s64_x2(a: int64x2_t, b: int64x2_t, ptr: *mut i64);
64090    }
64091    _vst1q_s64_x2(b.0, b.1, a)
64092}
64093#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)"]
64095#[doc = "## Safety"]
64096#[doc = "  * Neon intrinsic unsafe"]
64097#[inline(always)]
64098#[target_feature(enable = "neon,v7")]
64099#[cfg(target_arch = "arm")]
64100#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64101#[cfg_attr(test, assert_instr(vst1))]
64102pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
64103    unsafe extern "unadjusted" {
64104        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v8i8.p0")]
64105        fn _vst1_s8_x2(ptr: *mut i8, a: int8x8_t, b: int8x8_t);
64106    }
64107    _vst1_s8_x2(a, b.0, b.1)
64108}
64109#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)"]
64111#[doc = "## Safety"]
64112#[doc = "  * Neon intrinsic unsafe"]
64113#[inline(always)]
64114#[target_feature(enable = "neon,v7")]
64115#[cfg(target_arch = "arm")]
64116#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64117#[cfg_attr(test, assert_instr(vst1))]
64118pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
64119    unsafe extern "unadjusted" {
64120        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v16i8.p0")]
64121        fn _vst1q_s8_x2(ptr: *mut i8, a: int8x16_t, b: int8x16_t);
64122    }
64123    _vst1q_s8_x2(a, b.0, b.1)
64124}
64125#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)"]
64127#[doc = "## Safety"]
64128#[doc = "  * Neon intrinsic unsafe"]
64129#[inline(always)]
64130#[target_feature(enable = "neon,v7")]
64131#[cfg(target_arch = "arm")]
64132#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64133#[cfg_attr(test, assert_instr(vst1))]
64134pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
64135    unsafe extern "unadjusted" {
64136        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4i16.p0")]
64137        fn _vst1_s16_x2(ptr: *mut i16, a: int16x4_t, b: int16x4_t);
64138    }
64139    _vst1_s16_x2(a, b.0, b.1)
64140}
64141#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)"]
64143#[doc = "## Safety"]
64144#[doc = "  * Neon intrinsic unsafe"]
64145#[inline(always)]
64146#[target_feature(enable = "neon,v7")]
64147#[cfg(target_arch = "arm")]
64148#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64149#[cfg_attr(test, assert_instr(vst1))]
64150pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
64151    unsafe extern "unadjusted" {
64152        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v8i16.p0")]
64153        fn _vst1q_s16_x2(ptr: *mut i16, a: int16x8_t, b: int16x8_t);
64154    }
64155    _vst1q_s16_x2(a, b.0, b.1)
64156}
64157#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)"]
64159#[doc = "## Safety"]
64160#[doc = "  * Neon intrinsic unsafe"]
64161#[inline(always)]
64162#[target_feature(enable = "neon,v7")]
64163#[cfg(target_arch = "arm")]
64164#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64165#[cfg_attr(test, assert_instr(vst1))]
64166pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
64167    unsafe extern "unadjusted" {
64168        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2i32.p0")]
64169        fn _vst1_s32_x2(ptr: *mut i32, a: int32x2_t, b: int32x2_t);
64170    }
64171    _vst1_s32_x2(a, b.0, b.1)
64172}
64173#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)"]
64175#[doc = "## Safety"]
64176#[doc = "  * Neon intrinsic unsafe"]
64177#[inline(always)]
64178#[target_feature(enable = "neon,v7")]
64179#[cfg(target_arch = "arm")]
64180#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64181#[cfg_attr(test, assert_instr(vst1))]
64182pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
64183    unsafe extern "unadjusted" {
64184        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4i32.p0")]
64185        fn _vst1q_s32_x2(ptr: *mut i32, a: int32x4_t, b: int32x4_t);
64186    }
64187    _vst1q_s32_x2(a, b.0, b.1)
64188}
64189#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)"]
64191#[doc = "## Safety"]
64192#[doc = "  * Neon intrinsic unsafe"]
64193#[inline(always)]
64194#[target_feature(enable = "neon,v7")]
64195#[cfg(target_arch = "arm")]
64196#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64197#[cfg_attr(test, assert_instr(vst1))]
64198pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
64199    unsafe extern "unadjusted" {
64200        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v1i64.p0")]
64201        fn _vst1_s64_x2(ptr: *mut i64, a: int64x1_t, b: int64x1_t);
64202    }
64203    _vst1_s64_x2(a, b.0, b.1)
64204}
64205#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64206#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)"]
64207#[doc = "## Safety"]
64208#[doc = "  * Neon intrinsic unsafe"]
64209#[inline(always)]
64210#[target_feature(enable = "neon,v7")]
64211#[cfg(target_arch = "arm")]
64212#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64213#[cfg_attr(test, assert_instr(vst1))]
64214pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
64215    unsafe extern "unadjusted" {
64216        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2i64.p0")]
64217        fn _vst1q_s64_x2(ptr: *mut i64, a: int64x2_t, b: int64x2_t);
64218    }
64219    _vst1q_s64_x2(a, b.0, b.1)
64220}
64221#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)"]
64223#[doc = "## Safety"]
64224#[doc = "  * Neon intrinsic unsafe"]
64225#[inline(always)]
64226#[target_feature(enable = "neon")]
64227#[cfg(not(target_arch = "arm"))]
64228#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64229#[cfg_attr(test, assert_instr(st1))]
64230pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
64231    unsafe extern "unadjusted" {
64232        #[cfg_attr(
64233            any(target_arch = "aarch64", target_arch = "arm64ec"),
64234            link_name = "llvm.aarch64.neon.st1x3.v8i8.p0"
64235        )]
64236        fn _vst1_s8_x3(a: int8x8_t, b: int8x8_t, c: int8x8_t, ptr: *mut i8);
64237    }
64238    _vst1_s8_x3(b.0, b.1, b.2, a)
64239}
64240#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)"]
64242#[doc = "## Safety"]
64243#[doc = "  * Neon intrinsic unsafe"]
64244#[inline(always)]
64245#[target_feature(enable = "neon")]
64246#[cfg(not(target_arch = "arm"))]
64247#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64248#[cfg_attr(test, assert_instr(st1))]
64249pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
64250    unsafe extern "unadjusted" {
64251        #[cfg_attr(
64252            any(target_arch = "aarch64", target_arch = "arm64ec"),
64253            link_name = "llvm.aarch64.neon.st1x3.v16i8.p0"
64254        )]
64255        fn _vst1q_s8_x3(a: int8x16_t, b: int8x16_t, c: int8x16_t, ptr: *mut i8);
64256    }
64257    _vst1q_s8_x3(b.0, b.1, b.2, a)
64258}
64259#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)"]
64261#[doc = "## Safety"]
64262#[doc = "  * Neon intrinsic unsafe"]
64263#[inline(always)]
64264#[target_feature(enable = "neon")]
64265#[cfg(not(target_arch = "arm"))]
64266#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64267#[cfg_attr(test, assert_instr(st1))]
64268pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
64269    unsafe extern "unadjusted" {
64270        #[cfg_attr(
64271            any(target_arch = "aarch64", target_arch = "arm64ec"),
64272            link_name = "llvm.aarch64.neon.st1x3.v4i16.p0"
64273        )]
64274        fn _vst1_s16_x3(a: int16x4_t, b: int16x4_t, c: int16x4_t, ptr: *mut i16);
64275    }
64276    _vst1_s16_x3(b.0, b.1, b.2, a)
64277}
64278#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64279#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)"]
64280#[doc = "## Safety"]
64281#[doc = "  * Neon intrinsic unsafe"]
64282#[inline(always)]
64283#[target_feature(enable = "neon")]
64284#[cfg(not(target_arch = "arm"))]
64285#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64286#[cfg_attr(test, assert_instr(st1))]
64287pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
64288    unsafe extern "unadjusted" {
64289        #[cfg_attr(
64290            any(target_arch = "aarch64", target_arch = "arm64ec"),
64291            link_name = "llvm.aarch64.neon.st1x3.v8i16.p0"
64292        )]
64293        fn _vst1q_s16_x3(a: int16x8_t, b: int16x8_t, c: int16x8_t, ptr: *mut i16);
64294    }
64295    _vst1q_s16_x3(b.0, b.1, b.2, a)
64296}
64297#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)"]
64299#[doc = "## Safety"]
64300#[doc = "  * Neon intrinsic unsafe"]
64301#[inline(always)]
64302#[target_feature(enable = "neon")]
64303#[cfg(not(target_arch = "arm"))]
64304#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64305#[cfg_attr(test, assert_instr(st1))]
64306pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
64307    unsafe extern "unadjusted" {
64308        #[cfg_attr(
64309            any(target_arch = "aarch64", target_arch = "arm64ec"),
64310            link_name = "llvm.aarch64.neon.st1x3.v2i32.p0"
64311        )]
64312        fn _vst1_s32_x3(a: int32x2_t, b: int32x2_t, c: int32x2_t, ptr: *mut i32);
64313    }
64314    _vst1_s32_x3(b.0, b.1, b.2, a)
64315}
64316#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)"]
64318#[doc = "## Safety"]
64319#[doc = "  * Neon intrinsic unsafe"]
64320#[inline(always)]
64321#[target_feature(enable = "neon")]
64322#[cfg(not(target_arch = "arm"))]
64323#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64324#[cfg_attr(test, assert_instr(st1))]
64325pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
64326    unsafe extern "unadjusted" {
64327        #[cfg_attr(
64328            any(target_arch = "aarch64", target_arch = "arm64ec"),
64329            link_name = "llvm.aarch64.neon.st1x3.v4i32.p0"
64330        )]
64331        fn _vst1q_s32_x3(a: int32x4_t, b: int32x4_t, c: int32x4_t, ptr: *mut i32);
64332    }
64333    _vst1q_s32_x3(b.0, b.1, b.2, a)
64334}
64335#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)"]
64337#[doc = "## Safety"]
64338#[doc = "  * Neon intrinsic unsafe"]
64339#[inline(always)]
64340#[target_feature(enable = "neon")]
64341#[cfg(not(target_arch = "arm"))]
64342#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64343#[cfg_attr(test, assert_instr(st1))]
64344pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
64345    unsafe extern "unadjusted" {
64346        #[cfg_attr(
64347            any(target_arch = "aarch64", target_arch = "arm64ec"),
64348            link_name = "llvm.aarch64.neon.st1x3.v1i64.p0"
64349        )]
64350        fn _vst1_s64_x3(a: int64x1_t, b: int64x1_t, c: int64x1_t, ptr: *mut i64);
64351    }
64352    _vst1_s64_x3(b.0, b.1, b.2, a)
64353}
64354#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)"]
64356#[doc = "## Safety"]
64357#[doc = "  * Neon intrinsic unsafe"]
64358#[inline(always)]
64359#[target_feature(enable = "neon")]
64360#[cfg(not(target_arch = "arm"))]
64361#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64362#[cfg_attr(test, assert_instr(st1))]
64363pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
64364    unsafe extern "unadjusted" {
64365        #[cfg_attr(
64366            any(target_arch = "aarch64", target_arch = "arm64ec"),
64367            link_name = "llvm.aarch64.neon.st1x3.v2i64.p0"
64368        )]
64369        fn _vst1q_s64_x3(a: int64x2_t, b: int64x2_t, c: int64x2_t, ptr: *mut i64);
64370    }
64371    _vst1q_s64_x3(b.0, b.1, b.2, a)
64372}
64373#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)"]
64375#[doc = "## Safety"]
64376#[doc = "  * Neon intrinsic unsafe"]
64377#[inline(always)]
64378#[target_feature(enable = "neon,v7")]
64379#[cfg(target_arch = "arm")]
64380#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64381#[cfg_attr(test, assert_instr(vst1))]
64382pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
64383    unsafe extern "unadjusted" {
64384        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8i8.p0")]
64385        fn _vst1_s8_x3(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t);
64386    }
64387    _vst1_s8_x3(a, b.0, b.1, b.2)
64388}
64389#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64390#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)"]
64391#[doc = "## Safety"]
64392#[doc = "  * Neon intrinsic unsafe"]
64393#[inline(always)]
64394#[target_feature(enable = "neon,v7")]
64395#[cfg(target_arch = "arm")]
64396#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64397#[cfg_attr(test, assert_instr(vst1))]
64398pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
64399    unsafe extern "unadjusted" {
64400        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v16i8.p0")]
64401        fn _vst1q_s8_x3(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t);
64402    }
64403    _vst1q_s8_x3(a, b.0, b.1, b.2)
64404}
64405#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64406#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)"]
64407#[doc = "## Safety"]
64408#[doc = "  * Neon intrinsic unsafe"]
64409#[inline(always)]
64410#[target_feature(enable = "neon,v7")]
64411#[cfg(target_arch = "arm")]
64412#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64413#[cfg_attr(test, assert_instr(vst1))]
64414pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
64415    unsafe extern "unadjusted" {
64416        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4i16.p0")]
64417        fn _vst1_s16_x3(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t);
64418    }
64419    _vst1_s16_x3(a, b.0, b.1, b.2)
64420}
64421#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)"]
64423#[doc = "## Safety"]
64424#[doc = "  * Neon intrinsic unsafe"]
64425#[inline(always)]
64426#[target_feature(enable = "neon,v7")]
64427#[cfg(target_arch = "arm")]
64428#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64429#[cfg_attr(test, assert_instr(vst1))]
64430pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
64431    unsafe extern "unadjusted" {
64432        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8i16.p0")]
64433        fn _vst1q_s16_x3(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t);
64434    }
64435    _vst1q_s16_x3(a, b.0, b.1, b.2)
64436}
64437#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)"]
64439#[doc = "## Safety"]
64440#[doc = "  * Neon intrinsic unsafe"]
64441#[inline(always)]
64442#[target_feature(enable = "neon,v7")]
64443#[cfg(target_arch = "arm")]
64444#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64445#[cfg_attr(test, assert_instr(vst1))]
64446pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
64447    unsafe extern "unadjusted" {
64448        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v2i32.p0")]
64449        fn _vst1_s32_x3(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t);
64450    }
64451    _vst1_s32_x3(a, b.0, b.1, b.2)
64452}
64453#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)"]
64455#[doc = "## Safety"]
64456#[doc = "  * Neon intrinsic unsafe"]
64457#[inline(always)]
64458#[target_feature(enable = "neon,v7")]
64459#[cfg(target_arch = "arm")]
64460#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64461#[cfg_attr(test, assert_instr(vst1))]
64462pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
64463    unsafe extern "unadjusted" {
64464        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4i32.p0")]
64465        fn _vst1q_s32_x3(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t);
64466    }
64467    _vst1q_s32_x3(a, b.0, b.1, b.2)
64468}
64469#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)"]
64471#[doc = "## Safety"]
64472#[doc = "  * Neon intrinsic unsafe"]
64473#[inline(always)]
64474#[target_feature(enable = "neon,v7")]
64475#[cfg(target_arch = "arm")]
64476#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64477#[cfg_attr(test, assert_instr(vst1))]
64478pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
64479    unsafe extern "unadjusted" {
64480        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v1i64.p0")]
64481        fn _vst1_s64_x3(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t);
64482    }
64483    _vst1_s64_x3(a, b.0, b.1, b.2)
64484}
64485#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)"]
64487#[doc = "## Safety"]
64488#[doc = "  * Neon intrinsic unsafe"]
64489#[inline(always)]
64490#[target_feature(enable = "neon,v7")]
64491#[cfg(target_arch = "arm")]
64492#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64493#[cfg_attr(test, assert_instr(vst1))]
64494pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
64495    unsafe extern "unadjusted" {
64496        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v2i64.p0")]
64497        fn _vst1q_s64_x3(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t);
64498    }
64499    _vst1q_s64_x3(a, b.0, b.1, b.2)
64500}
64501#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)"]
64503#[doc = "## Safety"]
64504#[doc = "  * Neon intrinsic unsafe"]
64505#[inline(always)]
64506#[target_feature(enable = "neon")]
64507#[cfg(not(target_arch = "arm"))]
64508#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64509#[cfg_attr(test, assert_instr(st1))]
64510pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
64511    unsafe extern "unadjusted" {
64512        #[cfg_attr(
64513            any(target_arch = "aarch64", target_arch = "arm64ec"),
64514            link_name = "llvm.aarch64.neon.st1x4.v8i8.p0"
64515        )]
64516        fn _vst1_s8_x4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, ptr: *mut i8);
64517    }
64518    _vst1_s8_x4(b.0, b.1, b.2, b.3, a)
64519}
64520#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)"]
64522#[doc = "## Safety"]
64523#[doc = "  * Neon intrinsic unsafe"]
64524#[inline(always)]
64525#[target_feature(enable = "neon")]
64526#[cfg(not(target_arch = "arm"))]
64527#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64528#[cfg_attr(test, assert_instr(st1))]
64529pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
64530    unsafe extern "unadjusted" {
64531        #[cfg_attr(
64532            any(target_arch = "aarch64", target_arch = "arm64ec"),
64533            link_name = "llvm.aarch64.neon.st1x4.v16i8.p0"
64534        )]
64535        fn _vst1q_s8_x4(a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, ptr: *mut i8);
64536    }
64537    _vst1q_s8_x4(b.0, b.1, b.2, b.3, a)
64538}
64539#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)"]
64541#[doc = "## Safety"]
64542#[doc = "  * Neon intrinsic unsafe"]
64543#[inline(always)]
64544#[target_feature(enable = "neon")]
64545#[cfg(not(target_arch = "arm"))]
64546#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64547#[cfg_attr(test, assert_instr(st1))]
64548pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
64549    unsafe extern "unadjusted" {
64550        #[cfg_attr(
64551            any(target_arch = "aarch64", target_arch = "arm64ec"),
64552            link_name = "llvm.aarch64.neon.st1x4.v4i16.p0"
64553        )]
64554        fn _vst1_s16_x4(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, ptr: *mut i16);
64555    }
64556    _vst1_s16_x4(b.0, b.1, b.2, b.3, a)
64557}
64558#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)"]
64560#[doc = "## Safety"]
64561#[doc = "  * Neon intrinsic unsafe"]
64562#[inline(always)]
64563#[target_feature(enable = "neon")]
64564#[cfg(not(target_arch = "arm"))]
64565#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64566#[cfg_attr(test, assert_instr(st1))]
64567pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
64568    unsafe extern "unadjusted" {
64569        #[cfg_attr(
64570            any(target_arch = "aarch64", target_arch = "arm64ec"),
64571            link_name = "llvm.aarch64.neon.st1x4.v8i16.p0"
64572        )]
64573        fn _vst1q_s16_x4(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, ptr: *mut i16);
64574    }
64575    _vst1q_s16_x4(b.0, b.1, b.2, b.3, a)
64576}
64577#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)"]
64579#[doc = "## Safety"]
64580#[doc = "  * Neon intrinsic unsafe"]
64581#[inline(always)]
64582#[target_feature(enable = "neon")]
64583#[cfg(not(target_arch = "arm"))]
64584#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64585#[cfg_attr(test, assert_instr(st1))]
64586pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
64587    unsafe extern "unadjusted" {
64588        #[cfg_attr(
64589            any(target_arch = "aarch64", target_arch = "arm64ec"),
64590            link_name = "llvm.aarch64.neon.st1x4.v2i32.p0"
64591        )]
64592        fn _vst1_s32_x4(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, ptr: *mut i32);
64593    }
64594    _vst1_s32_x4(b.0, b.1, b.2, b.3, a)
64595}
64596#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64597#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)"]
64598#[doc = "## Safety"]
64599#[doc = "  * Neon intrinsic unsafe"]
64600#[inline(always)]
64601#[target_feature(enable = "neon")]
64602#[cfg(not(target_arch = "arm"))]
64603#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64604#[cfg_attr(test, assert_instr(st1))]
64605pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
64606    unsafe extern "unadjusted" {
64607        #[cfg_attr(
64608            any(target_arch = "aarch64", target_arch = "arm64ec"),
64609            link_name = "llvm.aarch64.neon.st1x4.v4i32.p0"
64610        )]
64611        fn _vst1q_s32_x4(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, ptr: *mut i32);
64612    }
64613    _vst1q_s32_x4(b.0, b.1, b.2, b.3, a)
64614}
64615#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64616#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)"]
64617#[doc = "## Safety"]
64618#[doc = "  * Neon intrinsic unsafe"]
64619#[inline(always)]
64620#[target_feature(enable = "neon")]
64621#[cfg(not(target_arch = "arm"))]
64622#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64623#[cfg_attr(test, assert_instr(st1))]
64624pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
64625    unsafe extern "unadjusted" {
64626        #[cfg_attr(
64627            any(target_arch = "aarch64", target_arch = "arm64ec"),
64628            link_name = "llvm.aarch64.neon.st1x4.v1i64.p0"
64629        )]
64630        fn _vst1_s64_x4(a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, ptr: *mut i64);
64631    }
64632    _vst1_s64_x4(b.0, b.1, b.2, b.3, a)
64633}
64634#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)"]
64636#[doc = "## Safety"]
64637#[doc = "  * Neon intrinsic unsafe"]
64638#[inline(always)]
64639#[target_feature(enable = "neon")]
64640#[cfg(not(target_arch = "arm"))]
64641#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64642#[cfg_attr(test, assert_instr(st1))]
64643pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
64644    unsafe extern "unadjusted" {
64645        #[cfg_attr(
64646            any(target_arch = "aarch64", target_arch = "arm64ec"),
64647            link_name = "llvm.aarch64.neon.st1x4.v2i64.p0"
64648        )]
64649        fn _vst1q_s64_x4(a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t, ptr: *mut i64);
64650    }
64651    _vst1q_s64_x4(b.0, b.1, b.2, b.3, a)
64652}
64653#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64654#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)"]
64655#[doc = "## Safety"]
64656#[doc = "  * Neon intrinsic unsafe"]
64657#[inline(always)]
64658#[cfg(target_arch = "arm")]
64659#[target_feature(enable = "neon,v7")]
64660#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64661#[cfg_attr(test, assert_instr(vst1))]
64662pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
64663    unsafe extern "unadjusted" {
64664        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8i8.p0")]
64665        fn _vst1_s8_x4(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t);
64666    }
64667    _vst1_s8_x4(a, b.0, b.1, b.2, b.3)
64668}
64669#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)"]
64671#[doc = "## Safety"]
64672#[doc = "  * Neon intrinsic unsafe"]
64673#[inline(always)]
64674#[cfg(target_arch = "arm")]
64675#[target_feature(enable = "neon,v7")]
64676#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64677#[cfg_attr(test, assert_instr(vst1))]
64678pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
64679    unsafe extern "unadjusted" {
64680        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v16i8.p0")]
64681        fn _vst1q_s8_x4(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t);
64682    }
64683    _vst1q_s8_x4(a, b.0, b.1, b.2, b.3)
64684}
64685#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)"]
64687#[doc = "## Safety"]
64688#[doc = "  * Neon intrinsic unsafe"]
64689#[inline(always)]
64690#[cfg(target_arch = "arm")]
64691#[target_feature(enable = "neon,v7")]
64692#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64693#[cfg_attr(test, assert_instr(vst1))]
64694pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
64695    unsafe extern "unadjusted" {
64696        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4i16.p0")]
64697        fn _vst1_s16_x4(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t);
64698    }
64699    _vst1_s16_x4(a, b.0, b.1, b.2, b.3)
64700}
64701#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)"]
64703#[doc = "## Safety"]
64704#[doc = "  * Neon intrinsic unsafe"]
64705#[inline(always)]
64706#[cfg(target_arch = "arm")]
64707#[target_feature(enable = "neon,v7")]
64708#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64709#[cfg_attr(test, assert_instr(vst1))]
64710pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
64711    unsafe extern "unadjusted" {
64712        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8i16.p0")]
64713        fn _vst1q_s16_x4(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t);
64714    }
64715    _vst1q_s16_x4(a, b.0, b.1, b.2, b.3)
64716}
64717#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)"]
64719#[doc = "## Safety"]
64720#[doc = "  * Neon intrinsic unsafe"]
64721#[inline(always)]
64722#[cfg(target_arch = "arm")]
64723#[target_feature(enable = "neon,v7")]
64724#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64725#[cfg_attr(test, assert_instr(vst1))]
64726pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
64727    unsafe extern "unadjusted" {
64728        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2i32.p0")]
64729        fn _vst1_s32_x4(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t);
64730    }
64731    _vst1_s32_x4(a, b.0, b.1, b.2, b.3)
64732}
64733#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)"]
64735#[doc = "## Safety"]
64736#[doc = "  * Neon intrinsic unsafe"]
64737#[inline(always)]
64738#[cfg(target_arch = "arm")]
64739#[target_feature(enable = "neon,v7")]
64740#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64741#[cfg_attr(test, assert_instr(vst1))]
64742pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
64743    unsafe extern "unadjusted" {
64744        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4i32.p0")]
64745        fn _vst1q_s32_x4(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t);
64746    }
64747    _vst1q_s32_x4(a, b.0, b.1, b.2, b.3)
64748}
64749#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)"]
64751#[doc = "## Safety"]
64752#[doc = "  * Neon intrinsic unsafe"]
64753#[inline(always)]
64754#[cfg(target_arch = "arm")]
64755#[target_feature(enable = "neon,v7")]
64756#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64757#[cfg_attr(test, assert_instr(vst1))]
64758pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
64759    unsafe extern "unadjusted" {
64760        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v1i64.p0")]
64761        fn _vst1_s64_x4(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t);
64762    }
64763    _vst1_s64_x4(a, b.0, b.1, b.2, b.3)
64764}
64765#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)"]
64767#[doc = "## Safety"]
64768#[doc = "  * Neon intrinsic unsafe"]
64769#[inline(always)]
64770#[cfg(target_arch = "arm")]
64771#[target_feature(enable = "neon,v7")]
64772#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64773#[cfg_attr(test, assert_instr(vst1))]
64774pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
64775    unsafe extern "unadjusted" {
64776        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2i64.p0")]
64777        fn _vst1q_s64_x4(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t);
64778    }
64779    _vst1q_s64_x4(a, b.0, b.1, b.2, b.3)
64780}
64781#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64782#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x2)"]
64783#[doc = "## Safety"]
64784#[doc = "  * Neon intrinsic unsafe"]
64785#[inline(always)]
64786#[target_feature(enable = "neon")]
64787#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64788#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64789#[cfg_attr(
64790    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64791    assert_instr(st1)
64792)]
64793#[cfg_attr(
64794    not(target_arch = "arm"),
64795    stable(feature = "neon_intrinsics", since = "1.59.0")
64796)]
64797#[cfg_attr(
64798    target_arch = "arm",
64799    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64800)]
64801pub unsafe fn vst1_u8_x2(a: *mut u8, b: uint8x8x2_t) {
64802    vst1_s8_x2(transmute(a), transmute(b))
64803}
64804#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64805#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x3)"]
64806#[doc = "## Safety"]
64807#[doc = "  * Neon intrinsic unsafe"]
64808#[inline(always)]
64809#[target_feature(enable = "neon")]
64810#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64811#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64812#[cfg_attr(
64813    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64814    assert_instr(st1)
64815)]
64816#[cfg_attr(
64817    not(target_arch = "arm"),
64818    stable(feature = "neon_intrinsics", since = "1.59.0")
64819)]
64820#[cfg_attr(
64821    target_arch = "arm",
64822    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64823)]
64824pub unsafe fn vst1_u8_x3(a: *mut u8, b: uint8x8x3_t) {
64825    vst1_s8_x3(transmute(a), transmute(b))
64826}
64827#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64828#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x4)"]
64829#[doc = "## Safety"]
64830#[doc = "  * Neon intrinsic unsafe"]
64831#[inline(always)]
64832#[target_feature(enable = "neon")]
64833#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64834#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64835#[cfg_attr(
64836    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64837    assert_instr(st1)
64838)]
64839#[cfg_attr(
64840    not(target_arch = "arm"),
64841    stable(feature = "neon_intrinsics", since = "1.59.0")
64842)]
64843#[cfg_attr(
64844    target_arch = "arm",
64845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64846)]
64847pub unsafe fn vst1_u8_x4(a: *mut u8, b: uint8x8x4_t) {
64848    vst1_s8_x4(transmute(a), transmute(b))
64849}
64850#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x2)"]
64852#[doc = "## Safety"]
64853#[doc = "  * Neon intrinsic unsafe"]
64854#[inline(always)]
64855#[target_feature(enable = "neon")]
64856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64858#[cfg_attr(
64859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64860    assert_instr(st1)
64861)]
64862#[cfg_attr(
64863    not(target_arch = "arm"),
64864    stable(feature = "neon_intrinsics", since = "1.59.0")
64865)]
64866#[cfg_attr(
64867    target_arch = "arm",
64868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64869)]
64870pub unsafe fn vst1q_u8_x2(a: *mut u8, b: uint8x16x2_t) {
64871    vst1q_s8_x2(transmute(a), transmute(b))
64872}
64873#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x3)"]
64875#[doc = "## Safety"]
64876#[doc = "  * Neon intrinsic unsafe"]
64877#[inline(always)]
64878#[target_feature(enable = "neon")]
64879#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64880#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64881#[cfg_attr(
64882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64883    assert_instr(st1)
64884)]
64885#[cfg_attr(
64886    not(target_arch = "arm"),
64887    stable(feature = "neon_intrinsics", since = "1.59.0")
64888)]
64889#[cfg_attr(
64890    target_arch = "arm",
64891    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64892)]
64893pub unsafe fn vst1q_u8_x3(a: *mut u8, b: uint8x16x3_t) {
64894    vst1q_s8_x3(transmute(a), transmute(b))
64895}
64896#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x4)"]
64898#[doc = "## Safety"]
64899#[doc = "  * Neon intrinsic unsafe"]
64900#[inline(always)]
64901#[target_feature(enable = "neon")]
64902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64904#[cfg_attr(
64905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64906    assert_instr(st1)
64907)]
64908#[cfg_attr(
64909    not(target_arch = "arm"),
64910    stable(feature = "neon_intrinsics", since = "1.59.0")
64911)]
64912#[cfg_attr(
64913    target_arch = "arm",
64914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64915)]
64916pub unsafe fn vst1q_u8_x4(a: *mut u8, b: uint8x16x4_t) {
64917    vst1q_s8_x4(transmute(a), transmute(b))
64918}
64919#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64920#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x2)"]
64921#[doc = "## Safety"]
64922#[doc = "  * Neon intrinsic unsafe"]
64923#[inline(always)]
64924#[target_feature(enable = "neon")]
64925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64926#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64927#[cfg_attr(
64928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64929    assert_instr(st1)
64930)]
64931#[cfg_attr(
64932    not(target_arch = "arm"),
64933    stable(feature = "neon_intrinsics", since = "1.59.0")
64934)]
64935#[cfg_attr(
64936    target_arch = "arm",
64937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64938)]
64939pub unsafe fn vst1_u16_x2(a: *mut u16, b: uint16x4x2_t) {
64940    vst1_s16_x2(transmute(a), transmute(b))
64941}
64942#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64943#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x3)"]
64944#[doc = "## Safety"]
64945#[doc = "  * Neon intrinsic unsafe"]
64946#[inline(always)]
64947#[target_feature(enable = "neon")]
64948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64950#[cfg_attr(
64951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64952    assert_instr(st1)
64953)]
64954#[cfg_attr(
64955    not(target_arch = "arm"),
64956    stable(feature = "neon_intrinsics", since = "1.59.0")
64957)]
64958#[cfg_attr(
64959    target_arch = "arm",
64960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64961)]
64962pub unsafe fn vst1_u16_x3(a: *mut u16, b: uint16x4x3_t) {
64963    vst1_s16_x3(transmute(a), transmute(b))
64964}
64965#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x4)"]
64967#[doc = "## Safety"]
64968#[doc = "  * Neon intrinsic unsafe"]
64969#[inline(always)]
64970#[target_feature(enable = "neon")]
64971#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64972#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64973#[cfg_attr(
64974    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64975    assert_instr(st1)
64976)]
64977#[cfg_attr(
64978    not(target_arch = "arm"),
64979    stable(feature = "neon_intrinsics", since = "1.59.0")
64980)]
64981#[cfg_attr(
64982    target_arch = "arm",
64983    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64984)]
64985pub unsafe fn vst1_u16_x4(a: *mut u16, b: uint16x4x4_t) {
64986    vst1_s16_x4(transmute(a), transmute(b))
64987}
64988#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x2)"]
64990#[doc = "## Safety"]
64991#[doc = "  * Neon intrinsic unsafe"]
64992#[inline(always)]
64993#[target_feature(enable = "neon")]
64994#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64995#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64996#[cfg_attr(
64997    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64998    assert_instr(st1)
64999)]
65000#[cfg_attr(
65001    not(target_arch = "arm"),
65002    stable(feature = "neon_intrinsics", since = "1.59.0")
65003)]
65004#[cfg_attr(
65005    target_arch = "arm",
65006    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65007)]
65008pub unsafe fn vst1q_u16_x2(a: *mut u16, b: uint16x8x2_t) {
65009    vst1q_s16_x2(transmute(a), transmute(b))
65010}
65011#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x3)"]
65013#[doc = "## Safety"]
65014#[doc = "  * Neon intrinsic unsafe"]
65015#[inline(always)]
65016#[target_feature(enable = "neon")]
65017#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65018#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65019#[cfg_attr(
65020    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65021    assert_instr(st1)
65022)]
65023#[cfg_attr(
65024    not(target_arch = "arm"),
65025    stable(feature = "neon_intrinsics", since = "1.59.0")
65026)]
65027#[cfg_attr(
65028    target_arch = "arm",
65029    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65030)]
65031pub unsafe fn vst1q_u16_x3(a: *mut u16, b: uint16x8x3_t) {
65032    vst1q_s16_x3(transmute(a), transmute(b))
65033}
65034#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x4)"]
65036#[doc = "## Safety"]
65037#[doc = "  * Neon intrinsic unsafe"]
65038#[inline(always)]
65039#[target_feature(enable = "neon")]
65040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65041#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65042#[cfg_attr(
65043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65044    assert_instr(st1)
65045)]
65046#[cfg_attr(
65047    not(target_arch = "arm"),
65048    stable(feature = "neon_intrinsics", since = "1.59.0")
65049)]
65050#[cfg_attr(
65051    target_arch = "arm",
65052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65053)]
65054pub unsafe fn vst1q_u16_x4(a: *mut u16, b: uint16x8x4_t) {
65055    vst1q_s16_x4(transmute(a), transmute(b))
65056}
65057#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x2)"]
65059#[doc = "## Safety"]
65060#[doc = "  * Neon intrinsic unsafe"]
65061#[inline(always)]
65062#[target_feature(enable = "neon")]
65063#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65064#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65065#[cfg_attr(
65066    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65067    assert_instr(st1)
65068)]
65069#[cfg_attr(
65070    not(target_arch = "arm"),
65071    stable(feature = "neon_intrinsics", since = "1.59.0")
65072)]
65073#[cfg_attr(
65074    target_arch = "arm",
65075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65076)]
65077pub unsafe fn vst1_u32_x2(a: *mut u32, b: uint32x2x2_t) {
65078    vst1_s32_x2(transmute(a), transmute(b))
65079}
65080#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x3)"]
65082#[doc = "## Safety"]
65083#[doc = "  * Neon intrinsic unsafe"]
65084#[inline(always)]
65085#[target_feature(enable = "neon")]
65086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65087#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65088#[cfg_attr(
65089    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65090    assert_instr(st1)
65091)]
65092#[cfg_attr(
65093    not(target_arch = "arm"),
65094    stable(feature = "neon_intrinsics", since = "1.59.0")
65095)]
65096#[cfg_attr(
65097    target_arch = "arm",
65098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65099)]
65100pub unsafe fn vst1_u32_x3(a: *mut u32, b: uint32x2x3_t) {
65101    vst1_s32_x3(transmute(a), transmute(b))
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/vst1_u32_x4)"]
65105#[doc = "## Safety"]
65106#[doc = "  * Neon intrinsic unsafe"]
65107#[inline(always)]
65108#[target_feature(enable = "neon")]
65109#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65110#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65111#[cfg_attr(
65112    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65113    assert_instr(st1)
65114)]
65115#[cfg_attr(
65116    not(target_arch = "arm"),
65117    stable(feature = "neon_intrinsics", since = "1.59.0")
65118)]
65119#[cfg_attr(
65120    target_arch = "arm",
65121    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65122)]
65123pub unsafe fn vst1_u32_x4(a: *mut u32, b: uint32x2x4_t) {
65124    vst1_s32_x4(transmute(a), transmute(b))
65125}
65126#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x2)"]
65128#[doc = "## Safety"]
65129#[doc = "  * Neon intrinsic unsafe"]
65130#[inline(always)]
65131#[target_feature(enable = "neon")]
65132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65133#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65134#[cfg_attr(
65135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65136    assert_instr(st1)
65137)]
65138#[cfg_attr(
65139    not(target_arch = "arm"),
65140    stable(feature = "neon_intrinsics", since = "1.59.0")
65141)]
65142#[cfg_attr(
65143    target_arch = "arm",
65144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65145)]
65146pub unsafe fn vst1q_u32_x2(a: *mut u32, b: uint32x4x2_t) {
65147    vst1q_s32_x2(transmute(a), transmute(b))
65148}
65149#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x3)"]
65151#[doc = "## Safety"]
65152#[doc = "  * Neon intrinsic unsafe"]
65153#[inline(always)]
65154#[target_feature(enable = "neon")]
65155#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65156#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65157#[cfg_attr(
65158    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65159    assert_instr(st1)
65160)]
65161#[cfg_attr(
65162    not(target_arch = "arm"),
65163    stable(feature = "neon_intrinsics", since = "1.59.0")
65164)]
65165#[cfg_attr(
65166    target_arch = "arm",
65167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65168)]
65169pub unsafe fn vst1q_u32_x3(a: *mut u32, b: uint32x4x3_t) {
65170    vst1q_s32_x3(transmute(a), transmute(b))
65171}
65172#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x4)"]
65174#[doc = "## Safety"]
65175#[doc = "  * Neon intrinsic unsafe"]
65176#[inline(always)]
65177#[target_feature(enable = "neon")]
65178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65180#[cfg_attr(
65181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65182    assert_instr(st1)
65183)]
65184#[cfg_attr(
65185    not(target_arch = "arm"),
65186    stable(feature = "neon_intrinsics", since = "1.59.0")
65187)]
65188#[cfg_attr(
65189    target_arch = "arm",
65190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65191)]
65192pub unsafe fn vst1q_u32_x4(a: *mut u32, b: uint32x4x4_t) {
65193    vst1q_s32_x4(transmute(a), transmute(b))
65194}
65195#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x2)"]
65197#[doc = "## Safety"]
65198#[doc = "  * Neon intrinsic unsafe"]
65199#[inline(always)]
65200#[target_feature(enable = "neon")]
65201#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65202#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65203#[cfg_attr(
65204    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65205    assert_instr(st1)
65206)]
65207#[cfg_attr(
65208    not(target_arch = "arm"),
65209    stable(feature = "neon_intrinsics", since = "1.59.0")
65210)]
65211#[cfg_attr(
65212    target_arch = "arm",
65213    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65214)]
65215pub unsafe fn vst1_u64_x2(a: *mut u64, b: uint64x1x2_t) {
65216    vst1_s64_x2(transmute(a), transmute(b))
65217}
65218#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x3)"]
65220#[doc = "## Safety"]
65221#[doc = "  * Neon intrinsic unsafe"]
65222#[inline(always)]
65223#[target_feature(enable = "neon")]
65224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65226#[cfg_attr(
65227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65228    assert_instr(st1)
65229)]
65230#[cfg_attr(
65231    not(target_arch = "arm"),
65232    stable(feature = "neon_intrinsics", since = "1.59.0")
65233)]
65234#[cfg_attr(
65235    target_arch = "arm",
65236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65237)]
65238pub unsafe fn vst1_u64_x3(a: *mut u64, b: uint64x1x3_t) {
65239    vst1_s64_x3(transmute(a), transmute(b))
65240}
65241#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x4)"]
65243#[doc = "## Safety"]
65244#[doc = "  * Neon intrinsic unsafe"]
65245#[inline(always)]
65246#[target_feature(enable = "neon")]
65247#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65248#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65249#[cfg_attr(
65250    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65251    assert_instr(st1)
65252)]
65253#[cfg_attr(
65254    not(target_arch = "arm"),
65255    stable(feature = "neon_intrinsics", since = "1.59.0")
65256)]
65257#[cfg_attr(
65258    target_arch = "arm",
65259    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65260)]
65261pub unsafe fn vst1_u64_x4(a: *mut u64, b: uint64x1x4_t) {
65262    vst1_s64_x4(transmute(a), transmute(b))
65263}
65264#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x2)"]
65266#[doc = "## Safety"]
65267#[doc = "  * Neon intrinsic unsafe"]
65268#[inline(always)]
65269#[target_feature(enable = "neon")]
65270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65272#[cfg_attr(
65273    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65274    assert_instr(st1)
65275)]
65276#[cfg_attr(
65277    not(target_arch = "arm"),
65278    stable(feature = "neon_intrinsics", since = "1.59.0")
65279)]
65280#[cfg_attr(
65281    target_arch = "arm",
65282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65283)]
65284pub unsafe fn vst1q_u64_x2(a: *mut u64, b: uint64x2x2_t) {
65285    vst1q_s64_x2(transmute(a), transmute(b))
65286}
65287#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x3)"]
65289#[doc = "## Safety"]
65290#[doc = "  * Neon intrinsic unsafe"]
65291#[inline(always)]
65292#[target_feature(enable = "neon")]
65293#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65294#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65295#[cfg_attr(
65296    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65297    assert_instr(st1)
65298)]
65299#[cfg_attr(
65300    not(target_arch = "arm"),
65301    stable(feature = "neon_intrinsics", since = "1.59.0")
65302)]
65303#[cfg_attr(
65304    target_arch = "arm",
65305    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65306)]
65307pub unsafe fn vst1q_u64_x3(a: *mut u64, b: uint64x2x3_t) {
65308    vst1q_s64_x3(transmute(a), transmute(b))
65309}
65310#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x4)"]
65312#[doc = "## Safety"]
65313#[doc = "  * Neon intrinsic unsafe"]
65314#[inline(always)]
65315#[target_feature(enable = "neon")]
65316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65318#[cfg_attr(
65319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65320    assert_instr(st1)
65321)]
65322#[cfg_attr(
65323    not(target_arch = "arm"),
65324    stable(feature = "neon_intrinsics", since = "1.59.0")
65325)]
65326#[cfg_attr(
65327    target_arch = "arm",
65328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65329)]
65330pub unsafe fn vst1q_u64_x4(a: *mut u64, b: uint64x2x4_t) {
65331    vst1q_s64_x4(transmute(a), transmute(b))
65332}
65333#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x2)"]
65335#[doc = "## Safety"]
65336#[doc = "  * Neon intrinsic unsafe"]
65337#[inline(always)]
65338#[target_feature(enable = "neon")]
65339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65340#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65341#[cfg_attr(
65342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65343    assert_instr(st1)
65344)]
65345#[cfg_attr(
65346    not(target_arch = "arm"),
65347    stable(feature = "neon_intrinsics", since = "1.59.0")
65348)]
65349#[cfg_attr(
65350    target_arch = "arm",
65351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65352)]
65353pub unsafe fn vst1_p8_x2(a: *mut p8, b: poly8x8x2_t) {
65354    vst1_s8_x2(transmute(a), transmute(b))
65355}
65356#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x3)"]
65358#[doc = "## Safety"]
65359#[doc = "  * Neon intrinsic unsafe"]
65360#[inline(always)]
65361#[target_feature(enable = "neon")]
65362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65364#[cfg_attr(
65365    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65366    assert_instr(st1)
65367)]
65368#[cfg_attr(
65369    not(target_arch = "arm"),
65370    stable(feature = "neon_intrinsics", since = "1.59.0")
65371)]
65372#[cfg_attr(
65373    target_arch = "arm",
65374    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65375)]
65376pub unsafe fn vst1_p8_x3(a: *mut p8, b: poly8x8x3_t) {
65377    vst1_s8_x3(transmute(a), transmute(b))
65378}
65379#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x4)"]
65381#[doc = "## Safety"]
65382#[doc = "  * Neon intrinsic unsafe"]
65383#[inline(always)]
65384#[target_feature(enable = "neon")]
65385#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65386#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65387#[cfg_attr(
65388    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65389    assert_instr(st1)
65390)]
65391#[cfg_attr(
65392    not(target_arch = "arm"),
65393    stable(feature = "neon_intrinsics", since = "1.59.0")
65394)]
65395#[cfg_attr(
65396    target_arch = "arm",
65397    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65398)]
65399pub unsafe fn vst1_p8_x4(a: *mut p8, b: poly8x8x4_t) {
65400    vst1_s8_x4(transmute(a), transmute(b))
65401}
65402#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65403#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x2)"]
65404#[doc = "## Safety"]
65405#[doc = "  * Neon intrinsic unsafe"]
65406#[inline(always)]
65407#[target_feature(enable = "neon")]
65408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65410#[cfg_attr(
65411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65412    assert_instr(st1)
65413)]
65414#[cfg_attr(
65415    not(target_arch = "arm"),
65416    stable(feature = "neon_intrinsics", since = "1.59.0")
65417)]
65418#[cfg_attr(
65419    target_arch = "arm",
65420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65421)]
65422pub unsafe fn vst1q_p8_x2(a: *mut p8, b: poly8x16x2_t) {
65423    vst1q_s8_x2(transmute(a), transmute(b))
65424}
65425#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x3)"]
65427#[doc = "## Safety"]
65428#[doc = "  * Neon intrinsic unsafe"]
65429#[inline(always)]
65430#[target_feature(enable = "neon")]
65431#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65432#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65433#[cfg_attr(
65434    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65435    assert_instr(st1)
65436)]
65437#[cfg_attr(
65438    not(target_arch = "arm"),
65439    stable(feature = "neon_intrinsics", since = "1.59.0")
65440)]
65441#[cfg_attr(
65442    target_arch = "arm",
65443    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65444)]
65445pub unsafe fn vst1q_p8_x3(a: *mut p8, b: poly8x16x3_t) {
65446    vst1q_s8_x3(transmute(a), transmute(b))
65447}
65448#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x4)"]
65450#[doc = "## Safety"]
65451#[doc = "  * Neon intrinsic unsafe"]
65452#[inline(always)]
65453#[target_feature(enable = "neon")]
65454#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65455#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65456#[cfg_attr(
65457    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65458    assert_instr(st1)
65459)]
65460#[cfg_attr(
65461    not(target_arch = "arm"),
65462    stable(feature = "neon_intrinsics", since = "1.59.0")
65463)]
65464#[cfg_attr(
65465    target_arch = "arm",
65466    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65467)]
65468pub unsafe fn vst1q_p8_x4(a: *mut p8, b: poly8x16x4_t) {
65469    vst1q_s8_x4(transmute(a), transmute(b))
65470}
65471#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x2)"]
65473#[doc = "## Safety"]
65474#[doc = "  * Neon intrinsic unsafe"]
65475#[inline(always)]
65476#[target_feature(enable = "neon")]
65477#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65478#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65479#[cfg_attr(
65480    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65481    assert_instr(st1)
65482)]
65483#[cfg_attr(
65484    not(target_arch = "arm"),
65485    stable(feature = "neon_intrinsics", since = "1.59.0")
65486)]
65487#[cfg_attr(
65488    target_arch = "arm",
65489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65490)]
65491pub unsafe fn vst1_p16_x2(a: *mut p16, b: poly16x4x2_t) {
65492    vst1_s16_x2(transmute(a), transmute(b))
65493}
65494#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x3)"]
65496#[doc = "## Safety"]
65497#[doc = "  * Neon intrinsic unsafe"]
65498#[inline(always)]
65499#[target_feature(enable = "neon")]
65500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65502#[cfg_attr(
65503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65504    assert_instr(st1)
65505)]
65506#[cfg_attr(
65507    not(target_arch = "arm"),
65508    stable(feature = "neon_intrinsics", since = "1.59.0")
65509)]
65510#[cfg_attr(
65511    target_arch = "arm",
65512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65513)]
65514pub unsafe fn vst1_p16_x3(a: *mut p16, b: poly16x4x3_t) {
65515    vst1_s16_x3(transmute(a), transmute(b))
65516}
65517#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x4)"]
65519#[doc = "## Safety"]
65520#[doc = "  * Neon intrinsic unsafe"]
65521#[inline(always)]
65522#[target_feature(enable = "neon")]
65523#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65524#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65525#[cfg_attr(
65526    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65527    assert_instr(st1)
65528)]
65529#[cfg_attr(
65530    not(target_arch = "arm"),
65531    stable(feature = "neon_intrinsics", since = "1.59.0")
65532)]
65533#[cfg_attr(
65534    target_arch = "arm",
65535    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65536)]
65537pub unsafe fn vst1_p16_x4(a: *mut p16, b: poly16x4x4_t) {
65538    vst1_s16_x4(transmute(a), transmute(b))
65539}
65540#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x2)"]
65542#[doc = "## Safety"]
65543#[doc = "  * Neon intrinsic unsafe"]
65544#[inline(always)]
65545#[target_feature(enable = "neon")]
65546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65548#[cfg_attr(
65549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65550    assert_instr(st1)
65551)]
65552#[cfg_attr(
65553    not(target_arch = "arm"),
65554    stable(feature = "neon_intrinsics", since = "1.59.0")
65555)]
65556#[cfg_attr(
65557    target_arch = "arm",
65558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65559)]
65560pub unsafe fn vst1q_p16_x2(a: *mut p16, b: poly16x8x2_t) {
65561    vst1q_s16_x2(transmute(a), transmute(b))
65562}
65563#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x3)"]
65565#[doc = "## Safety"]
65566#[doc = "  * Neon intrinsic unsafe"]
65567#[inline(always)]
65568#[target_feature(enable = "neon")]
65569#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65570#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65571#[cfg_attr(
65572    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65573    assert_instr(st1)
65574)]
65575#[cfg_attr(
65576    not(target_arch = "arm"),
65577    stable(feature = "neon_intrinsics", since = "1.59.0")
65578)]
65579#[cfg_attr(
65580    target_arch = "arm",
65581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65582)]
65583pub unsafe fn vst1q_p16_x3(a: *mut p16, b: poly16x8x3_t) {
65584    vst1q_s16_x3(transmute(a), transmute(b))
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/vst1q_p16_x4)"]
65588#[doc = "## Safety"]
65589#[doc = "  * Neon intrinsic unsafe"]
65590#[inline(always)]
65591#[target_feature(enable = "neon")]
65592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65593#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65594#[cfg_attr(
65595    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65596    assert_instr(st1)
65597)]
65598#[cfg_attr(
65599    not(target_arch = "arm"),
65600    stable(feature = "neon_intrinsics", since = "1.59.0")
65601)]
65602#[cfg_attr(
65603    target_arch = "arm",
65604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65605)]
65606pub unsafe fn vst1q_p16_x4(a: *mut p16, b: poly16x8x4_t) {
65607    vst1q_s16_x4(transmute(a), transmute(b))
65608}
65609#[inline(always)]
65610#[target_feature(enable = "neon")]
65611#[cfg(target_arch = "arm")]
65612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65613#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65614#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64", ALIGN = 0))]
65615#[rustc_legacy_const_generics(2)]
65616unsafe fn vst1_v1i64<const ALIGN: i32>(addr: *const i8, val: int64x1_t) {
65617    unsafe extern "unadjusted" {
65618        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v1i64.p0")]
65619        fn _vst1_v1i64(addr: *const i8, val: int64x1_t, align: i32);
65620    }
65621    _vst1_v1i64(addr, val, ALIGN)
65622}
65623#[inline(always)]
65624#[target_feature(enable = "neon")]
65625#[cfg(target_arch = "arm")]
65626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65627#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65628#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
65629#[rustc_legacy_const_generics(2)]
65630unsafe fn vst1_v2f32<const ALIGN: i32>(addr: *const i8, val: float32x2_t) {
65631    unsafe extern "unadjusted" {
65632        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2f32.p0")]
65633        fn _vst1_v2f32(addr: *const i8, val: float32x2_t, align: i32);
65634    }
65635    _vst1_v2f32(addr, val, ALIGN)
65636}
65637#[inline(always)]
65638#[target_feature(enable = "neon")]
65639#[cfg(target_arch = "arm")]
65640#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65641#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65642#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
65643#[rustc_legacy_const_generics(2)]
65644unsafe fn vst1_v2i32<const ALIGN: i32>(addr: *const i8, val: int32x2_t) {
65645    unsafe extern "unadjusted" {
65646        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2i32.p0")]
65647        fn _vst1_v2i32(addr: *const i8, val: int32x2_t, align: i32);
65648    }
65649    _vst1_v2i32(addr, val, ALIGN)
65650}
65651#[inline(always)]
65652#[target_feature(enable = "neon")]
65653#[cfg(target_arch = "arm")]
65654#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65655#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65656#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16", ALIGN = 0))]
65657#[rustc_legacy_const_generics(2)]
65658unsafe fn vst1_v4i16<const ALIGN: i32>(addr: *const i8, val: int16x4_t) {
65659    unsafe extern "unadjusted" {
65660        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4i16.p0")]
65661        fn _vst1_v4i16(addr: *const i8, val: int16x4_t, align: i32);
65662    }
65663    _vst1_v4i16(addr, val, ALIGN)
65664}
65665#[inline(always)]
65666#[target_feature(enable = "neon")]
65667#[cfg(target_arch = "arm")]
65668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65669#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65670#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8", ALIGN = 0))]
65671#[rustc_legacy_const_generics(2)]
65672unsafe fn vst1_v8i8<const ALIGN: i32>(addr: *const i8, val: int8x8_t) {
65673    unsafe extern "unadjusted" {
65674        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8i8.p0")]
65675        fn _vst1_v8i8(addr: *const i8, val: int8x8_t, align: i32);
65676    }
65677    _vst1_v8i8(addr, val, ALIGN)
65678}
65679#[inline(always)]
65680#[target_feature(enable = "neon")]
65681#[cfg(target_arch = "arm")]
65682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65683#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65684#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8", ALIGN = 0))]
65685#[rustc_legacy_const_generics(2)]
65686unsafe fn vst1q_v16i8<const ALIGN: i32>(addr: *const i8, val: int8x16_t) {
65687    unsafe extern "unadjusted" {
65688        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v16i8.p0")]
65689        fn _vst1q_v16i8(addr: *const i8, val: int8x16_t, align: i32);
65690    }
65691    _vst1q_v16i8(addr, val, ALIGN)
65692}
65693#[inline(always)]
65694#[target_feature(enable = "neon")]
65695#[cfg(target_arch = "arm")]
65696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65697#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65698#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64", ALIGN = 0))]
65699#[rustc_legacy_const_generics(2)]
65700unsafe fn vst1q_v2i64<const ALIGN: i32>(addr: *const i8, val: int64x2_t) {
65701    unsafe extern "unadjusted" {
65702        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2i64.p0")]
65703        fn _vst1q_v2i64(addr: *const i8, val: int64x2_t, align: i32);
65704    }
65705    _vst1q_v2i64(addr, val, ALIGN)
65706}
65707#[inline(always)]
65708#[target_feature(enable = "neon")]
65709#[cfg(target_arch = "arm")]
65710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65711#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65712#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
65713#[rustc_legacy_const_generics(2)]
65714unsafe fn vst1q_v4f32<const ALIGN: i32>(addr: *const i8, val: float32x4_t) {
65715    unsafe extern "unadjusted" {
65716        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4f32.p0")]
65717        fn _vst1q_v4f32(addr: *const i8, val: float32x4_t, align: i32);
65718    }
65719    _vst1q_v4f32(addr, val, ALIGN)
65720}
65721#[inline(always)]
65722#[target_feature(enable = "neon")]
65723#[cfg(target_arch = "arm")]
65724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65725#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65726#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
65727#[rustc_legacy_const_generics(2)]
65728unsafe fn vst1q_v4i32<const ALIGN: i32>(addr: *const i8, val: int32x4_t) {
65729    unsafe extern "unadjusted" {
65730        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4i32.p0")]
65731        fn _vst1q_v4i32(addr: *const i8, val: int32x4_t, align: i32);
65732    }
65733    _vst1q_v4i32(addr, val, ALIGN)
65734}
65735#[inline(always)]
65736#[target_feature(enable = "neon")]
65737#[cfg(target_arch = "arm")]
65738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65739#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65740#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16", ALIGN = 0))]
65741#[rustc_legacy_const_generics(2)]
65742unsafe fn vst1q_v8i16<const ALIGN: i32>(addr: *const i8, val: int16x8_t) {
65743    unsafe extern "unadjusted" {
65744        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8i16.p0")]
65745        fn _vst1q_v8i16(addr: *const i8, val: int16x8_t, align: i32);
65746    }
65747    _vst1q_v8i16(addr, val, ALIGN)
65748}
65749#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_v4f16)"]
65751#[doc = "## Safety"]
65752#[doc = "  * Neon intrinsic unsafe"]
65753#[inline(always)]
65754#[cfg(target_arch = "arm")]
65755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65756#[target_feature(enable = "neon,fp16")]
65757#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65758#[cfg(not(target_arch = "arm64ec"))]
65759#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65760unsafe fn vst1_v4f16(addr: *const i8, val: float16x4_t, align: i32) {
65761    unsafe extern "unadjusted" {
65762        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4f16.p0")]
65763        fn _vst1_v4f16(addr: *const i8, val: float16x4_t, align: i32);
65764    }
65765    _vst1_v4f16(addr, val, align)
65766}
65767#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_v8f16)"]
65769#[doc = "## Safety"]
65770#[doc = "  * Neon intrinsic unsafe"]
65771#[inline(always)]
65772#[cfg(target_arch = "arm")]
65773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65774#[target_feature(enable = "neon,fp16")]
65775#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65776#[cfg(not(target_arch = "arm64ec"))]
65777#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65778unsafe fn vst1q_v8f16(addr: *const i8, val: float16x8_t, align: i32) {
65779    unsafe extern "unadjusted" {
65780        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8f16.p0")]
65781        fn _vst1q_v8f16(addr: *const i8, val: float16x8_t, align: i32);
65782    }
65783    _vst1q_v8f16(addr, val, align)
65784}
65785#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p64)"]
65787#[doc = "## Safety"]
65788#[doc = "  * Neon intrinsic unsafe"]
65789#[inline(always)]
65790#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
65791#[target_feature(enable = "neon,aes")]
65792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65793#[cfg_attr(
65794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65795    assert_instr(nop, LANE = 0)
65796)]
65797#[rustc_legacy_const_generics(2)]
65798#[cfg_attr(
65799    not(target_arch = "arm"),
65800    stable(feature = "neon_intrinsics", since = "1.59.0")
65801)]
65802#[cfg_attr(
65803    target_arch = "arm",
65804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65805)]
65806pub unsafe fn vst1q_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x2_t) {
65807    static_assert_uimm_bits!(LANE, 1);
65808    *a = simd_extract!(b, LANE as u32);
65809}
65810#[doc = "Store multiple 2-element structures from two registers"]
65811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f16)"]
65812#[doc = "## Safety"]
65813#[doc = "  * Neon intrinsic unsafe"]
65814#[inline(always)]
65815#[target_feature(enable = "neon")]
65816#[cfg(not(target_arch = "arm"))]
65817#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65818#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65819#[cfg(not(target_arch = "arm64ec"))]
65820#[cfg_attr(test, assert_instr(st2))]
65821pub unsafe fn vst2_f16(a: *mut f16, b: float16x4x2_t) {
65822    unsafe extern "unadjusted" {
65823        #[cfg_attr(
65824            any(target_arch = "aarch64", target_arch = "arm64ec"),
65825            link_name = "llvm.aarch64.neon.st2.v4f16.p0"
65826        )]
65827        fn _vst2_f16(a: float16x4_t, b: float16x4_t, ptr: *mut i8);
65828    }
65829    _vst2_f16(b.0, b.1, a as _)
65830}
65831#[doc = "Store multiple 2-element structures from two registers"]
65832#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f16)"]
65833#[doc = "## Safety"]
65834#[doc = "  * Neon intrinsic unsafe"]
65835#[inline(always)]
65836#[target_feature(enable = "neon")]
65837#[cfg(not(target_arch = "arm"))]
65838#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65839#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65840#[cfg(not(target_arch = "arm64ec"))]
65841#[cfg_attr(test, assert_instr(st2))]
65842pub unsafe fn vst2q_f16(a: *mut f16, b: float16x8x2_t) {
65843    unsafe extern "unadjusted" {
65844        #[cfg_attr(
65845            any(target_arch = "aarch64", target_arch = "arm64ec"),
65846            link_name = "llvm.aarch64.neon.st2.v8f16.p0"
65847        )]
65848        fn _vst2q_f16(a: float16x8_t, b: float16x8_t, ptr: *mut i8);
65849    }
65850    _vst2q_f16(b.0, b.1, a as _)
65851}
65852#[doc = "Store multiple 2-element structures from two registers"]
65853#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f16)"]
65854#[doc = "## Safety"]
65855#[doc = "  * Neon intrinsic unsafe"]
65856#[inline(always)]
65857#[target_feature(enable = "neon")]
65858#[cfg(target_arch = "arm")]
65859#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65860#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65861#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65862#[cfg(not(target_arch = "arm64ec"))]
65863#[cfg_attr(test, assert_instr(vst2))]
65864pub unsafe fn vst2_f16(a: *mut f16, b: float16x4x2_t) {
65865    unsafe extern "unadjusted" {
65866        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0.v4f16")]
65867        fn _vst2_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, size: i32);
65868    }
65869    _vst2_f16(a as _, b.0, b.1, 2)
65870}
65871#[doc = "Store multiple 2-element structures from two registers"]
65872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f16)"]
65873#[doc = "## Safety"]
65874#[doc = "  * Neon intrinsic unsafe"]
65875#[inline(always)]
65876#[target_feature(enable = "neon")]
65877#[cfg(target_arch = "arm")]
65878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65879#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65880#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65881#[cfg(not(target_arch = "arm64ec"))]
65882#[cfg_attr(test, assert_instr(vst2))]
65883pub unsafe fn vst2q_f16(a: *mut f16, b: float16x8x2_t) {
65884    unsafe extern "unadjusted" {
65885        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0.v8f16")]
65886        fn _vst2q_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, size: i32);
65887    }
65888    _vst2q_f16(a as _, b.0, b.1, 2)
65889}
65890#[doc = "Store multiple 2-element structures from two registers"]
65891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)"]
65892#[doc = "## Safety"]
65893#[doc = "  * Neon intrinsic unsafe"]
65894#[inline(always)]
65895#[target_feature(enable = "neon")]
65896#[cfg(not(target_arch = "arm"))]
65897#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65898#[cfg_attr(test, assert_instr(st2))]
65899pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
65900    crate::core_arch::macros::interleaving_store!(f32, 2, 2, a, b)
65901}
65902#[doc = "Store multiple 2-element structures from two registers"]
65903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)"]
65904#[doc = "## Safety"]
65905#[doc = "  * Neon intrinsic unsafe"]
65906#[inline(always)]
65907#[target_feature(enable = "neon")]
65908#[cfg(not(target_arch = "arm"))]
65909#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65910#[cfg_attr(test, assert_instr(st2))]
65911pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
65912    crate::core_arch::macros::interleaving_store!(f32, 4, 2, a, b)
65913}
65914#[doc = "Store multiple 2-element structures from two registers"]
65915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)"]
65916#[doc = "## Safety"]
65917#[doc = "  * Neon intrinsic unsafe"]
65918#[inline(always)]
65919#[target_feature(enable = "neon")]
65920#[cfg(not(target_arch = "arm"))]
65921#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65922#[cfg_attr(test, assert_instr(st2))]
65923pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
65924    crate::core_arch::macros::interleaving_store!(i8, 8, 2, a, b)
65925}
65926#[doc = "Store multiple 2-element structures from two registers"]
65927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)"]
65928#[doc = "## Safety"]
65929#[doc = "  * Neon intrinsic unsafe"]
65930#[inline(always)]
65931#[target_feature(enable = "neon")]
65932#[cfg(not(target_arch = "arm"))]
65933#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65934#[cfg_attr(test, assert_instr(st2))]
65935pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
65936    crate::core_arch::macros::interleaving_store!(i8, 16, 2, a, b)
65937}
65938#[doc = "Store multiple 2-element structures from two registers"]
65939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)"]
65940#[doc = "## Safety"]
65941#[doc = "  * Neon intrinsic unsafe"]
65942#[inline(always)]
65943#[target_feature(enable = "neon")]
65944#[cfg(not(target_arch = "arm"))]
65945#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65946#[cfg_attr(test, assert_instr(st2))]
65947pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
65948    crate::core_arch::macros::interleaving_store!(i16, 4, 2, a, b)
65949}
65950#[doc = "Store multiple 2-element structures from two registers"]
65951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)"]
65952#[doc = "## Safety"]
65953#[doc = "  * Neon intrinsic unsafe"]
65954#[inline(always)]
65955#[target_feature(enable = "neon")]
65956#[cfg(not(target_arch = "arm"))]
65957#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65958#[cfg_attr(test, assert_instr(st2))]
65959pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
65960    crate::core_arch::macros::interleaving_store!(i16, 8, 2, a, b)
65961}
65962#[doc = "Store multiple 2-element structures from two registers"]
65963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)"]
65964#[doc = "## Safety"]
65965#[doc = "  * Neon intrinsic unsafe"]
65966#[inline(always)]
65967#[target_feature(enable = "neon")]
65968#[cfg(not(target_arch = "arm"))]
65969#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65970#[cfg_attr(test, assert_instr(st2))]
65971pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
65972    crate::core_arch::macros::interleaving_store!(i32, 2, 2, a, b)
65973}
65974#[doc = "Store multiple 2-element structures from two registers"]
65975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)"]
65976#[doc = "## Safety"]
65977#[doc = "  * Neon intrinsic unsafe"]
65978#[inline(always)]
65979#[target_feature(enable = "neon")]
65980#[cfg(not(target_arch = "arm"))]
65981#[stable(feature = "neon_intrinsics", since = "1.59.0")]
65982#[cfg_attr(test, assert_instr(st2))]
65983pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
65984    crate::core_arch::macros::interleaving_store!(i32, 4, 2, a, b)
65985}
65986#[doc = "Store multiple 2-element structures from two registers"]
65987#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)"]
65988#[doc = "## Safety"]
65989#[doc = "  * Neon intrinsic unsafe"]
65990#[inline(always)]
65991#[cfg(target_arch = "arm")]
65992#[target_feature(enable = "neon,v7")]
65993#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65994#[cfg_attr(test, assert_instr(vst2))]
65995pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
65996    unsafe extern "unadjusted" {
65997        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v2f32.p0")]
65998        fn _vst2_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, size: i32);
65999    }
66000    _vst2_f32(a as _, b.0, b.1, 4)
66001}
66002#[doc = "Store multiple 2-element structures from two registers"]
66003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)"]
66004#[doc = "## Safety"]
66005#[doc = "  * Neon intrinsic unsafe"]
66006#[inline(always)]
66007#[cfg(target_arch = "arm")]
66008#[target_feature(enable = "neon,v7")]
66009#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66010#[cfg_attr(test, assert_instr(vst2))]
66011pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
66012    unsafe extern "unadjusted" {
66013        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4f32.p0")]
66014        fn _vst2q_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, size: i32);
66015    }
66016    _vst2q_f32(a as _, b.0, b.1, 4)
66017}
66018#[doc = "Store multiple 2-element structures from two registers"]
66019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)"]
66020#[doc = "## Safety"]
66021#[doc = "  * Neon intrinsic unsafe"]
66022#[inline(always)]
66023#[cfg(target_arch = "arm")]
66024#[target_feature(enable = "neon,v7")]
66025#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66026#[cfg_attr(test, assert_instr(vst2))]
66027pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
66028    unsafe extern "unadjusted" {
66029        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v8i8.p0")]
66030        fn _vst2_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, size: i32);
66031    }
66032    _vst2_s8(a as _, b.0, b.1, 1)
66033}
66034#[doc = "Store multiple 2-element structures from two registers"]
66035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)"]
66036#[doc = "## Safety"]
66037#[doc = "  * Neon intrinsic unsafe"]
66038#[inline(always)]
66039#[cfg(target_arch = "arm")]
66040#[target_feature(enable = "neon,v7")]
66041#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66042#[cfg_attr(test, assert_instr(vst2))]
66043pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
66044    unsafe extern "unadjusted" {
66045        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v16i8.p0")]
66046        fn _vst2q_s8(ptr: *mut i8, a: int8x16_t, b: int8x16_t, size: i32);
66047    }
66048    _vst2q_s8(a as _, b.0, b.1, 1)
66049}
66050#[doc = "Store multiple 2-element structures from two registers"]
66051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)"]
66052#[doc = "## Safety"]
66053#[doc = "  * Neon intrinsic unsafe"]
66054#[inline(always)]
66055#[cfg(target_arch = "arm")]
66056#[target_feature(enable = "neon,v7")]
66057#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66058#[cfg_attr(test, assert_instr(vst2))]
66059pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
66060    unsafe extern "unadjusted" {
66061        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4i16.p0")]
66062        fn _vst2_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, size: i32);
66063    }
66064    _vst2_s16(a as _, b.0, b.1, 2)
66065}
66066#[doc = "Store multiple 2-element structures from two registers"]
66067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)"]
66068#[doc = "## Safety"]
66069#[doc = "  * Neon intrinsic unsafe"]
66070#[inline(always)]
66071#[cfg(target_arch = "arm")]
66072#[target_feature(enable = "neon,v7")]
66073#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66074#[cfg_attr(test, assert_instr(vst2))]
66075pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
66076    unsafe extern "unadjusted" {
66077        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v8i16.p0")]
66078        fn _vst2q_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, size: i32);
66079    }
66080    _vst2q_s16(a as _, b.0, b.1, 2)
66081}
66082#[doc = "Store multiple 2-element structures from two registers"]
66083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)"]
66084#[doc = "## Safety"]
66085#[doc = "  * Neon intrinsic unsafe"]
66086#[inline(always)]
66087#[cfg(target_arch = "arm")]
66088#[target_feature(enable = "neon,v7")]
66089#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66090#[cfg_attr(test, assert_instr(vst2))]
66091pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
66092    unsafe extern "unadjusted" {
66093        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v2i32.p0")]
66094        fn _vst2_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, size: i32);
66095    }
66096    _vst2_s32(a as _, b.0, b.1, 4)
66097}
66098#[doc = "Store multiple 2-element structures from two registers"]
66099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)"]
66100#[doc = "## Safety"]
66101#[doc = "  * Neon intrinsic unsafe"]
66102#[inline(always)]
66103#[cfg(target_arch = "arm")]
66104#[target_feature(enable = "neon,v7")]
66105#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66106#[cfg_attr(test, assert_instr(vst2))]
66107pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
66108    unsafe extern "unadjusted" {
66109        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4i32.p0")]
66110        fn _vst2q_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, size: i32);
66111    }
66112    _vst2q_s32(a as _, b.0, b.1, 4)
66113}
66114#[doc = "Store multiple 2-element structures from two registers"]
66115#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f16)"]
66116#[doc = "## Safety"]
66117#[doc = "  * Neon intrinsic unsafe"]
66118#[inline(always)]
66119#[target_feature(enable = "neon")]
66120#[cfg(not(target_arch = "arm"))]
66121#[rustc_legacy_const_generics(2)]
66122#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66123#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
66124#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66125#[cfg(not(target_arch = "arm64ec"))]
66126pub unsafe fn vst2_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x2_t) {
66127    static_assert_uimm_bits!(LANE, 2);
66128    unsafe extern "unadjusted" {
66129        #[cfg_attr(
66130            any(target_arch = "aarch64", target_arch = "arm64ec"),
66131            link_name = "llvm.aarch64.neon.st2lane.v4f16.p0"
66132        )]
66133        fn _vst2_lane_f16(a: float16x4_t, b: float16x4_t, n: i64, ptr: *mut i8);
66134    }
66135    _vst2_lane_f16(b.0, b.1, LANE as i64, a as _)
66136}
66137#[doc = "Store multiple 2-element structures from two registers"]
66138#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f16)"]
66139#[doc = "## Safety"]
66140#[doc = "  * Neon intrinsic unsafe"]
66141#[inline(always)]
66142#[target_feature(enable = "neon")]
66143#[cfg(not(target_arch = "arm"))]
66144#[rustc_legacy_const_generics(2)]
66145#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66146#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
66147#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66148#[cfg(not(target_arch = "arm64ec"))]
66149pub unsafe fn vst2q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x2_t) {
66150    static_assert_uimm_bits!(LANE, 3);
66151    unsafe extern "unadjusted" {
66152        #[cfg_attr(
66153            any(target_arch = "aarch64", target_arch = "arm64ec"),
66154            link_name = "llvm.aarch64.neon.st2lane.v8f16.p0"
66155        )]
66156        fn _vst2q_lane_f16(a: float16x8_t, b: float16x8_t, n: i64, ptr: *mut i8);
66157    }
66158    _vst2q_lane_f16(b.0, b.1, LANE as i64, a as _)
66159}
66160#[doc = "Store multiple 2-element structures from two registers"]
66161#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f16)"]
66162#[doc = "## Safety"]
66163#[doc = "  * Neon intrinsic unsafe"]
66164#[inline(always)]
66165#[target_feature(enable = "neon")]
66166#[cfg(target_arch = "arm")]
66167#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66168#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66169#[rustc_legacy_const_generics(2)]
66170#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
66171#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66172#[cfg(not(target_arch = "arm64ec"))]
66173pub unsafe fn vst2_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x2_t) {
66174    static_assert_uimm_bits!(LANE, 2);
66175    unsafe extern "unadjusted" {
66176        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0.v4f16")]
66177        fn _vst2_lane_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, n: i32, size: i32);
66178    }
66179    _vst2_lane_f16(a as _, b.0, b.1, LANE, 2)
66180}
66181#[doc = "Store multiple 2-element structures from two registers"]
66182#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f16)"]
66183#[doc = "## Safety"]
66184#[doc = "  * Neon intrinsic unsafe"]
66185#[inline(always)]
66186#[target_feature(enable = "neon")]
66187#[cfg(target_arch = "arm")]
66188#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66189#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66190#[rustc_legacy_const_generics(2)]
66191#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
66192#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66193#[cfg(not(target_arch = "arm64ec"))]
66194pub unsafe fn vst2q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x2_t) {
66195    static_assert_uimm_bits!(LANE, 1);
66196    unsafe extern "unadjusted" {
66197        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0.v8f16")]
66198        fn _vst2q_lane_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, n: i32, size: i32);
66199    }
66200    _vst2q_lane_f16(a as _, b.0, b.1, LANE, 2)
66201}
66202#[doc = "Store multiple 2-element structures from two registers"]
66203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)"]
66204#[doc = "## Safety"]
66205#[doc = "  * Neon intrinsic unsafe"]
66206#[inline(always)]
66207#[target_feature(enable = "neon")]
66208#[cfg(not(target_arch = "arm"))]
66209#[rustc_legacy_const_generics(2)]
66210#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66211#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66212pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
66213    static_assert_uimm_bits!(LANE, 1);
66214    unsafe extern "unadjusted" {
66215        #[cfg_attr(
66216            any(target_arch = "aarch64", target_arch = "arm64ec"),
66217            link_name = "llvm.aarch64.neon.st2lane.v2f32.p0"
66218        )]
66219        fn _vst2_lane_f32(a: float32x2_t, b: float32x2_t, n: i64, ptr: *mut i8);
66220    }
66221    _vst2_lane_f32(b.0, b.1, LANE as i64, a as _)
66222}
66223#[doc = "Store multiple 2-element structures from two registers"]
66224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)"]
66225#[doc = "## Safety"]
66226#[doc = "  * Neon intrinsic unsafe"]
66227#[inline(always)]
66228#[target_feature(enable = "neon")]
66229#[cfg(not(target_arch = "arm"))]
66230#[rustc_legacy_const_generics(2)]
66231#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66232#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66233pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
66234    static_assert_uimm_bits!(LANE, 2);
66235    unsafe extern "unadjusted" {
66236        #[cfg_attr(
66237            any(target_arch = "aarch64", target_arch = "arm64ec"),
66238            link_name = "llvm.aarch64.neon.st2lane.v4f32.p0"
66239        )]
66240        fn _vst2q_lane_f32(a: float32x4_t, b: float32x4_t, n: i64, ptr: *mut i8);
66241    }
66242    _vst2q_lane_f32(b.0, b.1, LANE as i64, a as _)
66243}
66244#[doc = "Store multiple 2-element structures from two registers"]
66245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)"]
66246#[doc = "## Safety"]
66247#[doc = "  * Neon intrinsic unsafe"]
66248#[inline(always)]
66249#[target_feature(enable = "neon")]
66250#[cfg(not(target_arch = "arm"))]
66251#[rustc_legacy_const_generics(2)]
66252#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66253#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66254pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
66255    static_assert_uimm_bits!(LANE, 3);
66256    unsafe extern "unadjusted" {
66257        #[cfg_attr(
66258            any(target_arch = "aarch64", target_arch = "arm64ec"),
66259            link_name = "llvm.aarch64.neon.st2lane.v8i8.p0"
66260        )]
66261        fn _vst2_lane_s8(a: int8x8_t, b: int8x8_t, n: i64, ptr: *mut i8);
66262    }
66263    _vst2_lane_s8(b.0, b.1, LANE as i64, a as _)
66264}
66265#[doc = "Store multiple 2-element structures from two registers"]
66266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)"]
66267#[doc = "## Safety"]
66268#[doc = "  * Neon intrinsic unsafe"]
66269#[inline(always)]
66270#[target_feature(enable = "neon")]
66271#[cfg(not(target_arch = "arm"))]
66272#[rustc_legacy_const_generics(2)]
66273#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66274#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66275pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
66276    static_assert_uimm_bits!(LANE, 2);
66277    unsafe extern "unadjusted" {
66278        #[cfg_attr(
66279            any(target_arch = "aarch64", target_arch = "arm64ec"),
66280            link_name = "llvm.aarch64.neon.st2lane.v4i16.p0"
66281        )]
66282        fn _vst2_lane_s16(a: int16x4_t, b: int16x4_t, n: i64, ptr: *mut i8);
66283    }
66284    _vst2_lane_s16(b.0, b.1, LANE as i64, a as _)
66285}
66286#[doc = "Store multiple 2-element structures from two registers"]
66287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)"]
66288#[doc = "## Safety"]
66289#[doc = "  * Neon intrinsic unsafe"]
66290#[inline(always)]
66291#[target_feature(enable = "neon")]
66292#[cfg(not(target_arch = "arm"))]
66293#[rustc_legacy_const_generics(2)]
66294#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66295#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66296pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
66297    static_assert_uimm_bits!(LANE, 3);
66298    unsafe extern "unadjusted" {
66299        #[cfg_attr(
66300            any(target_arch = "aarch64", target_arch = "arm64ec"),
66301            link_name = "llvm.aarch64.neon.st2lane.v8i16.p0"
66302        )]
66303        fn _vst2q_lane_s16(a: int16x8_t, b: int16x8_t, n: i64, ptr: *mut i8);
66304    }
66305    _vst2q_lane_s16(b.0, b.1, LANE as i64, a as _)
66306}
66307#[doc = "Store multiple 2-element structures from two registers"]
66308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)"]
66309#[doc = "## Safety"]
66310#[doc = "  * Neon intrinsic unsafe"]
66311#[inline(always)]
66312#[target_feature(enable = "neon")]
66313#[cfg(not(target_arch = "arm"))]
66314#[rustc_legacy_const_generics(2)]
66315#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66316#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66317pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
66318    static_assert_uimm_bits!(LANE, 1);
66319    unsafe extern "unadjusted" {
66320        #[cfg_attr(
66321            any(target_arch = "aarch64", target_arch = "arm64ec"),
66322            link_name = "llvm.aarch64.neon.st2lane.v2i32.p0"
66323        )]
66324        fn _vst2_lane_s32(a: int32x2_t, b: int32x2_t, n: i64, ptr: *mut i8);
66325    }
66326    _vst2_lane_s32(b.0, b.1, LANE as i64, a as _)
66327}
66328#[doc = "Store multiple 2-element structures from two registers"]
66329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)"]
66330#[doc = "## Safety"]
66331#[doc = "  * Neon intrinsic unsafe"]
66332#[inline(always)]
66333#[target_feature(enable = "neon")]
66334#[cfg(not(target_arch = "arm"))]
66335#[rustc_legacy_const_generics(2)]
66336#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66337#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66338pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
66339    static_assert_uimm_bits!(LANE, 2);
66340    unsafe extern "unadjusted" {
66341        #[cfg_attr(
66342            any(target_arch = "aarch64", target_arch = "arm64ec"),
66343            link_name = "llvm.aarch64.neon.st2lane.v4i32.p0"
66344        )]
66345        fn _vst2q_lane_s32(a: int32x4_t, b: int32x4_t, n: i64, ptr: *mut i8);
66346    }
66347    _vst2q_lane_s32(b.0, b.1, LANE as i64, a as _)
66348}
66349#[doc = "Store multiple 2-element structures from two registers"]
66350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)"]
66351#[doc = "## Safety"]
66352#[doc = "  * Neon intrinsic unsafe"]
66353#[inline(always)]
66354#[cfg(target_arch = "arm")]
66355#[target_feature(enable = "neon,v7")]
66356#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66357#[rustc_legacy_const_generics(2)]
66358#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66359pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
66360    static_assert_uimm_bits!(LANE, 1);
66361    unsafe extern "unadjusted" {
66362        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v2f32.p0")]
66363        fn _vst2_lane_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, n: i32, size: i32);
66364    }
66365    _vst2_lane_f32(a as _, b.0, b.1, LANE, 4)
66366}
66367#[doc = "Store multiple 2-element structures from two registers"]
66368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)"]
66369#[doc = "## Safety"]
66370#[doc = "  * Neon intrinsic unsafe"]
66371#[inline(always)]
66372#[cfg(target_arch = "arm")]
66373#[target_feature(enable = "neon,v7")]
66374#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66375#[rustc_legacy_const_generics(2)]
66376#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66377pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
66378    static_assert_uimm_bits!(LANE, 2);
66379    unsafe extern "unadjusted" {
66380        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4f32.p0")]
66381        fn _vst2q_lane_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, n: i32, size: i32);
66382    }
66383    _vst2q_lane_f32(a as _, b.0, b.1, LANE, 4)
66384}
66385#[doc = "Store multiple 2-element structures from two registers"]
66386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)"]
66387#[doc = "## Safety"]
66388#[doc = "  * Neon intrinsic unsafe"]
66389#[inline(always)]
66390#[cfg(target_arch = "arm")]
66391#[target_feature(enable = "neon,v7")]
66392#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66393#[rustc_legacy_const_generics(2)]
66394#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66395pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
66396    static_assert_uimm_bits!(LANE, 3);
66397    unsafe extern "unadjusted" {
66398        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v8i8.p0")]
66399        fn _vst2_lane_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32);
66400    }
66401    _vst2_lane_s8(a as _, b.0, b.1, LANE, 1)
66402}
66403#[doc = "Store multiple 2-element structures from two registers"]
66404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)"]
66405#[doc = "## Safety"]
66406#[doc = "  * Neon intrinsic unsafe"]
66407#[inline(always)]
66408#[cfg(target_arch = "arm")]
66409#[target_feature(enable = "neon,v7")]
66410#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66411#[rustc_legacy_const_generics(2)]
66412#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66413pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
66414    static_assert_uimm_bits!(LANE, 2);
66415    unsafe extern "unadjusted" {
66416        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4i16.p0")]
66417        fn _vst2_lane_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, n: i32, size: i32);
66418    }
66419    _vst2_lane_s16(a as _, b.0, b.1, LANE, 2)
66420}
66421#[doc = "Store multiple 2-element structures from two registers"]
66422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)"]
66423#[doc = "## Safety"]
66424#[doc = "  * Neon intrinsic unsafe"]
66425#[inline(always)]
66426#[cfg(target_arch = "arm")]
66427#[target_feature(enable = "neon,v7")]
66428#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66429#[rustc_legacy_const_generics(2)]
66430#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66431pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
66432    static_assert_uimm_bits!(LANE, 3);
66433    unsafe extern "unadjusted" {
66434        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v8i16.p0")]
66435        fn _vst2q_lane_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, n: i32, size: i32);
66436    }
66437    _vst2q_lane_s16(a as _, b.0, b.1, LANE, 2)
66438}
66439#[doc = "Store multiple 2-element structures from two registers"]
66440#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)"]
66441#[doc = "## Safety"]
66442#[doc = "  * Neon intrinsic unsafe"]
66443#[inline(always)]
66444#[cfg(target_arch = "arm")]
66445#[target_feature(enable = "neon,v7")]
66446#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66447#[rustc_legacy_const_generics(2)]
66448#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66449pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
66450    static_assert_uimm_bits!(LANE, 1);
66451    unsafe extern "unadjusted" {
66452        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v2i32.p0")]
66453        fn _vst2_lane_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, n: i32, size: i32);
66454    }
66455    _vst2_lane_s32(a as _, b.0, b.1, LANE, 4)
66456}
66457#[doc = "Store multiple 2-element structures from two registers"]
66458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)"]
66459#[doc = "## Safety"]
66460#[doc = "  * Neon intrinsic unsafe"]
66461#[inline(always)]
66462#[cfg(target_arch = "arm")]
66463#[target_feature(enable = "neon,v7")]
66464#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66465#[rustc_legacy_const_generics(2)]
66466#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66467pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
66468    static_assert_uimm_bits!(LANE, 2);
66469    unsafe extern "unadjusted" {
66470        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4i32.p0")]
66471        fn _vst2q_lane_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, n: i32, size: i32);
66472    }
66473    _vst2q_lane_s32(a as _, b.0, b.1, LANE, 4)
66474}
66475#[doc = "Store multiple 2-element structures from two registers"]
66476#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u8)"]
66477#[doc = "## Safety"]
66478#[doc = "  * Neon intrinsic unsafe"]
66479#[inline(always)]
66480#[target_feature(enable = "neon")]
66481#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66482#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66483#[cfg_attr(
66484    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66485    assert_instr(st2, LANE = 0)
66486)]
66487#[rustc_legacy_const_generics(2)]
66488#[cfg_attr(
66489    not(target_arch = "arm"),
66490    stable(feature = "neon_intrinsics", since = "1.59.0")
66491)]
66492#[cfg_attr(
66493    target_arch = "arm",
66494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66495)]
66496pub unsafe fn vst2_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x2_t) {
66497    static_assert_uimm_bits!(LANE, 3);
66498    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
66499}
66500#[doc = "Store multiple 2-element structures from two registers"]
66501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u16)"]
66502#[doc = "## Safety"]
66503#[doc = "  * Neon intrinsic unsafe"]
66504#[inline(always)]
66505#[target_feature(enable = "neon")]
66506#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66507#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66508#[cfg_attr(
66509    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66510    assert_instr(st2, LANE = 0)
66511)]
66512#[rustc_legacy_const_generics(2)]
66513#[cfg_attr(
66514    not(target_arch = "arm"),
66515    stable(feature = "neon_intrinsics", since = "1.59.0")
66516)]
66517#[cfg_attr(
66518    target_arch = "arm",
66519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66520)]
66521pub unsafe fn vst2_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x2_t) {
66522    static_assert_uimm_bits!(LANE, 2);
66523    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
66524}
66525#[doc = "Store multiple 2-element structures from two registers"]
66526#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u16)"]
66527#[doc = "## Safety"]
66528#[doc = "  * Neon intrinsic unsafe"]
66529#[inline(always)]
66530#[target_feature(enable = "neon")]
66531#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66532#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66533#[cfg_attr(
66534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66535    assert_instr(st2, LANE = 0)
66536)]
66537#[rustc_legacy_const_generics(2)]
66538#[cfg_attr(
66539    not(target_arch = "arm"),
66540    stable(feature = "neon_intrinsics", since = "1.59.0")
66541)]
66542#[cfg_attr(
66543    target_arch = "arm",
66544    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66545)]
66546pub unsafe fn vst2q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x2_t) {
66547    static_assert_uimm_bits!(LANE, 3);
66548    vst2q_lane_s16::<LANE>(transmute(a), transmute(b))
66549}
66550#[doc = "Store multiple 2-element structures from two registers"]
66551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u32)"]
66552#[doc = "## Safety"]
66553#[doc = "  * Neon intrinsic unsafe"]
66554#[inline(always)]
66555#[target_feature(enable = "neon")]
66556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66557#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66558#[cfg_attr(
66559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66560    assert_instr(st2, LANE = 0)
66561)]
66562#[rustc_legacy_const_generics(2)]
66563#[cfg_attr(
66564    not(target_arch = "arm"),
66565    stable(feature = "neon_intrinsics", since = "1.59.0")
66566)]
66567#[cfg_attr(
66568    target_arch = "arm",
66569    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66570)]
66571pub unsafe fn vst2_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x2_t) {
66572    static_assert_uimm_bits!(LANE, 1);
66573    vst2_lane_s32::<LANE>(transmute(a), transmute(b))
66574}
66575#[doc = "Store multiple 2-element structures from two registers"]
66576#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u32)"]
66577#[doc = "## Safety"]
66578#[doc = "  * Neon intrinsic unsafe"]
66579#[inline(always)]
66580#[target_feature(enable = "neon")]
66581#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66582#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66583#[cfg_attr(
66584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66585    assert_instr(st2, LANE = 0)
66586)]
66587#[rustc_legacy_const_generics(2)]
66588#[cfg_attr(
66589    not(target_arch = "arm"),
66590    stable(feature = "neon_intrinsics", since = "1.59.0")
66591)]
66592#[cfg_attr(
66593    target_arch = "arm",
66594    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66595)]
66596pub unsafe fn vst2q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x2_t) {
66597    static_assert_uimm_bits!(LANE, 2);
66598    vst2q_lane_s32::<LANE>(transmute(a), transmute(b))
66599}
66600#[doc = "Store multiple 2-element structures from two registers"]
66601#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p8)"]
66602#[doc = "## Safety"]
66603#[doc = "  * Neon intrinsic unsafe"]
66604#[inline(always)]
66605#[target_feature(enable = "neon")]
66606#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66607#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66608#[cfg_attr(
66609    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66610    assert_instr(st2, LANE = 0)
66611)]
66612#[rustc_legacy_const_generics(2)]
66613#[cfg_attr(
66614    not(target_arch = "arm"),
66615    stable(feature = "neon_intrinsics", since = "1.59.0")
66616)]
66617#[cfg_attr(
66618    target_arch = "arm",
66619    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66620)]
66621pub unsafe fn vst2_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x2_t) {
66622    static_assert_uimm_bits!(LANE, 3);
66623    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
66624}
66625#[doc = "Store multiple 2-element structures from two registers"]
66626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p16)"]
66627#[doc = "## Safety"]
66628#[doc = "  * Neon intrinsic unsafe"]
66629#[inline(always)]
66630#[target_feature(enable = "neon")]
66631#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66633#[cfg_attr(
66634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66635    assert_instr(st2, LANE = 0)
66636)]
66637#[rustc_legacy_const_generics(2)]
66638#[cfg_attr(
66639    not(target_arch = "arm"),
66640    stable(feature = "neon_intrinsics", since = "1.59.0")
66641)]
66642#[cfg_attr(
66643    target_arch = "arm",
66644    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66645)]
66646pub unsafe fn vst2_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x2_t) {
66647    static_assert_uimm_bits!(LANE, 2);
66648    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
66649}
66650#[doc = "Store multiple 2-element structures from two registers"]
66651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_p16)"]
66652#[doc = "## Safety"]
66653#[doc = "  * Neon intrinsic unsafe"]
66654#[inline(always)]
66655#[target_feature(enable = "neon")]
66656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66658#[cfg_attr(
66659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66660    assert_instr(st2, LANE = 0)
66661)]
66662#[rustc_legacy_const_generics(2)]
66663#[cfg_attr(
66664    not(target_arch = "arm"),
66665    stable(feature = "neon_intrinsics", since = "1.59.0")
66666)]
66667#[cfg_attr(
66668    target_arch = "arm",
66669    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66670)]
66671pub unsafe fn vst2q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x2_t) {
66672    static_assert_uimm_bits!(LANE, 3);
66673    vst2q_lane_s16::<LANE>(transmute(a), transmute(b))
66674}
66675#[doc = "Store multiple 2-element structures from two registers"]
66676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p64)"]
66677#[doc = "## Safety"]
66678#[doc = "  * Neon intrinsic unsafe"]
66679#[inline(always)]
66680#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
66681#[target_feature(enable = "neon,aes")]
66682#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
66683#[cfg_attr(
66684    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66685    assert_instr(nop)
66686)]
66687#[cfg_attr(
66688    not(target_arch = "arm"),
66689    stable(feature = "neon_intrinsics", since = "1.59.0")
66690)]
66691#[cfg_attr(
66692    target_arch = "arm",
66693    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66694)]
66695pub unsafe fn vst2_p64(a: *mut p64, b: poly64x1x2_t) {
66696    vst2_s64(transmute(a), transmute(b))
66697}
66698#[doc = "Store multiple 2-element structures from two registers"]
66699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)"]
66700#[doc = "## Safety"]
66701#[doc = "  * Neon intrinsic unsafe"]
66702#[inline(always)]
66703#[cfg(target_arch = "arm")]
66704#[target_feature(enable = "neon,v7")]
66705#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66706#[cfg_attr(test, assert_instr(nop))]
66707pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
66708    core::ptr::write_unaligned(a.cast(), b)
66709}
66710#[doc = "Store multiple 2-element structures from two registers"]
66711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)"]
66712#[doc = "## Safety"]
66713#[doc = "  * Neon intrinsic unsafe"]
66714#[inline(always)]
66715#[target_feature(enable = "neon")]
66716#[cfg(not(target_arch = "arm"))]
66717#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66718#[cfg_attr(test, assert_instr(nop))]
66719pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
66720    core::ptr::write_unaligned(a.cast(), b)
66721}
66722#[doc = "Store multiple 2-element structures from two registers"]
66723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u64)"]
66724#[doc = "## Safety"]
66725#[doc = "  * Neon intrinsic unsafe"]
66726#[inline(always)]
66727#[target_feature(enable = "neon")]
66728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
66730#[cfg_attr(
66731    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66732    assert_instr(nop)
66733)]
66734#[cfg_attr(
66735    not(target_arch = "arm"),
66736    stable(feature = "neon_intrinsics", since = "1.59.0")
66737)]
66738#[cfg_attr(
66739    target_arch = "arm",
66740    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66741)]
66742pub unsafe fn vst2_u64(a: *mut u64, b: uint64x1x2_t) {
66743    vst2_s64(transmute(a), transmute(b))
66744}
66745#[doc = "Store multiple 2-element structures from two registers"]
66746#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u8)"]
66747#[doc = "## Safety"]
66748#[doc = "  * Neon intrinsic unsafe"]
66749#[inline(always)]
66750#[target_feature(enable = "neon")]
66751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66753#[cfg_attr(
66754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66755    assert_instr(st2)
66756)]
66757#[cfg_attr(
66758    not(target_arch = "arm"),
66759    stable(feature = "neon_intrinsics", since = "1.59.0")
66760)]
66761#[cfg_attr(
66762    target_arch = "arm",
66763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66764)]
66765pub unsafe fn vst2_u8(a: *mut u8, b: uint8x8x2_t) {
66766    vst2_s8(transmute(a), transmute(b))
66767}
66768#[doc = "Store multiple 2-element structures from two registers"]
66769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u8)"]
66770#[doc = "## Safety"]
66771#[doc = "  * Neon intrinsic unsafe"]
66772#[inline(always)]
66773#[target_feature(enable = "neon")]
66774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66775#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66776#[cfg_attr(
66777    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66778    assert_instr(st2)
66779)]
66780#[cfg_attr(
66781    not(target_arch = "arm"),
66782    stable(feature = "neon_intrinsics", since = "1.59.0")
66783)]
66784#[cfg_attr(
66785    target_arch = "arm",
66786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66787)]
66788pub unsafe fn vst2q_u8(a: *mut u8, b: uint8x16x2_t) {
66789    vst2q_s8(transmute(a), transmute(b))
66790}
66791#[doc = "Store multiple 2-element structures from two registers"]
66792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u16)"]
66793#[doc = "## Safety"]
66794#[doc = "  * Neon intrinsic unsafe"]
66795#[inline(always)]
66796#[target_feature(enable = "neon")]
66797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66798#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66799#[cfg_attr(
66800    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66801    assert_instr(st2)
66802)]
66803#[cfg_attr(
66804    not(target_arch = "arm"),
66805    stable(feature = "neon_intrinsics", since = "1.59.0")
66806)]
66807#[cfg_attr(
66808    target_arch = "arm",
66809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66810)]
66811pub unsafe fn vst2_u16(a: *mut u16, b: uint16x4x2_t) {
66812    vst2_s16(transmute(a), transmute(b))
66813}
66814#[doc = "Store multiple 2-element structures from two registers"]
66815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u16)"]
66816#[doc = "## Safety"]
66817#[doc = "  * Neon intrinsic unsafe"]
66818#[inline(always)]
66819#[target_feature(enable = "neon")]
66820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66822#[cfg_attr(
66823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66824    assert_instr(st2)
66825)]
66826#[cfg_attr(
66827    not(target_arch = "arm"),
66828    stable(feature = "neon_intrinsics", since = "1.59.0")
66829)]
66830#[cfg_attr(
66831    target_arch = "arm",
66832    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66833)]
66834pub unsafe fn vst2q_u16(a: *mut u16, b: uint16x8x2_t) {
66835    vst2q_s16(transmute(a), transmute(b))
66836}
66837#[doc = "Store multiple 2-element structures from two registers"]
66838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u32)"]
66839#[doc = "## Safety"]
66840#[doc = "  * Neon intrinsic unsafe"]
66841#[inline(always)]
66842#[target_feature(enable = "neon")]
66843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66844#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66845#[cfg_attr(
66846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66847    assert_instr(st2)
66848)]
66849#[cfg_attr(
66850    not(target_arch = "arm"),
66851    stable(feature = "neon_intrinsics", since = "1.59.0")
66852)]
66853#[cfg_attr(
66854    target_arch = "arm",
66855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66856)]
66857pub unsafe fn vst2_u32(a: *mut u32, b: uint32x2x2_t) {
66858    vst2_s32(transmute(a), transmute(b))
66859}
66860#[doc = "Store multiple 2-element structures from two registers"]
66861#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u32)"]
66862#[doc = "## Safety"]
66863#[doc = "  * Neon intrinsic unsafe"]
66864#[inline(always)]
66865#[target_feature(enable = "neon")]
66866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66867#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66868#[cfg_attr(
66869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66870    assert_instr(st2)
66871)]
66872#[cfg_attr(
66873    not(target_arch = "arm"),
66874    stable(feature = "neon_intrinsics", since = "1.59.0")
66875)]
66876#[cfg_attr(
66877    target_arch = "arm",
66878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66879)]
66880pub unsafe fn vst2q_u32(a: *mut u32, b: uint32x4x2_t) {
66881    vst2q_s32(transmute(a), transmute(b))
66882}
66883#[doc = "Store multiple 2-element structures from two registers"]
66884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p8)"]
66885#[doc = "## Safety"]
66886#[doc = "  * Neon intrinsic unsafe"]
66887#[inline(always)]
66888#[target_feature(enable = "neon")]
66889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66891#[cfg_attr(
66892    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66893    assert_instr(st2)
66894)]
66895#[cfg_attr(
66896    not(target_arch = "arm"),
66897    stable(feature = "neon_intrinsics", since = "1.59.0")
66898)]
66899#[cfg_attr(
66900    target_arch = "arm",
66901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66902)]
66903pub unsafe fn vst2_p8(a: *mut p8, b: poly8x8x2_t) {
66904    vst2_s8(transmute(a), transmute(b))
66905}
66906#[doc = "Store multiple 2-element structures from two registers"]
66907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p8)"]
66908#[doc = "## Safety"]
66909#[doc = "  * Neon intrinsic unsafe"]
66910#[inline(always)]
66911#[target_feature(enable = "neon")]
66912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66913#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66914#[cfg_attr(
66915    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66916    assert_instr(st2)
66917)]
66918#[cfg_attr(
66919    not(target_arch = "arm"),
66920    stable(feature = "neon_intrinsics", since = "1.59.0")
66921)]
66922#[cfg_attr(
66923    target_arch = "arm",
66924    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66925)]
66926pub unsafe fn vst2q_p8(a: *mut p8, b: poly8x16x2_t) {
66927    vst2q_s8(transmute(a), transmute(b))
66928}
66929#[doc = "Store multiple 2-element structures from two registers"]
66930#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p16)"]
66931#[doc = "## Safety"]
66932#[doc = "  * Neon intrinsic unsafe"]
66933#[inline(always)]
66934#[target_feature(enable = "neon")]
66935#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66936#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66937#[cfg_attr(
66938    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66939    assert_instr(st2)
66940)]
66941#[cfg_attr(
66942    not(target_arch = "arm"),
66943    stable(feature = "neon_intrinsics", since = "1.59.0")
66944)]
66945#[cfg_attr(
66946    target_arch = "arm",
66947    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66948)]
66949pub unsafe fn vst2_p16(a: *mut p16, b: poly16x4x2_t) {
66950    vst2_s16(transmute(a), transmute(b))
66951}
66952#[doc = "Store multiple 2-element structures from two registers"]
66953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p16)"]
66954#[doc = "## Safety"]
66955#[doc = "  * Neon intrinsic unsafe"]
66956#[inline(always)]
66957#[target_feature(enable = "neon")]
66958#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66959#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66960#[cfg_attr(
66961    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66962    assert_instr(st2)
66963)]
66964#[cfg_attr(
66965    not(target_arch = "arm"),
66966    stable(feature = "neon_intrinsics", since = "1.59.0")
66967)]
66968#[cfg_attr(
66969    target_arch = "arm",
66970    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66971)]
66972pub unsafe fn vst2q_p16(a: *mut p16, b: poly16x8x2_t) {
66973    vst2q_s16(transmute(a), transmute(b))
66974}
66975#[doc = "Store multiple 3-element structures from three registers"]
66976#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f16)"]
66977#[doc = "## Safety"]
66978#[doc = "  * Neon intrinsic unsafe"]
66979#[inline(always)]
66980#[target_feature(enable = "neon")]
66981#[cfg(target_arch = "arm")]
66982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66983#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
66984#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66985#[cfg(not(target_arch = "arm64ec"))]
66986#[cfg_attr(test, assert_instr(vst3))]
66987pub unsafe fn vst3_f16(a: *mut f16, b: float16x4x3_t) {
66988    unsafe extern "unadjusted" {
66989        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4f16")]
66990        fn _vst3_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, c: float16x4_t, size: i32);
66991    }
66992    _vst3_f16(a as _, b.0, b.1, b.2, 2)
66993}
66994#[doc = "Store multiple 3-element structures from three registers"]
66995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f16)"]
66996#[doc = "## Safety"]
66997#[doc = "  * Neon intrinsic unsafe"]
66998#[inline(always)]
66999#[target_feature(enable = "neon")]
67000#[cfg(target_arch = "arm")]
67001#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67002#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67003#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67004#[cfg(not(target_arch = "arm64ec"))]
67005#[cfg_attr(test, assert_instr(vst3))]
67006pub unsafe fn vst3q_f16(a: *mut f16, b: float16x8x3_t) {
67007    unsafe extern "unadjusted" {
67008        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8f16")]
67009        fn _vst3q_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, c: float16x8_t, size: i32);
67010    }
67011    _vst3q_f16(a as _, b.0, b.1, b.2, 2)
67012}
67013#[doc = "Store multiple 3-element structures from three registers"]
67014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f16)"]
67015#[doc = "## Safety"]
67016#[doc = "  * Neon intrinsic unsafe"]
67017#[inline(always)]
67018#[target_feature(enable = "neon")]
67019#[cfg(not(target_arch = "arm"))]
67020#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67021#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67022#[cfg(not(target_arch = "arm64ec"))]
67023#[cfg_attr(test, assert_instr(st3))]
67024pub unsafe fn vst3_f16(a: *mut f16, b: float16x4x3_t) {
67025    unsafe extern "unadjusted" {
67026        #[cfg_attr(
67027            any(target_arch = "aarch64", target_arch = "arm64ec"),
67028            link_name = "llvm.aarch64.neon.st3.v4f16.p0"
67029        )]
67030        fn _vst3_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, ptr: *mut i8);
67031    }
67032    _vst3_f16(b.0, b.1, b.2, a as _)
67033}
67034#[doc = "Store multiple 3-element structures from three registers"]
67035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f16)"]
67036#[doc = "## Safety"]
67037#[doc = "  * Neon intrinsic unsafe"]
67038#[inline(always)]
67039#[target_feature(enable = "neon")]
67040#[cfg(not(target_arch = "arm"))]
67041#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67042#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67043#[cfg(not(target_arch = "arm64ec"))]
67044#[cfg_attr(test, assert_instr(st3))]
67045pub unsafe fn vst3q_f16(a: *mut f16, b: float16x8x3_t) {
67046    unsafe extern "unadjusted" {
67047        #[cfg_attr(
67048            any(target_arch = "aarch64", target_arch = "arm64ec"),
67049            link_name = "llvm.aarch64.neon.st3.v8f16.p0"
67050        )]
67051        fn _vst3q_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, ptr: *mut i8);
67052    }
67053    _vst3q_f16(b.0, b.1, b.2, a as _)
67054}
67055#[doc = "Store multiple 3-element structures from three registers"]
67056#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)"]
67057#[doc = "## Safety"]
67058#[doc = "  * Neon intrinsic unsafe"]
67059#[inline(always)]
67060#[cfg(target_arch = "arm")]
67061#[target_feature(enable = "neon,v7")]
67062#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67063#[cfg_attr(test, assert_instr(vst3))]
67064pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
67065    crate::core_arch::macros::interleaving_store!(f32, 2, 3, a, b)
67066}
67067#[doc = "Store multiple 3-element structures from three registers"]
67068#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)"]
67069#[doc = "## Safety"]
67070#[doc = "  * Neon intrinsic unsafe"]
67071#[inline(always)]
67072#[cfg(target_arch = "arm")]
67073#[target_feature(enable = "neon,v7")]
67074#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67075#[cfg_attr(test, assert_instr(vst3))]
67076pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
67077    crate::core_arch::macros::interleaving_store!(f32, 4, 3, a, b)
67078}
67079#[doc = "Store multiple 3-element structures from three registers"]
67080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)"]
67081#[doc = "## Safety"]
67082#[doc = "  * Neon intrinsic unsafe"]
67083#[inline(always)]
67084#[cfg(target_arch = "arm")]
67085#[target_feature(enable = "neon,v7")]
67086#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67087#[cfg_attr(test, assert_instr(vst3))]
67088pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
67089    crate::core_arch::macros::interleaving_store!(i8, 8, 3, a, b)
67090}
67091#[doc = "Store multiple 3-element structures from three registers"]
67092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)"]
67093#[doc = "## Safety"]
67094#[doc = "  * Neon intrinsic unsafe"]
67095#[inline(always)]
67096#[cfg(target_arch = "arm")]
67097#[target_feature(enable = "neon,v7")]
67098#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67099#[cfg_attr(test, assert_instr(vst3))]
67100pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
67101    crate::core_arch::macros::interleaving_store!(i8, 16, 3, a, b)
67102}
67103#[doc = "Store multiple 3-element structures from three registers"]
67104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)"]
67105#[doc = "## Safety"]
67106#[doc = "  * Neon intrinsic unsafe"]
67107#[inline(always)]
67108#[cfg(target_arch = "arm")]
67109#[target_feature(enable = "neon,v7")]
67110#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67111#[cfg_attr(test, assert_instr(vst3))]
67112pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
67113    crate::core_arch::macros::interleaving_store!(i16, 4, 3, a, b)
67114}
67115#[doc = "Store multiple 3-element structures from three registers"]
67116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)"]
67117#[doc = "## Safety"]
67118#[doc = "  * Neon intrinsic unsafe"]
67119#[inline(always)]
67120#[cfg(target_arch = "arm")]
67121#[target_feature(enable = "neon,v7")]
67122#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67123#[cfg_attr(test, assert_instr(vst3))]
67124pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
67125    crate::core_arch::macros::interleaving_store!(i16, 8, 3, a, b)
67126}
67127#[doc = "Store multiple 3-element structures from three registers"]
67128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)"]
67129#[doc = "## Safety"]
67130#[doc = "  * Neon intrinsic unsafe"]
67131#[inline(always)]
67132#[cfg(target_arch = "arm")]
67133#[target_feature(enable = "neon,v7")]
67134#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67135#[cfg_attr(test, assert_instr(vst3))]
67136pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
67137    crate::core_arch::macros::interleaving_store!(i32, 2, 3, a, b)
67138}
67139#[doc = "Store multiple 3-element structures from three registers"]
67140#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)"]
67141#[doc = "## Safety"]
67142#[doc = "  * Neon intrinsic unsafe"]
67143#[inline(always)]
67144#[cfg(target_arch = "arm")]
67145#[target_feature(enable = "neon,v7")]
67146#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67147#[cfg_attr(test, assert_instr(vst3))]
67148pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
67149    crate::core_arch::macros::interleaving_store!(i32, 4, 3, a, b)
67150}
67151#[doc = "Store multiple 3-element structures from three registers"]
67152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)"]
67153#[doc = "## Safety"]
67154#[doc = "  * Neon intrinsic unsafe"]
67155#[inline(always)]
67156#[target_feature(enable = "neon")]
67157#[cfg(not(target_arch = "arm"))]
67158#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67159#[cfg_attr(test, assert_instr(st3))]
67160pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
67161    crate::core_arch::macros::interleaving_store!(f32, 2, 3, a, b)
67162}
67163#[doc = "Store multiple 3-element structures from three registers"]
67164#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)"]
67165#[doc = "## Safety"]
67166#[doc = "  * Neon intrinsic unsafe"]
67167#[inline(always)]
67168#[target_feature(enable = "neon")]
67169#[cfg(not(target_arch = "arm"))]
67170#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67171#[cfg_attr(test, assert_instr(st3))]
67172pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
67173    crate::core_arch::macros::interleaving_store!(f32, 4, 3, a, b)
67174}
67175#[doc = "Store multiple 3-element structures from three registers"]
67176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)"]
67177#[doc = "## Safety"]
67178#[doc = "  * Neon intrinsic unsafe"]
67179#[inline(always)]
67180#[target_feature(enable = "neon")]
67181#[cfg(not(target_arch = "arm"))]
67182#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67183#[cfg_attr(test, assert_instr(st3))]
67184pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
67185    crate::core_arch::macros::interleaving_store!(i8, 8, 3, a, b)
67186}
67187#[doc = "Store multiple 3-element structures from three registers"]
67188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)"]
67189#[doc = "## Safety"]
67190#[doc = "  * Neon intrinsic unsafe"]
67191#[inline(always)]
67192#[target_feature(enable = "neon")]
67193#[cfg(not(target_arch = "arm"))]
67194#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67195#[cfg_attr(test, assert_instr(st3))]
67196pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
67197    crate::core_arch::macros::interleaving_store!(i8, 16, 3, a, b)
67198}
67199#[doc = "Store multiple 3-element structures from three registers"]
67200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)"]
67201#[doc = "## Safety"]
67202#[doc = "  * Neon intrinsic unsafe"]
67203#[inline(always)]
67204#[target_feature(enable = "neon")]
67205#[cfg(not(target_arch = "arm"))]
67206#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67207#[cfg_attr(test, assert_instr(st3))]
67208pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
67209    crate::core_arch::macros::interleaving_store!(i16, 4, 3, a, b)
67210}
67211#[doc = "Store multiple 3-element structures from three registers"]
67212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)"]
67213#[doc = "## Safety"]
67214#[doc = "  * Neon intrinsic unsafe"]
67215#[inline(always)]
67216#[target_feature(enable = "neon")]
67217#[cfg(not(target_arch = "arm"))]
67218#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67219#[cfg_attr(test, assert_instr(st3))]
67220pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
67221    crate::core_arch::macros::interleaving_store!(i16, 8, 3, a, b)
67222}
67223#[doc = "Store multiple 3-element structures from three registers"]
67224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)"]
67225#[doc = "## Safety"]
67226#[doc = "  * Neon intrinsic unsafe"]
67227#[inline(always)]
67228#[target_feature(enable = "neon")]
67229#[cfg(not(target_arch = "arm"))]
67230#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67231#[cfg_attr(test, assert_instr(st3))]
67232pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
67233    crate::core_arch::macros::interleaving_store!(i32, 2, 3, a, b)
67234}
67235#[doc = "Store multiple 3-element structures from three registers"]
67236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)"]
67237#[doc = "## Safety"]
67238#[doc = "  * Neon intrinsic unsafe"]
67239#[inline(always)]
67240#[target_feature(enable = "neon")]
67241#[cfg(not(target_arch = "arm"))]
67242#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67243#[cfg_attr(test, assert_instr(st3))]
67244pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
67245    crate::core_arch::macros::interleaving_store!(i32, 4, 3, a, b)
67246}
67247#[doc = "Store multiple 3-element structures from three registers"]
67248#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f16)"]
67249#[doc = "## Safety"]
67250#[doc = "  * Neon intrinsic unsafe"]
67251#[inline(always)]
67252#[target_feature(enable = "neon")]
67253#[cfg(target_arch = "arm")]
67254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67255#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67256#[rustc_legacy_const_generics(2)]
67257#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67258#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67259#[cfg(not(target_arch = "arm64ec"))]
67260pub unsafe fn vst3_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x3_t) {
67261    static_assert_uimm_bits!(LANE, 2);
67262    unsafe extern "unadjusted" {
67263        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4f16")]
67264        fn _vst3_lane_f16(
67265            ptr: *mut i8,
67266            a: float16x4_t,
67267            b: float16x4_t,
67268            c: float16x4_t,
67269            n: i32,
67270            size: i32,
67271        );
67272    }
67273    _vst3_lane_f16(a as _, b.0, b.1, b.2, LANE, 4)
67274}
67275#[doc = "Store multiple 3-element structures from three registers"]
67276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f16)"]
67277#[doc = "## Safety"]
67278#[doc = "  * Neon intrinsic unsafe"]
67279#[inline(always)]
67280#[target_feature(enable = "neon")]
67281#[cfg(target_arch = "arm")]
67282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67283#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67284#[rustc_legacy_const_generics(2)]
67285#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67286#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67287#[cfg(not(target_arch = "arm64ec"))]
67288pub unsafe fn vst3q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x3_t) {
67289    static_assert_uimm_bits!(LANE, 3);
67290    unsafe extern "unadjusted" {
67291        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8f16")]
67292        fn _vst3q_lane_f16(
67293            ptr: *mut i8,
67294            a: float16x8_t,
67295            b: float16x8_t,
67296            c: float16x8_t,
67297            n: i32,
67298            size: i32,
67299        );
67300    }
67301    _vst3q_lane_f16(a as _, b.0, b.1, b.2, LANE, 4)
67302}
67303#[doc = "Store multiple 3-element structures from three registers"]
67304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f16)"]
67305#[doc = "## Safety"]
67306#[doc = "  * Neon intrinsic unsafe"]
67307#[inline(always)]
67308#[target_feature(enable = "neon")]
67309#[cfg(not(target_arch = "arm"))]
67310#[rustc_legacy_const_generics(2)]
67311#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67312#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67313#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67314#[cfg(not(target_arch = "arm64ec"))]
67315pub unsafe fn vst3_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x3_t) {
67316    static_assert_uimm_bits!(LANE, 2);
67317    unsafe extern "unadjusted" {
67318        #[cfg_attr(
67319            any(target_arch = "aarch64", target_arch = "arm64ec"),
67320            link_name = "llvm.aarch64.neon.st3lane.v4f16.p0"
67321        )]
67322        fn _vst3_lane_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, n: i64, ptr: *mut i8);
67323    }
67324    _vst3_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
67325}
67326#[doc = "Store multiple 3-element structures from three registers"]
67327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f16)"]
67328#[doc = "## Safety"]
67329#[doc = "  * Neon intrinsic unsafe"]
67330#[inline(always)]
67331#[target_feature(enable = "neon")]
67332#[cfg(not(target_arch = "arm"))]
67333#[rustc_legacy_const_generics(2)]
67334#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67335#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67336#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67337#[cfg(not(target_arch = "arm64ec"))]
67338pub unsafe fn vst3q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x3_t) {
67339    static_assert_uimm_bits!(LANE, 3);
67340    unsafe extern "unadjusted" {
67341        #[cfg_attr(
67342            any(target_arch = "aarch64", target_arch = "arm64ec"),
67343            link_name = "llvm.aarch64.neon.st3lane.v8f16.p0"
67344        )]
67345        fn _vst3q_lane_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, n: i64, ptr: *mut i8);
67346    }
67347    _vst3q_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
67348}
67349#[doc = "Store multiple 3-element structures from three registers"]
67350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)"]
67351#[doc = "## Safety"]
67352#[doc = "  * Neon intrinsic unsafe"]
67353#[inline(always)]
67354#[cfg(target_arch = "arm")]
67355#[target_feature(enable = "neon,v7")]
67356#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67357#[rustc_legacy_const_generics(2)]
67358#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67359pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
67360    static_assert_uimm_bits!(LANE, 1);
67361    unsafe extern "unadjusted" {
67362        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v2f32")]
67363        fn _vst3_lane_f32(
67364            ptr: *mut i8,
67365            a: float32x2_t,
67366            b: float32x2_t,
67367            c: float32x2_t,
67368            n: i32,
67369            size: i32,
67370        );
67371    }
67372    _vst3_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
67373}
67374#[doc = "Store multiple 3-element structures from three registers"]
67375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)"]
67376#[doc = "## Safety"]
67377#[doc = "  * Neon intrinsic unsafe"]
67378#[inline(always)]
67379#[cfg(target_arch = "arm")]
67380#[target_feature(enable = "neon,v7")]
67381#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67382#[rustc_legacy_const_generics(2)]
67383#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67384pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
67385    static_assert_uimm_bits!(LANE, 2);
67386    unsafe extern "unadjusted" {
67387        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4f32")]
67388        fn _vst3q_lane_f32(
67389            ptr: *mut i8,
67390            a: float32x4_t,
67391            b: float32x4_t,
67392            c: float32x4_t,
67393            n: i32,
67394            size: i32,
67395        );
67396    }
67397    _vst3q_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
67398}
67399#[doc = "Store multiple 3-element structures from three registers"]
67400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)"]
67401#[doc = "## Safety"]
67402#[doc = "  * Neon intrinsic unsafe"]
67403#[inline(always)]
67404#[cfg(target_arch = "arm")]
67405#[target_feature(enable = "neon,v7")]
67406#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67407#[rustc_legacy_const_generics(2)]
67408#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67409pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
67410    static_assert_uimm_bits!(LANE, 3);
67411    unsafe extern "unadjusted" {
67412        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8i8")]
67413        fn _vst3_lane_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i32, size: i32);
67414    }
67415    _vst3_lane_s8(a as _, b.0, b.1, b.2, LANE, 1)
67416}
67417#[doc = "Store multiple 3-element structures from three registers"]
67418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)"]
67419#[doc = "## Safety"]
67420#[doc = "  * Neon intrinsic unsafe"]
67421#[inline(always)]
67422#[cfg(target_arch = "arm")]
67423#[target_feature(enable = "neon,v7")]
67424#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67425#[rustc_legacy_const_generics(2)]
67426#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67427pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
67428    static_assert_uimm_bits!(LANE, 2);
67429    unsafe extern "unadjusted" {
67430        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4i16")]
67431        fn _vst3_lane_s16(
67432            ptr: *mut i8,
67433            a: int16x4_t,
67434            b: int16x4_t,
67435            c: int16x4_t,
67436            n: i32,
67437            size: i32,
67438        );
67439    }
67440    _vst3_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
67441}
67442#[doc = "Store multiple 3-element structures from three registers"]
67443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)"]
67444#[doc = "## Safety"]
67445#[doc = "  * Neon intrinsic unsafe"]
67446#[inline(always)]
67447#[cfg(target_arch = "arm")]
67448#[target_feature(enable = "neon,v7")]
67449#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67450#[rustc_legacy_const_generics(2)]
67451#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67452pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
67453    static_assert_uimm_bits!(LANE, 3);
67454    unsafe extern "unadjusted" {
67455        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8i16")]
67456        fn _vst3q_lane_s16(
67457            ptr: *mut i8,
67458            a: int16x8_t,
67459            b: int16x8_t,
67460            c: int16x8_t,
67461            n: i32,
67462            size: i32,
67463        );
67464    }
67465    _vst3q_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
67466}
67467#[doc = "Store multiple 3-element structures from three registers"]
67468#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)"]
67469#[doc = "## Safety"]
67470#[doc = "  * Neon intrinsic unsafe"]
67471#[inline(always)]
67472#[cfg(target_arch = "arm")]
67473#[target_feature(enable = "neon,v7")]
67474#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67475#[rustc_legacy_const_generics(2)]
67476#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67477pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
67478    static_assert_uimm_bits!(LANE, 1);
67479    unsafe extern "unadjusted" {
67480        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v2i32")]
67481        fn _vst3_lane_s32(
67482            ptr: *mut i8,
67483            a: int32x2_t,
67484            b: int32x2_t,
67485            c: int32x2_t,
67486            n: i32,
67487            size: i32,
67488        );
67489    }
67490    _vst3_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
67491}
67492#[doc = "Store multiple 3-element structures from three registers"]
67493#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)"]
67494#[doc = "## Safety"]
67495#[doc = "  * Neon intrinsic unsafe"]
67496#[inline(always)]
67497#[cfg(target_arch = "arm")]
67498#[target_feature(enable = "neon,v7")]
67499#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67500#[rustc_legacy_const_generics(2)]
67501#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67502pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
67503    static_assert_uimm_bits!(LANE, 2);
67504    unsafe extern "unadjusted" {
67505        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4i32")]
67506        fn _vst3q_lane_s32(
67507            ptr: *mut i8,
67508            a: int32x4_t,
67509            b: int32x4_t,
67510            c: int32x4_t,
67511            n: i32,
67512            size: i32,
67513        );
67514    }
67515    _vst3q_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
67516}
67517#[doc = "Store multiple 3-element structures from three registers"]
67518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)"]
67519#[doc = "## Safety"]
67520#[doc = "  * Neon intrinsic unsafe"]
67521#[inline(always)]
67522#[target_feature(enable = "neon")]
67523#[cfg(not(target_arch = "arm"))]
67524#[rustc_legacy_const_generics(2)]
67525#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67526#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67527pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
67528    static_assert_uimm_bits!(LANE, 1);
67529    unsafe extern "unadjusted" {
67530        #[cfg_attr(
67531            any(target_arch = "aarch64", target_arch = "arm64ec"),
67532            link_name = "llvm.aarch64.neon.st3lane.v2f32.p0"
67533        )]
67534        fn _vst3_lane_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, n: i64, ptr: *mut i8);
67535    }
67536    _vst3_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
67537}
67538#[doc = "Store multiple 3-element structures from three registers"]
67539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)"]
67540#[doc = "## Safety"]
67541#[doc = "  * Neon intrinsic unsafe"]
67542#[inline(always)]
67543#[target_feature(enable = "neon")]
67544#[cfg(not(target_arch = "arm"))]
67545#[rustc_legacy_const_generics(2)]
67546#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67547#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67548pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
67549    static_assert_uimm_bits!(LANE, 2);
67550    unsafe extern "unadjusted" {
67551        #[cfg_attr(
67552            any(target_arch = "aarch64", target_arch = "arm64ec"),
67553            link_name = "llvm.aarch64.neon.st3lane.v4f32.p0"
67554        )]
67555        fn _vst3q_lane_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, n: i64, ptr: *mut i8);
67556    }
67557    _vst3q_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
67558}
67559#[doc = "Store multiple 3-element structures from three registers"]
67560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)"]
67561#[doc = "## Safety"]
67562#[doc = "  * Neon intrinsic unsafe"]
67563#[inline(always)]
67564#[target_feature(enable = "neon")]
67565#[cfg(not(target_arch = "arm"))]
67566#[rustc_legacy_const_generics(2)]
67567#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67568#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67569pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
67570    static_assert_uimm_bits!(LANE, 3);
67571    unsafe extern "unadjusted" {
67572        #[cfg_attr(
67573            any(target_arch = "aarch64", target_arch = "arm64ec"),
67574            link_name = "llvm.aarch64.neon.st3lane.v8i8.p0"
67575        )]
67576        fn _vst3_lane_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i64, ptr: *mut i8);
67577    }
67578    _vst3_lane_s8(b.0, b.1, b.2, LANE as i64, a as _)
67579}
67580#[doc = "Store multiple 3-element structures from three registers"]
67581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)"]
67582#[doc = "## Safety"]
67583#[doc = "  * Neon intrinsic unsafe"]
67584#[inline(always)]
67585#[target_feature(enable = "neon")]
67586#[cfg(not(target_arch = "arm"))]
67587#[rustc_legacy_const_generics(2)]
67588#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67589#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67590pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
67591    static_assert_uimm_bits!(LANE, 2);
67592    unsafe extern "unadjusted" {
67593        #[cfg_attr(
67594            any(target_arch = "aarch64", target_arch = "arm64ec"),
67595            link_name = "llvm.aarch64.neon.st3lane.v4i16.p0"
67596        )]
67597        fn _vst3_lane_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, n: i64, ptr: *mut i8);
67598    }
67599    _vst3_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
67600}
67601#[doc = "Store multiple 3-element structures from three registers"]
67602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)"]
67603#[doc = "## Safety"]
67604#[doc = "  * Neon intrinsic unsafe"]
67605#[inline(always)]
67606#[target_feature(enable = "neon")]
67607#[cfg(not(target_arch = "arm"))]
67608#[rustc_legacy_const_generics(2)]
67609#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67610#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67611pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
67612    static_assert_uimm_bits!(LANE, 3);
67613    unsafe extern "unadjusted" {
67614        #[cfg_attr(
67615            any(target_arch = "aarch64", target_arch = "arm64ec"),
67616            link_name = "llvm.aarch64.neon.st3lane.v8i16.p0"
67617        )]
67618        fn _vst3q_lane_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, n: i64, ptr: *mut i8);
67619    }
67620    _vst3q_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
67621}
67622#[doc = "Store multiple 3-element structures from three registers"]
67623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)"]
67624#[doc = "## Safety"]
67625#[doc = "  * Neon intrinsic unsafe"]
67626#[inline(always)]
67627#[target_feature(enable = "neon")]
67628#[cfg(not(target_arch = "arm"))]
67629#[rustc_legacy_const_generics(2)]
67630#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67631#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67632pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
67633    static_assert_uimm_bits!(LANE, 1);
67634    unsafe extern "unadjusted" {
67635        #[cfg_attr(
67636            any(target_arch = "aarch64", target_arch = "arm64ec"),
67637            link_name = "llvm.aarch64.neon.st3lane.v2i32.p0"
67638        )]
67639        fn _vst3_lane_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, n: i64, ptr: *mut i8);
67640    }
67641    _vst3_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
67642}
67643#[doc = "Store multiple 3-element structures from three registers"]
67644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)"]
67645#[doc = "## Safety"]
67646#[doc = "  * Neon intrinsic unsafe"]
67647#[inline(always)]
67648#[target_feature(enable = "neon")]
67649#[cfg(not(target_arch = "arm"))]
67650#[rustc_legacy_const_generics(2)]
67651#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67652#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67653pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
67654    static_assert_uimm_bits!(LANE, 2);
67655    unsafe extern "unadjusted" {
67656        #[cfg_attr(
67657            any(target_arch = "aarch64", target_arch = "arm64ec"),
67658            link_name = "llvm.aarch64.neon.st3lane.v4i32.p0"
67659        )]
67660        fn _vst3q_lane_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, n: i64, ptr: *mut i8);
67661    }
67662    _vst3q_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
67663}
67664#[doc = "Store multiple 3-element structures from three registers"]
67665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u8)"]
67666#[doc = "## Safety"]
67667#[doc = "  * Neon intrinsic unsafe"]
67668#[inline(always)]
67669#[target_feature(enable = "neon")]
67670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67672#[cfg_attr(
67673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67674    assert_instr(st3, LANE = 0)
67675)]
67676#[rustc_legacy_const_generics(2)]
67677#[cfg_attr(
67678    not(target_arch = "arm"),
67679    stable(feature = "neon_intrinsics", since = "1.59.0")
67680)]
67681#[cfg_attr(
67682    target_arch = "arm",
67683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67684)]
67685pub unsafe fn vst3_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x3_t) {
67686    static_assert_uimm_bits!(LANE, 3);
67687    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
67688}
67689#[doc = "Store multiple 3-element structures from three registers"]
67690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u16)"]
67691#[doc = "## Safety"]
67692#[doc = "  * Neon intrinsic unsafe"]
67693#[inline(always)]
67694#[target_feature(enable = "neon")]
67695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67696#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67697#[cfg_attr(
67698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67699    assert_instr(st3, LANE = 0)
67700)]
67701#[rustc_legacy_const_generics(2)]
67702#[cfg_attr(
67703    not(target_arch = "arm"),
67704    stable(feature = "neon_intrinsics", since = "1.59.0")
67705)]
67706#[cfg_attr(
67707    target_arch = "arm",
67708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67709)]
67710pub unsafe fn vst3_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x3_t) {
67711    static_assert_uimm_bits!(LANE, 2);
67712    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
67713}
67714#[doc = "Store multiple 3-element structures from three registers"]
67715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u16)"]
67716#[doc = "## Safety"]
67717#[doc = "  * Neon intrinsic unsafe"]
67718#[inline(always)]
67719#[target_feature(enable = "neon")]
67720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67722#[cfg_attr(
67723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67724    assert_instr(st3, LANE = 0)
67725)]
67726#[rustc_legacy_const_generics(2)]
67727#[cfg_attr(
67728    not(target_arch = "arm"),
67729    stable(feature = "neon_intrinsics", since = "1.59.0")
67730)]
67731#[cfg_attr(
67732    target_arch = "arm",
67733    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67734)]
67735pub unsafe fn vst3q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x3_t) {
67736    static_assert_uimm_bits!(LANE, 3);
67737    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
67738}
67739#[doc = "Store multiple 3-element structures from three registers"]
67740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u32)"]
67741#[doc = "## Safety"]
67742#[doc = "  * Neon intrinsic unsafe"]
67743#[inline(always)]
67744#[target_feature(enable = "neon")]
67745#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67746#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67747#[cfg_attr(
67748    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67749    assert_instr(st3, LANE = 0)
67750)]
67751#[rustc_legacy_const_generics(2)]
67752#[cfg_attr(
67753    not(target_arch = "arm"),
67754    stable(feature = "neon_intrinsics", since = "1.59.0")
67755)]
67756#[cfg_attr(
67757    target_arch = "arm",
67758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67759)]
67760pub unsafe fn vst3_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x3_t) {
67761    static_assert_uimm_bits!(LANE, 1);
67762    vst3_lane_s32::<LANE>(transmute(a), transmute(b))
67763}
67764#[doc = "Store multiple 3-element structures from three registers"]
67765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u32)"]
67766#[doc = "## Safety"]
67767#[doc = "  * Neon intrinsic unsafe"]
67768#[inline(always)]
67769#[target_feature(enable = "neon")]
67770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67772#[cfg_attr(
67773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67774    assert_instr(st3, LANE = 0)
67775)]
67776#[rustc_legacy_const_generics(2)]
67777#[cfg_attr(
67778    not(target_arch = "arm"),
67779    stable(feature = "neon_intrinsics", since = "1.59.0")
67780)]
67781#[cfg_attr(
67782    target_arch = "arm",
67783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67784)]
67785pub unsafe fn vst3q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x3_t) {
67786    static_assert_uimm_bits!(LANE, 2);
67787    vst3q_lane_s32::<LANE>(transmute(a), transmute(b))
67788}
67789#[doc = "Store multiple 3-element structures from three registers"]
67790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p8)"]
67791#[doc = "## Safety"]
67792#[doc = "  * Neon intrinsic unsafe"]
67793#[inline(always)]
67794#[target_feature(enable = "neon")]
67795#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67796#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67797#[cfg_attr(
67798    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67799    assert_instr(st3, LANE = 0)
67800)]
67801#[rustc_legacy_const_generics(2)]
67802#[cfg_attr(
67803    not(target_arch = "arm"),
67804    stable(feature = "neon_intrinsics", since = "1.59.0")
67805)]
67806#[cfg_attr(
67807    target_arch = "arm",
67808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67809)]
67810pub unsafe fn vst3_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x3_t) {
67811    static_assert_uimm_bits!(LANE, 3);
67812    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
67813}
67814#[doc = "Store multiple 3-element structures from three registers"]
67815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p16)"]
67816#[doc = "## Safety"]
67817#[doc = "  * Neon intrinsic unsafe"]
67818#[inline(always)]
67819#[target_feature(enable = "neon")]
67820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67822#[cfg_attr(
67823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67824    assert_instr(st3, LANE = 0)
67825)]
67826#[rustc_legacy_const_generics(2)]
67827#[cfg_attr(
67828    not(target_arch = "arm"),
67829    stable(feature = "neon_intrinsics", since = "1.59.0")
67830)]
67831#[cfg_attr(
67832    target_arch = "arm",
67833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67834)]
67835pub unsafe fn vst3_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x3_t) {
67836    static_assert_uimm_bits!(LANE, 2);
67837    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
67838}
67839#[doc = "Store multiple 3-element structures from three registers"]
67840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_p16)"]
67841#[doc = "## Safety"]
67842#[doc = "  * Neon intrinsic unsafe"]
67843#[inline(always)]
67844#[target_feature(enable = "neon")]
67845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67846#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67847#[cfg_attr(
67848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67849    assert_instr(st3, LANE = 0)
67850)]
67851#[rustc_legacy_const_generics(2)]
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 vst3q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x3_t) {
67861    static_assert_uimm_bits!(LANE, 3);
67862    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
67863}
67864#[doc = "Store multiple 3-element structures from three registers"]
67865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p64)"]
67866#[doc = "## Safety"]
67867#[doc = "  * Neon intrinsic unsafe"]
67868#[inline(always)]
67869#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
67870#[target_feature(enable = "neon,aes")]
67871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
67872#[cfg_attr(
67873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67874    assert_instr(nop)
67875)]
67876#[cfg_attr(
67877    not(target_arch = "arm"),
67878    stable(feature = "neon_intrinsics", since = "1.59.0")
67879)]
67880#[cfg_attr(
67881    target_arch = "arm",
67882    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67883)]
67884pub unsafe fn vst3_p64(a: *mut p64, b: poly64x1x3_t) {
67885    vst3_s64(transmute(a), transmute(b))
67886}
67887#[doc = "Store multiple 3-element structures from three registers"]
67888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)"]
67889#[doc = "## Safety"]
67890#[doc = "  * Neon intrinsic unsafe"]
67891#[inline(always)]
67892#[target_feature(enable = "neon")]
67893#[cfg(not(target_arch = "arm"))]
67894#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67895#[cfg_attr(test, assert_instr(nop))]
67896pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
67897    core::ptr::write_unaligned(a.cast(), b)
67898}
67899#[doc = "Store multiple 3-element structures from three registers"]
67900#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)"]
67901#[doc = "## Safety"]
67902#[doc = "  * Neon intrinsic unsafe"]
67903#[inline(always)]
67904#[cfg(target_arch = "arm")]
67905#[target_feature(enable = "neon,v7")]
67906#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67907#[cfg_attr(test, assert_instr(nop))]
67908pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
67909    core::ptr::write_unaligned(a.cast(), b)
67910}
67911#[doc = "Store multiple 3-element structures from three registers"]
67912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u64)"]
67913#[doc = "## Safety"]
67914#[doc = "  * Neon intrinsic unsafe"]
67915#[inline(always)]
67916#[target_feature(enable = "neon")]
67917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67918#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
67919#[cfg_attr(
67920    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67921    assert_instr(nop)
67922)]
67923#[cfg_attr(
67924    not(target_arch = "arm"),
67925    stable(feature = "neon_intrinsics", since = "1.59.0")
67926)]
67927#[cfg_attr(
67928    target_arch = "arm",
67929    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67930)]
67931pub unsafe fn vst3_u64(a: *mut u64, b: uint64x1x3_t) {
67932    vst3_s64(transmute(a), transmute(b))
67933}
67934#[doc = "Store multiple 3-element structures from three registers"]
67935#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u8)"]
67936#[doc = "## Safety"]
67937#[doc = "  * Neon intrinsic unsafe"]
67938#[inline(always)]
67939#[target_feature(enable = "neon")]
67940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
67942#[cfg_attr(
67943    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67944    assert_instr(st3)
67945)]
67946#[cfg_attr(
67947    not(target_arch = "arm"),
67948    stable(feature = "neon_intrinsics", since = "1.59.0")
67949)]
67950#[cfg_attr(
67951    target_arch = "arm",
67952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67953)]
67954pub unsafe fn vst3_u8(a: *mut u8, b: uint8x8x3_t) {
67955    vst3_s8(transmute(a), transmute(b))
67956}
67957#[doc = "Store multiple 3-element structures from three registers"]
67958#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u8)"]
67959#[doc = "## Safety"]
67960#[doc = "  * Neon intrinsic unsafe"]
67961#[inline(always)]
67962#[target_feature(enable = "neon")]
67963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67964#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
67965#[cfg_attr(
67966    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67967    assert_instr(st3)
67968)]
67969#[cfg_attr(
67970    not(target_arch = "arm"),
67971    stable(feature = "neon_intrinsics", since = "1.59.0")
67972)]
67973#[cfg_attr(
67974    target_arch = "arm",
67975    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67976)]
67977pub unsafe fn vst3q_u8(a: *mut u8, b: uint8x16x3_t) {
67978    vst3q_s8(transmute(a), transmute(b))
67979}
67980#[doc = "Store multiple 3-element structures from three registers"]
67981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u16)"]
67982#[doc = "## Safety"]
67983#[doc = "  * Neon intrinsic unsafe"]
67984#[inline(always)]
67985#[target_feature(enable = "neon")]
67986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
67988#[cfg_attr(
67989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67990    assert_instr(st3)
67991)]
67992#[cfg_attr(
67993    not(target_arch = "arm"),
67994    stable(feature = "neon_intrinsics", since = "1.59.0")
67995)]
67996#[cfg_attr(
67997    target_arch = "arm",
67998    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67999)]
68000pub unsafe fn vst3_u16(a: *mut u16, b: uint16x4x3_t) {
68001    vst3_s16(transmute(a), transmute(b))
68002}
68003#[doc = "Store multiple 3-element structures from three registers"]
68004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u16)"]
68005#[doc = "## Safety"]
68006#[doc = "  * Neon intrinsic unsafe"]
68007#[inline(always)]
68008#[target_feature(enable = "neon")]
68009#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68011#[cfg_attr(
68012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68013    assert_instr(st3)
68014)]
68015#[cfg_attr(
68016    not(target_arch = "arm"),
68017    stable(feature = "neon_intrinsics", since = "1.59.0")
68018)]
68019#[cfg_attr(
68020    target_arch = "arm",
68021    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68022)]
68023pub unsafe fn vst3q_u16(a: *mut u16, b: uint16x8x3_t) {
68024    vst3q_s16(transmute(a), transmute(b))
68025}
68026#[doc = "Store multiple 3-element structures from three registers"]
68027#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u32)"]
68028#[doc = "## Safety"]
68029#[doc = "  * Neon intrinsic unsafe"]
68030#[inline(always)]
68031#[target_feature(enable = "neon")]
68032#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68033#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68034#[cfg_attr(
68035    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68036    assert_instr(st3)
68037)]
68038#[cfg_attr(
68039    not(target_arch = "arm"),
68040    stable(feature = "neon_intrinsics", since = "1.59.0")
68041)]
68042#[cfg_attr(
68043    target_arch = "arm",
68044    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68045)]
68046pub unsafe fn vst3_u32(a: *mut u32, b: uint32x2x3_t) {
68047    vst3_s32(transmute(a), transmute(b))
68048}
68049#[doc = "Store multiple 3-element structures from three registers"]
68050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u32)"]
68051#[doc = "## Safety"]
68052#[doc = "  * Neon intrinsic unsafe"]
68053#[inline(always)]
68054#[target_feature(enable = "neon")]
68055#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68056#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68057#[cfg_attr(
68058    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68059    assert_instr(st3)
68060)]
68061#[cfg_attr(
68062    not(target_arch = "arm"),
68063    stable(feature = "neon_intrinsics", since = "1.59.0")
68064)]
68065#[cfg_attr(
68066    target_arch = "arm",
68067    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68068)]
68069pub unsafe fn vst3q_u32(a: *mut u32, b: uint32x4x3_t) {
68070    vst3q_s32(transmute(a), transmute(b))
68071}
68072#[doc = "Store multiple 3-element structures from three registers"]
68073#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p8)"]
68074#[doc = "## Safety"]
68075#[doc = "  * Neon intrinsic unsafe"]
68076#[inline(always)]
68077#[target_feature(enable = "neon")]
68078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68080#[cfg_attr(
68081    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68082    assert_instr(st3)
68083)]
68084#[cfg_attr(
68085    not(target_arch = "arm"),
68086    stable(feature = "neon_intrinsics", since = "1.59.0")
68087)]
68088#[cfg_attr(
68089    target_arch = "arm",
68090    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68091)]
68092pub unsafe fn vst3_p8(a: *mut p8, b: poly8x8x3_t) {
68093    vst3_s8(transmute(a), transmute(b))
68094}
68095#[doc = "Store multiple 3-element structures from three registers"]
68096#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p8)"]
68097#[doc = "## Safety"]
68098#[doc = "  * Neon intrinsic unsafe"]
68099#[inline(always)]
68100#[target_feature(enable = "neon")]
68101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68103#[cfg_attr(
68104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68105    assert_instr(st3)
68106)]
68107#[cfg_attr(
68108    not(target_arch = "arm"),
68109    stable(feature = "neon_intrinsics", since = "1.59.0")
68110)]
68111#[cfg_attr(
68112    target_arch = "arm",
68113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68114)]
68115pub unsafe fn vst3q_p8(a: *mut p8, b: poly8x16x3_t) {
68116    vst3q_s8(transmute(a), transmute(b))
68117}
68118#[doc = "Store multiple 3-element structures from three registers"]
68119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p16)"]
68120#[doc = "## Safety"]
68121#[doc = "  * Neon intrinsic unsafe"]
68122#[inline(always)]
68123#[target_feature(enable = "neon")]
68124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68125#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68126#[cfg_attr(
68127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68128    assert_instr(st3)
68129)]
68130#[cfg_attr(
68131    not(target_arch = "arm"),
68132    stable(feature = "neon_intrinsics", since = "1.59.0")
68133)]
68134#[cfg_attr(
68135    target_arch = "arm",
68136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68137)]
68138pub unsafe fn vst3_p16(a: *mut p16, b: poly16x4x3_t) {
68139    vst3_s16(transmute(a), transmute(b))
68140}
68141#[doc = "Store multiple 3-element structures from three registers"]
68142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p16)"]
68143#[doc = "## Safety"]
68144#[doc = "  * Neon intrinsic unsafe"]
68145#[inline(always)]
68146#[target_feature(enable = "neon")]
68147#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68148#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68149#[cfg_attr(
68150    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68151    assert_instr(st3)
68152)]
68153#[cfg_attr(
68154    not(target_arch = "arm"),
68155    stable(feature = "neon_intrinsics", since = "1.59.0")
68156)]
68157#[cfg_attr(
68158    target_arch = "arm",
68159    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68160)]
68161pub unsafe fn vst3q_p16(a: *mut p16, b: poly16x8x3_t) {
68162    vst3q_s16(transmute(a), transmute(b))
68163}
68164#[doc = "Store multiple 4-element structures from four registers"]
68165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f16)"]
68166#[doc = "## Safety"]
68167#[doc = "  * Neon intrinsic unsafe"]
68168#[inline(always)]
68169#[target_feature(enable = "neon")]
68170#[cfg(target_arch = "arm")]
68171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68172#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68173#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68174#[cfg(not(target_arch = "arm64ec"))]
68175#[cfg_attr(test, assert_instr(vst4))]
68176pub unsafe fn vst4_f16(a: *mut f16, b: float16x4x4_t) {
68177    unsafe extern "unadjusted" {
68178        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4f16")]
68179        fn _vst4_f16(
68180            ptr: *mut i8,
68181            a: float16x4_t,
68182            b: float16x4_t,
68183            c: float16x4_t,
68184            d: float16x4_t,
68185            size: i32,
68186        );
68187    }
68188    _vst4_f16(a as _, b.0, b.1, b.2, b.3, 2)
68189}
68190#[doc = "Store multiple 4-element structures from four registers"]
68191#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f16)"]
68192#[doc = "## Safety"]
68193#[doc = "  * Neon intrinsic unsafe"]
68194#[inline(always)]
68195#[target_feature(enable = "neon")]
68196#[cfg(target_arch = "arm")]
68197#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68198#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68199#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68200#[cfg(not(target_arch = "arm64ec"))]
68201#[cfg_attr(test, assert_instr(vst4))]
68202pub unsafe fn vst4q_f16(a: *mut f16, b: float16x8x4_t) {
68203    unsafe extern "unadjusted" {
68204        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8f16")]
68205        fn _vst4q_f16(
68206            ptr: *mut i8,
68207            a: float16x8_t,
68208            b: float16x8_t,
68209            c: float16x8_t,
68210            d: float16x8_t,
68211            size: i32,
68212        );
68213    }
68214    _vst4q_f16(a as _, b.0, b.1, b.2, b.3, 2)
68215}
68216#[doc = "Store multiple 4-element structures from four registers"]
68217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f16)"]
68218#[doc = "## Safety"]
68219#[doc = "  * Neon intrinsic unsafe"]
68220#[inline(always)]
68221#[target_feature(enable = "neon")]
68222#[cfg(not(target_arch = "arm"))]
68223#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68224#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68225#[cfg(not(target_arch = "arm64ec"))]
68226#[cfg_attr(test, assert_instr(st4))]
68227pub unsafe fn vst4_f16(a: *mut f16, b: float16x4x4_t) {
68228    unsafe extern "unadjusted" {
68229        #[cfg_attr(
68230            any(target_arch = "aarch64", target_arch = "arm64ec"),
68231            link_name = "llvm.aarch64.neon.st4.v4f16.p0"
68232        )]
68233        fn _vst4_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, d: float16x4_t, ptr: *mut i8);
68234    }
68235    _vst4_f16(b.0, b.1, b.2, b.3, a as _)
68236}
68237#[doc = "Store multiple 4-element structures from four registers"]
68238#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f16)"]
68239#[doc = "## Safety"]
68240#[doc = "  * Neon intrinsic unsafe"]
68241#[inline(always)]
68242#[target_feature(enable = "neon")]
68243#[cfg(not(target_arch = "arm"))]
68244#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68245#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68246#[cfg(not(target_arch = "arm64ec"))]
68247#[cfg_attr(test, assert_instr(st4))]
68248pub unsafe fn vst4q_f16(a: *mut f16, b: float16x8x4_t) {
68249    unsafe extern "unadjusted" {
68250        #[cfg_attr(
68251            any(target_arch = "aarch64", target_arch = "arm64ec"),
68252            link_name = "llvm.aarch64.neon.st4.v8f16.p0"
68253        )]
68254        fn _vst4q_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, d: float16x8_t, ptr: *mut i8);
68255    }
68256    _vst4q_f16(b.0, b.1, b.2, b.3, a as _)
68257}
68258#[doc = "Store multiple 4-element structures from four registers"]
68259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)"]
68260#[doc = "## Safety"]
68261#[doc = "  * Neon intrinsic unsafe"]
68262#[inline(always)]
68263#[cfg(target_arch = "arm")]
68264#[target_feature(enable = "neon,v7")]
68265#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68266#[cfg_attr(test, assert_instr(vst4))]
68267pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
68268    unsafe extern "unadjusted" {
68269        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v2f32")]
68270        fn _vst4_f32(
68271            ptr: *mut i8,
68272            a: float32x2_t,
68273            b: float32x2_t,
68274            c: float32x2_t,
68275            d: float32x2_t,
68276            size: i32,
68277        );
68278    }
68279    _vst4_f32(a as _, b.0, b.1, b.2, b.3, 4)
68280}
68281#[doc = "Store multiple 4-element structures from four registers"]
68282#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)"]
68283#[doc = "## Safety"]
68284#[doc = "  * Neon intrinsic unsafe"]
68285#[inline(always)]
68286#[cfg(target_arch = "arm")]
68287#[target_feature(enable = "neon,v7")]
68288#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68289#[cfg_attr(test, assert_instr(vst4))]
68290pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
68291    unsafe extern "unadjusted" {
68292        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4f32")]
68293        fn _vst4q_f32(
68294            ptr: *mut i8,
68295            a: float32x4_t,
68296            b: float32x4_t,
68297            c: float32x4_t,
68298            d: float32x4_t,
68299            size: i32,
68300        );
68301    }
68302    _vst4q_f32(a as _, b.0, b.1, b.2, b.3, 4)
68303}
68304#[doc = "Store multiple 4-element structures from four registers"]
68305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)"]
68306#[doc = "## Safety"]
68307#[doc = "  * Neon intrinsic unsafe"]
68308#[inline(always)]
68309#[cfg(target_arch = "arm")]
68310#[target_feature(enable = "neon,v7")]
68311#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68312#[cfg_attr(test, assert_instr(vst4))]
68313pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
68314    unsafe extern "unadjusted" {
68315        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8i8")]
68316        fn _vst4_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, size: i32);
68317    }
68318    _vst4_s8(a as _, b.0, b.1, b.2, b.3, 1)
68319}
68320#[doc = "Store multiple 4-element structures from four registers"]
68321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)"]
68322#[doc = "## Safety"]
68323#[doc = "  * Neon intrinsic unsafe"]
68324#[inline(always)]
68325#[cfg(target_arch = "arm")]
68326#[target_feature(enable = "neon,v7")]
68327#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68328#[cfg_attr(test, assert_instr(vst4))]
68329pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
68330    unsafe extern "unadjusted" {
68331        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v16i8")]
68332        fn _vst4q_s8(
68333            ptr: *mut i8,
68334            a: int8x16_t,
68335            b: int8x16_t,
68336            c: int8x16_t,
68337            d: int8x16_t,
68338            size: i32,
68339        );
68340    }
68341    _vst4q_s8(a as _, b.0, b.1, b.2, b.3, 1)
68342}
68343#[doc = "Store multiple 4-element structures from four registers"]
68344#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)"]
68345#[doc = "## Safety"]
68346#[doc = "  * Neon intrinsic unsafe"]
68347#[inline(always)]
68348#[cfg(target_arch = "arm")]
68349#[target_feature(enable = "neon,v7")]
68350#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68351#[cfg_attr(test, assert_instr(vst4))]
68352pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
68353    unsafe extern "unadjusted" {
68354        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4i16")]
68355        fn _vst4_s16(
68356            ptr: *mut i8,
68357            a: int16x4_t,
68358            b: int16x4_t,
68359            c: int16x4_t,
68360            d: int16x4_t,
68361            size: i32,
68362        );
68363    }
68364    _vst4_s16(a as _, b.0, b.1, b.2, b.3, 2)
68365}
68366#[doc = "Store multiple 4-element structures from four registers"]
68367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)"]
68368#[doc = "## Safety"]
68369#[doc = "  * Neon intrinsic unsafe"]
68370#[inline(always)]
68371#[cfg(target_arch = "arm")]
68372#[target_feature(enable = "neon,v7")]
68373#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68374#[cfg_attr(test, assert_instr(vst4))]
68375pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
68376    unsafe extern "unadjusted" {
68377        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8i16")]
68378        fn _vst4q_s16(
68379            ptr: *mut i8,
68380            a: int16x8_t,
68381            b: int16x8_t,
68382            c: int16x8_t,
68383            d: int16x8_t,
68384            size: i32,
68385        );
68386    }
68387    _vst4q_s16(a as _, b.0, b.1, b.2, b.3, 2)
68388}
68389#[doc = "Store multiple 4-element structures from four registers"]
68390#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)"]
68391#[doc = "## Safety"]
68392#[doc = "  * Neon intrinsic unsafe"]
68393#[inline(always)]
68394#[cfg(target_arch = "arm")]
68395#[target_feature(enable = "neon,v7")]
68396#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68397#[cfg_attr(test, assert_instr(vst4))]
68398pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
68399    unsafe extern "unadjusted" {
68400        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v2i32")]
68401        fn _vst4_s32(
68402            ptr: *mut i8,
68403            a: int32x2_t,
68404            b: int32x2_t,
68405            c: int32x2_t,
68406            d: int32x2_t,
68407            size: i32,
68408        );
68409    }
68410    _vst4_s32(a as _, b.0, b.1, b.2, b.3, 4)
68411}
68412#[doc = "Store multiple 4-element structures from four registers"]
68413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)"]
68414#[doc = "## Safety"]
68415#[doc = "  * Neon intrinsic unsafe"]
68416#[inline(always)]
68417#[cfg(target_arch = "arm")]
68418#[target_feature(enable = "neon,v7")]
68419#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68420#[cfg_attr(test, assert_instr(vst4))]
68421pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
68422    unsafe extern "unadjusted" {
68423        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4i32")]
68424        fn _vst4q_s32(
68425            ptr: *mut i8,
68426            a: int32x4_t,
68427            b: int32x4_t,
68428            c: int32x4_t,
68429            d: int32x4_t,
68430            size: i32,
68431        );
68432    }
68433    _vst4q_s32(a as _, b.0, b.1, b.2, b.3, 4)
68434}
68435#[doc = "Store multiple 4-element structures from four registers"]
68436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)"]
68437#[doc = "## Safety"]
68438#[doc = "  * Neon intrinsic unsafe"]
68439#[inline(always)]
68440#[target_feature(enable = "neon")]
68441#[cfg(not(target_arch = "arm"))]
68442#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68443#[cfg_attr(test, assert_instr(st4))]
68444pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
68445    crate::core_arch::macros::interleaving_store!(f32, 2, 4, a, b)
68446}
68447#[doc = "Store multiple 4-element structures from four registers"]
68448#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)"]
68449#[doc = "## Safety"]
68450#[doc = "  * Neon intrinsic unsafe"]
68451#[inline(always)]
68452#[target_feature(enable = "neon")]
68453#[cfg(not(target_arch = "arm"))]
68454#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68455#[cfg_attr(test, assert_instr(st4))]
68456pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
68457    crate::core_arch::macros::interleaving_store!(f32, 4, 4, a, b)
68458}
68459#[doc = "Store multiple 4-element structures from four registers"]
68460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)"]
68461#[doc = "## Safety"]
68462#[doc = "  * Neon intrinsic unsafe"]
68463#[inline(always)]
68464#[target_feature(enable = "neon")]
68465#[cfg(not(target_arch = "arm"))]
68466#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68467#[cfg_attr(test, assert_instr(st4))]
68468pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
68469    crate::core_arch::macros::interleaving_store!(i8, 8, 4, a, b)
68470}
68471#[doc = "Store multiple 4-element structures from four registers"]
68472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)"]
68473#[doc = "## Safety"]
68474#[doc = "  * Neon intrinsic unsafe"]
68475#[inline(always)]
68476#[target_feature(enable = "neon")]
68477#[cfg(not(target_arch = "arm"))]
68478#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68479#[cfg_attr(test, assert_instr(st4))]
68480pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
68481    crate::core_arch::macros::interleaving_store!(i8, 16, 4, a, b)
68482}
68483#[doc = "Store multiple 4-element structures from four registers"]
68484#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)"]
68485#[doc = "## Safety"]
68486#[doc = "  * Neon intrinsic unsafe"]
68487#[inline(always)]
68488#[target_feature(enable = "neon")]
68489#[cfg(not(target_arch = "arm"))]
68490#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68491#[cfg_attr(test, assert_instr(st4))]
68492pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
68493    crate::core_arch::macros::interleaving_store!(i16, 4, 4, a, b)
68494}
68495#[doc = "Store multiple 4-element structures from four registers"]
68496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)"]
68497#[doc = "## Safety"]
68498#[doc = "  * Neon intrinsic unsafe"]
68499#[inline(always)]
68500#[target_feature(enable = "neon")]
68501#[cfg(not(target_arch = "arm"))]
68502#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68503#[cfg_attr(test, assert_instr(st4))]
68504pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
68505    crate::core_arch::macros::interleaving_store!(i16, 8, 4, a, b)
68506}
68507#[doc = "Store multiple 4-element structures from four registers"]
68508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)"]
68509#[doc = "## Safety"]
68510#[doc = "  * Neon intrinsic unsafe"]
68511#[inline(always)]
68512#[target_feature(enable = "neon")]
68513#[cfg(not(target_arch = "arm"))]
68514#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68515#[cfg_attr(test, assert_instr(st4))]
68516pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
68517    crate::core_arch::macros::interleaving_store!(i32, 2, 4, a, b)
68518}
68519#[doc = "Store multiple 4-element structures from four registers"]
68520#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)"]
68521#[doc = "## Safety"]
68522#[doc = "  * Neon intrinsic unsafe"]
68523#[inline(always)]
68524#[target_feature(enable = "neon")]
68525#[cfg(not(target_arch = "arm"))]
68526#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68527#[cfg_attr(test, assert_instr(st4))]
68528pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
68529    crate::core_arch::macros::interleaving_store!(i32, 4, 4, a, b)
68530}
68531#[doc = "Store multiple 4-element structures from four registers"]
68532#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f16)"]
68533#[doc = "## Safety"]
68534#[doc = "  * Neon intrinsic unsafe"]
68535#[inline(always)]
68536#[target_feature(enable = "neon")]
68537#[cfg(target_arch = "arm")]
68538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68539#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68540#[rustc_legacy_const_generics(2)]
68541#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68542#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68543#[cfg(not(target_arch = "arm64ec"))]
68544pub unsafe fn vst4_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x4_t) {
68545    static_assert_uimm_bits!(LANE, 2);
68546    unsafe extern "unadjusted" {
68547        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4f16")]
68548        fn _vst4_lane_f16(
68549            ptr: *mut i8,
68550            a: float16x4_t,
68551            b: float16x4_t,
68552            c: float16x4_t,
68553            d: float16x4_t,
68554            n: i32,
68555            size: i32,
68556        );
68557    }
68558    _vst4_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
68559}
68560#[doc = "Store multiple 4-element structures from four registers"]
68561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f16)"]
68562#[doc = "## Safety"]
68563#[doc = "  * Neon intrinsic unsafe"]
68564#[inline(always)]
68565#[target_feature(enable = "neon")]
68566#[cfg(target_arch = "arm")]
68567#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68568#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68569#[rustc_legacy_const_generics(2)]
68570#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68571#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68572#[cfg(not(target_arch = "arm64ec"))]
68573pub unsafe fn vst4q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x4_t) {
68574    static_assert_uimm_bits!(LANE, 3);
68575    unsafe extern "unadjusted" {
68576        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8f16")]
68577        fn _vst4q_lane_f16(
68578            ptr: *mut i8,
68579            a: float16x8_t,
68580            b: float16x8_t,
68581            c: float16x8_t,
68582            d: float16x8_t,
68583            n: i32,
68584            size: i32,
68585        );
68586    }
68587    _vst4q_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
68588}
68589#[doc = "Store multiple 4-element structures from four registers"]
68590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f16)"]
68591#[doc = "## Safety"]
68592#[doc = "  * Neon intrinsic unsafe"]
68593#[inline(always)]
68594#[target_feature(enable = "neon")]
68595#[cfg(not(target_arch = "arm"))]
68596#[rustc_legacy_const_generics(2)]
68597#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68598#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68599#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68600#[cfg(not(target_arch = "arm64ec"))]
68601pub unsafe fn vst4_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x4_t) {
68602    static_assert_uimm_bits!(LANE, 2);
68603    unsafe extern "unadjusted" {
68604        #[cfg_attr(
68605            any(target_arch = "aarch64", target_arch = "arm64ec"),
68606            link_name = "llvm.aarch64.neon.st4lane.v4f16.p0"
68607        )]
68608        fn _vst4_lane_f16(
68609            a: float16x4_t,
68610            b: float16x4_t,
68611            c: float16x4_t,
68612            d: float16x4_t,
68613            n: i64,
68614            ptr: *mut i8,
68615        );
68616    }
68617    _vst4_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68618}
68619#[doc = "Store multiple 4-element structures from four registers"]
68620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f16)"]
68621#[doc = "## Safety"]
68622#[doc = "  * Neon intrinsic unsafe"]
68623#[inline(always)]
68624#[target_feature(enable = "neon")]
68625#[cfg(not(target_arch = "arm"))]
68626#[rustc_legacy_const_generics(2)]
68627#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68628#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68629#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68630#[cfg(not(target_arch = "arm64ec"))]
68631pub unsafe fn vst4q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x4_t) {
68632    static_assert_uimm_bits!(LANE, 3);
68633    unsafe extern "unadjusted" {
68634        #[cfg_attr(
68635            any(target_arch = "aarch64", target_arch = "arm64ec"),
68636            link_name = "llvm.aarch64.neon.st4lane.v8f16.p0"
68637        )]
68638        fn _vst4q_lane_f16(
68639            a: float16x8_t,
68640            b: float16x8_t,
68641            c: float16x8_t,
68642            d: float16x8_t,
68643            n: i64,
68644            ptr: *mut i8,
68645        );
68646    }
68647    _vst4q_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68648}
68649#[doc = "Store multiple 4-element structures from four registers"]
68650#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)"]
68651#[doc = "## Safety"]
68652#[doc = "  * Neon intrinsic unsafe"]
68653#[inline(always)]
68654#[cfg(target_arch = "arm")]
68655#[target_feature(enable = "neon,v7")]
68656#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68657#[rustc_legacy_const_generics(2)]
68658#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68659pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
68660    static_assert_uimm_bits!(LANE, 1);
68661    unsafe extern "unadjusted" {
68662        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v2f32")]
68663        fn _vst4_lane_f32(
68664            ptr: *mut i8,
68665            a: float32x2_t,
68666            b: float32x2_t,
68667            c: float32x2_t,
68668            d: float32x2_t,
68669            n: i32,
68670            size: i32,
68671        );
68672    }
68673    _vst4_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
68674}
68675#[doc = "Store multiple 4-element structures from four registers"]
68676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)"]
68677#[doc = "## Safety"]
68678#[doc = "  * Neon intrinsic unsafe"]
68679#[inline(always)]
68680#[cfg(target_arch = "arm")]
68681#[target_feature(enable = "neon,v7")]
68682#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68683#[rustc_legacy_const_generics(2)]
68684#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68685pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
68686    static_assert_uimm_bits!(LANE, 2);
68687    unsafe extern "unadjusted" {
68688        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4f32")]
68689        fn _vst4q_lane_f32(
68690            ptr: *mut i8,
68691            a: float32x4_t,
68692            b: float32x4_t,
68693            c: float32x4_t,
68694            d: float32x4_t,
68695            n: i32,
68696            size: i32,
68697        );
68698    }
68699    _vst4q_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
68700}
68701#[doc = "Store multiple 4-element structures from four registers"]
68702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)"]
68703#[doc = "## Safety"]
68704#[doc = "  * Neon intrinsic unsafe"]
68705#[inline(always)]
68706#[cfg(target_arch = "arm")]
68707#[target_feature(enable = "neon,v7")]
68708#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68709#[rustc_legacy_const_generics(2)]
68710#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68711pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
68712    static_assert_uimm_bits!(LANE, 3);
68713    unsafe extern "unadjusted" {
68714        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8i8")]
68715        fn _vst4_lane_s8(
68716            ptr: *mut i8,
68717            a: int8x8_t,
68718            b: int8x8_t,
68719            c: int8x8_t,
68720            d: int8x8_t,
68721            n: i32,
68722            size: i32,
68723        );
68724    }
68725    _vst4_lane_s8(a as _, b.0, b.1, b.2, b.3, LANE, 1)
68726}
68727#[doc = "Store multiple 4-element structures from four registers"]
68728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)"]
68729#[doc = "## Safety"]
68730#[doc = "  * Neon intrinsic unsafe"]
68731#[inline(always)]
68732#[cfg(target_arch = "arm")]
68733#[target_feature(enable = "neon,v7")]
68734#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68735#[rustc_legacy_const_generics(2)]
68736#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68737pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
68738    static_assert_uimm_bits!(LANE, 2);
68739    unsafe extern "unadjusted" {
68740        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4i16")]
68741        fn _vst4_lane_s16(
68742            ptr: *mut i8,
68743            a: int16x4_t,
68744            b: int16x4_t,
68745            c: int16x4_t,
68746            d: int16x4_t,
68747            n: i32,
68748            size: i32,
68749        );
68750    }
68751    _vst4_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
68752}
68753#[doc = "Store multiple 4-element structures from four registers"]
68754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)"]
68755#[doc = "## Safety"]
68756#[doc = "  * Neon intrinsic unsafe"]
68757#[inline(always)]
68758#[cfg(target_arch = "arm")]
68759#[target_feature(enable = "neon,v7")]
68760#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68761#[rustc_legacy_const_generics(2)]
68762#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68763pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
68764    static_assert_uimm_bits!(LANE, 3);
68765    unsafe extern "unadjusted" {
68766        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8i16")]
68767        fn _vst4q_lane_s16(
68768            ptr: *mut i8,
68769            a: int16x8_t,
68770            b: int16x8_t,
68771            c: int16x8_t,
68772            d: int16x8_t,
68773            n: i32,
68774            size: i32,
68775        );
68776    }
68777    _vst4q_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
68778}
68779#[doc = "Store multiple 4-element structures from four registers"]
68780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s32)"]
68781#[doc = "## Safety"]
68782#[doc = "  * Neon intrinsic unsafe"]
68783#[inline(always)]
68784#[cfg(target_arch = "arm")]
68785#[target_feature(enable = "neon,v7")]
68786#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68787#[rustc_legacy_const_generics(2)]
68788#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68789pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
68790    static_assert_uimm_bits!(LANE, 1);
68791    unsafe extern "unadjusted" {
68792        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v2i32")]
68793        fn _vst4_lane_s32(
68794            ptr: *mut i8,
68795            a: int32x2_t,
68796            b: int32x2_t,
68797            c: int32x2_t,
68798            d: int32x2_t,
68799            n: i32,
68800            size: i32,
68801        );
68802    }
68803    _vst4_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
68804}
68805#[doc = "Store multiple 4-element structures from four registers"]
68806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)"]
68807#[doc = "## Safety"]
68808#[doc = "  * Neon intrinsic unsafe"]
68809#[inline(always)]
68810#[cfg(target_arch = "arm")]
68811#[target_feature(enable = "neon,v7")]
68812#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68813#[rustc_legacy_const_generics(2)]
68814#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68815pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
68816    static_assert_uimm_bits!(LANE, 2);
68817    unsafe extern "unadjusted" {
68818        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4i32")]
68819        fn _vst4q_lane_s32(
68820            ptr: *mut i8,
68821            a: int32x4_t,
68822            b: int32x4_t,
68823            c: int32x4_t,
68824            d: int32x4_t,
68825            n: i32,
68826            size: i32,
68827        );
68828    }
68829    _vst4q_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
68830}
68831#[doc = "Store multiple 4-element structures from four registers"]
68832#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)"]
68833#[doc = "## Safety"]
68834#[doc = "  * Neon intrinsic unsafe"]
68835#[inline(always)]
68836#[target_feature(enable = "neon")]
68837#[cfg(not(target_arch = "arm"))]
68838#[rustc_legacy_const_generics(2)]
68839#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68840#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68841pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
68842    static_assert_uimm_bits!(LANE, 1);
68843    unsafe extern "unadjusted" {
68844        #[cfg_attr(
68845            any(target_arch = "aarch64", target_arch = "arm64ec"),
68846            link_name = "llvm.aarch64.neon.st4lane.v2f32.p0"
68847        )]
68848        fn _vst4_lane_f32(
68849            a: float32x2_t,
68850            b: float32x2_t,
68851            c: float32x2_t,
68852            d: float32x2_t,
68853            n: i64,
68854            ptr: *mut i8,
68855        );
68856    }
68857    _vst4_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68858}
68859#[doc = "Store multiple 4-element structures from four registers"]
68860#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)"]
68861#[doc = "## Safety"]
68862#[doc = "  * Neon intrinsic unsafe"]
68863#[inline(always)]
68864#[target_feature(enable = "neon")]
68865#[cfg(not(target_arch = "arm"))]
68866#[rustc_legacy_const_generics(2)]
68867#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68868#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68869pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
68870    static_assert_uimm_bits!(LANE, 2);
68871    unsafe extern "unadjusted" {
68872        #[cfg_attr(
68873            any(target_arch = "aarch64", target_arch = "arm64ec"),
68874            link_name = "llvm.aarch64.neon.st4lane.v4f32.p0"
68875        )]
68876        fn _vst4q_lane_f32(
68877            a: float32x4_t,
68878            b: float32x4_t,
68879            c: float32x4_t,
68880            d: float32x4_t,
68881            n: i64,
68882            ptr: *mut i8,
68883        );
68884    }
68885    _vst4q_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68886}
68887#[doc = "Store multiple 4-element structures from four registers"]
68888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)"]
68889#[doc = "## Safety"]
68890#[doc = "  * Neon intrinsic unsafe"]
68891#[inline(always)]
68892#[target_feature(enable = "neon")]
68893#[cfg(not(target_arch = "arm"))]
68894#[rustc_legacy_const_generics(2)]
68895#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68896#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68897pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
68898    static_assert_uimm_bits!(LANE, 3);
68899    unsafe extern "unadjusted" {
68900        #[cfg_attr(
68901            any(target_arch = "aarch64", target_arch = "arm64ec"),
68902            link_name = "llvm.aarch64.neon.st4lane.v8i8.p0"
68903        )]
68904        fn _vst4_lane_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, n: i64, ptr: *mut i8);
68905    }
68906    _vst4_lane_s8(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68907}
68908#[doc = "Store multiple 4-element structures from four registers"]
68909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)"]
68910#[doc = "## Safety"]
68911#[doc = "  * Neon intrinsic unsafe"]
68912#[inline(always)]
68913#[target_feature(enable = "neon")]
68914#[cfg(not(target_arch = "arm"))]
68915#[rustc_legacy_const_generics(2)]
68916#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68917#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68918pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
68919    static_assert_uimm_bits!(LANE, 2);
68920    unsafe extern "unadjusted" {
68921        #[cfg_attr(
68922            any(target_arch = "aarch64", target_arch = "arm64ec"),
68923            link_name = "llvm.aarch64.neon.st4lane.v4i16.p0"
68924        )]
68925        fn _vst4_lane_s16(
68926            a: int16x4_t,
68927            b: int16x4_t,
68928            c: int16x4_t,
68929            d: int16x4_t,
68930            n: i64,
68931            ptr: *mut i8,
68932        );
68933    }
68934    _vst4_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68935}
68936#[doc = "Store multiple 4-element structures from four registers"]
68937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)"]
68938#[doc = "## Safety"]
68939#[doc = "  * Neon intrinsic unsafe"]
68940#[inline(always)]
68941#[target_feature(enable = "neon")]
68942#[cfg(not(target_arch = "arm"))]
68943#[rustc_legacy_const_generics(2)]
68944#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68945#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68946pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
68947    static_assert_uimm_bits!(LANE, 3);
68948    unsafe extern "unadjusted" {
68949        #[cfg_attr(
68950            any(target_arch = "aarch64", target_arch = "arm64ec"),
68951            link_name = "llvm.aarch64.neon.st4lane.v8i16.p0"
68952        )]
68953        fn _vst4q_lane_s16(
68954            a: int16x8_t,
68955            b: int16x8_t,
68956            c: int16x8_t,
68957            d: int16x8_t,
68958            n: i64,
68959            ptr: *mut i8,
68960        );
68961    }
68962    _vst4q_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68963}
68964#[doc = "Store multiple 4-element structures from four registers"]
68965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s32)"]
68966#[doc = "## Safety"]
68967#[doc = "  * Neon intrinsic unsafe"]
68968#[inline(always)]
68969#[target_feature(enable = "neon")]
68970#[cfg(not(target_arch = "arm"))]
68971#[rustc_legacy_const_generics(2)]
68972#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68973#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68974pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
68975    static_assert_uimm_bits!(LANE, 1);
68976    unsafe extern "unadjusted" {
68977        #[cfg_attr(
68978            any(target_arch = "aarch64", target_arch = "arm64ec"),
68979            link_name = "llvm.aarch64.neon.st4lane.v2i32.p0"
68980        )]
68981        fn _vst4_lane_s32(
68982            a: int32x2_t,
68983            b: int32x2_t,
68984            c: int32x2_t,
68985            d: int32x2_t,
68986            n: i64,
68987            ptr: *mut i8,
68988        );
68989    }
68990    _vst4_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68991}
68992#[doc = "Store multiple 4-element structures from four registers"]
68993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)"]
68994#[doc = "## Safety"]
68995#[doc = "  * Neon intrinsic unsafe"]
68996#[inline(always)]
68997#[target_feature(enable = "neon")]
68998#[cfg(not(target_arch = "arm"))]
68999#[rustc_legacy_const_generics(2)]
69000#[cfg_attr(test, assert_instr(st4, LANE = 0))]
69001#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69002pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
69003    static_assert_uimm_bits!(LANE, 2);
69004    unsafe extern "unadjusted" {
69005        #[cfg_attr(
69006            any(target_arch = "aarch64", target_arch = "arm64ec"),
69007            link_name = "llvm.aarch64.neon.st4lane.v4i32.p0"
69008        )]
69009        fn _vst4q_lane_s32(
69010            a: int32x4_t,
69011            b: int32x4_t,
69012            c: int32x4_t,
69013            d: int32x4_t,
69014            n: i64,
69015            ptr: *mut i8,
69016        );
69017    }
69018    _vst4q_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
69019}
69020#[doc = "Store multiple 4-element structures from four registers"]
69021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u8)"]
69022#[doc = "## Safety"]
69023#[doc = "  * Neon intrinsic unsafe"]
69024#[inline(always)]
69025#[target_feature(enable = "neon")]
69026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69028#[cfg_attr(
69029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69030    assert_instr(st4, LANE = 0)
69031)]
69032#[rustc_legacy_const_generics(2)]
69033#[cfg_attr(
69034    not(target_arch = "arm"),
69035    stable(feature = "neon_intrinsics", since = "1.59.0")
69036)]
69037#[cfg_attr(
69038    target_arch = "arm",
69039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69040)]
69041pub unsafe fn vst4_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x4_t) {
69042    static_assert_uimm_bits!(LANE, 3);
69043    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
69044}
69045#[doc = "Store multiple 4-element structures from four registers"]
69046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u16)"]
69047#[doc = "## Safety"]
69048#[doc = "  * Neon intrinsic unsafe"]
69049#[inline(always)]
69050#[target_feature(enable = "neon")]
69051#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69052#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69053#[cfg_attr(
69054    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69055    assert_instr(st4, LANE = 0)
69056)]
69057#[rustc_legacy_const_generics(2)]
69058#[cfg_attr(
69059    not(target_arch = "arm"),
69060    stable(feature = "neon_intrinsics", since = "1.59.0")
69061)]
69062#[cfg_attr(
69063    target_arch = "arm",
69064    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69065)]
69066pub unsafe fn vst4_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x4_t) {
69067    static_assert_uimm_bits!(LANE, 2);
69068    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
69069}
69070#[doc = "Store multiple 4-element structures from four registers"]
69071#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u16)"]
69072#[doc = "## Safety"]
69073#[doc = "  * Neon intrinsic unsafe"]
69074#[inline(always)]
69075#[target_feature(enable = "neon")]
69076#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69077#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69078#[cfg_attr(
69079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69080    assert_instr(st4, LANE = 0)
69081)]
69082#[rustc_legacy_const_generics(2)]
69083#[cfg_attr(
69084    not(target_arch = "arm"),
69085    stable(feature = "neon_intrinsics", since = "1.59.0")
69086)]
69087#[cfg_attr(
69088    target_arch = "arm",
69089    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69090)]
69091pub unsafe fn vst4q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x4_t) {
69092    static_assert_uimm_bits!(LANE, 3);
69093    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
69094}
69095#[doc = "Store multiple 4-element structures from four registers"]
69096#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u32)"]
69097#[doc = "## Safety"]
69098#[doc = "  * Neon intrinsic unsafe"]
69099#[inline(always)]
69100#[target_feature(enable = "neon")]
69101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69103#[cfg_attr(
69104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69105    assert_instr(st4, LANE = 0)
69106)]
69107#[rustc_legacy_const_generics(2)]
69108#[cfg_attr(
69109    not(target_arch = "arm"),
69110    stable(feature = "neon_intrinsics", since = "1.59.0")
69111)]
69112#[cfg_attr(
69113    target_arch = "arm",
69114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69115)]
69116pub unsafe fn vst4_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x4_t) {
69117    static_assert_uimm_bits!(LANE, 1);
69118    vst4_lane_s32::<LANE>(transmute(a), transmute(b))
69119}
69120#[doc = "Store multiple 4-element structures from four registers"]
69121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u32)"]
69122#[doc = "## Safety"]
69123#[doc = "  * Neon intrinsic unsafe"]
69124#[inline(always)]
69125#[target_feature(enable = "neon")]
69126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69128#[cfg_attr(
69129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69130    assert_instr(st4, LANE = 0)
69131)]
69132#[rustc_legacy_const_generics(2)]
69133#[cfg_attr(
69134    not(target_arch = "arm"),
69135    stable(feature = "neon_intrinsics", since = "1.59.0")
69136)]
69137#[cfg_attr(
69138    target_arch = "arm",
69139    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69140)]
69141pub unsafe fn vst4q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x4_t) {
69142    static_assert_uimm_bits!(LANE, 2);
69143    vst4q_lane_s32::<LANE>(transmute(a), transmute(b))
69144}
69145#[doc = "Store multiple 4-element structures from four registers"]
69146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p8)"]
69147#[doc = "## Safety"]
69148#[doc = "  * Neon intrinsic unsafe"]
69149#[inline(always)]
69150#[target_feature(enable = "neon")]
69151#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69152#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69153#[cfg_attr(
69154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69155    assert_instr(st4, LANE = 0)
69156)]
69157#[rustc_legacy_const_generics(2)]
69158#[cfg_attr(
69159    not(target_arch = "arm"),
69160    stable(feature = "neon_intrinsics", since = "1.59.0")
69161)]
69162#[cfg_attr(
69163    target_arch = "arm",
69164    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69165)]
69166pub unsafe fn vst4_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x4_t) {
69167    static_assert_uimm_bits!(LANE, 3);
69168    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
69169}
69170#[doc = "Store multiple 4-element structures from four registers"]
69171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p16)"]
69172#[doc = "## Safety"]
69173#[doc = "  * Neon intrinsic unsafe"]
69174#[inline(always)]
69175#[target_feature(enable = "neon")]
69176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69177#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69178#[cfg_attr(
69179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69180    assert_instr(st4, LANE = 0)
69181)]
69182#[rustc_legacy_const_generics(2)]
69183#[cfg_attr(
69184    not(target_arch = "arm"),
69185    stable(feature = "neon_intrinsics", since = "1.59.0")
69186)]
69187#[cfg_attr(
69188    target_arch = "arm",
69189    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69190)]
69191pub unsafe fn vst4_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x4_t) {
69192    static_assert_uimm_bits!(LANE, 2);
69193    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
69194}
69195#[doc = "Store multiple 4-element structures from four registers"]
69196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_p16)"]
69197#[doc = "## Safety"]
69198#[doc = "  * Neon intrinsic unsafe"]
69199#[inline(always)]
69200#[target_feature(enable = "neon")]
69201#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69202#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69203#[cfg_attr(
69204    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69205    assert_instr(st4, LANE = 0)
69206)]
69207#[rustc_legacy_const_generics(2)]
69208#[cfg_attr(
69209    not(target_arch = "arm"),
69210    stable(feature = "neon_intrinsics", since = "1.59.0")
69211)]
69212#[cfg_attr(
69213    target_arch = "arm",
69214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69215)]
69216pub unsafe fn vst4q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x4_t) {
69217    static_assert_uimm_bits!(LANE, 3);
69218    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
69219}
69220#[doc = "Store multiple 4-element structures from four registers"]
69221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p64)"]
69222#[doc = "## Safety"]
69223#[doc = "  * Neon intrinsic unsafe"]
69224#[inline(always)]
69225#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
69226#[target_feature(enable = "neon,aes")]
69227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
69228#[cfg_attr(
69229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69230    assert_instr(nop)
69231)]
69232#[cfg_attr(
69233    not(target_arch = "arm"),
69234    stable(feature = "neon_intrinsics", since = "1.59.0")
69235)]
69236#[cfg_attr(
69237    target_arch = "arm",
69238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69239)]
69240pub unsafe fn vst4_p64(a: *mut p64, b: poly64x1x4_t) {
69241    vst4_s64(transmute(a), transmute(b))
69242}
69243#[doc = "Store multiple 4-element structures from four registers"]
69244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)"]
69245#[doc = "## Safety"]
69246#[doc = "  * Neon intrinsic unsafe"]
69247#[inline(always)]
69248#[cfg(target_arch = "arm")]
69249#[target_feature(enable = "neon,v7")]
69250#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69251#[cfg_attr(test, assert_instr(nop))]
69252pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
69253    core::ptr::write_unaligned(a.cast(), b)
69254}
69255#[doc = "Store multiple 4-element structures from four registers"]
69256#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)"]
69257#[doc = "## Safety"]
69258#[doc = "  * Neon intrinsic unsafe"]
69259#[inline(always)]
69260#[target_feature(enable = "neon")]
69261#[cfg(not(target_arch = "arm"))]
69262#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69263#[cfg_attr(test, assert_instr(nop))]
69264pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
69265    core::ptr::write_unaligned(a.cast(), b)
69266}
69267#[doc = "Store multiple 4-element structures from four registers"]
69268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u64)"]
69269#[doc = "## Safety"]
69270#[doc = "  * Neon intrinsic unsafe"]
69271#[inline(always)]
69272#[target_feature(enable = "neon")]
69273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69274#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
69275#[cfg_attr(
69276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69277    assert_instr(nop)
69278)]
69279#[cfg_attr(
69280    not(target_arch = "arm"),
69281    stable(feature = "neon_intrinsics", since = "1.59.0")
69282)]
69283#[cfg_attr(
69284    target_arch = "arm",
69285    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69286)]
69287pub unsafe fn vst4_u64(a: *mut u64, b: uint64x1x4_t) {
69288    vst4_s64(transmute(a), transmute(b))
69289}
69290#[doc = "Store multiple 4-element structures from four registers"]
69291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u8)"]
69292#[doc = "## Safety"]
69293#[doc = "  * Neon intrinsic unsafe"]
69294#[inline(always)]
69295#[target_feature(enable = "neon")]
69296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69298#[cfg_attr(
69299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69300    assert_instr(st4)
69301)]
69302#[cfg_attr(
69303    not(target_arch = "arm"),
69304    stable(feature = "neon_intrinsics", since = "1.59.0")
69305)]
69306#[cfg_attr(
69307    target_arch = "arm",
69308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69309)]
69310pub unsafe fn vst4_u8(a: *mut u8, b: uint8x8x4_t) {
69311    vst4_s8(transmute(a), transmute(b))
69312}
69313#[doc = "Store multiple 4-element structures from four registers"]
69314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u8)"]
69315#[doc = "## Safety"]
69316#[doc = "  * Neon intrinsic unsafe"]
69317#[inline(always)]
69318#[target_feature(enable = "neon")]
69319#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69320#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69321#[cfg_attr(
69322    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69323    assert_instr(st4)
69324)]
69325#[cfg_attr(
69326    not(target_arch = "arm"),
69327    stable(feature = "neon_intrinsics", since = "1.59.0")
69328)]
69329#[cfg_attr(
69330    target_arch = "arm",
69331    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69332)]
69333pub unsafe fn vst4q_u8(a: *mut u8, b: uint8x16x4_t) {
69334    vst4q_s8(transmute(a), transmute(b))
69335}
69336#[doc = "Store multiple 4-element structures from four registers"]
69337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u16)"]
69338#[doc = "## Safety"]
69339#[doc = "  * Neon intrinsic unsafe"]
69340#[inline(always)]
69341#[target_feature(enable = "neon")]
69342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69344#[cfg_attr(
69345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69346    assert_instr(st4)
69347)]
69348#[cfg_attr(
69349    not(target_arch = "arm"),
69350    stable(feature = "neon_intrinsics", since = "1.59.0")
69351)]
69352#[cfg_attr(
69353    target_arch = "arm",
69354    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69355)]
69356pub unsafe fn vst4_u16(a: *mut u16, b: uint16x4x4_t) {
69357    vst4_s16(transmute(a), transmute(b))
69358}
69359#[doc = "Store multiple 4-element structures from four registers"]
69360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u16)"]
69361#[doc = "## Safety"]
69362#[doc = "  * Neon intrinsic unsafe"]
69363#[inline(always)]
69364#[target_feature(enable = "neon")]
69365#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69366#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69367#[cfg_attr(
69368    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69369    assert_instr(st4)
69370)]
69371#[cfg_attr(
69372    not(target_arch = "arm"),
69373    stable(feature = "neon_intrinsics", since = "1.59.0")
69374)]
69375#[cfg_attr(
69376    target_arch = "arm",
69377    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69378)]
69379pub unsafe fn vst4q_u16(a: *mut u16, b: uint16x8x4_t) {
69380    vst4q_s16(transmute(a), transmute(b))
69381}
69382#[doc = "Store multiple 4-element structures from four registers"]
69383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u32)"]
69384#[doc = "## Safety"]
69385#[doc = "  * Neon intrinsic unsafe"]
69386#[inline(always)]
69387#[target_feature(enable = "neon")]
69388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69390#[cfg_attr(
69391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69392    assert_instr(st4)
69393)]
69394#[cfg_attr(
69395    not(target_arch = "arm"),
69396    stable(feature = "neon_intrinsics", since = "1.59.0")
69397)]
69398#[cfg_attr(
69399    target_arch = "arm",
69400    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69401)]
69402pub unsafe fn vst4_u32(a: *mut u32, b: uint32x2x4_t) {
69403    vst4_s32(transmute(a), transmute(b))
69404}
69405#[doc = "Store multiple 4-element structures from four registers"]
69406#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u32)"]
69407#[doc = "## Safety"]
69408#[doc = "  * Neon intrinsic unsafe"]
69409#[inline(always)]
69410#[target_feature(enable = "neon")]
69411#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69412#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69413#[cfg_attr(
69414    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69415    assert_instr(st4)
69416)]
69417#[cfg_attr(
69418    not(target_arch = "arm"),
69419    stable(feature = "neon_intrinsics", since = "1.59.0")
69420)]
69421#[cfg_attr(
69422    target_arch = "arm",
69423    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69424)]
69425pub unsafe fn vst4q_u32(a: *mut u32, b: uint32x4x4_t) {
69426    vst4q_s32(transmute(a), transmute(b))
69427}
69428#[doc = "Store multiple 4-element structures from four registers"]
69429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p8)"]
69430#[doc = "## Safety"]
69431#[doc = "  * Neon intrinsic unsafe"]
69432#[inline(always)]
69433#[target_feature(enable = "neon")]
69434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69435#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69436#[cfg_attr(
69437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69438    assert_instr(st4)
69439)]
69440#[cfg_attr(
69441    not(target_arch = "arm"),
69442    stable(feature = "neon_intrinsics", since = "1.59.0")
69443)]
69444#[cfg_attr(
69445    target_arch = "arm",
69446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69447)]
69448pub unsafe fn vst4_p8(a: *mut p8, b: poly8x8x4_t) {
69449    vst4_s8(transmute(a), transmute(b))
69450}
69451#[doc = "Store multiple 4-element structures from four registers"]
69452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p8)"]
69453#[doc = "## Safety"]
69454#[doc = "  * Neon intrinsic unsafe"]
69455#[inline(always)]
69456#[target_feature(enable = "neon")]
69457#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69458#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69459#[cfg_attr(
69460    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69461    assert_instr(st4)
69462)]
69463#[cfg_attr(
69464    not(target_arch = "arm"),
69465    stable(feature = "neon_intrinsics", since = "1.59.0")
69466)]
69467#[cfg_attr(
69468    target_arch = "arm",
69469    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69470)]
69471pub unsafe fn vst4q_p8(a: *mut p8, b: poly8x16x4_t) {
69472    vst4q_s8(transmute(a), transmute(b))
69473}
69474#[doc = "Store multiple 4-element structures from four registers"]
69475#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p16)"]
69476#[doc = "## Safety"]
69477#[doc = "  * Neon intrinsic unsafe"]
69478#[inline(always)]
69479#[target_feature(enable = "neon")]
69480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69482#[cfg_attr(
69483    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69484    assert_instr(st4)
69485)]
69486#[cfg_attr(
69487    not(target_arch = "arm"),
69488    stable(feature = "neon_intrinsics", since = "1.59.0")
69489)]
69490#[cfg_attr(
69491    target_arch = "arm",
69492    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69493)]
69494pub unsafe fn vst4_p16(a: *mut p16, b: poly16x4x4_t) {
69495    vst4_s16(transmute(a), transmute(b))
69496}
69497#[doc = "Store multiple 4-element structures from four registers"]
69498#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p16)"]
69499#[doc = "## Safety"]
69500#[doc = "  * Neon intrinsic unsafe"]
69501#[inline(always)]
69502#[target_feature(enable = "neon")]
69503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69505#[cfg_attr(
69506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69507    assert_instr(st4)
69508)]
69509#[cfg_attr(
69510    not(target_arch = "arm"),
69511    stable(feature = "neon_intrinsics", since = "1.59.0")
69512)]
69513#[cfg_attr(
69514    target_arch = "arm",
69515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69516)]
69517pub unsafe fn vst4q_p16(a: *mut p16, b: poly16x8x4_t) {
69518    vst4q_s16(transmute(a), transmute(b))
69519}
69520#[doc = "Store SIMD&FP register (immediate offset)"]
69521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vstrq_p128)"]
69522#[doc = "## Safety"]
69523#[doc = "  * Neon intrinsic unsafe"]
69524#[inline(always)]
69525#[target_feature(enable = "neon")]
69526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
69528#[cfg_attr(
69529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69530    assert_instr(nop)
69531)]
69532#[cfg_attr(
69533    not(target_arch = "arm"),
69534    stable(feature = "neon_intrinsics", since = "1.59.0")
69535)]
69536#[cfg_attr(
69537    target_arch = "arm",
69538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69539)]
69540pub unsafe fn vstrq_p128(a: *mut p128, b: p128) {
69541    *a = b
69542}
69543#[doc = "Subtract"]
69544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_f16)"]
69545#[inline(always)]
69546#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
69547#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f16"))]
69548#[cfg_attr(
69549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69550    assert_instr(fsub)
69551)]
69552#[target_feature(enable = "neon,fp16")]
69553#[cfg_attr(
69554    not(target_arch = "arm"),
69555    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
69556)]
69557#[cfg_attr(
69558    target_arch = "arm",
69559    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69560)]
69561#[cfg(not(target_arch = "arm64ec"))]
69562pub fn vsub_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
69563    unsafe { simd_sub(a, b) }
69564}
69565#[doc = "Subtract"]
69566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_f16)"]
69567#[inline(always)]
69568#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
69569#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f16"))]
69570#[cfg_attr(
69571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69572    assert_instr(fsub)
69573)]
69574#[target_feature(enable = "neon,fp16")]
69575#[cfg_attr(
69576    not(target_arch = "arm"),
69577    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
69578)]
69579#[cfg_attr(
69580    target_arch = "arm",
69581    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69582)]
69583#[cfg(not(target_arch = "arm64ec"))]
69584pub fn vsubq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
69585    unsafe { simd_sub(a, b) }
69586}
69587#[doc = "Subtract"]
69588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_f32)"]
69589#[inline(always)]
69590#[target_feature(enable = "neon")]
69591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69592#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
69593#[cfg_attr(
69594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69595    assert_instr(fsub)
69596)]
69597#[cfg_attr(
69598    not(target_arch = "arm"),
69599    stable(feature = "neon_intrinsics", since = "1.59.0")
69600)]
69601#[cfg_attr(
69602    target_arch = "arm",
69603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69604)]
69605pub fn vsub_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
69606    unsafe { simd_sub(a, b) }
69607}
69608#[doc = "Subtract"]
69609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_f32)"]
69610#[inline(always)]
69611#[target_feature(enable = "neon")]
69612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69613#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
69614#[cfg_attr(
69615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69616    assert_instr(fsub)
69617)]
69618#[cfg_attr(
69619    not(target_arch = "arm"),
69620    stable(feature = "neon_intrinsics", since = "1.59.0")
69621)]
69622#[cfg_attr(
69623    target_arch = "arm",
69624    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69625)]
69626pub fn vsubq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
69627    unsafe { simd_sub(a, b) }
69628}
69629#[doc = "Subtract"]
69630#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s16)"]
69631#[inline(always)]
69632#[target_feature(enable = "neon")]
69633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69634#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
69635#[cfg_attr(
69636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69637    assert_instr(sub)
69638)]
69639#[cfg_attr(
69640    not(target_arch = "arm"),
69641    stable(feature = "neon_intrinsics", since = "1.59.0")
69642)]
69643#[cfg_attr(
69644    target_arch = "arm",
69645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69646)]
69647pub fn vsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
69648    unsafe { simd_sub(a, b) }
69649}
69650#[doc = "Subtract"]
69651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s16)"]
69652#[inline(always)]
69653#[target_feature(enable = "neon")]
69654#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69655#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
69656#[cfg_attr(
69657    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69658    assert_instr(sub)
69659)]
69660#[cfg_attr(
69661    not(target_arch = "arm"),
69662    stable(feature = "neon_intrinsics", since = "1.59.0")
69663)]
69664#[cfg_attr(
69665    target_arch = "arm",
69666    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69667)]
69668pub fn vsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
69669    unsafe { simd_sub(a, b) }
69670}
69671#[doc = "Subtract"]
69672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u16)"]
69673#[inline(always)]
69674#[target_feature(enable = "neon")]
69675#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69676#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
69677#[cfg_attr(
69678    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69679    assert_instr(sub)
69680)]
69681#[cfg_attr(
69682    not(target_arch = "arm"),
69683    stable(feature = "neon_intrinsics", since = "1.59.0")
69684)]
69685#[cfg_attr(
69686    target_arch = "arm",
69687    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69688)]
69689pub fn vsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
69690    unsafe { simd_sub(a, b) }
69691}
69692#[doc = "Subtract"]
69693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u16)"]
69694#[inline(always)]
69695#[target_feature(enable = "neon")]
69696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69697#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
69698#[cfg_attr(
69699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69700    assert_instr(sub)
69701)]
69702#[cfg_attr(
69703    not(target_arch = "arm"),
69704    stable(feature = "neon_intrinsics", since = "1.59.0")
69705)]
69706#[cfg_attr(
69707    target_arch = "arm",
69708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69709)]
69710pub fn vsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
69711    unsafe { simd_sub(a, b) }
69712}
69713#[doc = "Subtract"]
69714#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s32)"]
69715#[inline(always)]
69716#[target_feature(enable = "neon")]
69717#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69718#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
69719#[cfg_attr(
69720    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69721    assert_instr(sub)
69722)]
69723#[cfg_attr(
69724    not(target_arch = "arm"),
69725    stable(feature = "neon_intrinsics", since = "1.59.0")
69726)]
69727#[cfg_attr(
69728    target_arch = "arm",
69729    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69730)]
69731pub fn vsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
69732    unsafe { simd_sub(a, b) }
69733}
69734#[doc = "Subtract"]
69735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s32)"]
69736#[inline(always)]
69737#[target_feature(enable = "neon")]
69738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69739#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
69740#[cfg_attr(
69741    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69742    assert_instr(sub)
69743)]
69744#[cfg_attr(
69745    not(target_arch = "arm"),
69746    stable(feature = "neon_intrinsics", since = "1.59.0")
69747)]
69748#[cfg_attr(
69749    target_arch = "arm",
69750    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69751)]
69752pub fn vsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
69753    unsafe { simd_sub(a, b) }
69754}
69755#[doc = "Subtract"]
69756#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u32)"]
69757#[inline(always)]
69758#[target_feature(enable = "neon")]
69759#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69760#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
69761#[cfg_attr(
69762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69763    assert_instr(sub)
69764)]
69765#[cfg_attr(
69766    not(target_arch = "arm"),
69767    stable(feature = "neon_intrinsics", since = "1.59.0")
69768)]
69769#[cfg_attr(
69770    target_arch = "arm",
69771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69772)]
69773pub fn vsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
69774    unsafe { simd_sub(a, b) }
69775}
69776#[doc = "Subtract"]
69777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u32)"]
69778#[inline(always)]
69779#[target_feature(enable = "neon")]
69780#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69781#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
69782#[cfg_attr(
69783    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69784    assert_instr(sub)
69785)]
69786#[cfg_attr(
69787    not(target_arch = "arm"),
69788    stable(feature = "neon_intrinsics", since = "1.59.0")
69789)]
69790#[cfg_attr(
69791    target_arch = "arm",
69792    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69793)]
69794pub fn vsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
69795    unsafe { simd_sub(a, b) }
69796}
69797#[doc = "Subtract"]
69798#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s64)"]
69799#[inline(always)]
69800#[target_feature(enable = "neon")]
69801#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69802#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
69803#[cfg_attr(
69804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69805    assert_instr(sub)
69806)]
69807#[cfg_attr(
69808    not(target_arch = "arm"),
69809    stable(feature = "neon_intrinsics", since = "1.59.0")
69810)]
69811#[cfg_attr(
69812    target_arch = "arm",
69813    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69814)]
69815pub fn vsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
69816    unsafe { simd_sub(a, b) }
69817}
69818#[doc = "Subtract"]
69819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s64)"]
69820#[inline(always)]
69821#[target_feature(enable = "neon")]
69822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69823#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
69824#[cfg_attr(
69825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69826    assert_instr(sub)
69827)]
69828#[cfg_attr(
69829    not(target_arch = "arm"),
69830    stable(feature = "neon_intrinsics", since = "1.59.0")
69831)]
69832#[cfg_attr(
69833    target_arch = "arm",
69834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69835)]
69836pub fn vsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
69837    unsafe { simd_sub(a, b) }
69838}
69839#[doc = "Subtract"]
69840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u64)"]
69841#[inline(always)]
69842#[target_feature(enable = "neon")]
69843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69844#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
69845#[cfg_attr(
69846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69847    assert_instr(sub)
69848)]
69849#[cfg_attr(
69850    not(target_arch = "arm"),
69851    stable(feature = "neon_intrinsics", since = "1.59.0")
69852)]
69853#[cfg_attr(
69854    target_arch = "arm",
69855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69856)]
69857pub fn vsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
69858    unsafe { simd_sub(a, b) }
69859}
69860#[doc = "Subtract"]
69861#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u64)"]
69862#[inline(always)]
69863#[target_feature(enable = "neon")]
69864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69865#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
69866#[cfg_attr(
69867    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69868    assert_instr(sub)
69869)]
69870#[cfg_attr(
69871    not(target_arch = "arm"),
69872    stable(feature = "neon_intrinsics", since = "1.59.0")
69873)]
69874#[cfg_attr(
69875    target_arch = "arm",
69876    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69877)]
69878pub fn vsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
69879    unsafe { simd_sub(a, b) }
69880}
69881#[doc = "Subtract"]
69882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s8)"]
69883#[inline(always)]
69884#[target_feature(enable = "neon")]
69885#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69886#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
69887#[cfg_attr(
69888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69889    assert_instr(sub)
69890)]
69891#[cfg_attr(
69892    not(target_arch = "arm"),
69893    stable(feature = "neon_intrinsics", since = "1.59.0")
69894)]
69895#[cfg_attr(
69896    target_arch = "arm",
69897    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69898)]
69899pub fn vsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
69900    unsafe { simd_sub(a, b) }
69901}
69902#[doc = "Subtract"]
69903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s8)"]
69904#[inline(always)]
69905#[target_feature(enable = "neon")]
69906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69907#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
69908#[cfg_attr(
69909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69910    assert_instr(sub)
69911)]
69912#[cfg_attr(
69913    not(target_arch = "arm"),
69914    stable(feature = "neon_intrinsics", since = "1.59.0")
69915)]
69916#[cfg_attr(
69917    target_arch = "arm",
69918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69919)]
69920pub fn vsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
69921    unsafe { simd_sub(a, b) }
69922}
69923#[doc = "Subtract"]
69924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u8)"]
69925#[inline(always)]
69926#[target_feature(enable = "neon")]
69927#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69928#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
69929#[cfg_attr(
69930    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69931    assert_instr(sub)
69932)]
69933#[cfg_attr(
69934    not(target_arch = "arm"),
69935    stable(feature = "neon_intrinsics", since = "1.59.0")
69936)]
69937#[cfg_attr(
69938    target_arch = "arm",
69939    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69940)]
69941pub fn vsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
69942    unsafe { simd_sub(a, b) }
69943}
69944#[doc = "Subtract"]
69945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u8)"]
69946#[inline(always)]
69947#[target_feature(enable = "neon")]
69948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69949#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
69950#[cfg_attr(
69951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69952    assert_instr(sub)
69953)]
69954#[cfg_attr(
69955    not(target_arch = "arm"),
69956    stable(feature = "neon_intrinsics", since = "1.59.0")
69957)]
69958#[cfg_attr(
69959    target_arch = "arm",
69960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69961)]
69962pub fn vsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
69963    unsafe { simd_sub(a, b) }
69964}
69965#[doc = "Subtract returning high narrow"]
69966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s16)"]
69967#[inline(always)]
69968#[target_feature(enable = "neon")]
69969#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69970#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
69971#[cfg_attr(
69972    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69973    assert_instr(subhn2)
69974)]
69975#[cfg_attr(
69976    not(target_arch = "arm"),
69977    stable(feature = "neon_intrinsics", since = "1.59.0")
69978)]
69979#[cfg_attr(
69980    target_arch = "arm",
69981    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69982)]
69983pub fn vsubhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
69984    let d: int8x8_t = vsubhn_s16(b, c);
69985    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
69986}
69987#[doc = "Subtract returning high narrow"]
69988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s32)"]
69989#[inline(always)]
69990#[target_feature(enable = "neon")]
69991#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69992#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
69993#[cfg_attr(
69994    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69995    assert_instr(subhn2)
69996)]
69997#[cfg_attr(
69998    not(target_arch = "arm"),
69999    stable(feature = "neon_intrinsics", since = "1.59.0")
70000)]
70001#[cfg_attr(
70002    target_arch = "arm",
70003    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70004)]
70005pub fn vsubhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
70006    let d: int16x4_t = vsubhn_s32(b, c);
70007    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7]) }
70008}
70009#[doc = "Subtract returning high narrow"]
70010#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s64)"]
70011#[inline(always)]
70012#[target_feature(enable = "neon")]
70013#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70014#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70015#[cfg_attr(
70016    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70017    assert_instr(subhn2)
70018)]
70019#[cfg_attr(
70020    not(target_arch = "arm"),
70021    stable(feature = "neon_intrinsics", since = "1.59.0")
70022)]
70023#[cfg_attr(
70024    target_arch = "arm",
70025    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70026)]
70027pub fn vsubhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
70028    let d: int32x2_t = vsubhn_s64(b, c);
70029    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3]) }
70030}
70031#[doc = "Subtract returning high narrow"]
70032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u16)"]
70033#[inline(always)]
70034#[target_feature(enable = "neon")]
70035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70037#[cfg_attr(
70038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70039    assert_instr(subhn2)
70040)]
70041#[cfg_attr(
70042    not(target_arch = "arm"),
70043    stable(feature = "neon_intrinsics", since = "1.59.0")
70044)]
70045#[cfg_attr(
70046    target_arch = "arm",
70047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70048)]
70049pub fn vsubhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
70050    let d: uint8x8_t = vsubhn_u16(b, c);
70051    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
70052}
70053#[doc = "Subtract returning high narrow"]
70054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u32)"]
70055#[inline(always)]
70056#[target_feature(enable = "neon")]
70057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70059#[cfg_attr(
70060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70061    assert_instr(subhn2)
70062)]
70063#[cfg_attr(
70064    not(target_arch = "arm"),
70065    stable(feature = "neon_intrinsics", since = "1.59.0")
70066)]
70067#[cfg_attr(
70068    target_arch = "arm",
70069    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70070)]
70071pub fn vsubhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
70072    let d: uint16x4_t = vsubhn_u32(b, c);
70073    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7]) }
70074}
70075#[doc = "Subtract returning high narrow"]
70076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u64)"]
70077#[inline(always)]
70078#[target_feature(enable = "neon")]
70079#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70080#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70081#[cfg_attr(
70082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70083    assert_instr(subhn2)
70084)]
70085#[cfg_attr(
70086    not(target_arch = "arm"),
70087    stable(feature = "neon_intrinsics", since = "1.59.0")
70088)]
70089#[cfg_attr(
70090    target_arch = "arm",
70091    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70092)]
70093pub fn vsubhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
70094    let d: uint32x2_t = vsubhn_u64(b, c);
70095    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3]) }
70096}
70097#[doc = "Subtract returning high narrow"]
70098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s16)"]
70099#[inline(always)]
70100#[target_feature(enable = "neon")]
70101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70103#[cfg_attr(
70104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70105    assert_instr(subhn)
70106)]
70107#[cfg_attr(
70108    not(target_arch = "arm"),
70109    stable(feature = "neon_intrinsics", since = "1.59.0")
70110)]
70111#[cfg_attr(
70112    target_arch = "arm",
70113    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70114)]
70115pub fn vsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
70116    let c: i16x8 = i16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
70117    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70118}
70119#[doc = "Subtract returning high narrow"]
70120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s32)"]
70121#[inline(always)]
70122#[target_feature(enable = "neon")]
70123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70124#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70125#[cfg_attr(
70126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70127    assert_instr(subhn)
70128)]
70129#[cfg_attr(
70130    not(target_arch = "arm"),
70131    stable(feature = "neon_intrinsics", since = "1.59.0")
70132)]
70133#[cfg_attr(
70134    target_arch = "arm",
70135    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70136)]
70137pub fn vsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
70138    let c: i32x4 = i32x4::new(16, 16, 16, 16);
70139    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70140}
70141#[doc = "Subtract returning high narrow"]
70142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s64)"]
70143#[inline(always)]
70144#[target_feature(enable = "neon")]
70145#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70146#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70147#[cfg_attr(
70148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70149    assert_instr(subhn)
70150)]
70151#[cfg_attr(
70152    not(target_arch = "arm"),
70153    stable(feature = "neon_intrinsics", since = "1.59.0")
70154)]
70155#[cfg_attr(
70156    target_arch = "arm",
70157    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70158)]
70159pub fn vsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
70160    let c: i64x2 = i64x2::new(32, 32);
70161    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70162}
70163#[doc = "Subtract returning high narrow"]
70164#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u16)"]
70165#[inline(always)]
70166#[target_feature(enable = "neon")]
70167#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70168#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70169#[cfg_attr(
70170    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70171    assert_instr(subhn)
70172)]
70173#[cfg_attr(
70174    not(target_arch = "arm"),
70175    stable(feature = "neon_intrinsics", since = "1.59.0")
70176)]
70177#[cfg_attr(
70178    target_arch = "arm",
70179    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70180)]
70181pub fn vsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
70182    let c: u16x8 = u16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
70183    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70184}
70185#[doc = "Subtract returning high narrow"]
70186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u32)"]
70187#[inline(always)]
70188#[target_feature(enable = "neon")]
70189#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70190#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70191#[cfg_attr(
70192    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70193    assert_instr(subhn)
70194)]
70195#[cfg_attr(
70196    not(target_arch = "arm"),
70197    stable(feature = "neon_intrinsics", since = "1.59.0")
70198)]
70199#[cfg_attr(
70200    target_arch = "arm",
70201    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70202)]
70203pub fn vsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
70204    let c: u32x4 = u32x4::new(16, 16, 16, 16);
70205    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70206}
70207#[doc = "Subtract returning high narrow"]
70208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u64)"]
70209#[inline(always)]
70210#[target_feature(enable = "neon")]
70211#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70212#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70213#[cfg_attr(
70214    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70215    assert_instr(subhn)
70216)]
70217#[cfg_attr(
70218    not(target_arch = "arm"),
70219    stable(feature = "neon_intrinsics", since = "1.59.0")
70220)]
70221#[cfg_attr(
70222    target_arch = "arm",
70223    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70224)]
70225pub fn vsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
70226    let c: u64x2 = u64x2::new(32, 32);
70227    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70228}
70229#[doc = "Signed Subtract Long"]
70230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s8)"]
70231#[inline(always)]
70232#[target_feature(enable = "neon")]
70233#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70234#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70235#[cfg_attr(
70236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70237    assert_instr(ssubl)
70238)]
70239#[cfg_attr(
70240    not(target_arch = "arm"),
70241    stable(feature = "neon_intrinsics", since = "1.59.0")
70242)]
70243#[cfg_attr(
70244    target_arch = "arm",
70245    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70246)]
70247pub fn vsubl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
70248    unsafe {
70249        let c: int16x8_t = simd_cast(a);
70250        let d: int16x8_t = simd_cast(b);
70251        simd_sub(c, d)
70252    }
70253}
70254#[doc = "Signed Subtract Long"]
70255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s16)"]
70256#[inline(always)]
70257#[target_feature(enable = "neon")]
70258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70259#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70260#[cfg_attr(
70261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70262    assert_instr(ssubl)
70263)]
70264#[cfg_attr(
70265    not(target_arch = "arm"),
70266    stable(feature = "neon_intrinsics", since = "1.59.0")
70267)]
70268#[cfg_attr(
70269    target_arch = "arm",
70270    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70271)]
70272pub fn vsubl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
70273    unsafe {
70274        let c: int32x4_t = simd_cast(a);
70275        let d: int32x4_t = simd_cast(b);
70276        simd_sub(c, d)
70277    }
70278}
70279#[doc = "Signed Subtract Long"]
70280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s32)"]
70281#[inline(always)]
70282#[target_feature(enable = "neon")]
70283#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70284#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70285#[cfg_attr(
70286    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70287    assert_instr(ssubl)
70288)]
70289#[cfg_attr(
70290    not(target_arch = "arm"),
70291    stable(feature = "neon_intrinsics", since = "1.59.0")
70292)]
70293#[cfg_attr(
70294    target_arch = "arm",
70295    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70296)]
70297pub fn vsubl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
70298    unsafe {
70299        let c: int64x2_t = simd_cast(a);
70300        let d: int64x2_t = simd_cast(b);
70301        simd_sub(c, d)
70302    }
70303}
70304#[doc = "Unsigned Subtract Long"]
70305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u8)"]
70306#[inline(always)]
70307#[target_feature(enable = "neon")]
70308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70310#[cfg_attr(
70311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70312    assert_instr(usubl)
70313)]
70314#[cfg_attr(
70315    not(target_arch = "arm"),
70316    stable(feature = "neon_intrinsics", since = "1.59.0")
70317)]
70318#[cfg_attr(
70319    target_arch = "arm",
70320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70321)]
70322pub fn vsubl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
70323    unsafe {
70324        let c: uint16x8_t = simd_cast(a);
70325        let d: uint16x8_t = simd_cast(b);
70326        simd_sub(c, d)
70327    }
70328}
70329#[doc = "Unsigned Subtract Long"]
70330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u16)"]
70331#[inline(always)]
70332#[target_feature(enable = "neon")]
70333#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70334#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70335#[cfg_attr(
70336    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70337    assert_instr(usubl)
70338)]
70339#[cfg_attr(
70340    not(target_arch = "arm"),
70341    stable(feature = "neon_intrinsics", since = "1.59.0")
70342)]
70343#[cfg_attr(
70344    target_arch = "arm",
70345    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70346)]
70347pub fn vsubl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
70348    unsafe {
70349        let c: uint32x4_t = simd_cast(a);
70350        let d: uint32x4_t = simd_cast(b);
70351        simd_sub(c, d)
70352    }
70353}
70354#[doc = "Unsigned Subtract Long"]
70355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u32)"]
70356#[inline(always)]
70357#[target_feature(enable = "neon")]
70358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70359#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70360#[cfg_attr(
70361    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70362    assert_instr(usubl)
70363)]
70364#[cfg_attr(
70365    not(target_arch = "arm"),
70366    stable(feature = "neon_intrinsics", since = "1.59.0")
70367)]
70368#[cfg_attr(
70369    target_arch = "arm",
70370    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70371)]
70372pub fn vsubl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
70373    unsafe {
70374        let c: uint64x2_t = simd_cast(a);
70375        let d: uint64x2_t = simd_cast(b);
70376        simd_sub(c, d)
70377    }
70378}
70379#[doc = "Signed Subtract Wide"]
70380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s8)"]
70381#[inline(always)]
70382#[target_feature(enable = "neon")]
70383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70384#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70385#[cfg_attr(
70386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70387    assert_instr(ssubw)
70388)]
70389#[cfg_attr(
70390    not(target_arch = "arm"),
70391    stable(feature = "neon_intrinsics", since = "1.59.0")
70392)]
70393#[cfg_attr(
70394    target_arch = "arm",
70395    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70396)]
70397pub fn vsubw_s8(a: int16x8_t, b: int8x8_t) -> int16x8_t {
70398    unsafe { simd_sub(a, simd_cast(b)) }
70399}
70400#[doc = "Signed Subtract Wide"]
70401#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s16)"]
70402#[inline(always)]
70403#[target_feature(enable = "neon")]
70404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70406#[cfg_attr(
70407    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70408    assert_instr(ssubw)
70409)]
70410#[cfg_attr(
70411    not(target_arch = "arm"),
70412    stable(feature = "neon_intrinsics", since = "1.59.0")
70413)]
70414#[cfg_attr(
70415    target_arch = "arm",
70416    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70417)]
70418pub fn vsubw_s16(a: int32x4_t, b: int16x4_t) -> int32x4_t {
70419    unsafe { simd_sub(a, simd_cast(b)) }
70420}
70421#[doc = "Signed Subtract Wide"]
70422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s32)"]
70423#[inline(always)]
70424#[target_feature(enable = "neon")]
70425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70426#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70427#[cfg_attr(
70428    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70429    assert_instr(ssubw)
70430)]
70431#[cfg_attr(
70432    not(target_arch = "arm"),
70433    stable(feature = "neon_intrinsics", since = "1.59.0")
70434)]
70435#[cfg_attr(
70436    target_arch = "arm",
70437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70438)]
70439pub fn vsubw_s32(a: int64x2_t, b: int32x2_t) -> int64x2_t {
70440    unsafe { simd_sub(a, simd_cast(b)) }
70441}
70442#[doc = "Unsigned Subtract Wide"]
70443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u8)"]
70444#[inline(always)]
70445#[target_feature(enable = "neon")]
70446#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70447#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70448#[cfg_attr(
70449    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70450    assert_instr(usubw)
70451)]
70452#[cfg_attr(
70453    not(target_arch = "arm"),
70454    stable(feature = "neon_intrinsics", since = "1.59.0")
70455)]
70456#[cfg_attr(
70457    target_arch = "arm",
70458    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70459)]
70460pub fn vsubw_u8(a: uint16x8_t, b: uint8x8_t) -> uint16x8_t {
70461    unsafe { simd_sub(a, simd_cast(b)) }
70462}
70463#[doc = "Unsigned Subtract Wide"]
70464#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u16)"]
70465#[inline(always)]
70466#[target_feature(enable = "neon")]
70467#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70468#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70469#[cfg_attr(
70470    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70471    assert_instr(usubw)
70472)]
70473#[cfg_attr(
70474    not(target_arch = "arm"),
70475    stable(feature = "neon_intrinsics", since = "1.59.0")
70476)]
70477#[cfg_attr(
70478    target_arch = "arm",
70479    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70480)]
70481pub fn vsubw_u16(a: uint32x4_t, b: uint16x4_t) -> uint32x4_t {
70482    unsafe { simd_sub(a, simd_cast(b)) }
70483}
70484#[doc = "Unsigned Subtract Wide"]
70485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u32)"]
70486#[inline(always)]
70487#[target_feature(enable = "neon")]
70488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70489#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70490#[cfg_attr(
70491    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70492    assert_instr(usubw)
70493)]
70494#[cfg_attr(
70495    not(target_arch = "arm"),
70496    stable(feature = "neon_intrinsics", since = "1.59.0")
70497)]
70498#[cfg_attr(
70499    target_arch = "arm",
70500    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70501)]
70502pub fn vsubw_u32(a: uint64x2_t, b: uint32x2_t) -> uint64x2_t {
70503    unsafe { simd_sub(a, simd_cast(b)) }
70504}
70505#[doc = "Dot product index form with signed and unsigned integers"]
70506#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_lane_s32)"]
70507#[inline(always)]
70508#[cfg(target_endian = "little")]
70509#[target_feature(enable = "neon,i8mm")]
70510#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70511#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
70512#[cfg_attr(
70513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70514    assert_instr(sudot, LANE = 0)
70515)]
70516#[rustc_legacy_const_generics(3)]
70517#[cfg_attr(
70518    not(target_arch = "arm"),
70519    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
70520)]
70521#[cfg_attr(
70522    target_arch = "arm",
70523    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70524)]
70525pub fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x8_t) -> int32x2_t {
70526    static_assert_uimm_bits!(LANE, 1);
70527    unsafe {
70528        let c: uint32x2_t = transmute(c);
70529        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
70530        vusdot_s32(a, transmute(c), b)
70531    }
70532}
70533#[doc = "Dot product index form with signed and unsigned integers"]
70534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_lane_s32)"]
70535#[inline(always)]
70536#[cfg(target_endian = "big")]
70537#[target_feature(enable = "neon,i8mm")]
70538#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
70540#[cfg_attr(
70541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70542    assert_instr(sudot, LANE = 0)
70543)]
70544#[rustc_legacy_const_generics(3)]
70545#[cfg_attr(
70546    not(target_arch = "arm"),
70547    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
70548)]
70549#[cfg_attr(
70550    target_arch = "arm",
70551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70552)]
70553pub fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x8_t) -> int32x2_t {
70554    static_assert_uimm_bits!(LANE, 1);
70555    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
70556    let b: int8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
70557    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
70558    unsafe {
70559        let c: uint32x2_t = transmute(c);
70560        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
70561        let ret_val: int32x2_t = vusdot_s32(a, transmute(c), b);
70562        simd_shuffle!(ret_val, ret_val, [1, 0])
70563    }
70564}
70565#[doc = "Dot product index form with signed and unsigned integers"]
70566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_lane_s32)"]
70567#[inline(always)]
70568#[cfg(target_endian = "little")]
70569#[target_feature(enable = "neon,i8mm")]
70570#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70571#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
70572#[cfg_attr(
70573    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70574    assert_instr(sudot, LANE = 0)
70575)]
70576#[rustc_legacy_const_generics(3)]
70577#[cfg_attr(
70578    not(target_arch = "arm"),
70579    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
70580)]
70581#[cfg_attr(
70582    target_arch = "arm",
70583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70584)]
70585pub fn vsudotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x8_t) -> int32x4_t {
70586    static_assert_uimm_bits!(LANE, 1);
70587    unsafe {
70588        let c: uint32x2_t = transmute(c);
70589        let c: uint32x4_t =
70590            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
70591        vusdotq_s32(a, transmute(c), b)
70592    }
70593}
70594#[doc = "Dot product index form with signed and unsigned integers"]
70595#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_lane_s32)"]
70596#[inline(always)]
70597#[cfg(target_endian = "big")]
70598#[target_feature(enable = "neon,i8mm")]
70599#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70600#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
70601#[cfg_attr(
70602    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70603    assert_instr(sudot, LANE = 0)
70604)]
70605#[rustc_legacy_const_generics(3)]
70606#[cfg_attr(
70607    not(target_arch = "arm"),
70608    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
70609)]
70610#[cfg_attr(
70611    target_arch = "arm",
70612    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70613)]
70614pub fn vsudotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x8_t) -> int32x4_t {
70615    static_assert_uimm_bits!(LANE, 1);
70616    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
70617    let b: int8x16_t =
70618        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
70619    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
70620    unsafe {
70621        let c: uint32x2_t = transmute(c);
70622        let c: uint32x4_t =
70623            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
70624        let ret_val: int32x4_t = vusdotq_s32(a, transmute(c), b);
70625        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
70626    }
70627}
70628#[doc = "Dot product index form with signed and unsigned integers"]
70629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_laneq_s32)"]
70630#[inline(always)]
70631#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70632#[target_feature(enable = "neon,i8mm")]
70633#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 1))]
70634#[cfg_attr(
70635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70636    assert_instr(sudot, LANE = 3)
70637)]
70638#[rustc_legacy_const_generics(3)]
70639#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
70640pub fn vsudot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x16_t) -> int32x2_t {
70641    static_assert_uimm_bits!(LANE, 2);
70642    unsafe {
70643        let c: uint32x4_t = transmute(c);
70644        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
70645        vusdot_s32(a, transmute(c), b)
70646    }
70647}
70648#[doc = "Dot product index form with signed and unsigned integers"]
70649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_laneq_s32)"]
70650#[inline(always)]
70651#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70652#[target_feature(enable = "neon,i8mm")]
70653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 1))]
70654#[cfg_attr(
70655    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70656    assert_instr(sudot, LANE = 3)
70657)]
70658#[rustc_legacy_const_generics(3)]
70659#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
70660pub fn vsudotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x16_t) -> int32x4_t {
70661    static_assert_uimm_bits!(LANE, 2);
70662    unsafe {
70663        let c: uint32x4_t = transmute(c);
70664        let c: uint32x4_t =
70665            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
70666        vusdotq_s32(a, transmute(c), b)
70667    }
70668}
70669#[doc = "Table look-up"]
70670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1)"]
70671#[inline(always)]
70672#[target_feature(enable = "neon")]
70673#[cfg(target_arch = "arm")]
70674#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70675#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70676#[cfg_attr(test, assert_instr(vtbl))]
70677fn vtbl1(a: int8x8_t, b: int8x8_t) -> int8x8_t {
70678    unsafe extern "unadjusted" {
70679        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl1")]
70680        fn _vtbl1(a: int8x8_t, b: int8x8_t) -> int8x8_t;
70681    }
70682    unsafe { _vtbl1(a, b) }
70683}
70684#[doc = "Table look-up"]
70685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_s8)"]
70686#[inline(always)]
70687#[target_feature(enable = "neon")]
70688#[cfg(target_arch = "arm")]
70689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70690#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70691#[cfg_attr(test, assert_instr(vtbl))]
70692pub fn vtbl1_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
70693    vtbl1(a, b)
70694}
70695#[doc = "Table look-up"]
70696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_u8)"]
70697#[inline(always)]
70698#[cfg(target_endian = "little")]
70699#[target_feature(enable = "neon")]
70700#[cfg(target_arch = "arm")]
70701#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70702#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70703#[cfg_attr(test, assert_instr(vtbl))]
70704pub fn vtbl1_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
70705    unsafe { transmute(vtbl1(transmute(a), transmute(b))) }
70706}
70707#[doc = "Table look-up"]
70708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_u8)"]
70709#[inline(always)]
70710#[cfg(target_endian = "big")]
70711#[target_feature(enable = "neon")]
70712#[cfg(target_arch = "arm")]
70713#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70714#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70715#[cfg_attr(test, assert_instr(vtbl))]
70716pub fn vtbl1_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
70717    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
70718    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
70719    unsafe {
70720        let ret_val: uint8x8_t = transmute(vtbl1(transmute(a), transmute(b)));
70721        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
70722    }
70723}
70724#[doc = "Table look-up"]
70725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_p8)"]
70726#[inline(always)]
70727#[cfg(target_endian = "little")]
70728#[target_feature(enable = "neon")]
70729#[cfg(target_arch = "arm")]
70730#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70731#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70732#[cfg_attr(test, assert_instr(vtbl))]
70733pub fn vtbl1_p8(a: poly8x8_t, b: uint8x8_t) -> poly8x8_t {
70734    unsafe { transmute(vtbl1(transmute(a), transmute(b))) }
70735}
70736#[doc = "Table look-up"]
70737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_p8)"]
70738#[inline(always)]
70739#[cfg(target_endian = "big")]
70740#[target_feature(enable = "neon")]
70741#[cfg(target_arch = "arm")]
70742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70743#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70744#[cfg_attr(test, assert_instr(vtbl))]
70745pub fn vtbl1_p8(a: poly8x8_t, b: uint8x8_t) -> poly8x8_t {
70746    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
70747    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
70748    unsafe {
70749        let ret_val: poly8x8_t = transmute(vtbl1(transmute(a), transmute(b)));
70750        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
70751    }
70752}
70753#[doc = "Table look-up"]
70754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2)"]
70755#[inline(always)]
70756#[target_feature(enable = "neon")]
70757#[cfg(target_arch = "arm")]
70758#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70759#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70760#[cfg_attr(test, assert_instr(vtbl))]
70761fn vtbl2(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
70762    unsafe extern "unadjusted" {
70763        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl2")]
70764        fn _vtbl2(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
70765    }
70766    unsafe { _vtbl2(a, b, c) }
70767}
70768#[doc = "Table look-up"]
70769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_s8)"]
70770#[inline(always)]
70771#[target_feature(enable = "neon")]
70772#[cfg(target_arch = "arm")]
70773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70774#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70775#[cfg_attr(test, assert_instr(vtbl))]
70776pub fn vtbl2_s8(a: int8x8x2_t, b: int8x8_t) -> int8x8_t {
70777    vtbl2(a.0, a.1, b)
70778}
70779#[doc = "Table look-up"]
70780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_u8)"]
70781#[inline(always)]
70782#[cfg(target_endian = "little")]
70783#[target_feature(enable = "neon")]
70784#[cfg(target_arch = "arm")]
70785#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70786#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70787#[cfg_attr(test, assert_instr(vtbl))]
70788pub fn vtbl2_u8(a: uint8x8x2_t, b: uint8x8_t) -> uint8x8_t {
70789    unsafe { transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b))) }
70790}
70791#[doc = "Table look-up"]
70792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_u8)"]
70793#[inline(always)]
70794#[cfg(target_endian = "big")]
70795#[target_feature(enable = "neon")]
70796#[cfg(target_arch = "arm")]
70797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70798#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70799#[cfg_attr(test, assert_instr(vtbl))]
70800pub fn vtbl2_u8(a: uint8x8x2_t, b: uint8x8_t) -> uint8x8_t {
70801    let mut a: uint8x8x2_t = a;
70802    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
70803    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
70804    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
70805    unsafe {
70806        let ret_val: uint8x8_t = transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b)));
70807        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
70808    }
70809}
70810#[doc = "Table look-up"]
70811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_p8)"]
70812#[inline(always)]
70813#[cfg(target_endian = "little")]
70814#[target_feature(enable = "neon")]
70815#[cfg(target_arch = "arm")]
70816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70817#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70818#[cfg_attr(test, assert_instr(vtbl))]
70819pub fn vtbl2_p8(a: poly8x8x2_t, b: uint8x8_t) -> poly8x8_t {
70820    unsafe { transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b))) }
70821}
70822#[doc = "Table look-up"]
70823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_p8)"]
70824#[inline(always)]
70825#[cfg(target_endian = "big")]
70826#[target_feature(enable = "neon")]
70827#[cfg(target_arch = "arm")]
70828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70829#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70830#[cfg_attr(test, assert_instr(vtbl))]
70831pub fn vtbl2_p8(a: poly8x8x2_t, b: uint8x8_t) -> poly8x8_t {
70832    let mut a: poly8x8x2_t = a;
70833    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
70834    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
70835    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
70836    unsafe {
70837        let ret_val: poly8x8_t = transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b)));
70838        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
70839    }
70840}
70841#[doc = "Table look-up"]
70842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3)"]
70843#[inline(always)]
70844#[target_feature(enable = "neon")]
70845#[cfg(target_arch = "arm")]
70846#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70847#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70848#[cfg_attr(test, assert_instr(vtbl))]
70849fn vtbl3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t {
70850    unsafe extern "unadjusted" {
70851        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl3")]
70852        fn _vtbl3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t;
70853    }
70854    unsafe { _vtbl3(a, b, c, d) }
70855}
70856#[doc = "Table look-up"]
70857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_s8)"]
70858#[inline(always)]
70859#[target_feature(enable = "neon")]
70860#[cfg(target_arch = "arm")]
70861#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70862#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70863#[cfg_attr(test, assert_instr(vtbl))]
70864pub fn vtbl3_s8(a: int8x8x3_t, b: int8x8_t) -> int8x8_t {
70865    vtbl3(a.0, a.1, a.2, b)
70866}
70867#[doc = "Table look-up"]
70868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_u8)"]
70869#[inline(always)]
70870#[cfg(target_endian = "little")]
70871#[target_feature(enable = "neon")]
70872#[cfg(target_arch = "arm")]
70873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70874#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70875#[cfg_attr(test, assert_instr(vtbl))]
70876pub fn vtbl3_u8(a: uint8x8x3_t, b: uint8x8_t) -> uint8x8_t {
70877    unsafe {
70878        transmute(vtbl3(
70879            transmute(a.0),
70880            transmute(a.1),
70881            transmute(a.2),
70882            transmute(b),
70883        ))
70884    }
70885}
70886#[doc = "Table look-up"]
70887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_u8)"]
70888#[inline(always)]
70889#[cfg(target_endian = "big")]
70890#[target_feature(enable = "neon")]
70891#[cfg(target_arch = "arm")]
70892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70893#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70894#[cfg_attr(test, assert_instr(vtbl))]
70895pub fn vtbl3_u8(a: uint8x8x3_t, b: uint8x8_t) -> uint8x8_t {
70896    let mut a: uint8x8x3_t = a;
70897    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
70898    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
70899    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
70900    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
70901    unsafe {
70902        let ret_val: uint8x8_t = transmute(vtbl3(
70903            transmute(a.0),
70904            transmute(a.1),
70905            transmute(a.2),
70906            transmute(b),
70907        ));
70908        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
70909    }
70910}
70911#[doc = "Table look-up"]
70912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_p8)"]
70913#[inline(always)]
70914#[cfg(target_endian = "little")]
70915#[target_feature(enable = "neon")]
70916#[cfg(target_arch = "arm")]
70917#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70918#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70919#[cfg_attr(test, assert_instr(vtbl))]
70920pub fn vtbl3_p8(a: poly8x8x3_t, b: uint8x8_t) -> poly8x8_t {
70921    unsafe {
70922        transmute(vtbl3(
70923            transmute(a.0),
70924            transmute(a.1),
70925            transmute(a.2),
70926            transmute(b),
70927        ))
70928    }
70929}
70930#[doc = "Table look-up"]
70931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_p8)"]
70932#[inline(always)]
70933#[cfg(target_endian = "big")]
70934#[target_feature(enable = "neon")]
70935#[cfg(target_arch = "arm")]
70936#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70937#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70938#[cfg_attr(test, assert_instr(vtbl))]
70939pub fn vtbl3_p8(a: poly8x8x3_t, b: uint8x8_t) -> poly8x8_t {
70940    let mut a: poly8x8x3_t = a;
70941    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
70942    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
70943    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
70944    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
70945    unsafe {
70946        let ret_val: poly8x8_t = transmute(vtbl3(
70947            transmute(a.0),
70948            transmute(a.1),
70949            transmute(a.2),
70950            transmute(b),
70951        ));
70952        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
70953    }
70954}
70955#[doc = "Table look-up"]
70956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4)"]
70957#[inline(always)]
70958#[target_feature(enable = "neon")]
70959#[cfg(target_arch = "arm")]
70960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70961#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70962#[cfg_attr(test, assert_instr(vtbl))]
70963fn vtbl4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t {
70964    unsafe extern "unadjusted" {
70965        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl4")]
70966        fn _vtbl4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t;
70967    }
70968    unsafe { _vtbl4(a, b, c, d, e) }
70969}
70970#[doc = "Table look-up"]
70971#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_s8)"]
70972#[inline(always)]
70973#[target_feature(enable = "neon")]
70974#[cfg(target_arch = "arm")]
70975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70976#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70977#[cfg_attr(test, assert_instr(vtbl))]
70978pub fn vtbl4_s8(a: int8x8x4_t, b: int8x8_t) -> int8x8_t {
70979    vtbl4(a.0, a.1, a.2, a.3, b)
70980}
70981#[doc = "Table look-up"]
70982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_u8)"]
70983#[inline(always)]
70984#[cfg(target_endian = "little")]
70985#[target_feature(enable = "neon")]
70986#[cfg(target_arch = "arm")]
70987#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70988#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
70989#[cfg_attr(test, assert_instr(vtbl))]
70990pub fn vtbl4_u8(a: uint8x8x4_t, b: uint8x8_t) -> uint8x8_t {
70991    unsafe {
70992        transmute(vtbl4(
70993            transmute(a.0),
70994            transmute(a.1),
70995            transmute(a.2),
70996            transmute(a.3),
70997            transmute(b),
70998        ))
70999    }
71000}
71001#[doc = "Table look-up"]
71002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_u8)"]
71003#[inline(always)]
71004#[cfg(target_endian = "big")]
71005#[target_feature(enable = "neon")]
71006#[cfg(target_arch = "arm")]
71007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71008#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71009#[cfg_attr(test, assert_instr(vtbl))]
71010pub fn vtbl4_u8(a: uint8x8x4_t, b: uint8x8_t) -> uint8x8_t {
71011    let mut a: uint8x8x4_t = a;
71012    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71013    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71014    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71015    a.3 = unsafe { simd_shuffle!(a.3, a.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71016    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71017    unsafe {
71018        let ret_val: uint8x8_t = transmute(vtbl4(
71019            transmute(a.0),
71020            transmute(a.1),
71021            transmute(a.2),
71022            transmute(a.3),
71023            transmute(b),
71024        ));
71025        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71026    }
71027}
71028#[doc = "Table look-up"]
71029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_p8)"]
71030#[inline(always)]
71031#[cfg(target_endian = "little")]
71032#[target_feature(enable = "neon")]
71033#[cfg(target_arch = "arm")]
71034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71035#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71036#[cfg_attr(test, assert_instr(vtbl))]
71037pub fn vtbl4_p8(a: poly8x8x4_t, b: uint8x8_t) -> poly8x8_t {
71038    unsafe {
71039        transmute(vtbl4(
71040            transmute(a.0),
71041            transmute(a.1),
71042            transmute(a.2),
71043            transmute(a.3),
71044            transmute(b),
71045        ))
71046    }
71047}
71048#[doc = "Table look-up"]
71049#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_p8)"]
71050#[inline(always)]
71051#[cfg(target_endian = "big")]
71052#[target_feature(enable = "neon")]
71053#[cfg(target_arch = "arm")]
71054#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71055#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71056#[cfg_attr(test, assert_instr(vtbl))]
71057pub fn vtbl4_p8(a: poly8x8x4_t, b: uint8x8_t) -> poly8x8_t {
71058    let mut a: poly8x8x4_t = a;
71059    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71060    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71061    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71062    a.3 = unsafe { simd_shuffle!(a.3, a.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71063    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71064    unsafe {
71065        let ret_val: poly8x8_t = transmute(vtbl4(
71066            transmute(a.0),
71067            transmute(a.1),
71068            transmute(a.2),
71069            transmute(a.3),
71070            transmute(b),
71071        ));
71072        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71073    }
71074}
71075#[doc = "Extended table look-up"]
71076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1)"]
71077#[inline(always)]
71078#[target_feature(enable = "neon,v7")]
71079#[cfg(target_arch = "arm")]
71080#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71081#[cfg_attr(test, assert_instr(vtbx))]
71082fn vtbx1(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
71083    unsafe extern "unadjusted" {
71084        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx1")]
71085        fn _vtbx1(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
71086    }
71087    unsafe { _vtbx1(a, b, c) }
71088}
71089#[doc = "Extended table look-up"]
71090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_s8)"]
71091#[inline(always)]
71092#[target_feature(enable = "neon,v7")]
71093#[cfg(target_arch = "arm")]
71094#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71095#[cfg_attr(test, assert_instr(vtbx))]
71096pub fn vtbx1_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
71097    vtbx1(a, b, c)
71098}
71099#[doc = "Extended table look-up"]
71100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_u8)"]
71101#[inline(always)]
71102#[cfg(target_endian = "little")]
71103#[target_feature(enable = "neon,v7")]
71104#[cfg(target_arch = "arm")]
71105#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71106#[cfg_attr(test, assert_instr(vtbx))]
71107pub fn vtbx1_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
71108    unsafe { transmute(vtbx1(transmute(a), transmute(b), transmute(c))) }
71109}
71110#[doc = "Extended table look-up"]
71111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_u8)"]
71112#[inline(always)]
71113#[cfg(target_endian = "big")]
71114#[target_feature(enable = "neon,v7")]
71115#[cfg(target_arch = "arm")]
71116#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71117#[cfg_attr(test, assert_instr(vtbx))]
71118pub fn vtbx1_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
71119    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71120    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71121    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71122    unsafe {
71123        let ret_val: uint8x8_t = transmute(vtbx1(transmute(a), transmute(b), transmute(c)));
71124        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71125    }
71126}
71127#[doc = "Extended table look-up"]
71128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_p8)"]
71129#[inline(always)]
71130#[cfg(target_endian = "little")]
71131#[target_feature(enable = "neon,v7")]
71132#[cfg(target_arch = "arm")]
71133#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71134#[cfg_attr(test, assert_instr(vtbx))]
71135pub fn vtbx1_p8(a: poly8x8_t, b: poly8x8_t, c: uint8x8_t) -> poly8x8_t {
71136    unsafe { transmute(vtbx1(transmute(a), transmute(b), transmute(c))) }
71137}
71138#[doc = "Extended table look-up"]
71139#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_p8)"]
71140#[inline(always)]
71141#[cfg(target_endian = "big")]
71142#[target_feature(enable = "neon,v7")]
71143#[cfg(target_arch = "arm")]
71144#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71145#[cfg_attr(test, assert_instr(vtbx))]
71146pub fn vtbx1_p8(a: poly8x8_t, b: poly8x8_t, c: uint8x8_t) -> poly8x8_t {
71147    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71148    let b: poly8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71149    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71150    unsafe {
71151        let ret_val: poly8x8_t = transmute(vtbx1(transmute(a), transmute(b), transmute(c)));
71152        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71153    }
71154}
71155#[doc = "Extended table look-up"]
71156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2)"]
71157#[inline(always)]
71158#[target_feature(enable = "neon,v7")]
71159#[cfg(target_arch = "arm")]
71160#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71161#[cfg_attr(test, assert_instr(vtbx))]
71162fn vtbx2(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t {
71163    unsafe extern "unadjusted" {
71164        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx2")]
71165        fn _vtbx2(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t;
71166    }
71167    unsafe { _vtbx2(a, b, c, d) }
71168}
71169#[doc = "Extended table look-up"]
71170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_s8)"]
71171#[inline(always)]
71172#[target_feature(enable = "neon,v7")]
71173#[cfg(target_arch = "arm")]
71174#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71175#[cfg_attr(test, assert_instr(vtbx))]
71176pub fn vtbx2_s8(a: int8x8_t, b: int8x8x2_t, c: int8x8_t) -> int8x8_t {
71177    vtbx2(a, b.0, b.1, c)
71178}
71179#[doc = "Extended table look-up"]
71180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_u8)"]
71181#[inline(always)]
71182#[cfg(target_endian = "little")]
71183#[target_feature(enable = "neon,v7")]
71184#[cfg(target_arch = "arm")]
71185#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71186#[cfg_attr(test, assert_instr(vtbx))]
71187pub fn vtbx2_u8(a: uint8x8_t, b: uint8x8x2_t, c: uint8x8_t) -> uint8x8_t {
71188    unsafe {
71189        transmute(vtbx2(
71190            transmute(a),
71191            transmute(b.0),
71192            transmute(b.1),
71193            transmute(c),
71194        ))
71195    }
71196}
71197#[doc = "Extended table look-up"]
71198#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_u8)"]
71199#[inline(always)]
71200#[cfg(target_endian = "big")]
71201#[target_feature(enable = "neon,v7")]
71202#[cfg(target_arch = "arm")]
71203#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71204#[cfg_attr(test, assert_instr(vtbx))]
71205pub fn vtbx2_u8(a: uint8x8_t, b: uint8x8x2_t, c: uint8x8_t) -> uint8x8_t {
71206    let mut b: uint8x8x2_t = b;
71207    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71208    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71209    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71210    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71211    unsafe {
71212        let ret_val: uint8x8_t = transmute(vtbx2(
71213            transmute(a),
71214            transmute(b.0),
71215            transmute(b.1),
71216            transmute(c),
71217        ));
71218        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71219    }
71220}
71221#[doc = "Extended table look-up"]
71222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_p8)"]
71223#[inline(always)]
71224#[cfg(target_endian = "little")]
71225#[target_feature(enable = "neon,v7")]
71226#[cfg(target_arch = "arm")]
71227#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71228#[cfg_attr(test, assert_instr(vtbx))]
71229pub fn vtbx2_p8(a: poly8x8_t, b: poly8x8x2_t, c: uint8x8_t) -> poly8x8_t {
71230    unsafe {
71231        transmute(vtbx2(
71232            transmute(a),
71233            transmute(b.0),
71234            transmute(b.1),
71235            transmute(c),
71236        ))
71237    }
71238}
71239#[doc = "Extended table look-up"]
71240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_p8)"]
71241#[inline(always)]
71242#[cfg(target_endian = "big")]
71243#[target_feature(enable = "neon,v7")]
71244#[cfg(target_arch = "arm")]
71245#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71246#[cfg_attr(test, assert_instr(vtbx))]
71247pub fn vtbx2_p8(a: poly8x8_t, b: poly8x8x2_t, c: uint8x8_t) -> poly8x8_t {
71248    let mut b: poly8x8x2_t = b;
71249    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71250    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71251    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71252    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71253    unsafe {
71254        let ret_val: poly8x8_t = transmute(vtbx2(
71255            transmute(a),
71256            transmute(b.0),
71257            transmute(b.1),
71258            transmute(c),
71259        ));
71260        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71261    }
71262}
71263#[doc = "Extended table look-up"]
71264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3)"]
71265#[inline(always)]
71266#[target_feature(enable = "neon,v7")]
71267#[cfg(target_arch = "arm")]
71268#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71269#[cfg_attr(test, assert_instr(vtbx))]
71270fn vtbx3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t {
71271    unsafe extern "unadjusted" {
71272        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx3")]
71273        fn _vtbx3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t;
71274    }
71275    unsafe { _vtbx3(a, b, c, d, e) }
71276}
71277#[doc = "Extended table look-up"]
71278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_s8)"]
71279#[inline(always)]
71280#[target_feature(enable = "neon,v7")]
71281#[cfg(target_arch = "arm")]
71282#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71283#[cfg_attr(test, assert_instr(vtbx))]
71284pub fn vtbx3_s8(a: int8x8_t, b: int8x8x3_t, c: int8x8_t) -> int8x8_t {
71285    vtbx3(a, b.0, b.1, b.2, c)
71286}
71287#[doc = "Extended table look-up"]
71288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_u8)"]
71289#[inline(always)]
71290#[cfg(target_endian = "little")]
71291#[target_feature(enable = "neon,v7")]
71292#[cfg(target_arch = "arm")]
71293#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71294#[cfg_attr(test, assert_instr(vtbx))]
71295pub fn vtbx3_u8(a: uint8x8_t, b: uint8x8x3_t, c: uint8x8_t) -> uint8x8_t {
71296    unsafe {
71297        transmute(vtbx3(
71298            transmute(a),
71299            transmute(b.0),
71300            transmute(b.1),
71301            transmute(b.2),
71302            transmute(c),
71303        ))
71304    }
71305}
71306#[doc = "Extended table look-up"]
71307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_u8)"]
71308#[inline(always)]
71309#[cfg(target_endian = "big")]
71310#[target_feature(enable = "neon,v7")]
71311#[cfg(target_arch = "arm")]
71312#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71313#[cfg_attr(test, assert_instr(vtbx))]
71314pub fn vtbx3_u8(a: uint8x8_t, b: uint8x8x3_t, c: uint8x8_t) -> uint8x8_t {
71315    let mut b: uint8x8x3_t = b;
71316    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71317    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71318    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71319    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71320    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71321    unsafe {
71322        let ret_val: uint8x8_t = transmute(vtbx3(
71323            transmute(a),
71324            transmute(b.0),
71325            transmute(b.1),
71326            transmute(b.2),
71327            transmute(c),
71328        ));
71329        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71330    }
71331}
71332#[doc = "Extended table look-up"]
71333#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_p8)"]
71334#[inline(always)]
71335#[cfg(target_endian = "little")]
71336#[target_feature(enable = "neon,v7")]
71337#[cfg(target_arch = "arm")]
71338#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71339#[cfg_attr(test, assert_instr(vtbx))]
71340pub fn vtbx3_p8(a: poly8x8_t, b: poly8x8x3_t, c: uint8x8_t) -> poly8x8_t {
71341    unsafe {
71342        transmute(vtbx3(
71343            transmute(a),
71344            transmute(b.0),
71345            transmute(b.1),
71346            transmute(b.2),
71347            transmute(c),
71348        ))
71349    }
71350}
71351#[doc = "Extended table look-up"]
71352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_p8)"]
71353#[inline(always)]
71354#[cfg(target_endian = "big")]
71355#[target_feature(enable = "neon,v7")]
71356#[cfg(target_arch = "arm")]
71357#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71358#[cfg_attr(test, assert_instr(vtbx))]
71359pub fn vtbx3_p8(a: poly8x8_t, b: poly8x8x3_t, c: uint8x8_t) -> poly8x8_t {
71360    let mut b: poly8x8x3_t = b;
71361    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71362    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71363    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71364    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71365    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71366    unsafe {
71367        let ret_val: poly8x8_t = transmute(vtbx3(
71368            transmute(a),
71369            transmute(b.0),
71370            transmute(b.1),
71371            transmute(b.2),
71372            transmute(c),
71373        ));
71374        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71375    }
71376}
71377#[doc = "Extended table look-up"]
71378#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4)"]
71379#[inline(always)]
71380#[target_feature(enable = "neon,v7")]
71381#[cfg(target_arch = "arm")]
71382#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71383#[cfg_attr(test, assert_instr(vtbx))]
71384fn vtbx4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t, f: int8x8_t) -> int8x8_t {
71385    unsafe extern "unadjusted" {
71386        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx4")]
71387        fn _vtbx4(
71388            a: int8x8_t,
71389            b: int8x8_t,
71390            c: int8x8_t,
71391            d: int8x8_t,
71392            e: int8x8_t,
71393            f: int8x8_t,
71394        ) -> int8x8_t;
71395    }
71396    unsafe { _vtbx4(a, b, c, d, e, f) }
71397}
71398#[doc = "Extended table look-up"]
71399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_s8)"]
71400#[inline(always)]
71401#[cfg(target_endian = "little")]
71402#[target_feature(enable = "neon,v7")]
71403#[cfg(target_arch = "arm")]
71404#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71405#[cfg_attr(test, assert_instr(vtbx))]
71406pub fn vtbx4_s8(a: int8x8_t, b: int8x8x4_t, c: int8x8_t) -> int8x8_t {
71407    unsafe {
71408        vtbx4(
71409            a,
71410            transmute(b.0),
71411            transmute(b.1),
71412            transmute(b.2),
71413            transmute(b.3),
71414            c,
71415        )
71416    }
71417}
71418#[doc = "Extended table look-up"]
71419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_s8)"]
71420#[inline(always)]
71421#[cfg(target_endian = "big")]
71422#[target_feature(enable = "neon,v7")]
71423#[cfg(target_arch = "arm")]
71424#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71425#[cfg_attr(test, assert_instr(vtbx))]
71426pub fn vtbx4_s8(a: int8x8_t, b: int8x8x4_t, c: int8x8_t) -> int8x8_t {
71427    let mut b: int8x8x4_t = b;
71428    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71429    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71430    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71431    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71432    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71433    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71434    unsafe {
71435        let ret_val: int8x8_t = vtbx4(
71436            a,
71437            transmute(b.0),
71438            transmute(b.1),
71439            transmute(b.2),
71440            transmute(b.3),
71441            c,
71442        );
71443        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71444    }
71445}
71446#[doc = "Extended table look-up"]
71447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_u8)"]
71448#[inline(always)]
71449#[cfg(target_endian = "little")]
71450#[target_feature(enable = "neon,v7")]
71451#[cfg(target_arch = "arm")]
71452#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71453#[cfg_attr(test, assert_instr(vtbx))]
71454pub fn vtbx4_u8(a: uint8x8_t, b: uint8x8x4_t, c: uint8x8_t) -> uint8x8_t {
71455    unsafe {
71456        transmute(vtbx4(
71457            transmute(a),
71458            transmute(b.0),
71459            transmute(b.1),
71460            transmute(b.2),
71461            transmute(b.3),
71462            transmute(c),
71463        ))
71464    }
71465}
71466#[doc = "Extended table look-up"]
71467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_u8)"]
71468#[inline(always)]
71469#[cfg(target_endian = "big")]
71470#[target_feature(enable = "neon,v7")]
71471#[cfg(target_arch = "arm")]
71472#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71473#[cfg_attr(test, assert_instr(vtbx))]
71474pub fn vtbx4_u8(a: uint8x8_t, b: uint8x8x4_t, c: uint8x8_t) -> uint8x8_t {
71475    let mut b: uint8x8x4_t = b;
71476    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71477    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71478    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71479    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71480    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71481    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71482    unsafe {
71483        let ret_val: uint8x8_t = transmute(vtbx4(
71484            transmute(a),
71485            transmute(b.0),
71486            transmute(b.1),
71487            transmute(b.2),
71488            transmute(b.3),
71489            transmute(c),
71490        ));
71491        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71492    }
71493}
71494#[doc = "Extended table look-up"]
71495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_p8)"]
71496#[inline(always)]
71497#[cfg(target_endian = "little")]
71498#[target_feature(enable = "neon,v7")]
71499#[cfg(target_arch = "arm")]
71500#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71501#[cfg_attr(test, assert_instr(vtbx))]
71502pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t {
71503    unsafe {
71504        transmute(vtbx4(
71505            transmute(a),
71506            transmute(b.0),
71507            transmute(b.1),
71508            transmute(b.2),
71509            transmute(b.3),
71510            transmute(c),
71511        ))
71512    }
71513}
71514#[doc = "Extended table look-up"]
71515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_p8)"]
71516#[inline(always)]
71517#[cfg(target_endian = "big")]
71518#[target_feature(enable = "neon,v7")]
71519#[cfg(target_arch = "arm")]
71520#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71521#[cfg_attr(test, assert_instr(vtbx))]
71522pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t {
71523    let mut b: poly8x8x4_t = b;
71524    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71525    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71526    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71527    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71528    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71529    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71530    unsafe {
71531        let ret_val: poly8x8_t = transmute(vtbx4(
71532            transmute(a),
71533            transmute(b.0),
71534            transmute(b.1),
71535            transmute(b.2),
71536            transmute(b.3),
71537            transmute(c),
71538        ));
71539        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71540    }
71541}
71542#[doc = "Transpose elements"]
71543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_f16)"]
71544#[inline(always)]
71545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71546#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71547#[cfg_attr(
71548    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71549    assert_instr(trn1)
71550)]
71551#[cfg_attr(
71552    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71553    assert_instr(trn2)
71554)]
71555#[target_feature(enable = "neon,fp16")]
71556#[cfg_attr(
71557    not(target_arch = "arm"),
71558    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
71559)]
71560#[cfg_attr(
71561    target_arch = "arm",
71562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71563)]
71564#[cfg(not(target_arch = "arm64ec"))]
71565pub fn vtrn_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
71566    unsafe {
71567        let a1: float16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
71568        let b1: float16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
71569        transmute((a1, b1))
71570    }
71571}
71572#[doc = "Transpose elements"]
71573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_f16)"]
71574#[inline(always)]
71575#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71576#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71577#[cfg_attr(
71578    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71579    assert_instr(trn1)
71580)]
71581#[cfg_attr(
71582    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71583    assert_instr(trn2)
71584)]
71585#[target_feature(enable = "neon,fp16")]
71586#[cfg_attr(
71587    not(target_arch = "arm"),
71588    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
71589)]
71590#[cfg_attr(
71591    target_arch = "arm",
71592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71593)]
71594#[cfg(not(target_arch = "arm64ec"))]
71595pub fn vtrnq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
71596    unsafe {
71597        let a1: float16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
71598        let b1: float16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
71599        transmute((a1, b1))
71600    }
71601}
71602#[doc = "Transpose elements"]
71603#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_f32)"]
71604#[inline(always)]
71605#[target_feature(enable = "neon")]
71606#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71607#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71608#[cfg_attr(
71609    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71610    assert_instr(zip1)
71611)]
71612#[cfg_attr(
71613    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71614    assert_instr(zip2)
71615)]
71616#[cfg_attr(
71617    not(target_arch = "arm"),
71618    stable(feature = "neon_intrinsics", since = "1.59.0")
71619)]
71620#[cfg_attr(
71621    target_arch = "arm",
71622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71623)]
71624pub fn vtrn_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
71625    unsafe {
71626        let a1: float32x2_t = simd_shuffle!(a, b, [0, 2]);
71627        let b1: float32x2_t = simd_shuffle!(a, b, [1, 3]);
71628        transmute((a1, b1))
71629    }
71630}
71631#[doc = "Transpose elements"]
71632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s32)"]
71633#[inline(always)]
71634#[target_feature(enable = "neon")]
71635#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71636#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71637#[cfg_attr(
71638    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71639    assert_instr(zip1)
71640)]
71641#[cfg_attr(
71642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71643    assert_instr(zip2)
71644)]
71645#[cfg_attr(
71646    not(target_arch = "arm"),
71647    stable(feature = "neon_intrinsics", since = "1.59.0")
71648)]
71649#[cfg_attr(
71650    target_arch = "arm",
71651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71652)]
71653pub fn vtrn_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
71654    unsafe {
71655        let a1: int32x2_t = simd_shuffle!(a, b, [0, 2]);
71656        let b1: int32x2_t = simd_shuffle!(a, b, [1, 3]);
71657        transmute((a1, b1))
71658    }
71659}
71660#[doc = "Transpose elements"]
71661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u32)"]
71662#[inline(always)]
71663#[target_feature(enable = "neon")]
71664#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71665#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71666#[cfg_attr(
71667    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71668    assert_instr(zip1)
71669)]
71670#[cfg_attr(
71671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71672    assert_instr(zip2)
71673)]
71674#[cfg_attr(
71675    not(target_arch = "arm"),
71676    stable(feature = "neon_intrinsics", since = "1.59.0")
71677)]
71678#[cfg_attr(
71679    target_arch = "arm",
71680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71681)]
71682pub fn vtrn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
71683    unsafe {
71684        let a1: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
71685        let b1: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
71686        transmute((a1, b1))
71687    }
71688}
71689#[doc = "Transpose elements"]
71690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_f32)"]
71691#[inline(always)]
71692#[target_feature(enable = "neon")]
71693#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71694#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71695#[cfg_attr(
71696    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71697    assert_instr(trn1)
71698)]
71699#[cfg_attr(
71700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71701    assert_instr(trn2)
71702)]
71703#[cfg_attr(
71704    not(target_arch = "arm"),
71705    stable(feature = "neon_intrinsics", since = "1.59.0")
71706)]
71707#[cfg_attr(
71708    target_arch = "arm",
71709    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71710)]
71711pub fn vtrnq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
71712    unsafe {
71713        let a1: float32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
71714        let b1: float32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
71715        transmute((a1, b1))
71716    }
71717}
71718#[doc = "Transpose elements"]
71719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s8)"]
71720#[inline(always)]
71721#[target_feature(enable = "neon")]
71722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71724#[cfg_attr(
71725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71726    assert_instr(trn1)
71727)]
71728#[cfg_attr(
71729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71730    assert_instr(trn2)
71731)]
71732#[cfg_attr(
71733    not(target_arch = "arm"),
71734    stable(feature = "neon_intrinsics", since = "1.59.0")
71735)]
71736#[cfg_attr(
71737    target_arch = "arm",
71738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71739)]
71740pub fn vtrn_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
71741    unsafe {
71742        let a1: int8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
71743        let b1: int8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
71744        transmute((a1, b1))
71745    }
71746}
71747#[doc = "Transpose elements"]
71748#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s8)"]
71749#[inline(always)]
71750#[target_feature(enable = "neon")]
71751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71753#[cfg_attr(
71754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71755    assert_instr(trn1)
71756)]
71757#[cfg_attr(
71758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71759    assert_instr(trn2)
71760)]
71761#[cfg_attr(
71762    not(target_arch = "arm"),
71763    stable(feature = "neon_intrinsics", since = "1.59.0")
71764)]
71765#[cfg_attr(
71766    target_arch = "arm",
71767    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71768)]
71769pub fn vtrnq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
71770    unsafe {
71771        let a1: int8x16_t = simd_shuffle!(
71772            a,
71773            b,
71774            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
71775        );
71776        let b1: int8x16_t = simd_shuffle!(
71777            a,
71778            b,
71779            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
71780        );
71781        transmute((a1, b1))
71782    }
71783}
71784#[doc = "Transpose elements"]
71785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s16)"]
71786#[inline(always)]
71787#[target_feature(enable = "neon")]
71788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71790#[cfg_attr(
71791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71792    assert_instr(trn1)
71793)]
71794#[cfg_attr(
71795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71796    assert_instr(trn2)
71797)]
71798#[cfg_attr(
71799    not(target_arch = "arm"),
71800    stable(feature = "neon_intrinsics", since = "1.59.0")
71801)]
71802#[cfg_attr(
71803    target_arch = "arm",
71804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71805)]
71806pub fn vtrn_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
71807    unsafe {
71808        let a1: int16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
71809        let b1: int16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
71810        transmute((a1, b1))
71811    }
71812}
71813#[doc = "Transpose elements"]
71814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s16)"]
71815#[inline(always)]
71816#[target_feature(enable = "neon")]
71817#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71818#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71819#[cfg_attr(
71820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71821    assert_instr(trn1)
71822)]
71823#[cfg_attr(
71824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71825    assert_instr(trn2)
71826)]
71827#[cfg_attr(
71828    not(target_arch = "arm"),
71829    stable(feature = "neon_intrinsics", since = "1.59.0")
71830)]
71831#[cfg_attr(
71832    target_arch = "arm",
71833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71834)]
71835pub fn vtrnq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
71836    unsafe {
71837        let a1: int16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
71838        let b1: int16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
71839        transmute((a1, b1))
71840    }
71841}
71842#[doc = "Transpose elements"]
71843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s32)"]
71844#[inline(always)]
71845#[target_feature(enable = "neon")]
71846#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71847#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71848#[cfg_attr(
71849    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71850    assert_instr(trn1)
71851)]
71852#[cfg_attr(
71853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71854    assert_instr(trn2)
71855)]
71856#[cfg_attr(
71857    not(target_arch = "arm"),
71858    stable(feature = "neon_intrinsics", since = "1.59.0")
71859)]
71860#[cfg_attr(
71861    target_arch = "arm",
71862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71863)]
71864pub fn vtrnq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
71865    unsafe {
71866        let a1: int32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
71867        let b1: int32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
71868        transmute((a1, b1))
71869    }
71870}
71871#[doc = "Transpose elements"]
71872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u8)"]
71873#[inline(always)]
71874#[target_feature(enable = "neon")]
71875#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71876#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71877#[cfg_attr(
71878    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71879    assert_instr(trn1)
71880)]
71881#[cfg_attr(
71882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71883    assert_instr(trn2)
71884)]
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 fn vtrn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
71894    unsafe {
71895        let a1: uint8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
71896        let b1: uint8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
71897        transmute((a1, b1))
71898    }
71899}
71900#[doc = "Transpose elements"]
71901#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u8)"]
71902#[inline(always)]
71903#[target_feature(enable = "neon")]
71904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71905#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71906#[cfg_attr(
71907    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71908    assert_instr(trn1)
71909)]
71910#[cfg_attr(
71911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71912    assert_instr(trn2)
71913)]
71914#[cfg_attr(
71915    not(target_arch = "arm"),
71916    stable(feature = "neon_intrinsics", since = "1.59.0")
71917)]
71918#[cfg_attr(
71919    target_arch = "arm",
71920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71921)]
71922pub fn vtrnq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
71923    unsafe {
71924        let a1: uint8x16_t = simd_shuffle!(
71925            a,
71926            b,
71927            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
71928        );
71929        let b1: uint8x16_t = simd_shuffle!(
71930            a,
71931            b,
71932            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
71933        );
71934        transmute((a1, b1))
71935    }
71936}
71937#[doc = "Transpose elements"]
71938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u16)"]
71939#[inline(always)]
71940#[target_feature(enable = "neon")]
71941#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71942#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71943#[cfg_attr(
71944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71945    assert_instr(trn1)
71946)]
71947#[cfg_attr(
71948    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71949    assert_instr(trn2)
71950)]
71951#[cfg_attr(
71952    not(target_arch = "arm"),
71953    stable(feature = "neon_intrinsics", since = "1.59.0")
71954)]
71955#[cfg_attr(
71956    target_arch = "arm",
71957    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71958)]
71959pub fn vtrn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
71960    unsafe {
71961        let a1: uint16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
71962        let b1: uint16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
71963        transmute((a1, b1))
71964    }
71965}
71966#[doc = "Transpose elements"]
71967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u16)"]
71968#[inline(always)]
71969#[target_feature(enable = "neon")]
71970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71972#[cfg_attr(
71973    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71974    assert_instr(trn1)
71975)]
71976#[cfg_attr(
71977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71978    assert_instr(trn2)
71979)]
71980#[cfg_attr(
71981    not(target_arch = "arm"),
71982    stable(feature = "neon_intrinsics", since = "1.59.0")
71983)]
71984#[cfg_attr(
71985    target_arch = "arm",
71986    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71987)]
71988pub fn vtrnq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
71989    unsafe {
71990        let a1: uint16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
71991        let b1: uint16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
71992        transmute((a1, b1))
71993    }
71994}
71995#[doc = "Transpose elements"]
71996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u32)"]
71997#[inline(always)]
71998#[target_feature(enable = "neon")]
71999#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72000#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72001#[cfg_attr(
72002    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72003    assert_instr(trn1)
72004)]
72005#[cfg_attr(
72006    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72007    assert_instr(trn2)
72008)]
72009#[cfg_attr(
72010    not(target_arch = "arm"),
72011    stable(feature = "neon_intrinsics", since = "1.59.0")
72012)]
72013#[cfg_attr(
72014    target_arch = "arm",
72015    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72016)]
72017pub fn vtrnq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
72018    unsafe {
72019        let a1: uint32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
72020        let b1: uint32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
72021        transmute((a1, b1))
72022    }
72023}
72024#[doc = "Transpose elements"]
72025#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p8)"]
72026#[inline(always)]
72027#[target_feature(enable = "neon")]
72028#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72029#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72030#[cfg_attr(
72031    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72032    assert_instr(trn1)
72033)]
72034#[cfg_attr(
72035    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72036    assert_instr(trn2)
72037)]
72038#[cfg_attr(
72039    not(target_arch = "arm"),
72040    stable(feature = "neon_intrinsics", since = "1.59.0")
72041)]
72042#[cfg_attr(
72043    target_arch = "arm",
72044    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72045)]
72046pub fn vtrn_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
72047    unsafe {
72048        let a1: poly8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
72049        let b1: poly8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
72050        transmute((a1, b1))
72051    }
72052}
72053#[doc = "Transpose elements"]
72054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p8)"]
72055#[inline(always)]
72056#[target_feature(enable = "neon")]
72057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72059#[cfg_attr(
72060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72061    assert_instr(trn1)
72062)]
72063#[cfg_attr(
72064    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72065    assert_instr(trn2)
72066)]
72067#[cfg_attr(
72068    not(target_arch = "arm"),
72069    stable(feature = "neon_intrinsics", since = "1.59.0")
72070)]
72071#[cfg_attr(
72072    target_arch = "arm",
72073    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72074)]
72075pub fn vtrnq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
72076    unsafe {
72077        let a1: poly8x16_t = simd_shuffle!(
72078            a,
72079            b,
72080            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
72081        );
72082        let b1: poly8x16_t = simd_shuffle!(
72083            a,
72084            b,
72085            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
72086        );
72087        transmute((a1, b1))
72088    }
72089}
72090#[doc = "Transpose elements"]
72091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p16)"]
72092#[inline(always)]
72093#[target_feature(enable = "neon")]
72094#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72095#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72096#[cfg_attr(
72097    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72098    assert_instr(trn1)
72099)]
72100#[cfg_attr(
72101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72102    assert_instr(trn2)
72103)]
72104#[cfg_attr(
72105    not(target_arch = "arm"),
72106    stable(feature = "neon_intrinsics", since = "1.59.0")
72107)]
72108#[cfg_attr(
72109    target_arch = "arm",
72110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72111)]
72112pub fn vtrn_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
72113    unsafe {
72114        let a1: poly16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
72115        let b1: poly16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
72116        transmute((a1, b1))
72117    }
72118}
72119#[doc = "Transpose elements"]
72120#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p16)"]
72121#[inline(always)]
72122#[target_feature(enable = "neon")]
72123#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72124#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72125#[cfg_attr(
72126    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72127    assert_instr(trn1)
72128)]
72129#[cfg_attr(
72130    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72131    assert_instr(trn2)
72132)]
72133#[cfg_attr(
72134    not(target_arch = "arm"),
72135    stable(feature = "neon_intrinsics", since = "1.59.0")
72136)]
72137#[cfg_attr(
72138    target_arch = "arm",
72139    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72140)]
72141pub fn vtrnq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
72142    unsafe {
72143        let a1: poly16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
72144        let b1: poly16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
72145        transmute((a1, b1))
72146    }
72147}
72148#[doc = "Signed compare bitwise Test bits nonzero"]
72149#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s8)"]
72150#[inline(always)]
72151#[target_feature(enable = "neon")]
72152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72153#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72154#[cfg_attr(
72155    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72156    assert_instr(cmtst)
72157)]
72158#[cfg_attr(
72159    not(target_arch = "arm"),
72160    stable(feature = "neon_intrinsics", since = "1.59.0")
72161)]
72162#[cfg_attr(
72163    target_arch = "arm",
72164    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72165)]
72166pub fn vtst_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
72167    unsafe {
72168        let c: int8x8_t = simd_and(a, b);
72169        let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72170        simd_ne(c, transmute(d))
72171    }
72172}
72173#[doc = "Signed compare bitwise Test bits nonzero"]
72174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s8)"]
72175#[inline(always)]
72176#[target_feature(enable = "neon")]
72177#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72178#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72179#[cfg_attr(
72180    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72181    assert_instr(cmtst)
72182)]
72183#[cfg_attr(
72184    not(target_arch = "arm"),
72185    stable(feature = "neon_intrinsics", since = "1.59.0")
72186)]
72187#[cfg_attr(
72188    target_arch = "arm",
72189    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72190)]
72191pub fn vtstq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
72192    unsafe {
72193        let c: int8x16_t = simd_and(a, b);
72194        let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
72195        simd_ne(c, transmute(d))
72196    }
72197}
72198#[doc = "Signed compare bitwise Test bits nonzero"]
72199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s16)"]
72200#[inline(always)]
72201#[target_feature(enable = "neon")]
72202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72203#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72204#[cfg_attr(
72205    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72206    assert_instr(cmtst)
72207)]
72208#[cfg_attr(
72209    not(target_arch = "arm"),
72210    stable(feature = "neon_intrinsics", since = "1.59.0")
72211)]
72212#[cfg_attr(
72213    target_arch = "arm",
72214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72215)]
72216pub fn vtst_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
72217    unsafe {
72218        let c: int16x4_t = simd_and(a, b);
72219        let d: i16x4 = i16x4::new(0, 0, 0, 0);
72220        simd_ne(c, transmute(d))
72221    }
72222}
72223#[doc = "Signed compare bitwise Test bits nonzero"]
72224#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s16)"]
72225#[inline(always)]
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(vtst))]
72229#[cfg_attr(
72230    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72231    assert_instr(cmtst)
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 fn vtstq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
72242    unsafe {
72243        let c: int16x8_t = simd_and(a, b);
72244        let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72245        simd_ne(c, transmute(d))
72246    }
72247}
72248#[doc = "Signed compare bitwise Test bits nonzero"]
72249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s32)"]
72250#[inline(always)]
72251#[target_feature(enable = "neon")]
72252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72253#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72254#[cfg_attr(
72255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72256    assert_instr(cmtst)
72257)]
72258#[cfg_attr(
72259    not(target_arch = "arm"),
72260    stable(feature = "neon_intrinsics", since = "1.59.0")
72261)]
72262#[cfg_attr(
72263    target_arch = "arm",
72264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72265)]
72266pub fn vtst_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
72267    unsafe {
72268        let c: int32x2_t = simd_and(a, b);
72269        let d: i32x2 = i32x2::new(0, 0);
72270        simd_ne(c, transmute(d))
72271    }
72272}
72273#[doc = "Signed compare bitwise Test bits nonzero"]
72274#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s32)"]
72275#[inline(always)]
72276#[target_feature(enable = "neon")]
72277#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72278#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72279#[cfg_attr(
72280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72281    assert_instr(cmtst)
72282)]
72283#[cfg_attr(
72284    not(target_arch = "arm"),
72285    stable(feature = "neon_intrinsics", since = "1.59.0")
72286)]
72287#[cfg_attr(
72288    target_arch = "arm",
72289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72290)]
72291pub fn vtstq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
72292    unsafe {
72293        let c: int32x4_t = simd_and(a, b);
72294        let d: i32x4 = i32x4::new(0, 0, 0, 0);
72295        simd_ne(c, transmute(d))
72296    }
72297}
72298#[doc = "Signed compare bitwise Test bits nonzero"]
72299#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p8)"]
72300#[inline(always)]
72301#[target_feature(enable = "neon")]
72302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72303#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72304#[cfg_attr(
72305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72306    assert_instr(cmtst)
72307)]
72308#[cfg_attr(
72309    not(target_arch = "arm"),
72310    stable(feature = "neon_intrinsics", since = "1.59.0")
72311)]
72312#[cfg_attr(
72313    target_arch = "arm",
72314    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72315)]
72316pub fn vtst_p8(a: poly8x8_t, b: poly8x8_t) -> uint8x8_t {
72317    unsafe {
72318        let c: poly8x8_t = simd_and(a, b);
72319        let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72320        simd_ne(c, transmute(d))
72321    }
72322}
72323#[doc = "Signed compare bitwise Test bits nonzero"]
72324#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p8)"]
72325#[inline(always)]
72326#[target_feature(enable = "neon")]
72327#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72328#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72329#[cfg_attr(
72330    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72331    assert_instr(cmtst)
72332)]
72333#[cfg_attr(
72334    not(target_arch = "arm"),
72335    stable(feature = "neon_intrinsics", since = "1.59.0")
72336)]
72337#[cfg_attr(
72338    target_arch = "arm",
72339    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72340)]
72341pub fn vtstq_p8(a: poly8x16_t, b: poly8x16_t) -> uint8x16_t {
72342    unsafe {
72343        let c: poly8x16_t = simd_and(a, b);
72344        let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
72345        simd_ne(c, transmute(d))
72346    }
72347}
72348#[doc = "Signed compare bitwise Test bits nonzero"]
72349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p16)"]
72350#[inline(always)]
72351#[target_feature(enable = "neon")]
72352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72354#[cfg_attr(
72355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72356    assert_instr(cmtst)
72357)]
72358#[cfg_attr(
72359    not(target_arch = "arm"),
72360    stable(feature = "neon_intrinsics", since = "1.59.0")
72361)]
72362#[cfg_attr(
72363    target_arch = "arm",
72364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72365)]
72366pub fn vtst_p16(a: poly16x4_t, b: poly16x4_t) -> uint16x4_t {
72367    unsafe {
72368        let c: poly16x4_t = simd_and(a, b);
72369        let d: i16x4 = i16x4::new(0, 0, 0, 0);
72370        simd_ne(c, transmute(d))
72371    }
72372}
72373#[doc = "Signed compare bitwise Test bits nonzero"]
72374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p16)"]
72375#[inline(always)]
72376#[target_feature(enable = "neon")]
72377#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72378#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72379#[cfg_attr(
72380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72381    assert_instr(cmtst)
72382)]
72383#[cfg_attr(
72384    not(target_arch = "arm"),
72385    stable(feature = "neon_intrinsics", since = "1.59.0")
72386)]
72387#[cfg_attr(
72388    target_arch = "arm",
72389    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72390)]
72391pub fn vtstq_p16(a: poly16x8_t, b: poly16x8_t) -> uint16x8_t {
72392    unsafe {
72393        let c: poly16x8_t = simd_and(a, b);
72394        let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72395        simd_ne(c, transmute(d))
72396    }
72397}
72398#[doc = "Unsigned compare bitwise Test bits nonzero"]
72399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u8)"]
72400#[inline(always)]
72401#[target_feature(enable = "neon")]
72402#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72403#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72404#[cfg_attr(
72405    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72406    assert_instr(cmtst)
72407)]
72408#[cfg_attr(
72409    not(target_arch = "arm"),
72410    stable(feature = "neon_intrinsics", since = "1.59.0")
72411)]
72412#[cfg_attr(
72413    target_arch = "arm",
72414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72415)]
72416pub fn vtst_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
72417    unsafe {
72418        let c: uint8x8_t = simd_and(a, b);
72419        let d: u8x8 = u8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72420        simd_ne(c, transmute(d))
72421    }
72422}
72423#[doc = "Unsigned compare bitwise Test bits nonzero"]
72424#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u8)"]
72425#[inline(always)]
72426#[target_feature(enable = "neon")]
72427#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72428#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72429#[cfg_attr(
72430    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72431    assert_instr(cmtst)
72432)]
72433#[cfg_attr(
72434    not(target_arch = "arm"),
72435    stable(feature = "neon_intrinsics", since = "1.59.0")
72436)]
72437#[cfg_attr(
72438    target_arch = "arm",
72439    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72440)]
72441pub fn vtstq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
72442    unsafe {
72443        let c: uint8x16_t = simd_and(a, b);
72444        let d: u8x16 = u8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
72445        simd_ne(c, transmute(d))
72446    }
72447}
72448#[doc = "Unsigned compare bitwise Test bits nonzero"]
72449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u16)"]
72450#[inline(always)]
72451#[target_feature(enable = "neon")]
72452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72454#[cfg_attr(
72455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72456    assert_instr(cmtst)
72457)]
72458#[cfg_attr(
72459    not(target_arch = "arm"),
72460    stable(feature = "neon_intrinsics", since = "1.59.0")
72461)]
72462#[cfg_attr(
72463    target_arch = "arm",
72464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72465)]
72466pub fn vtst_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
72467    unsafe {
72468        let c: uint16x4_t = simd_and(a, b);
72469        let d: u16x4 = u16x4::new(0, 0, 0, 0);
72470        simd_ne(c, transmute(d))
72471    }
72472}
72473#[doc = "Unsigned compare bitwise Test bits nonzero"]
72474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u16)"]
72475#[inline(always)]
72476#[target_feature(enable = "neon")]
72477#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72478#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72479#[cfg_attr(
72480    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72481    assert_instr(cmtst)
72482)]
72483#[cfg_attr(
72484    not(target_arch = "arm"),
72485    stable(feature = "neon_intrinsics", since = "1.59.0")
72486)]
72487#[cfg_attr(
72488    target_arch = "arm",
72489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72490)]
72491pub fn vtstq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
72492    unsafe {
72493        let c: uint16x8_t = simd_and(a, b);
72494        let d: u16x8 = u16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72495        simd_ne(c, transmute(d))
72496    }
72497}
72498#[doc = "Unsigned compare bitwise Test bits nonzero"]
72499#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u32)"]
72500#[inline(always)]
72501#[target_feature(enable = "neon")]
72502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72503#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72504#[cfg_attr(
72505    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72506    assert_instr(cmtst)
72507)]
72508#[cfg_attr(
72509    not(target_arch = "arm"),
72510    stable(feature = "neon_intrinsics", since = "1.59.0")
72511)]
72512#[cfg_attr(
72513    target_arch = "arm",
72514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72515)]
72516pub fn vtst_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
72517    unsafe {
72518        let c: uint32x2_t = simd_and(a, b);
72519        let d: u32x2 = u32x2::new(0, 0);
72520        simd_ne(c, transmute(d))
72521    }
72522}
72523#[doc = "Unsigned compare bitwise Test bits nonzero"]
72524#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u32)"]
72525#[inline(always)]
72526#[target_feature(enable = "neon")]
72527#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72528#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72529#[cfg_attr(
72530    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72531    assert_instr(cmtst)
72532)]
72533#[cfg_attr(
72534    not(target_arch = "arm"),
72535    stable(feature = "neon_intrinsics", since = "1.59.0")
72536)]
72537#[cfg_attr(
72538    target_arch = "arm",
72539    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72540)]
72541pub fn vtstq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
72542    unsafe {
72543        let c: uint32x4_t = simd_and(a, b);
72544        let d: u32x4 = u32x4::new(0, 0, 0, 0);
72545        simd_ne(c, transmute(d))
72546    }
72547}
72548#[doc = "Dot product index form with unsigned and signed integers"]
72549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_lane_s32)"]
72550#[inline(always)]
72551#[cfg(target_endian = "little")]
72552#[target_feature(enable = "neon,i8mm")]
72553#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72554#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
72555#[cfg_attr(
72556    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72557    assert_instr(usdot, LANE = 0)
72558)]
72559#[rustc_legacy_const_generics(3)]
72560#[cfg_attr(
72561    not(target_arch = "arm"),
72562    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72563)]
72564#[cfg_attr(
72565    target_arch = "arm",
72566    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72567)]
72568pub fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
72569    static_assert_uimm_bits!(LANE, 1);
72570    unsafe {
72571        let c: int32x2_t = transmute(c);
72572        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
72573        vusdot_s32(a, b, transmute(c))
72574    }
72575}
72576#[doc = "Dot product index form with unsigned and signed integers"]
72577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_lane_s32)"]
72578#[inline(always)]
72579#[cfg(target_endian = "big")]
72580#[target_feature(enable = "neon,i8mm")]
72581#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72582#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
72583#[cfg_attr(
72584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72585    assert_instr(usdot, LANE = 0)
72586)]
72587#[rustc_legacy_const_generics(3)]
72588#[cfg_attr(
72589    not(target_arch = "arm"),
72590    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72591)]
72592#[cfg_attr(
72593    target_arch = "arm",
72594    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72595)]
72596pub fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
72597    static_assert_uimm_bits!(LANE, 1);
72598    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
72599    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
72600    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
72601    unsafe {
72602        let c: int32x2_t = transmute(c);
72603        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
72604        let ret_val: int32x2_t = vusdot_s32(a, b, transmute(c));
72605        simd_shuffle!(ret_val, ret_val, [1, 0])
72606    }
72607}
72608#[doc = "Dot product index form with unsigned and signed integers"]
72609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_lane_s32)"]
72610#[inline(always)]
72611#[cfg(target_endian = "little")]
72612#[target_feature(enable = "neon,i8mm")]
72613#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72614#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
72615#[cfg_attr(
72616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72617    assert_instr(usdot, LANE = 0)
72618)]
72619#[rustc_legacy_const_generics(3)]
72620#[cfg_attr(
72621    not(target_arch = "arm"),
72622    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72623)]
72624#[cfg_attr(
72625    target_arch = "arm",
72626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72627)]
72628pub fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x8_t) -> int32x4_t {
72629    static_assert_uimm_bits!(LANE, 1);
72630    unsafe {
72631        let c: int32x2_t = transmute(c);
72632        let c: int32x4_t =
72633            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
72634        vusdotq_s32(a, b, transmute(c))
72635    }
72636}
72637#[doc = "Dot product index form with unsigned and signed integers"]
72638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_lane_s32)"]
72639#[inline(always)]
72640#[cfg(target_endian = "big")]
72641#[target_feature(enable = "neon,i8mm")]
72642#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72643#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
72644#[cfg_attr(
72645    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72646    assert_instr(usdot, LANE = 0)
72647)]
72648#[rustc_legacy_const_generics(3)]
72649#[cfg_attr(
72650    not(target_arch = "arm"),
72651    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72652)]
72653#[cfg_attr(
72654    target_arch = "arm",
72655    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72656)]
72657pub fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x8_t) -> int32x4_t {
72658    static_assert_uimm_bits!(LANE, 1);
72659    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
72660    let b: uint8x16_t =
72661        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
72662    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
72663    unsafe {
72664        let c: int32x2_t = transmute(c);
72665        let c: int32x4_t =
72666            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
72667        let ret_val: int32x4_t = vusdotq_s32(a, b, transmute(c));
72668        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
72669    }
72670}
72671#[doc = "Dot product index form with unsigned and signed integers"]
72672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_laneq_s32)"]
72673#[inline(always)]
72674#[cfg(target_endian = "little")]
72675#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72676#[target_feature(enable = "neon,i8mm")]
72677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 3))]
72678#[cfg_attr(
72679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72680    assert_instr(usdot, LANE = 3)
72681)]
72682#[rustc_legacy_const_generics(3)]
72683#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
72684pub fn vusdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x16_t) -> int32x2_t {
72685    static_assert_uimm_bits!(LANE, 2);
72686    unsafe {
72687        let c: int32x4_t = transmute(c);
72688        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
72689        vusdot_s32(a, b, transmute(c))
72690    }
72691}
72692#[doc = "Dot product index form with unsigned and signed integers"]
72693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_laneq_s32)"]
72694#[inline(always)]
72695#[cfg(target_endian = "big")]
72696#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72697#[target_feature(enable = "neon,i8mm")]
72698#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 3))]
72699#[cfg_attr(
72700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72701    assert_instr(usdot, LANE = 3)
72702)]
72703#[rustc_legacy_const_generics(3)]
72704#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
72705pub fn vusdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x16_t) -> int32x2_t {
72706    static_assert_uimm_bits!(LANE, 2);
72707    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
72708    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
72709    let c: int8x16_t =
72710        unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
72711    unsafe {
72712        let c: int32x4_t = transmute(c);
72713        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
72714        let ret_val: int32x2_t = vusdot_s32(a, b, transmute(c));
72715        simd_shuffle!(ret_val, ret_val, [1, 0])
72716    }
72717}
72718#[doc = "Dot product index form with unsigned and signed integers"]
72719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_laneq_s32)"]
72720#[inline(always)]
72721#[cfg(target_endian = "little")]
72722#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72723#[target_feature(enable = "neon,i8mm")]
72724#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 3))]
72725#[cfg_attr(
72726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72727    assert_instr(usdot, LANE = 3)
72728)]
72729#[rustc_legacy_const_generics(3)]
72730#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
72731pub fn vusdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
72732    static_assert_uimm_bits!(LANE, 2);
72733    unsafe {
72734        let c: int32x4_t = transmute(c);
72735        let c: int32x4_t =
72736            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
72737        vusdotq_s32(a, b, transmute(c))
72738    }
72739}
72740#[doc = "Dot product index form with unsigned and signed integers"]
72741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_laneq_s32)"]
72742#[inline(always)]
72743#[cfg(target_endian = "big")]
72744#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72745#[target_feature(enable = "neon,i8mm")]
72746#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 3))]
72747#[cfg_attr(
72748    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72749    assert_instr(usdot, LANE = 3)
72750)]
72751#[rustc_legacy_const_generics(3)]
72752#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
72753pub fn vusdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
72754    static_assert_uimm_bits!(LANE, 2);
72755    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
72756    let b: uint8x16_t =
72757        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
72758    let c: int8x16_t =
72759        unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
72760    unsafe {
72761        let c: int32x4_t = transmute(c);
72762        let c: int32x4_t =
72763            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
72764        let ret_val: int32x4_t = vusdotq_s32(a, b, transmute(c));
72765        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
72766    }
72767}
72768#[doc = "Dot product vector form with unsigned and signed integers"]
72769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_s32)"]
72770#[inline(always)]
72771#[target_feature(enable = "neon,i8mm")]
72772#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72773#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
72774#[cfg_attr(
72775    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72776    assert_instr(usdot)
72777)]
72778#[cfg_attr(
72779    not(target_arch = "arm"),
72780    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72781)]
72782#[cfg_attr(
72783    target_arch = "arm",
72784    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72785)]
72786pub fn vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
72787    unsafe extern "unadjusted" {
72788        #[cfg_attr(
72789            any(target_arch = "aarch64", target_arch = "arm64ec"),
72790            link_name = "llvm.aarch64.neon.usdot.v2i32.v8i8"
72791        )]
72792        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v2i32.v8i8")]
72793        fn _vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t;
72794    }
72795    unsafe { _vusdot_s32(a, b, c) }
72796}
72797#[doc = "Dot product vector form with unsigned and signed integers"]
72798#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_s32)"]
72799#[inline(always)]
72800#[target_feature(enable = "neon,i8mm")]
72801#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72802#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
72803#[cfg_attr(
72804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72805    assert_instr(usdot)
72806)]
72807#[cfg_attr(
72808    not(target_arch = "arm"),
72809    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72810)]
72811#[cfg_attr(
72812    target_arch = "arm",
72813    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72814)]
72815pub fn vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
72816    unsafe extern "unadjusted" {
72817        #[cfg_attr(
72818            any(target_arch = "aarch64", target_arch = "arm64ec"),
72819            link_name = "llvm.aarch64.neon.usdot.v4i32.v16i8"
72820        )]
72821        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v4i32.v16i8")]
72822        fn _vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t;
72823    }
72824    unsafe { _vusdotq_s32(a, b, c) }
72825}
72826#[doc = "Unsigned and signed 8-bit integer matrix multiply-accumulate"]
72827#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusmmlaq_s32)"]
72828#[inline(always)]
72829#[target_feature(enable = "neon,i8mm")]
72830#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
72832#[cfg_attr(
72833    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72834    assert_instr(usmmla)
72835)]
72836#[cfg_attr(
72837    not(target_arch = "arm"),
72838    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72839)]
72840#[cfg_attr(
72841    target_arch = "arm",
72842    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72843)]
72844pub fn vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
72845    unsafe extern "unadjusted" {
72846        #[cfg_attr(
72847            any(target_arch = "aarch64", target_arch = "arm64ec"),
72848            link_name = "llvm.aarch64.neon.usmmla.v4i32.v16i8"
72849        )]
72850        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usmmla.v4i32.v16i8")]
72851        fn _vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t;
72852    }
72853    unsafe { _vusmmlaq_s32(a, b, c) }
72854}
72855#[doc = "Unzip vectors"]
72856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_f16)"]
72857#[inline(always)]
72858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
72860#[cfg_attr(
72861    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72862    assert_instr(uzp1)
72863)]
72864#[cfg_attr(
72865    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72866    assert_instr(uzp2)
72867)]
72868#[target_feature(enable = "neon,fp16")]
72869#[cfg_attr(
72870    not(target_arch = "arm"),
72871    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
72872)]
72873#[cfg_attr(
72874    target_arch = "arm",
72875    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72876)]
72877#[cfg(not(target_arch = "arm64ec"))]
72878pub fn vuzp_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
72879    unsafe {
72880        let a0: float16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
72881        let b0: float16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
72882        transmute((a0, b0))
72883    }
72884}
72885#[doc = "Unzip vectors"]
72886#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_f16)"]
72887#[inline(always)]
72888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
72890#[cfg_attr(
72891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72892    assert_instr(uzp1)
72893)]
72894#[cfg_attr(
72895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72896    assert_instr(uzp2)
72897)]
72898#[target_feature(enable = "neon,fp16")]
72899#[cfg_attr(
72900    not(target_arch = "arm"),
72901    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
72902)]
72903#[cfg_attr(
72904    target_arch = "arm",
72905    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72906)]
72907#[cfg(not(target_arch = "arm64ec"))]
72908pub fn vuzpq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
72909    unsafe {
72910        let a0: float16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
72911        let b0: float16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
72912        transmute((a0, b0))
72913    }
72914}
72915#[doc = "Unzip vectors"]
72916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_f32)"]
72917#[inline(always)]
72918#[target_feature(enable = "neon")]
72919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72921#[cfg_attr(
72922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72923    assert_instr(zip1)
72924)]
72925#[cfg_attr(
72926    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72927    assert_instr(zip2)
72928)]
72929#[cfg_attr(
72930    not(target_arch = "arm"),
72931    stable(feature = "neon_intrinsics", since = "1.59.0")
72932)]
72933#[cfg_attr(
72934    target_arch = "arm",
72935    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72936)]
72937pub fn vuzp_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
72938    unsafe {
72939        let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
72940        let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
72941        transmute((a0, b0))
72942    }
72943}
72944#[doc = "Unzip vectors"]
72945#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s32)"]
72946#[inline(always)]
72947#[target_feature(enable = "neon")]
72948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72950#[cfg_attr(
72951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72952    assert_instr(zip1)
72953)]
72954#[cfg_attr(
72955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72956    assert_instr(zip2)
72957)]
72958#[cfg_attr(
72959    not(target_arch = "arm"),
72960    stable(feature = "neon_intrinsics", since = "1.59.0")
72961)]
72962#[cfg_attr(
72963    target_arch = "arm",
72964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72965)]
72966pub fn vuzp_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
72967    unsafe {
72968        let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
72969        let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
72970        transmute((a0, b0))
72971    }
72972}
72973#[doc = "Unzip vectors"]
72974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u32)"]
72975#[inline(always)]
72976#[target_feature(enable = "neon")]
72977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72978#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72979#[cfg_attr(
72980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72981    assert_instr(zip1)
72982)]
72983#[cfg_attr(
72984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72985    assert_instr(zip2)
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 vuzp_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
72996    unsafe {
72997        let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
72998        let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
72999        transmute((a0, b0))
73000    }
73001}
73002#[doc = "Unzip vectors"]
73003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_f32)"]
73004#[inline(always)]
73005#[target_feature(enable = "neon")]
73006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73008#[cfg_attr(
73009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73010    assert_instr(uzp1)
73011)]
73012#[cfg_attr(
73013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73014    assert_instr(uzp2)
73015)]
73016#[cfg_attr(
73017    not(target_arch = "arm"),
73018    stable(feature = "neon_intrinsics", since = "1.59.0")
73019)]
73020#[cfg_attr(
73021    target_arch = "arm",
73022    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73023)]
73024pub fn vuzpq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
73025    unsafe {
73026        let a0: float32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73027        let b0: float32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73028        transmute((a0, b0))
73029    }
73030}
73031#[doc = "Unzip vectors"]
73032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s8)"]
73033#[inline(always)]
73034#[target_feature(enable = "neon")]
73035#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73036#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73037#[cfg_attr(
73038    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73039    assert_instr(uzp1)
73040)]
73041#[cfg_attr(
73042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73043    assert_instr(uzp2)
73044)]
73045#[cfg_attr(
73046    not(target_arch = "arm"),
73047    stable(feature = "neon_intrinsics", since = "1.59.0")
73048)]
73049#[cfg_attr(
73050    target_arch = "arm",
73051    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73052)]
73053pub fn vuzp_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
73054    unsafe {
73055        let a0: int8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73056        let b0: int8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73057        transmute((a0, b0))
73058    }
73059}
73060#[doc = "Unzip vectors"]
73061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s8)"]
73062#[inline(always)]
73063#[target_feature(enable = "neon")]
73064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73066#[cfg_attr(
73067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73068    assert_instr(uzp1)
73069)]
73070#[cfg_attr(
73071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73072    assert_instr(uzp2)
73073)]
73074#[cfg_attr(
73075    not(target_arch = "arm"),
73076    stable(feature = "neon_intrinsics", since = "1.59.0")
73077)]
73078#[cfg_attr(
73079    target_arch = "arm",
73080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73081)]
73082pub fn vuzpq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
73083    unsafe {
73084        let a0: int8x16_t = simd_shuffle!(
73085            a,
73086            b,
73087            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
73088        );
73089        let b0: int8x16_t = simd_shuffle!(
73090            a,
73091            b,
73092            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
73093        );
73094        transmute((a0, b0))
73095    }
73096}
73097#[doc = "Unzip vectors"]
73098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s16)"]
73099#[inline(always)]
73100#[target_feature(enable = "neon")]
73101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73103#[cfg_attr(
73104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73105    assert_instr(uzp1)
73106)]
73107#[cfg_attr(
73108    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73109    assert_instr(uzp2)
73110)]
73111#[cfg_attr(
73112    not(target_arch = "arm"),
73113    stable(feature = "neon_intrinsics", since = "1.59.0")
73114)]
73115#[cfg_attr(
73116    target_arch = "arm",
73117    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73118)]
73119pub fn vuzp_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
73120    unsafe {
73121        let a0: int16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73122        let b0: int16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73123        transmute((a0, b0))
73124    }
73125}
73126#[doc = "Unzip vectors"]
73127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s16)"]
73128#[inline(always)]
73129#[target_feature(enable = "neon")]
73130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73132#[cfg_attr(
73133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73134    assert_instr(uzp1)
73135)]
73136#[cfg_attr(
73137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73138    assert_instr(uzp2)
73139)]
73140#[cfg_attr(
73141    not(target_arch = "arm"),
73142    stable(feature = "neon_intrinsics", since = "1.59.0")
73143)]
73144#[cfg_attr(
73145    target_arch = "arm",
73146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73147)]
73148pub fn vuzpq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
73149    unsafe {
73150        let a0: int16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73151        let b0: int16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73152        transmute((a0, b0))
73153    }
73154}
73155#[doc = "Unzip vectors"]
73156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s32)"]
73157#[inline(always)]
73158#[target_feature(enable = "neon")]
73159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73161#[cfg_attr(
73162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73163    assert_instr(uzp1)
73164)]
73165#[cfg_attr(
73166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73167    assert_instr(uzp2)
73168)]
73169#[cfg_attr(
73170    not(target_arch = "arm"),
73171    stable(feature = "neon_intrinsics", since = "1.59.0")
73172)]
73173#[cfg_attr(
73174    target_arch = "arm",
73175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73176)]
73177pub fn vuzpq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
73178    unsafe {
73179        let a0: int32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73180        let b0: int32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73181        transmute((a0, b0))
73182    }
73183}
73184#[doc = "Unzip vectors"]
73185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u8)"]
73186#[inline(always)]
73187#[target_feature(enable = "neon")]
73188#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73189#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73190#[cfg_attr(
73191    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73192    assert_instr(uzp1)
73193)]
73194#[cfg_attr(
73195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73196    assert_instr(uzp2)
73197)]
73198#[cfg_attr(
73199    not(target_arch = "arm"),
73200    stable(feature = "neon_intrinsics", since = "1.59.0")
73201)]
73202#[cfg_attr(
73203    target_arch = "arm",
73204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73205)]
73206pub fn vuzp_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
73207    unsafe {
73208        let a0: uint8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73209        let b0: uint8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73210        transmute((a0, b0))
73211    }
73212}
73213#[doc = "Unzip vectors"]
73214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u8)"]
73215#[inline(always)]
73216#[target_feature(enable = "neon")]
73217#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73218#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73219#[cfg_attr(
73220    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73221    assert_instr(uzp1)
73222)]
73223#[cfg_attr(
73224    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73225    assert_instr(uzp2)
73226)]
73227#[cfg_attr(
73228    not(target_arch = "arm"),
73229    stable(feature = "neon_intrinsics", since = "1.59.0")
73230)]
73231#[cfg_attr(
73232    target_arch = "arm",
73233    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73234)]
73235pub fn vuzpq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
73236    unsafe {
73237        let a0: uint8x16_t = simd_shuffle!(
73238            a,
73239            b,
73240            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
73241        );
73242        let b0: uint8x16_t = simd_shuffle!(
73243            a,
73244            b,
73245            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
73246        );
73247        transmute((a0, b0))
73248    }
73249}
73250#[doc = "Unzip vectors"]
73251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u16)"]
73252#[inline(always)]
73253#[target_feature(enable = "neon")]
73254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73255#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73256#[cfg_attr(
73257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73258    assert_instr(uzp1)
73259)]
73260#[cfg_attr(
73261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73262    assert_instr(uzp2)
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 vuzp_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
73273    unsafe {
73274        let a0: uint16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73275        let b0: uint16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73276        transmute((a0, b0))
73277    }
73278}
73279#[doc = "Unzip vectors"]
73280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u16)"]
73281#[inline(always)]
73282#[target_feature(enable = "neon")]
73283#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73284#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73285#[cfg_attr(
73286    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73287    assert_instr(uzp1)
73288)]
73289#[cfg_attr(
73290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73291    assert_instr(uzp2)
73292)]
73293#[cfg_attr(
73294    not(target_arch = "arm"),
73295    stable(feature = "neon_intrinsics", since = "1.59.0")
73296)]
73297#[cfg_attr(
73298    target_arch = "arm",
73299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73300)]
73301pub fn vuzpq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
73302    unsafe {
73303        let a0: uint16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73304        let b0: uint16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73305        transmute((a0, b0))
73306    }
73307}
73308#[doc = "Unzip vectors"]
73309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u32)"]
73310#[inline(always)]
73311#[target_feature(enable = "neon")]
73312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73314#[cfg_attr(
73315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73316    assert_instr(uzp1)
73317)]
73318#[cfg_attr(
73319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73320    assert_instr(uzp2)
73321)]
73322#[cfg_attr(
73323    not(target_arch = "arm"),
73324    stable(feature = "neon_intrinsics", since = "1.59.0")
73325)]
73326#[cfg_attr(
73327    target_arch = "arm",
73328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73329)]
73330pub fn vuzpq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
73331    unsafe {
73332        let a0: uint32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73333        let b0: uint32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73334        transmute((a0, b0))
73335    }
73336}
73337#[doc = "Unzip vectors"]
73338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p8)"]
73339#[inline(always)]
73340#[target_feature(enable = "neon")]
73341#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73342#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73343#[cfg_attr(
73344    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73345    assert_instr(uzp1)
73346)]
73347#[cfg_attr(
73348    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73349    assert_instr(uzp2)
73350)]
73351#[cfg_attr(
73352    not(target_arch = "arm"),
73353    stable(feature = "neon_intrinsics", since = "1.59.0")
73354)]
73355#[cfg_attr(
73356    target_arch = "arm",
73357    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73358)]
73359pub fn vuzp_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
73360    unsafe {
73361        let a0: poly8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73362        let b0: poly8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73363        transmute((a0, b0))
73364    }
73365}
73366#[doc = "Unzip vectors"]
73367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p8)"]
73368#[inline(always)]
73369#[target_feature(enable = "neon")]
73370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73371#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73372#[cfg_attr(
73373    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73374    assert_instr(uzp1)
73375)]
73376#[cfg_attr(
73377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73378    assert_instr(uzp2)
73379)]
73380#[cfg_attr(
73381    not(target_arch = "arm"),
73382    stable(feature = "neon_intrinsics", since = "1.59.0")
73383)]
73384#[cfg_attr(
73385    target_arch = "arm",
73386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73387)]
73388pub fn vuzpq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
73389    unsafe {
73390        let a0: poly8x16_t = simd_shuffle!(
73391            a,
73392            b,
73393            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
73394        );
73395        let b0: poly8x16_t = simd_shuffle!(
73396            a,
73397            b,
73398            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
73399        );
73400        transmute((a0, b0))
73401    }
73402}
73403#[doc = "Unzip vectors"]
73404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p16)"]
73405#[inline(always)]
73406#[target_feature(enable = "neon")]
73407#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73408#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73409#[cfg_attr(
73410    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73411    assert_instr(uzp1)
73412)]
73413#[cfg_attr(
73414    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73415    assert_instr(uzp2)
73416)]
73417#[cfg_attr(
73418    not(target_arch = "arm"),
73419    stable(feature = "neon_intrinsics", since = "1.59.0")
73420)]
73421#[cfg_attr(
73422    target_arch = "arm",
73423    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73424)]
73425pub fn vuzp_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
73426    unsafe {
73427        let a0: poly16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73428        let b0: poly16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73429        transmute((a0, b0))
73430    }
73431}
73432#[doc = "Unzip vectors"]
73433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p16)"]
73434#[inline(always)]
73435#[target_feature(enable = "neon")]
73436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73438#[cfg_attr(
73439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73440    assert_instr(uzp1)
73441)]
73442#[cfg_attr(
73443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73444    assert_instr(uzp2)
73445)]
73446#[cfg_attr(
73447    not(target_arch = "arm"),
73448    stable(feature = "neon_intrinsics", since = "1.59.0")
73449)]
73450#[cfg_attr(
73451    target_arch = "arm",
73452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73453)]
73454pub fn vuzpq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
73455    unsafe {
73456        let a0: poly16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73457        let b0: poly16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73458        transmute((a0, b0))
73459    }
73460}
73461#[doc = "Zip vectors"]
73462#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_f16)"]
73463#[inline(always)]
73464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73465#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))]
73466#[cfg_attr(
73467    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73468    assert_instr(zip1)
73469)]
73470#[cfg_attr(
73471    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73472    assert_instr(zip2)
73473)]
73474#[target_feature(enable = "neon,fp16")]
73475#[cfg_attr(
73476    not(target_arch = "arm"),
73477    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
73478)]
73479#[cfg_attr(
73480    target_arch = "arm",
73481    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73482)]
73483#[cfg(not(target_arch = "arm64ec"))]
73484pub fn vzip_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
73485    unsafe {
73486        let a0: float16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
73487        let b0: float16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
73488        transmute((a0, b0))
73489    }
73490}
73491#[doc = "Zip vectors"]
73492#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_f16)"]
73493#[inline(always)]
73494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73495#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))]
73496#[cfg_attr(
73497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73498    assert_instr(zip1)
73499)]
73500#[cfg_attr(
73501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73502    assert_instr(zip2)
73503)]
73504#[target_feature(enable = "neon,fp16")]
73505#[cfg_attr(
73506    not(target_arch = "arm"),
73507    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
73508)]
73509#[cfg_attr(
73510    target_arch = "arm",
73511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73512)]
73513#[cfg(not(target_arch = "arm64ec"))]
73514pub fn vzipq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
73515    unsafe {
73516        let a0: float16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
73517        let b0: float16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
73518        transmute((a0, b0))
73519    }
73520}
73521#[doc = "Zip vectors"]
73522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_f32)"]
73523#[inline(always)]
73524#[target_feature(enable = "neon")]
73525#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73526#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
73527#[cfg_attr(
73528    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73529    assert_instr(zip1)
73530)]
73531#[cfg_attr(
73532    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73533    assert_instr(zip2)
73534)]
73535#[cfg_attr(
73536    not(target_arch = "arm"),
73537    stable(feature = "neon_intrinsics", since = "1.59.0")
73538)]
73539#[cfg_attr(
73540    target_arch = "arm",
73541    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73542)]
73543pub fn vzip_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
73544    unsafe {
73545        let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
73546        let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
73547        transmute((a0, b0))
73548    }
73549}
73550#[doc = "Zip vectors"]
73551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s32)"]
73552#[inline(always)]
73553#[target_feature(enable = "neon")]
73554#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73555#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
73556#[cfg_attr(
73557    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73558    assert_instr(zip1)
73559)]
73560#[cfg_attr(
73561    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73562    assert_instr(zip2)
73563)]
73564#[cfg_attr(
73565    not(target_arch = "arm"),
73566    stable(feature = "neon_intrinsics", since = "1.59.0")
73567)]
73568#[cfg_attr(
73569    target_arch = "arm",
73570    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73571)]
73572pub fn vzip_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
73573    unsafe {
73574        let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
73575        let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
73576        transmute((a0, b0))
73577    }
73578}
73579#[doc = "Zip vectors"]
73580#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u32)"]
73581#[inline(always)]
73582#[target_feature(enable = "neon")]
73583#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73584#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
73585#[cfg_attr(
73586    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73587    assert_instr(zip1)
73588)]
73589#[cfg_attr(
73590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73591    assert_instr(zip2)
73592)]
73593#[cfg_attr(
73594    not(target_arch = "arm"),
73595    stable(feature = "neon_intrinsics", since = "1.59.0")
73596)]
73597#[cfg_attr(
73598    target_arch = "arm",
73599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73600)]
73601pub fn vzip_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
73602    unsafe {
73603        let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
73604        let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
73605        transmute((a0, b0))
73606    }
73607}
73608#[doc = "Zip vectors"]
73609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s8)"]
73610#[inline(always)]
73611#[target_feature(enable = "neon")]
73612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73613#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
73614#[cfg_attr(
73615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73616    assert_instr(zip1)
73617)]
73618#[cfg_attr(
73619    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73620    assert_instr(zip2)
73621)]
73622#[cfg_attr(
73623    not(target_arch = "arm"),
73624    stable(feature = "neon_intrinsics", since = "1.59.0")
73625)]
73626#[cfg_attr(
73627    target_arch = "arm",
73628    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73629)]
73630pub fn vzip_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
73631    unsafe {
73632        let a0: int8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
73633        let b0: int8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
73634        transmute((a0, b0))
73635    }
73636}
73637#[doc = "Zip vectors"]
73638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s16)"]
73639#[inline(always)]
73640#[target_feature(enable = "neon")]
73641#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73642#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
73643#[cfg_attr(
73644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73645    assert_instr(zip1)
73646)]
73647#[cfg_attr(
73648    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73649    assert_instr(zip2)
73650)]
73651#[cfg_attr(
73652    not(target_arch = "arm"),
73653    stable(feature = "neon_intrinsics", since = "1.59.0")
73654)]
73655#[cfg_attr(
73656    target_arch = "arm",
73657    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73658)]
73659pub fn vzip_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
73660    unsafe {
73661        let a0: int16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
73662        let b0: int16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
73663        transmute((a0, b0))
73664    }
73665}
73666#[doc = "Zip vectors"]
73667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u8)"]
73668#[inline(always)]
73669#[target_feature(enable = "neon")]
73670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
73672#[cfg_attr(
73673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73674    assert_instr(zip1)
73675)]
73676#[cfg_attr(
73677    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73678    assert_instr(zip2)
73679)]
73680#[cfg_attr(
73681    not(target_arch = "arm"),
73682    stable(feature = "neon_intrinsics", since = "1.59.0")
73683)]
73684#[cfg_attr(
73685    target_arch = "arm",
73686    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73687)]
73688pub fn vzip_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
73689    unsafe {
73690        let a0: uint8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
73691        let b0: uint8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
73692        transmute((a0, b0))
73693    }
73694}
73695#[doc = "Zip vectors"]
73696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u16)"]
73697#[inline(always)]
73698#[target_feature(enable = "neon")]
73699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73700#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
73701#[cfg_attr(
73702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73703    assert_instr(zip1)
73704)]
73705#[cfg_attr(
73706    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73707    assert_instr(zip2)
73708)]
73709#[cfg_attr(
73710    not(target_arch = "arm"),
73711    stable(feature = "neon_intrinsics", since = "1.59.0")
73712)]
73713#[cfg_attr(
73714    target_arch = "arm",
73715    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73716)]
73717pub fn vzip_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
73718    unsafe {
73719        let a0: uint16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
73720        let b0: uint16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
73721        transmute((a0, b0))
73722    }
73723}
73724#[doc = "Zip vectors"]
73725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p8)"]
73726#[inline(always)]
73727#[target_feature(enable = "neon")]
73728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
73730#[cfg_attr(
73731    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73732    assert_instr(zip1)
73733)]
73734#[cfg_attr(
73735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73736    assert_instr(zip2)
73737)]
73738#[cfg_attr(
73739    not(target_arch = "arm"),
73740    stable(feature = "neon_intrinsics", since = "1.59.0")
73741)]
73742#[cfg_attr(
73743    target_arch = "arm",
73744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73745)]
73746pub fn vzip_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
73747    unsafe {
73748        let a0: poly8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
73749        let b0: poly8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
73750        transmute((a0, b0))
73751    }
73752}
73753#[doc = "Zip vectors"]
73754#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p16)"]
73755#[inline(always)]
73756#[target_feature(enable = "neon")]
73757#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73758#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
73759#[cfg_attr(
73760    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73761    assert_instr(zip1)
73762)]
73763#[cfg_attr(
73764    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73765    assert_instr(zip2)
73766)]
73767#[cfg_attr(
73768    not(target_arch = "arm"),
73769    stable(feature = "neon_intrinsics", since = "1.59.0")
73770)]
73771#[cfg_attr(
73772    target_arch = "arm",
73773    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73774)]
73775pub fn vzip_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
73776    unsafe {
73777        let a0: poly16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
73778        let b0: poly16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
73779        transmute((a0, b0))
73780    }
73781}
73782#[doc = "Zip vectors"]
73783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_f32)"]
73784#[inline(always)]
73785#[target_feature(enable = "neon")]
73786#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73787#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
73788#[cfg_attr(
73789    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73790    assert_instr(zip1)
73791)]
73792#[cfg_attr(
73793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73794    assert_instr(zip2)
73795)]
73796#[cfg_attr(
73797    not(target_arch = "arm"),
73798    stable(feature = "neon_intrinsics", since = "1.59.0")
73799)]
73800#[cfg_attr(
73801    target_arch = "arm",
73802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73803)]
73804pub fn vzipq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
73805    unsafe {
73806        let a0: float32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
73807        let b0: float32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
73808        transmute((a0, b0))
73809    }
73810}
73811#[doc = "Zip vectors"]
73812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s8)"]
73813#[inline(always)]
73814#[target_feature(enable = "neon")]
73815#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73816#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
73817#[cfg_attr(
73818    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73819    assert_instr(zip1)
73820)]
73821#[cfg_attr(
73822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73823    assert_instr(zip2)
73824)]
73825#[cfg_attr(
73826    not(target_arch = "arm"),
73827    stable(feature = "neon_intrinsics", since = "1.59.0")
73828)]
73829#[cfg_attr(
73830    target_arch = "arm",
73831    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73832)]
73833pub fn vzipq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
73834    unsafe {
73835        let a0: int8x16_t = simd_shuffle!(
73836            a,
73837            b,
73838            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
73839        );
73840        let b0: int8x16_t = simd_shuffle!(
73841            a,
73842            b,
73843            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
73844        );
73845        transmute((a0, b0))
73846    }
73847}
73848#[doc = "Zip vectors"]
73849#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s16)"]
73850#[inline(always)]
73851#[target_feature(enable = "neon")]
73852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
73854#[cfg_attr(
73855    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73856    assert_instr(zip1)
73857)]
73858#[cfg_attr(
73859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73860    assert_instr(zip2)
73861)]
73862#[cfg_attr(
73863    not(target_arch = "arm"),
73864    stable(feature = "neon_intrinsics", since = "1.59.0")
73865)]
73866#[cfg_attr(
73867    target_arch = "arm",
73868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73869)]
73870pub fn vzipq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
73871    unsafe {
73872        let a0: int16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
73873        let b0: int16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
73874        transmute((a0, b0))
73875    }
73876}
73877#[doc = "Zip vectors"]
73878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s32)"]
73879#[inline(always)]
73880#[target_feature(enable = "neon")]
73881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73882#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
73883#[cfg_attr(
73884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73885    assert_instr(zip1)
73886)]
73887#[cfg_attr(
73888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73889    assert_instr(zip2)
73890)]
73891#[cfg_attr(
73892    not(target_arch = "arm"),
73893    stable(feature = "neon_intrinsics", since = "1.59.0")
73894)]
73895#[cfg_attr(
73896    target_arch = "arm",
73897    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73898)]
73899pub fn vzipq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
73900    unsafe {
73901        let a0: int32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
73902        let b0: int32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
73903        transmute((a0, b0))
73904    }
73905}
73906#[doc = "Zip vectors"]
73907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u8)"]
73908#[inline(always)]
73909#[target_feature(enable = "neon")]
73910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
73912#[cfg_attr(
73913    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73914    assert_instr(zip1)
73915)]
73916#[cfg_attr(
73917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73918    assert_instr(zip2)
73919)]
73920#[cfg_attr(
73921    not(target_arch = "arm"),
73922    stable(feature = "neon_intrinsics", since = "1.59.0")
73923)]
73924#[cfg_attr(
73925    target_arch = "arm",
73926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73927)]
73928pub fn vzipq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
73929    unsafe {
73930        let a0: uint8x16_t = simd_shuffle!(
73931            a,
73932            b,
73933            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
73934        );
73935        let b0: uint8x16_t = simd_shuffle!(
73936            a,
73937            b,
73938            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
73939        );
73940        transmute((a0, b0))
73941    }
73942}
73943#[doc = "Zip vectors"]
73944#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u16)"]
73945#[inline(always)]
73946#[target_feature(enable = "neon")]
73947#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73948#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
73949#[cfg_attr(
73950    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73951    assert_instr(zip1)
73952)]
73953#[cfg_attr(
73954    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73955    assert_instr(zip2)
73956)]
73957#[cfg_attr(
73958    not(target_arch = "arm"),
73959    stable(feature = "neon_intrinsics", since = "1.59.0")
73960)]
73961#[cfg_attr(
73962    target_arch = "arm",
73963    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73964)]
73965pub fn vzipq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
73966    unsafe {
73967        let a0: uint16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
73968        let b0: uint16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
73969        transmute((a0, b0))
73970    }
73971}
73972#[doc = "Zip vectors"]
73973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u32)"]
73974#[inline(always)]
73975#[target_feature(enable = "neon")]
73976#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
73978#[cfg_attr(
73979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73980    assert_instr(zip1)
73981)]
73982#[cfg_attr(
73983    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73984    assert_instr(zip2)
73985)]
73986#[cfg_attr(
73987    not(target_arch = "arm"),
73988    stable(feature = "neon_intrinsics", since = "1.59.0")
73989)]
73990#[cfg_attr(
73991    target_arch = "arm",
73992    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73993)]
73994pub fn vzipq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
73995    unsafe {
73996        let a0: uint32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
73997        let b0: uint32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
73998        transmute((a0, b0))
73999    }
74000}
74001#[doc = "Zip vectors"]
74002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p8)"]
74003#[inline(always)]
74004#[target_feature(enable = "neon")]
74005#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74006#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74007#[cfg_attr(
74008    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74009    assert_instr(zip1)
74010)]
74011#[cfg_attr(
74012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74013    assert_instr(zip2)
74014)]
74015#[cfg_attr(
74016    not(target_arch = "arm"),
74017    stable(feature = "neon_intrinsics", since = "1.59.0")
74018)]
74019#[cfg_attr(
74020    target_arch = "arm",
74021    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74022)]
74023pub fn vzipq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
74024    unsafe {
74025        let a0: poly8x16_t = simd_shuffle!(
74026            a,
74027            b,
74028            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
74029        );
74030        let b0: poly8x16_t = simd_shuffle!(
74031            a,
74032            b,
74033            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
74034        );
74035        transmute((a0, b0))
74036    }
74037}
74038#[doc = "Zip vectors"]
74039#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p16)"]
74040#[inline(always)]
74041#[target_feature(enable = "neon")]
74042#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74043#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74044#[cfg_attr(
74045    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74046    assert_instr(zip1)
74047)]
74048#[cfg_attr(
74049    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74050    assert_instr(zip2)
74051)]
74052#[cfg_attr(
74053    not(target_arch = "arm"),
74054    stable(feature = "neon_intrinsics", since = "1.59.0")
74055)]
74056#[cfg_attr(
74057    target_arch = "arm",
74058    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74059)]
74060pub fn vzipq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
74061    unsafe {
74062        let a0: poly16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
74063        let b0: poly16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
74064        transmute((a0, b0))
74065    }
74066}