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, N as u32, N as u32, N as u32]) }
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 {
10178        simd_shuffle!(
10179            a,
10180            a,
10181            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10182        )
10183    }
10184}
10185#[doc = "Set all vector lanes to the same value"]
10186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_f32)"]
10187#[inline(always)]
10188#[target_feature(enable = "neon")]
10189#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10190#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10191#[cfg_attr(
10192    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10193    assert_instr(dup, N = 1)
10194)]
10195#[rustc_legacy_const_generics(1)]
10196#[cfg_attr(
10197    not(target_arch = "arm"),
10198    stable(feature = "neon_intrinsics", since = "1.59.0")
10199)]
10200#[cfg_attr(
10201    target_arch = "arm",
10202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10203)]
10204pub fn vdup_lane_f32<const N: i32>(a: float32x2_t) -> float32x2_t {
10205    static_assert_uimm_bits!(N, 1);
10206    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10207}
10208#[doc = "Set all vector lanes to the same value"]
10209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s32)"]
10210#[inline(always)]
10211#[target_feature(enable = "neon")]
10212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10213#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10214#[cfg_attr(
10215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10216    assert_instr(dup, N = 1)
10217)]
10218#[rustc_legacy_const_generics(1)]
10219#[cfg_attr(
10220    not(target_arch = "arm"),
10221    stable(feature = "neon_intrinsics", since = "1.59.0")
10222)]
10223#[cfg_attr(
10224    target_arch = "arm",
10225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10226)]
10227pub fn vdup_lane_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
10228    static_assert_uimm_bits!(N, 1);
10229    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10230}
10231#[doc = "Set all vector lanes to the same value"]
10232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u32)"]
10233#[inline(always)]
10234#[target_feature(enable = "neon")]
10235#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10236#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10237#[cfg_attr(
10238    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10239    assert_instr(dup, N = 1)
10240)]
10241#[rustc_legacy_const_generics(1)]
10242#[cfg_attr(
10243    not(target_arch = "arm"),
10244    stable(feature = "neon_intrinsics", since = "1.59.0")
10245)]
10246#[cfg_attr(
10247    target_arch = "arm",
10248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10249)]
10250pub fn vdup_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
10251    static_assert_uimm_bits!(N, 1);
10252    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10253}
10254#[doc = "Set all vector lanes to the same value"]
10255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_f32)"]
10256#[inline(always)]
10257#[target_feature(enable = "neon")]
10258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10259#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10260#[cfg_attr(
10261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10262    assert_instr(dup, N = 1)
10263)]
10264#[rustc_legacy_const_generics(1)]
10265#[cfg_attr(
10266    not(target_arch = "arm"),
10267    stable(feature = "neon_intrinsics", since = "1.59.0")
10268)]
10269#[cfg_attr(
10270    target_arch = "arm",
10271    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10272)]
10273pub fn vdupq_lane_f32<const N: i32>(a: float32x2_t) -> float32x4_t {
10274    static_assert_uimm_bits!(N, 1);
10275    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10276}
10277#[doc = "Set all vector lanes to the same value"]
10278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s32)"]
10279#[inline(always)]
10280#[target_feature(enable = "neon")]
10281#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10282#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10283#[cfg_attr(
10284    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10285    assert_instr(dup, N = 1)
10286)]
10287#[rustc_legacy_const_generics(1)]
10288#[cfg_attr(
10289    not(target_arch = "arm"),
10290    stable(feature = "neon_intrinsics", since = "1.59.0")
10291)]
10292#[cfg_attr(
10293    target_arch = "arm",
10294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10295)]
10296pub fn vdupq_lane_s32<const N: i32>(a: int32x2_t) -> int32x4_t {
10297    static_assert_uimm_bits!(N, 1);
10298    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10299}
10300#[doc = "Set all vector lanes to the same value"]
10301#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u32)"]
10302#[inline(always)]
10303#[target_feature(enable = "neon")]
10304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10305#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
10306#[cfg_attr(
10307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10308    assert_instr(dup, N = 1)
10309)]
10310#[rustc_legacy_const_generics(1)]
10311#[cfg_attr(
10312    not(target_arch = "arm"),
10313    stable(feature = "neon_intrinsics", since = "1.59.0")
10314)]
10315#[cfg_attr(
10316    target_arch = "arm",
10317    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10318)]
10319pub fn vdupq_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x4_t {
10320    static_assert_uimm_bits!(N, 1);
10321    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10322}
10323#[doc = "Set all vector lanes to the same value"]
10324#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p16)"]
10325#[inline(always)]
10326#[target_feature(enable = "neon")]
10327#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10328#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10329#[cfg_attr(
10330    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10331    assert_instr(dup, N = 2)
10332)]
10333#[rustc_legacy_const_generics(1)]
10334#[cfg_attr(
10335    not(target_arch = "arm"),
10336    stable(feature = "neon_intrinsics", since = "1.59.0")
10337)]
10338#[cfg_attr(
10339    target_arch = "arm",
10340    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10341)]
10342pub fn vdup_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x4_t {
10343    static_assert_uimm_bits!(N, 2);
10344    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10345}
10346#[doc = "Set all vector lanes to the same value"]
10347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s16)"]
10348#[inline(always)]
10349#[target_feature(enable = "neon")]
10350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10351#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10352#[cfg_attr(
10353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10354    assert_instr(dup, N = 2)
10355)]
10356#[rustc_legacy_const_generics(1)]
10357#[cfg_attr(
10358    not(target_arch = "arm"),
10359    stable(feature = "neon_intrinsics", since = "1.59.0")
10360)]
10361#[cfg_attr(
10362    target_arch = "arm",
10363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10364)]
10365pub fn vdup_lane_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
10366    static_assert_uimm_bits!(N, 2);
10367    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10368}
10369#[doc = "Set all vector lanes to the same value"]
10370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u16)"]
10371#[inline(always)]
10372#[target_feature(enable = "neon")]
10373#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10374#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10375#[cfg_attr(
10376    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10377    assert_instr(dup, N = 2)
10378)]
10379#[rustc_legacy_const_generics(1)]
10380#[cfg_attr(
10381    not(target_arch = "arm"),
10382    stable(feature = "neon_intrinsics", since = "1.59.0")
10383)]
10384#[cfg_attr(
10385    target_arch = "arm",
10386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10387)]
10388pub fn vdup_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
10389    static_assert_uimm_bits!(N, 2);
10390    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10391}
10392#[doc = "Set all vector lanes to the same value"]
10393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p16)"]
10394#[inline(always)]
10395#[target_feature(enable = "neon")]
10396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10397#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10398#[cfg_attr(
10399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10400    assert_instr(dup, N = 2)
10401)]
10402#[rustc_legacy_const_generics(1)]
10403#[cfg_attr(
10404    not(target_arch = "arm"),
10405    stable(feature = "neon_intrinsics", since = "1.59.0")
10406)]
10407#[cfg_attr(
10408    target_arch = "arm",
10409    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10410)]
10411pub fn vdupq_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x8_t {
10412    static_assert_uimm_bits!(N, 2);
10413    unsafe {
10414        simd_shuffle!(
10415            a,
10416            a,
10417            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10418        )
10419    }
10420}
10421#[doc = "Set all vector lanes to the same value"]
10422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s16)"]
10423#[inline(always)]
10424#[target_feature(enable = "neon")]
10425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10426#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10427#[cfg_attr(
10428    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10429    assert_instr(dup, N = 2)
10430)]
10431#[rustc_legacy_const_generics(1)]
10432#[cfg_attr(
10433    not(target_arch = "arm"),
10434    stable(feature = "neon_intrinsics", since = "1.59.0")
10435)]
10436#[cfg_attr(
10437    target_arch = "arm",
10438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10439)]
10440pub fn vdupq_lane_s16<const N: i32>(a: int16x4_t) -> int16x8_t {
10441    static_assert_uimm_bits!(N, 2);
10442    unsafe {
10443        simd_shuffle!(
10444            a,
10445            a,
10446            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10447        )
10448    }
10449}
10450#[doc = "Set all vector lanes to the same value"]
10451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u16)"]
10452#[inline(always)]
10453#[target_feature(enable = "neon")]
10454#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10455#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
10456#[cfg_attr(
10457    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10458    assert_instr(dup, N = 2)
10459)]
10460#[rustc_legacy_const_generics(1)]
10461#[cfg_attr(
10462    not(target_arch = "arm"),
10463    stable(feature = "neon_intrinsics", since = "1.59.0")
10464)]
10465#[cfg_attr(
10466    target_arch = "arm",
10467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10468)]
10469pub fn vdupq_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x8_t {
10470    static_assert_uimm_bits!(N, 2);
10471    unsafe {
10472        simd_shuffle!(
10473            a,
10474            a,
10475            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10476        )
10477    }
10478}
10479#[doc = "Set all vector lanes to the same value"]
10480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p8)"]
10481#[inline(always)]
10482#[target_feature(enable = "neon")]
10483#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10484#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10485#[cfg_attr(
10486    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10487    assert_instr(dup, N = 4)
10488)]
10489#[rustc_legacy_const_generics(1)]
10490#[cfg_attr(
10491    not(target_arch = "arm"),
10492    stable(feature = "neon_intrinsics", since = "1.59.0")
10493)]
10494#[cfg_attr(
10495    target_arch = "arm",
10496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10497)]
10498pub fn vdup_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x8_t {
10499    static_assert_uimm_bits!(N, 3);
10500    unsafe {
10501        simd_shuffle!(
10502            a,
10503            a,
10504            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10505        )
10506    }
10507}
10508#[doc = "Set all vector lanes to the same value"]
10509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s8)"]
10510#[inline(always)]
10511#[target_feature(enable = "neon")]
10512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10513#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10514#[cfg_attr(
10515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10516    assert_instr(dup, N = 4)
10517)]
10518#[rustc_legacy_const_generics(1)]
10519#[cfg_attr(
10520    not(target_arch = "arm"),
10521    stable(feature = "neon_intrinsics", since = "1.59.0")
10522)]
10523#[cfg_attr(
10524    target_arch = "arm",
10525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10526)]
10527pub fn vdup_lane_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
10528    static_assert_uimm_bits!(N, 3);
10529    unsafe {
10530        simd_shuffle!(
10531            a,
10532            a,
10533            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10534        )
10535    }
10536}
10537#[doc = "Set all vector lanes to the same value"]
10538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u8)"]
10539#[inline(always)]
10540#[target_feature(enable = "neon")]
10541#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10542#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10543#[cfg_attr(
10544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10545    assert_instr(dup, N = 4)
10546)]
10547#[rustc_legacy_const_generics(1)]
10548#[cfg_attr(
10549    not(target_arch = "arm"),
10550    stable(feature = "neon_intrinsics", since = "1.59.0")
10551)]
10552#[cfg_attr(
10553    target_arch = "arm",
10554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10555)]
10556pub fn vdup_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
10557    static_assert_uimm_bits!(N, 3);
10558    unsafe {
10559        simd_shuffle!(
10560            a,
10561            a,
10562            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10563        )
10564    }
10565}
10566#[doc = "Set all vector lanes to the same value"]
10567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p8)"]
10568#[inline(always)]
10569#[target_feature(enable = "neon")]
10570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10571#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10572#[cfg_attr(
10573    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10574    assert_instr(dup, N = 4)
10575)]
10576#[rustc_legacy_const_generics(1)]
10577#[cfg_attr(
10578    not(target_arch = "arm"),
10579    stable(feature = "neon_intrinsics", since = "1.59.0")
10580)]
10581#[cfg_attr(
10582    target_arch = "arm",
10583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10584)]
10585pub fn vdupq_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x16_t {
10586    static_assert_uimm_bits!(N, 3);
10587    unsafe {
10588        simd_shuffle!(
10589            a,
10590            a,
10591            [
10592                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10593                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10594            ]
10595        )
10596    }
10597}
10598#[doc = "Set all vector lanes to the same value"]
10599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s8)"]
10600#[inline(always)]
10601#[target_feature(enable = "neon")]
10602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10603#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10604#[cfg_attr(
10605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10606    assert_instr(dup, N = 4)
10607)]
10608#[rustc_legacy_const_generics(1)]
10609#[cfg_attr(
10610    not(target_arch = "arm"),
10611    stable(feature = "neon_intrinsics", since = "1.59.0")
10612)]
10613#[cfg_attr(
10614    target_arch = "arm",
10615    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10616)]
10617pub fn vdupq_lane_s8<const N: i32>(a: int8x8_t) -> int8x16_t {
10618    static_assert_uimm_bits!(N, 3);
10619    unsafe {
10620        simd_shuffle!(
10621            a,
10622            a,
10623            [
10624                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10625                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10626            ]
10627        )
10628    }
10629}
10630#[doc = "Set all vector lanes to the same value"]
10631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u8)"]
10632#[inline(always)]
10633#[target_feature(enable = "neon")]
10634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10635#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
10636#[cfg_attr(
10637    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10638    assert_instr(dup, N = 4)
10639)]
10640#[rustc_legacy_const_generics(1)]
10641#[cfg_attr(
10642    not(target_arch = "arm"),
10643    stable(feature = "neon_intrinsics", since = "1.59.0")
10644)]
10645#[cfg_attr(
10646    target_arch = "arm",
10647    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10648)]
10649pub fn vdupq_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x16_t {
10650    static_assert_uimm_bits!(N, 3);
10651    unsafe {
10652        simd_shuffle!(
10653            a,
10654            a,
10655            [
10656                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
10657                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
10658            ]
10659        )
10660    }
10661}
10662#[doc = "Set all vector lanes to the same value"]
10663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s64)"]
10664#[inline(always)]
10665#[target_feature(enable = "neon")]
10666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
10668#[cfg_attr(
10669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10670    assert_instr(nop, N = 0)
10671)]
10672#[rustc_legacy_const_generics(1)]
10673#[cfg_attr(
10674    not(target_arch = "arm"),
10675    stable(feature = "neon_intrinsics", since = "1.59.0")
10676)]
10677#[cfg_attr(
10678    target_arch = "arm",
10679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10680)]
10681pub fn vdup_lane_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
10682    static_assert!(N == 0);
10683    a
10684}
10685#[doc = "Set all vector lanes to the same value"]
10686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u64)"]
10687#[inline(always)]
10688#[target_feature(enable = "neon")]
10689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
10691#[cfg_attr(
10692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10693    assert_instr(nop, N = 0)
10694)]
10695#[rustc_legacy_const_generics(1)]
10696#[cfg_attr(
10697    not(target_arch = "arm"),
10698    stable(feature = "neon_intrinsics", since = "1.59.0")
10699)]
10700#[cfg_attr(
10701    target_arch = "arm",
10702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10703)]
10704pub fn vdup_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
10705    static_assert!(N == 0);
10706    a
10707}
10708#[doc = "Set all vector lanes to the same value"]
10709#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_f16)"]
10710#[inline(always)]
10711#[target_feature(enable = "neon")]
10712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10713#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10714#[cfg_attr(
10715    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10716    assert_instr(dup, N = 4)
10717)]
10718#[rustc_legacy_const_generics(1)]
10719#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
10720#[cfg_attr(
10721    not(target_arch = "arm"),
10722    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
10723)]
10724#[cfg_attr(
10725    target_arch = "arm",
10726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10727)]
10728#[cfg(not(target_arch = "arm64ec"))]
10729pub fn vdup_laneq_f16<const N: i32>(a: float16x8_t) -> float16x4_t {
10730    static_assert_uimm_bits!(N, 3);
10731    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10732}
10733#[doc = "Set all vector lanes to the same value"]
10734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_f16)"]
10735#[inline(always)]
10736#[target_feature(enable = "neon")]
10737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10738#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10739#[cfg_attr(
10740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10741    assert_instr(dup, N = 4)
10742)]
10743#[rustc_legacy_const_generics(1)]
10744#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
10745#[cfg_attr(
10746    not(target_arch = "arm"),
10747    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
10748)]
10749#[cfg_attr(
10750    target_arch = "arm",
10751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10752)]
10753#[cfg(not(target_arch = "arm64ec"))]
10754pub fn vdupq_laneq_f16<const N: i32>(a: float16x8_t) -> float16x8_t {
10755    static_assert_uimm_bits!(N, 3);
10756    unsafe {
10757        simd_shuffle!(
10758            a,
10759            a,
10760            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10761        )
10762    }
10763}
10764#[doc = "Set all vector lanes to the same value"]
10765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_f32)"]
10766#[inline(always)]
10767#[target_feature(enable = "neon")]
10768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10769#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10770#[cfg_attr(
10771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10772    assert_instr(dup, N = 2)
10773)]
10774#[rustc_legacy_const_generics(1)]
10775#[cfg_attr(
10776    not(target_arch = "arm"),
10777    stable(feature = "neon_intrinsics", since = "1.59.0")
10778)]
10779#[cfg_attr(
10780    target_arch = "arm",
10781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10782)]
10783pub fn vdup_laneq_f32<const N: i32>(a: float32x4_t) -> float32x2_t {
10784    static_assert_uimm_bits!(N, 2);
10785    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10786}
10787#[doc = "Set all vector lanes to the same value"]
10788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s32)"]
10789#[inline(always)]
10790#[target_feature(enable = "neon")]
10791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10792#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10793#[cfg_attr(
10794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10795    assert_instr(dup, N = 2)
10796)]
10797#[rustc_legacy_const_generics(1)]
10798#[cfg_attr(
10799    not(target_arch = "arm"),
10800    stable(feature = "neon_intrinsics", since = "1.59.0")
10801)]
10802#[cfg_attr(
10803    target_arch = "arm",
10804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10805)]
10806pub fn vdup_laneq_s32<const N: i32>(a: int32x4_t) -> int32x2_t {
10807    static_assert_uimm_bits!(N, 2);
10808    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10809}
10810#[doc = "Set all vector lanes to the same value"]
10811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u32)"]
10812#[inline(always)]
10813#[target_feature(enable = "neon")]
10814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10815#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10816#[cfg_attr(
10817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10818    assert_instr(dup, N = 2)
10819)]
10820#[rustc_legacy_const_generics(1)]
10821#[cfg_attr(
10822    not(target_arch = "arm"),
10823    stable(feature = "neon_intrinsics", since = "1.59.0")
10824)]
10825#[cfg_attr(
10826    target_arch = "arm",
10827    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10828)]
10829pub fn vdup_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x2_t {
10830    static_assert_uimm_bits!(N, 2);
10831    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
10832}
10833#[doc = "Set all vector lanes to the same value"]
10834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_f32)"]
10835#[inline(always)]
10836#[target_feature(enable = "neon")]
10837#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10838#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10839#[cfg_attr(
10840    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10841    assert_instr(dup, N = 2)
10842)]
10843#[rustc_legacy_const_generics(1)]
10844#[cfg_attr(
10845    not(target_arch = "arm"),
10846    stable(feature = "neon_intrinsics", since = "1.59.0")
10847)]
10848#[cfg_attr(
10849    target_arch = "arm",
10850    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10851)]
10852pub fn vdupq_laneq_f32<const N: i32>(a: float32x4_t) -> float32x4_t {
10853    static_assert_uimm_bits!(N, 2);
10854    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10855}
10856#[doc = "Set all vector lanes to the same value"]
10857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s32)"]
10858#[inline(always)]
10859#[target_feature(enable = "neon")]
10860#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10861#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10862#[cfg_attr(
10863    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10864    assert_instr(dup, N = 2)
10865)]
10866#[rustc_legacy_const_generics(1)]
10867#[cfg_attr(
10868    not(target_arch = "arm"),
10869    stable(feature = "neon_intrinsics", since = "1.59.0")
10870)]
10871#[cfg_attr(
10872    target_arch = "arm",
10873    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10874)]
10875pub fn vdupq_laneq_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
10876    static_assert_uimm_bits!(N, 2);
10877    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10878}
10879#[doc = "Set all vector lanes to the same value"]
10880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u32)"]
10881#[inline(always)]
10882#[target_feature(enable = "neon")]
10883#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10884#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
10885#[cfg_attr(
10886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10887    assert_instr(dup, N = 2)
10888)]
10889#[rustc_legacy_const_generics(1)]
10890#[cfg_attr(
10891    not(target_arch = "arm"),
10892    stable(feature = "neon_intrinsics", since = "1.59.0")
10893)]
10894#[cfg_attr(
10895    target_arch = "arm",
10896    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10897)]
10898pub fn vdupq_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
10899    static_assert_uimm_bits!(N, 2);
10900    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10901}
10902#[doc = "Set all vector lanes to the same value"]
10903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p16)"]
10904#[inline(always)]
10905#[target_feature(enable = "neon")]
10906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10907#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10908#[cfg_attr(
10909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10910    assert_instr(dup, N = 4)
10911)]
10912#[rustc_legacy_const_generics(1)]
10913#[cfg_attr(
10914    not(target_arch = "arm"),
10915    stable(feature = "neon_intrinsics", since = "1.59.0")
10916)]
10917#[cfg_attr(
10918    target_arch = "arm",
10919    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10920)]
10921pub fn vdup_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x4_t {
10922    static_assert_uimm_bits!(N, 3);
10923    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10924}
10925#[doc = "Set all vector lanes to the same value"]
10926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s16)"]
10927#[inline(always)]
10928#[target_feature(enable = "neon")]
10929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10930#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10931#[cfg_attr(
10932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10933    assert_instr(dup, N = 4)
10934)]
10935#[rustc_legacy_const_generics(1)]
10936#[cfg_attr(
10937    not(target_arch = "arm"),
10938    stable(feature = "neon_intrinsics", since = "1.59.0")
10939)]
10940#[cfg_attr(
10941    target_arch = "arm",
10942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10943)]
10944pub fn vdup_laneq_s16<const N: i32>(a: int16x8_t) -> int16x4_t {
10945    static_assert_uimm_bits!(N, 3);
10946    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10947}
10948#[doc = "Set all vector lanes to the same value"]
10949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u16)"]
10950#[inline(always)]
10951#[target_feature(enable = "neon")]
10952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10953#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10954#[cfg_attr(
10955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10956    assert_instr(dup, N = 4)
10957)]
10958#[rustc_legacy_const_generics(1)]
10959#[cfg_attr(
10960    not(target_arch = "arm"),
10961    stable(feature = "neon_intrinsics", since = "1.59.0")
10962)]
10963#[cfg_attr(
10964    target_arch = "arm",
10965    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10966)]
10967pub fn vdup_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x4_t {
10968    static_assert_uimm_bits!(N, 3);
10969    unsafe { simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32]) }
10970}
10971#[doc = "Set all vector lanes to the same value"]
10972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p16)"]
10973#[inline(always)]
10974#[target_feature(enable = "neon")]
10975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10976#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
10977#[cfg_attr(
10978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
10979    assert_instr(dup, N = 4)
10980)]
10981#[rustc_legacy_const_generics(1)]
10982#[cfg_attr(
10983    not(target_arch = "arm"),
10984    stable(feature = "neon_intrinsics", since = "1.59.0")
10985)]
10986#[cfg_attr(
10987    target_arch = "arm",
10988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
10989)]
10990pub fn vdupq_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x8_t {
10991    static_assert_uimm_bits!(N, 3);
10992    unsafe {
10993        simd_shuffle!(
10994            a,
10995            a,
10996            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
10997        )
10998    }
10999}
11000#[doc = "Set all vector lanes to the same value"]
11001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s16)"]
11002#[inline(always)]
11003#[target_feature(enable = "neon")]
11004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11005#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
11006#[cfg_attr(
11007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11008    assert_instr(dup, N = 4)
11009)]
11010#[rustc_legacy_const_generics(1)]
11011#[cfg_attr(
11012    not(target_arch = "arm"),
11013    stable(feature = "neon_intrinsics", since = "1.59.0")
11014)]
11015#[cfg_attr(
11016    target_arch = "arm",
11017    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11018)]
11019pub fn vdupq_laneq_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
11020    static_assert_uimm_bits!(N, 3);
11021    unsafe {
11022        simd_shuffle!(
11023            a,
11024            a,
11025            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
11026        )
11027    }
11028}
11029#[doc = "Set all vector lanes to the same value"]
11030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u16)"]
11031#[inline(always)]
11032#[target_feature(enable = "neon")]
11033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11034#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
11035#[cfg_attr(
11036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11037    assert_instr(dup, N = 4)
11038)]
11039#[rustc_legacy_const_generics(1)]
11040#[cfg_attr(
11041    not(target_arch = "arm"),
11042    stable(feature = "neon_intrinsics", since = "1.59.0")
11043)]
11044#[cfg_attr(
11045    target_arch = "arm",
11046    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11047)]
11048pub fn vdupq_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
11049    static_assert_uimm_bits!(N, 3);
11050    unsafe {
11051        simd_shuffle!(
11052            a,
11053            a,
11054            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
11055        )
11056    }
11057}
11058#[doc = "Set all vector lanes to the same value"]
11059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p8)"]
11060#[inline(always)]
11061#[target_feature(enable = "neon")]
11062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11063#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11064#[cfg_attr(
11065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11066    assert_instr(dup, N = 8)
11067)]
11068#[rustc_legacy_const_generics(1)]
11069#[cfg_attr(
11070    not(target_arch = "arm"),
11071    stable(feature = "neon_intrinsics", since = "1.59.0")
11072)]
11073#[cfg_attr(
11074    target_arch = "arm",
11075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11076)]
11077pub fn vdup_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x8_t {
11078    static_assert_uimm_bits!(N, 4);
11079    unsafe {
11080        simd_shuffle!(
11081            a,
11082            a,
11083            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
11084        )
11085    }
11086}
11087#[doc = "Set all vector lanes to the same value"]
11088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s8)"]
11089#[inline(always)]
11090#[target_feature(enable = "neon")]
11091#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11092#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11093#[cfg_attr(
11094    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11095    assert_instr(dup, N = 8)
11096)]
11097#[rustc_legacy_const_generics(1)]
11098#[cfg_attr(
11099    not(target_arch = "arm"),
11100    stable(feature = "neon_intrinsics", since = "1.59.0")
11101)]
11102#[cfg_attr(
11103    target_arch = "arm",
11104    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11105)]
11106pub fn vdup_laneq_s8<const N: i32>(a: int8x16_t) -> int8x8_t {
11107    static_assert_uimm_bits!(N, 4);
11108    unsafe {
11109        simd_shuffle!(
11110            a,
11111            a,
11112            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
11113        )
11114    }
11115}
11116#[doc = "Set all vector lanes to the same value"]
11117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u8)"]
11118#[inline(always)]
11119#[target_feature(enable = "neon")]
11120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11121#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11122#[cfg_attr(
11123    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11124    assert_instr(dup, N = 8)
11125)]
11126#[rustc_legacy_const_generics(1)]
11127#[cfg_attr(
11128    not(target_arch = "arm"),
11129    stable(feature = "neon_intrinsics", since = "1.59.0")
11130)]
11131#[cfg_attr(
11132    target_arch = "arm",
11133    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11134)]
11135pub fn vdup_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x8_t {
11136    static_assert_uimm_bits!(N, 4);
11137    unsafe {
11138        simd_shuffle!(
11139            a,
11140            a,
11141            [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32]
11142        )
11143    }
11144}
11145#[doc = "Set all vector lanes to the same value"]
11146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p8)"]
11147#[inline(always)]
11148#[target_feature(enable = "neon")]
11149#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11150#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11151#[cfg_attr(
11152    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11153    assert_instr(dup, N = 8)
11154)]
11155#[rustc_legacy_const_generics(1)]
11156#[cfg_attr(
11157    not(target_arch = "arm"),
11158    stable(feature = "neon_intrinsics", since = "1.59.0")
11159)]
11160#[cfg_attr(
11161    target_arch = "arm",
11162    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11163)]
11164pub fn vdupq_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x16_t {
11165    static_assert_uimm_bits!(N, 4);
11166    unsafe {
11167        simd_shuffle!(
11168            a,
11169            a,
11170            [
11171                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
11172                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
11173            ]
11174        )
11175    }
11176}
11177#[doc = "Set all vector lanes to the same value"]
11178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s8)"]
11179#[inline(always)]
11180#[target_feature(enable = "neon")]
11181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11182#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11183#[cfg_attr(
11184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11185    assert_instr(dup, N = 8)
11186)]
11187#[rustc_legacy_const_generics(1)]
11188#[cfg_attr(
11189    not(target_arch = "arm"),
11190    stable(feature = "neon_intrinsics", since = "1.59.0")
11191)]
11192#[cfg_attr(
11193    target_arch = "arm",
11194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11195)]
11196pub fn vdupq_laneq_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
11197    static_assert_uimm_bits!(N, 4);
11198    unsafe {
11199        simd_shuffle!(
11200            a,
11201            a,
11202            [
11203                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
11204                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
11205            ]
11206        )
11207    }
11208}
11209#[doc = "Set all vector lanes to the same value"]
11210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u8)"]
11211#[inline(always)]
11212#[target_feature(enable = "neon")]
11213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11214#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
11215#[cfg_attr(
11216    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11217    assert_instr(dup, N = 8)
11218)]
11219#[rustc_legacy_const_generics(1)]
11220#[cfg_attr(
11221    not(target_arch = "arm"),
11222    stable(feature = "neon_intrinsics", since = "1.59.0")
11223)]
11224#[cfg_attr(
11225    target_arch = "arm",
11226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11227)]
11228pub fn vdupq_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
11229    static_assert_uimm_bits!(N, 4);
11230    unsafe {
11231        simd_shuffle!(
11232            a,
11233            a,
11234            [
11235                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32,
11236                N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32
11237            ]
11238        )
11239    }
11240}
11241#[doc = "Set all vector lanes to the same value"]
11242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s64)"]
11243#[inline(always)]
11244#[target_feature(enable = "neon")]
11245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11247#[cfg_attr(
11248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11249    assert_instr(nop, N = 1)
11250)]
11251#[rustc_legacy_const_generics(1)]
11252#[cfg_attr(
11253    not(target_arch = "arm"),
11254    stable(feature = "neon_intrinsics", since = "1.59.0")
11255)]
11256#[cfg_attr(
11257    target_arch = "arm",
11258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11259)]
11260pub fn vdup_laneq_s64<const N: i32>(a: int64x2_t) -> int64x1_t {
11261    static_assert_uimm_bits!(N, 1);
11262    unsafe { transmute::<i64, _>(simd_extract!(a, N as u32)) }
11263}
11264#[doc = "Set all vector lanes to the same value"]
11265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u64)"]
11266#[inline(always)]
11267#[target_feature(enable = "neon")]
11268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11269#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11270#[cfg_attr(
11271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11272    assert_instr(nop, N = 1)
11273)]
11274#[rustc_legacy_const_generics(1)]
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_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x1_t {
11284    static_assert_uimm_bits!(N, 1);
11285    unsafe { transmute::<u64, _>(simd_extract!(a, N as u32)) }
11286}
11287#[doc = "Create a new vector with all lanes set to a value"]
11288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f16)"]
11289#[inline(always)]
11290#[target_feature(enable = "neon")]
11291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11292#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11293#[cfg_attr(
11294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11295    assert_instr(dup)
11296)]
11297#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
11298#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
11299#[cfg(not(target_arch = "arm64ec"))]
11300pub fn vdup_n_f16(a: f16) -> float16x4_t {
11301    float16x4_t::splat(a)
11302}
11303#[doc = "Create a new vector with all lanes set to a value"]
11304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f16)"]
11305#[inline(always)]
11306#[target_feature(enable = "neon")]
11307#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11308#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11309#[cfg_attr(
11310    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11311    assert_instr(dup)
11312)]
11313#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
11314#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
11315#[cfg(not(target_arch = "arm64ec"))]
11316pub fn vdupq_n_f16(a: f16) -> float16x8_t {
11317    float16x8_t::splat(a)
11318}
11319#[doc = "Duplicate vector element to vector or scalar"]
11320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f32)"]
11321#[inline(always)]
11322#[target_feature(enable = "neon")]
11323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11324#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11325#[cfg_attr(
11326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11327    assert_instr(dup)
11328)]
11329#[cfg_attr(
11330    not(target_arch = "arm"),
11331    stable(feature = "neon_intrinsics", since = "1.59.0")
11332)]
11333#[cfg_attr(
11334    target_arch = "arm",
11335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11336)]
11337pub fn vdup_n_f32(value: f32) -> float32x2_t {
11338    float32x2_t::splat(value)
11339}
11340#[doc = "Duplicate vector element to vector or scalar"]
11341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_p16)"]
11342#[inline(always)]
11343#[target_feature(enable = "neon")]
11344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11345#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11346#[cfg_attr(
11347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11348    assert_instr(dup)
11349)]
11350#[cfg_attr(
11351    not(target_arch = "arm"),
11352    stable(feature = "neon_intrinsics", since = "1.59.0")
11353)]
11354#[cfg_attr(
11355    target_arch = "arm",
11356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11357)]
11358pub fn vdup_n_p16(value: p16) -> poly16x4_t {
11359    poly16x4_t::splat(value)
11360}
11361#[doc = "Duplicate vector element to vector or scalar"]
11362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_p8)"]
11363#[inline(always)]
11364#[target_feature(enable = "neon")]
11365#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11366#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11367#[cfg_attr(
11368    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11369    assert_instr(dup)
11370)]
11371#[cfg_attr(
11372    not(target_arch = "arm"),
11373    stable(feature = "neon_intrinsics", since = "1.59.0")
11374)]
11375#[cfg_attr(
11376    target_arch = "arm",
11377    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11378)]
11379pub fn vdup_n_p8(value: p8) -> poly8x8_t {
11380    poly8x8_t::splat(value)
11381}
11382#[doc = "Duplicate vector element to vector or scalar"]
11383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s16)"]
11384#[inline(always)]
11385#[target_feature(enable = "neon")]
11386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11387#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11388#[cfg_attr(
11389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11390    assert_instr(dup)
11391)]
11392#[cfg_attr(
11393    not(target_arch = "arm"),
11394    stable(feature = "neon_intrinsics", since = "1.59.0")
11395)]
11396#[cfg_attr(
11397    target_arch = "arm",
11398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11399)]
11400pub fn vdup_n_s16(value: i16) -> int16x4_t {
11401    int16x4_t::splat(value)
11402}
11403#[doc = "Duplicate vector element to vector or scalar"]
11404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s32)"]
11405#[inline(always)]
11406#[target_feature(enable = "neon")]
11407#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11408#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11409#[cfg_attr(
11410    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11411    assert_instr(dup)
11412)]
11413#[cfg_attr(
11414    not(target_arch = "arm"),
11415    stable(feature = "neon_intrinsics", since = "1.59.0")
11416)]
11417#[cfg_attr(
11418    target_arch = "arm",
11419    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11420)]
11421pub fn vdup_n_s32(value: i32) -> int32x2_t {
11422    int32x2_t::splat(value)
11423}
11424#[doc = "Duplicate vector element to vector or scalar"]
11425#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s64)"]
11426#[inline(always)]
11427#[target_feature(enable = "neon")]
11428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11429#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11430#[cfg_attr(
11431    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11432    assert_instr(fmov)
11433)]
11434#[cfg_attr(
11435    not(target_arch = "arm"),
11436    stable(feature = "neon_intrinsics", since = "1.59.0")
11437)]
11438#[cfg_attr(
11439    target_arch = "arm",
11440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11441)]
11442pub fn vdup_n_s64(value: i64) -> int64x1_t {
11443    int64x1_t::splat(value)
11444}
11445#[doc = "Duplicate vector element to vector or scalar"]
11446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_s8)"]
11447#[inline(always)]
11448#[target_feature(enable = "neon")]
11449#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11450#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11451#[cfg_attr(
11452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11453    assert_instr(dup)
11454)]
11455#[cfg_attr(
11456    not(target_arch = "arm"),
11457    stable(feature = "neon_intrinsics", since = "1.59.0")
11458)]
11459#[cfg_attr(
11460    target_arch = "arm",
11461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11462)]
11463pub fn vdup_n_s8(value: i8) -> int8x8_t {
11464    int8x8_t::splat(value)
11465}
11466#[doc = "Duplicate vector element to vector or scalar"]
11467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u16)"]
11468#[inline(always)]
11469#[target_feature(enable = "neon")]
11470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11471#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11472#[cfg_attr(
11473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11474    assert_instr(dup)
11475)]
11476#[cfg_attr(
11477    not(target_arch = "arm"),
11478    stable(feature = "neon_intrinsics", since = "1.59.0")
11479)]
11480#[cfg_attr(
11481    target_arch = "arm",
11482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11483)]
11484pub fn vdup_n_u16(value: u16) -> uint16x4_t {
11485    uint16x4_t::splat(value)
11486}
11487#[doc = "Duplicate vector element to vector or scalar"]
11488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u32)"]
11489#[inline(always)]
11490#[target_feature(enable = "neon")]
11491#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11492#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11493#[cfg_attr(
11494    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11495    assert_instr(dup)
11496)]
11497#[cfg_attr(
11498    not(target_arch = "arm"),
11499    stable(feature = "neon_intrinsics", since = "1.59.0")
11500)]
11501#[cfg_attr(
11502    target_arch = "arm",
11503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11504)]
11505pub fn vdup_n_u32(value: u32) -> uint32x2_t {
11506    uint32x2_t::splat(value)
11507}
11508#[doc = "Duplicate vector element to vector or scalar"]
11509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u64)"]
11510#[inline(always)]
11511#[target_feature(enable = "neon")]
11512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11513#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11514#[cfg_attr(
11515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11516    assert_instr(fmov)
11517)]
11518#[cfg_attr(
11519    not(target_arch = "arm"),
11520    stable(feature = "neon_intrinsics", since = "1.59.0")
11521)]
11522#[cfg_attr(
11523    target_arch = "arm",
11524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11525)]
11526pub fn vdup_n_u64(value: u64) -> uint64x1_t {
11527    uint64x1_t::splat(value)
11528}
11529#[doc = "Duplicate vector element to vector or scalar"]
11530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_u8)"]
11531#[inline(always)]
11532#[target_feature(enable = "neon")]
11533#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11534#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11535#[cfg_attr(
11536    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11537    assert_instr(dup)
11538)]
11539#[cfg_attr(
11540    not(target_arch = "arm"),
11541    stable(feature = "neon_intrinsics", since = "1.59.0")
11542)]
11543#[cfg_attr(
11544    target_arch = "arm",
11545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11546)]
11547pub fn vdup_n_u8(value: u8) -> uint8x8_t {
11548    uint8x8_t::splat(value)
11549}
11550#[doc = "Duplicate vector element to vector or scalar"]
11551#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f32)"]
11552#[inline(always)]
11553#[target_feature(enable = "neon")]
11554#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11555#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11556#[cfg_attr(
11557    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11558    assert_instr(dup)
11559)]
11560#[cfg_attr(
11561    not(target_arch = "arm"),
11562    stable(feature = "neon_intrinsics", since = "1.59.0")
11563)]
11564#[cfg_attr(
11565    target_arch = "arm",
11566    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11567)]
11568pub fn vdupq_n_f32(value: f32) -> float32x4_t {
11569    float32x4_t::splat(value)
11570}
11571#[doc = "Duplicate vector element to vector or scalar"]
11572#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_p16)"]
11573#[inline(always)]
11574#[target_feature(enable = "neon")]
11575#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11576#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11577#[cfg_attr(
11578    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11579    assert_instr(dup)
11580)]
11581#[cfg_attr(
11582    not(target_arch = "arm"),
11583    stable(feature = "neon_intrinsics", since = "1.59.0")
11584)]
11585#[cfg_attr(
11586    target_arch = "arm",
11587    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11588)]
11589pub fn vdupq_n_p16(value: p16) -> poly16x8_t {
11590    poly16x8_t::splat(value)
11591}
11592#[doc = "Duplicate vector element to vector or scalar"]
11593#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_p8)"]
11594#[inline(always)]
11595#[target_feature(enable = "neon")]
11596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11597#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11598#[cfg_attr(
11599    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11600    assert_instr(dup)
11601)]
11602#[cfg_attr(
11603    not(target_arch = "arm"),
11604    stable(feature = "neon_intrinsics", since = "1.59.0")
11605)]
11606#[cfg_attr(
11607    target_arch = "arm",
11608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11609)]
11610pub fn vdupq_n_p8(value: p8) -> poly8x16_t {
11611    poly8x16_t::splat(value)
11612}
11613#[doc = "Duplicate vector element to vector or scalar"]
11614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s16)"]
11615#[inline(always)]
11616#[target_feature(enable = "neon")]
11617#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11618#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11619#[cfg_attr(
11620    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11621    assert_instr(dup)
11622)]
11623#[cfg_attr(
11624    not(target_arch = "arm"),
11625    stable(feature = "neon_intrinsics", since = "1.59.0")
11626)]
11627#[cfg_attr(
11628    target_arch = "arm",
11629    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11630)]
11631pub fn vdupq_n_s16(value: i16) -> int16x8_t {
11632    int16x8_t::splat(value)
11633}
11634#[doc = "Duplicate vector element to vector or scalar"]
11635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s32)"]
11636#[inline(always)]
11637#[target_feature(enable = "neon")]
11638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11639#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11640#[cfg_attr(
11641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11642    assert_instr(dup)
11643)]
11644#[cfg_attr(
11645    not(target_arch = "arm"),
11646    stable(feature = "neon_intrinsics", since = "1.59.0")
11647)]
11648#[cfg_attr(
11649    target_arch = "arm",
11650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11651)]
11652pub fn vdupq_n_s32(value: i32) -> int32x4_t {
11653    int32x4_t::splat(value)
11654}
11655#[doc = "Duplicate vector element to vector or scalar"]
11656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s64)"]
11657#[inline(always)]
11658#[target_feature(enable = "neon")]
11659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11660#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11661#[cfg_attr(
11662    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11663    assert_instr(dup)
11664)]
11665#[cfg_attr(
11666    not(target_arch = "arm"),
11667    stable(feature = "neon_intrinsics", since = "1.59.0")
11668)]
11669#[cfg_attr(
11670    target_arch = "arm",
11671    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11672)]
11673pub fn vdupq_n_s64(value: i64) -> int64x2_t {
11674    int64x2_t::splat(value)
11675}
11676#[doc = "Duplicate vector element to vector or scalar"]
11677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_s8)"]
11678#[inline(always)]
11679#[target_feature(enable = "neon")]
11680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11681#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11682#[cfg_attr(
11683    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11684    assert_instr(dup)
11685)]
11686#[cfg_attr(
11687    not(target_arch = "arm"),
11688    stable(feature = "neon_intrinsics", since = "1.59.0")
11689)]
11690#[cfg_attr(
11691    target_arch = "arm",
11692    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11693)]
11694pub fn vdupq_n_s8(value: i8) -> int8x16_t {
11695    int8x16_t::splat(value)
11696}
11697#[doc = "Duplicate vector element to vector or scalar"]
11698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u16)"]
11699#[inline(always)]
11700#[target_feature(enable = "neon")]
11701#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11702#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
11703#[cfg_attr(
11704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11705    assert_instr(dup)
11706)]
11707#[cfg_attr(
11708    not(target_arch = "arm"),
11709    stable(feature = "neon_intrinsics", since = "1.59.0")
11710)]
11711#[cfg_attr(
11712    target_arch = "arm",
11713    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11714)]
11715pub fn vdupq_n_u16(value: u16) -> uint16x8_t {
11716    uint16x8_t::splat(value)
11717}
11718#[doc = "Duplicate vector element to vector or scalar"]
11719#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u32)"]
11720#[inline(always)]
11721#[target_feature(enable = "neon")]
11722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11723#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11724#[cfg_attr(
11725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11726    assert_instr(dup)
11727)]
11728#[cfg_attr(
11729    not(target_arch = "arm"),
11730    stable(feature = "neon_intrinsics", since = "1.59.0")
11731)]
11732#[cfg_attr(
11733    target_arch = "arm",
11734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11735)]
11736pub fn vdupq_n_u32(value: u32) -> uint32x4_t {
11737    uint32x4_t::splat(value)
11738}
11739#[doc = "Duplicate vector element to vector or scalar"]
11740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u64)"]
11741#[inline(always)]
11742#[target_feature(enable = "neon")]
11743#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11744#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
11745#[cfg_attr(
11746    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11747    assert_instr(dup)
11748)]
11749#[cfg_attr(
11750    not(target_arch = "arm"),
11751    stable(feature = "neon_intrinsics", since = "1.59.0")
11752)]
11753#[cfg_attr(
11754    target_arch = "arm",
11755    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11756)]
11757pub fn vdupq_n_u64(value: u64) -> uint64x2_t {
11758    uint64x2_t::splat(value)
11759}
11760#[doc = "Duplicate vector element to vector or scalar"]
11761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_u8)"]
11762#[inline(always)]
11763#[target_feature(enable = "neon")]
11764#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11765#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
11766#[cfg_attr(
11767    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11768    assert_instr(dup)
11769)]
11770#[cfg_attr(
11771    not(target_arch = "arm"),
11772    stable(feature = "neon_intrinsics", since = "1.59.0")
11773)]
11774#[cfg_attr(
11775    target_arch = "arm",
11776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11777)]
11778pub fn vdupq_n_u8(value: u8) -> uint8x16_t {
11779    uint8x16_t::splat(value)
11780}
11781#[doc = "Duplicate vector element to vector or scalar"]
11782#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_n_f32_vfp4)"]
11783#[inline(always)]
11784#[target_feature(enable = "neon")]
11785#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
11786#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11787#[cfg_attr(
11788    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11789    assert_instr(dup)
11790)]
11791#[cfg_attr(
11792    not(target_arch = "arm"),
11793    stable(feature = "neon_intrinsics", since = "1.59.0")
11794)]
11795#[cfg_attr(
11796    target_arch = "arm",
11797    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11798)]
11799fn vdup_n_f32_vfp4(value: f32) -> float32x2_t {
11800    float32x2_t::splat(value)
11801}
11802#[doc = "Duplicate vector element to vector or scalar"]
11803#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_n_f32_vfp4)"]
11804#[inline(always)]
11805#[target_feature(enable = "neon")]
11806#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
11807#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
11808#[cfg_attr(
11809    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11810    assert_instr(dup)
11811)]
11812#[cfg_attr(
11813    not(target_arch = "arm"),
11814    stable(feature = "neon_intrinsics", since = "1.59.0")
11815)]
11816#[cfg_attr(
11817    target_arch = "arm",
11818    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11819)]
11820fn vdupq_n_f32_vfp4(value: f32) -> float32x4_t {
11821    float32x4_t::splat(value)
11822}
11823#[doc = "Set all vector lanes to the same value"]
11824#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s64)"]
11825#[inline(always)]
11826#[target_feature(enable = "neon")]
11827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
11829#[cfg_attr(
11830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11831    assert_instr(dup, N = 0)
11832)]
11833#[rustc_legacy_const_generics(1)]
11834#[cfg_attr(
11835    not(target_arch = "arm"),
11836    stable(feature = "neon_intrinsics", since = "1.59.0")
11837)]
11838#[cfg_attr(
11839    target_arch = "arm",
11840    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11841)]
11842pub fn vdupq_lane_s64<const N: i32>(a: int64x1_t) -> int64x2_t {
11843    static_assert!(N == 0);
11844    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11845}
11846#[doc = "Set all vector lanes to the same value"]
11847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u64)"]
11848#[inline(always)]
11849#[target_feature(enable = "neon")]
11850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
11852#[cfg_attr(
11853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11854    assert_instr(dup, N = 0)
11855)]
11856#[rustc_legacy_const_generics(1)]
11857#[cfg_attr(
11858    not(target_arch = "arm"),
11859    stable(feature = "neon_intrinsics", since = "1.59.0")
11860)]
11861#[cfg_attr(
11862    target_arch = "arm",
11863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11864)]
11865pub fn vdupq_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x2_t {
11866    static_assert!(N == 0);
11867    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11868}
11869#[doc = "Set all vector lanes to the same value"]
11870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s64)"]
11871#[inline(always)]
11872#[target_feature(enable = "neon")]
11873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11874#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11875#[cfg_attr(
11876    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11877    assert_instr(dup, N = 1)
11878)]
11879#[rustc_legacy_const_generics(1)]
11880#[cfg_attr(
11881    not(target_arch = "arm"),
11882    stable(feature = "neon_intrinsics", since = "1.59.0")
11883)]
11884#[cfg_attr(
11885    target_arch = "arm",
11886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11887)]
11888pub fn vdupq_laneq_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
11889    static_assert_uimm_bits!(N, 1);
11890    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11891}
11892#[doc = "Set all vector lanes to the same value"]
11893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u64)"]
11894#[inline(always)]
11895#[target_feature(enable = "neon")]
11896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
11898#[cfg_attr(
11899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11900    assert_instr(dup, N = 1)
11901)]
11902#[rustc_legacy_const_generics(1)]
11903#[cfg_attr(
11904    not(target_arch = "arm"),
11905    stable(feature = "neon_intrinsics", since = "1.59.0")
11906)]
11907#[cfg_attr(
11908    target_arch = "arm",
11909    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11910)]
11911pub fn vdupq_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
11912    static_assert_uimm_bits!(N, 1);
11913    unsafe { simd_shuffle!(a, a, [N as u32, N as u32]) }
11914}
11915#[doc = "Vector bitwise exclusive or (vector)"]
11916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s8)"]
11917#[inline(always)]
11918#[target_feature(enable = "neon")]
11919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11921#[cfg_attr(
11922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11923    assert_instr(eor)
11924)]
11925#[cfg_attr(
11926    not(target_arch = "arm"),
11927    stable(feature = "neon_intrinsics", since = "1.59.0")
11928)]
11929#[cfg_attr(
11930    target_arch = "arm",
11931    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11932)]
11933pub fn veor_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
11934    unsafe { simd_xor(a, b) }
11935}
11936#[doc = "Vector bitwise exclusive or (vector)"]
11937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s8)"]
11938#[inline(always)]
11939#[target_feature(enable = "neon")]
11940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11942#[cfg_attr(
11943    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11944    assert_instr(eor)
11945)]
11946#[cfg_attr(
11947    not(target_arch = "arm"),
11948    stable(feature = "neon_intrinsics", since = "1.59.0")
11949)]
11950#[cfg_attr(
11951    target_arch = "arm",
11952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11953)]
11954pub fn veorq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
11955    unsafe { simd_xor(a, b) }
11956}
11957#[doc = "Vector bitwise exclusive or (vector)"]
11958#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s16)"]
11959#[inline(always)]
11960#[target_feature(enable = "neon")]
11961#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11962#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11963#[cfg_attr(
11964    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11965    assert_instr(eor)
11966)]
11967#[cfg_attr(
11968    not(target_arch = "arm"),
11969    stable(feature = "neon_intrinsics", since = "1.59.0")
11970)]
11971#[cfg_attr(
11972    target_arch = "arm",
11973    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11974)]
11975pub fn veor_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
11976    unsafe { simd_xor(a, b) }
11977}
11978#[doc = "Vector bitwise exclusive or (vector)"]
11979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s16)"]
11980#[inline(always)]
11981#[target_feature(enable = "neon")]
11982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11983#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
11984#[cfg_attr(
11985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
11986    assert_instr(eor)
11987)]
11988#[cfg_attr(
11989    not(target_arch = "arm"),
11990    stable(feature = "neon_intrinsics", since = "1.59.0")
11991)]
11992#[cfg_attr(
11993    target_arch = "arm",
11994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
11995)]
11996pub fn veorq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
11997    unsafe { simd_xor(a, b) }
11998}
11999#[doc = "Vector bitwise exclusive or (vector)"]
12000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s32)"]
12001#[inline(always)]
12002#[target_feature(enable = "neon")]
12003#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12004#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12005#[cfg_attr(
12006    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12007    assert_instr(eor)
12008)]
12009#[cfg_attr(
12010    not(target_arch = "arm"),
12011    stable(feature = "neon_intrinsics", since = "1.59.0")
12012)]
12013#[cfg_attr(
12014    target_arch = "arm",
12015    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12016)]
12017pub fn veor_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
12018    unsafe { simd_xor(a, b) }
12019}
12020#[doc = "Vector bitwise exclusive or (vector)"]
12021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s32)"]
12022#[inline(always)]
12023#[target_feature(enable = "neon")]
12024#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12025#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12026#[cfg_attr(
12027    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12028    assert_instr(eor)
12029)]
12030#[cfg_attr(
12031    not(target_arch = "arm"),
12032    stable(feature = "neon_intrinsics", since = "1.59.0")
12033)]
12034#[cfg_attr(
12035    target_arch = "arm",
12036    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12037)]
12038pub fn veorq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
12039    unsafe { simd_xor(a, b) }
12040}
12041#[doc = "Vector bitwise exclusive or (vector)"]
12042#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s64)"]
12043#[inline(always)]
12044#[target_feature(enable = "neon")]
12045#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12046#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12047#[cfg_attr(
12048    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12049    assert_instr(eor)
12050)]
12051#[cfg_attr(
12052    not(target_arch = "arm"),
12053    stable(feature = "neon_intrinsics", since = "1.59.0")
12054)]
12055#[cfg_attr(
12056    target_arch = "arm",
12057    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12058)]
12059pub fn veor_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
12060    unsafe { simd_xor(a, b) }
12061}
12062#[doc = "Vector bitwise exclusive or (vector)"]
12063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s64)"]
12064#[inline(always)]
12065#[target_feature(enable = "neon")]
12066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12068#[cfg_attr(
12069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12070    assert_instr(eor)
12071)]
12072#[cfg_attr(
12073    not(target_arch = "arm"),
12074    stable(feature = "neon_intrinsics", since = "1.59.0")
12075)]
12076#[cfg_attr(
12077    target_arch = "arm",
12078    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12079)]
12080pub fn veorq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
12081    unsafe { simd_xor(a, b) }
12082}
12083#[doc = "Vector bitwise exclusive or (vector)"]
12084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u8)"]
12085#[inline(always)]
12086#[target_feature(enable = "neon")]
12087#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12088#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12089#[cfg_attr(
12090    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12091    assert_instr(eor)
12092)]
12093#[cfg_attr(
12094    not(target_arch = "arm"),
12095    stable(feature = "neon_intrinsics", since = "1.59.0")
12096)]
12097#[cfg_attr(
12098    target_arch = "arm",
12099    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12100)]
12101pub fn veor_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
12102    unsafe { simd_xor(a, b) }
12103}
12104#[doc = "Vector bitwise exclusive or (vector)"]
12105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u8)"]
12106#[inline(always)]
12107#[target_feature(enable = "neon")]
12108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12110#[cfg_attr(
12111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12112    assert_instr(eor)
12113)]
12114#[cfg_attr(
12115    not(target_arch = "arm"),
12116    stable(feature = "neon_intrinsics", since = "1.59.0")
12117)]
12118#[cfg_attr(
12119    target_arch = "arm",
12120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12121)]
12122pub fn veorq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
12123    unsafe { simd_xor(a, b) }
12124}
12125#[doc = "Vector bitwise exclusive or (vector)"]
12126#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u16)"]
12127#[inline(always)]
12128#[target_feature(enable = "neon")]
12129#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12130#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12131#[cfg_attr(
12132    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12133    assert_instr(eor)
12134)]
12135#[cfg_attr(
12136    not(target_arch = "arm"),
12137    stable(feature = "neon_intrinsics", since = "1.59.0")
12138)]
12139#[cfg_attr(
12140    target_arch = "arm",
12141    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12142)]
12143pub fn veor_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
12144    unsafe { simd_xor(a, b) }
12145}
12146#[doc = "Vector bitwise exclusive or (vector)"]
12147#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u16)"]
12148#[inline(always)]
12149#[target_feature(enable = "neon")]
12150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12152#[cfg_attr(
12153    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12154    assert_instr(eor)
12155)]
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 veorq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
12165    unsafe { simd_xor(a, b) }
12166}
12167#[doc = "Vector bitwise exclusive or (vector)"]
12168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u32)"]
12169#[inline(always)]
12170#[target_feature(enable = "neon")]
12171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12173#[cfg_attr(
12174    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12175    assert_instr(eor)
12176)]
12177#[cfg_attr(
12178    not(target_arch = "arm"),
12179    stable(feature = "neon_intrinsics", since = "1.59.0")
12180)]
12181#[cfg_attr(
12182    target_arch = "arm",
12183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12184)]
12185pub fn veor_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
12186    unsafe { simd_xor(a, b) }
12187}
12188#[doc = "Vector bitwise exclusive or (vector)"]
12189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u32)"]
12190#[inline(always)]
12191#[target_feature(enable = "neon")]
12192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12194#[cfg_attr(
12195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12196    assert_instr(eor)
12197)]
12198#[cfg_attr(
12199    not(target_arch = "arm"),
12200    stable(feature = "neon_intrinsics", since = "1.59.0")
12201)]
12202#[cfg_attr(
12203    target_arch = "arm",
12204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12205)]
12206pub fn veorq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
12207    unsafe { simd_xor(a, b) }
12208}
12209#[doc = "Vector bitwise exclusive or (vector)"]
12210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u64)"]
12211#[inline(always)]
12212#[target_feature(enable = "neon")]
12213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12214#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12215#[cfg_attr(
12216    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12217    assert_instr(eor)
12218)]
12219#[cfg_attr(
12220    not(target_arch = "arm"),
12221    stable(feature = "neon_intrinsics", since = "1.59.0")
12222)]
12223#[cfg_attr(
12224    target_arch = "arm",
12225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12226)]
12227pub fn veor_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
12228    unsafe { simd_xor(a, b) }
12229}
12230#[doc = "Vector bitwise exclusive or (vector)"]
12231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u64)"]
12232#[inline(always)]
12233#[target_feature(enable = "neon")]
12234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12235#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
12236#[cfg_attr(
12237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12238    assert_instr(eor)
12239)]
12240#[cfg_attr(
12241    not(target_arch = "arm"),
12242    stable(feature = "neon_intrinsics", since = "1.59.0")
12243)]
12244#[cfg_attr(
12245    target_arch = "arm",
12246    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12247)]
12248pub fn veorq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
12249    unsafe { simd_xor(a, b) }
12250}
12251#[doc = "Extract vector from pair of vectors"]
12252#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_f16)"]
12253#[inline(always)]
12254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12255#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12256#[cfg_attr(
12257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12258    assert_instr(ext, N = 3)
12259)]
12260#[rustc_legacy_const_generics(2)]
12261#[target_feature(enable = "neon,fp16")]
12262#[cfg_attr(
12263    not(target_arch = "arm"),
12264    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
12265)]
12266#[cfg_attr(
12267    target_arch = "arm",
12268    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12269)]
12270#[cfg(not(target_arch = "arm64ec"))]
12271pub fn vext_f16<const N: i32>(a: float16x4_t, b: float16x4_t) -> float16x4_t {
12272    static_assert_uimm_bits!(N, 2);
12273    unsafe {
12274        match N & 0b11 {
12275            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12276            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12277            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12278            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12279            _ => unreachable_unchecked(),
12280        }
12281    }
12282}
12283#[doc = "Extract vector from pair of vectors"]
12284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_f32)"]
12285#[inline(always)]
12286#[target_feature(enable = "neon")]
12287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12288#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
12289#[cfg_attr(
12290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12291    assert_instr(ext, N = 1)
12292)]
12293#[rustc_legacy_const_generics(2)]
12294#[cfg_attr(
12295    not(target_arch = "arm"),
12296    stable(feature = "neon_intrinsics", since = "1.59.0")
12297)]
12298#[cfg_attr(
12299    target_arch = "arm",
12300    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12301)]
12302pub fn vext_f32<const N: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
12303    static_assert_uimm_bits!(N, 1);
12304    unsafe {
12305        match N & 0b1 {
12306            0 => simd_shuffle!(a, b, [0, 1]),
12307            1 => simd_shuffle!(a, b, [1, 2]),
12308            _ => unreachable_unchecked(),
12309        }
12310    }
12311}
12312#[doc = "Extract vector from pair of vectors"]
12313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s32)"]
12314#[inline(always)]
12315#[target_feature(enable = "neon")]
12316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12317#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
12318#[cfg_attr(
12319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12320    assert_instr(ext, N = 1)
12321)]
12322#[rustc_legacy_const_generics(2)]
12323#[cfg_attr(
12324    not(target_arch = "arm"),
12325    stable(feature = "neon_intrinsics", since = "1.59.0")
12326)]
12327#[cfg_attr(
12328    target_arch = "arm",
12329    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12330)]
12331pub fn vext_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
12332    static_assert_uimm_bits!(N, 1);
12333    unsafe {
12334        match N & 0b1 {
12335            0 => simd_shuffle!(a, b, [0, 1]),
12336            1 => simd_shuffle!(a, b, [1, 2]),
12337            _ => unreachable_unchecked(),
12338        }
12339    }
12340}
12341#[doc = "Extract vector from pair of vectors"]
12342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u32)"]
12343#[inline(always)]
12344#[target_feature(enable = "neon")]
12345#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12346#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
12347#[cfg_attr(
12348    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12349    assert_instr(ext, N = 1)
12350)]
12351#[rustc_legacy_const_generics(2)]
12352#[cfg_attr(
12353    not(target_arch = "arm"),
12354    stable(feature = "neon_intrinsics", since = "1.59.0")
12355)]
12356#[cfg_attr(
12357    target_arch = "arm",
12358    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12359)]
12360pub fn vext_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
12361    static_assert_uimm_bits!(N, 1);
12362    unsafe {
12363        match N & 0b1 {
12364            0 => simd_shuffle!(a, b, [0, 1]),
12365            1 => simd_shuffle!(a, b, [1, 2]),
12366            _ => unreachable_unchecked(),
12367        }
12368    }
12369}
12370#[doc = "Extract vector from pair of vectors"]
12371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s64)"]
12372#[doc = "## Safety"]
12373#[doc = "  * Neon intrinsic unsafe"]
12374#[inline(always)]
12375#[target_feature(enable = "neon")]
12376#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12377#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
12378#[cfg_attr(
12379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12380    assert_instr(nop, N = 0)
12381)]
12382#[rustc_legacy_const_generics(2)]
12383#[cfg_attr(
12384    not(target_arch = "arm"),
12385    stable(feature = "neon_intrinsics", since = "1.59.0")
12386)]
12387#[cfg_attr(
12388    target_arch = "arm",
12389    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12390)]
12391pub unsafe fn vext_s64<const N: i32>(a: int64x1_t, _b: int64x1_t) -> int64x1_t {
12392    static_assert!(N == 0);
12393    a
12394}
12395#[doc = "Extract vector from pair of vectors"]
12396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u64)"]
12397#[doc = "## Safety"]
12398#[doc = "  * Neon intrinsic unsafe"]
12399#[inline(always)]
12400#[target_feature(enable = "neon")]
12401#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12402#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
12403#[cfg_attr(
12404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12405    assert_instr(nop, N = 0)
12406)]
12407#[rustc_legacy_const_generics(2)]
12408#[cfg_attr(
12409    not(target_arch = "arm"),
12410    stable(feature = "neon_intrinsics", since = "1.59.0")
12411)]
12412#[cfg_attr(
12413    target_arch = "arm",
12414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12415)]
12416pub unsafe fn vext_u64<const N: i32>(a: uint64x1_t, _b: uint64x1_t) -> uint64x1_t {
12417    static_assert!(N == 0);
12418    a
12419}
12420#[doc = "Extract vector from pair of vectors"]
12421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s8)"]
12422#[inline(always)]
12423#[target_feature(enable = "neon")]
12424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12425#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12426#[cfg_attr(
12427    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12428    assert_instr(ext, N = 7)
12429)]
12430#[rustc_legacy_const_generics(2)]
12431#[cfg_attr(
12432    not(target_arch = "arm"),
12433    stable(feature = "neon_intrinsics", since = "1.59.0")
12434)]
12435#[cfg_attr(
12436    target_arch = "arm",
12437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12438)]
12439pub fn vext_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
12440    static_assert_uimm_bits!(N, 3);
12441    unsafe {
12442        match N & 0b111 {
12443            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12444            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12445            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12446            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12447            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12448            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12449            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12450            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12451            _ => unreachable_unchecked(),
12452        }
12453    }
12454}
12455#[doc = "Extract vector from pair of vectors"]
12456#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s16)"]
12457#[inline(always)]
12458#[target_feature(enable = "neon")]
12459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12460#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12461#[cfg_attr(
12462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12463    assert_instr(ext, N = 7)
12464)]
12465#[rustc_legacy_const_generics(2)]
12466#[cfg_attr(
12467    not(target_arch = "arm"),
12468    stable(feature = "neon_intrinsics", since = "1.59.0")
12469)]
12470#[cfg_attr(
12471    target_arch = "arm",
12472    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12473)]
12474pub fn vextq_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
12475    static_assert_uimm_bits!(N, 3);
12476    unsafe {
12477        match N & 0b111 {
12478            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12479            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12480            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12481            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12482            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12483            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12484            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12485            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12486            _ => unreachable_unchecked(),
12487        }
12488    }
12489}
12490#[doc = "Extract vector from pair of vectors"]
12491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u8)"]
12492#[inline(always)]
12493#[target_feature(enable = "neon")]
12494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12495#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12496#[cfg_attr(
12497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12498    assert_instr(ext, N = 7)
12499)]
12500#[rustc_legacy_const_generics(2)]
12501#[cfg_attr(
12502    not(target_arch = "arm"),
12503    stable(feature = "neon_intrinsics", since = "1.59.0")
12504)]
12505#[cfg_attr(
12506    target_arch = "arm",
12507    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12508)]
12509pub fn vext_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
12510    static_assert_uimm_bits!(N, 3);
12511    unsafe {
12512        match N & 0b111 {
12513            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12514            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12515            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12516            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12517            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12518            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12519            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12520            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12521            _ => unreachable_unchecked(),
12522        }
12523    }
12524}
12525#[doc = "Extract vector from pair of vectors"]
12526#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u16)"]
12527#[inline(always)]
12528#[target_feature(enable = "neon")]
12529#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12530#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12531#[cfg_attr(
12532    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12533    assert_instr(ext, N = 7)
12534)]
12535#[rustc_legacy_const_generics(2)]
12536#[cfg_attr(
12537    not(target_arch = "arm"),
12538    stable(feature = "neon_intrinsics", since = "1.59.0")
12539)]
12540#[cfg_attr(
12541    target_arch = "arm",
12542    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12543)]
12544pub fn vextq_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
12545    static_assert_uimm_bits!(N, 3);
12546    unsafe {
12547        match N & 0b111 {
12548            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12549            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12550            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12551            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12552            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12553            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12554            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12555            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12556            _ => unreachable_unchecked(),
12557        }
12558    }
12559}
12560#[doc = "Extract vector from pair of vectors"]
12561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p8)"]
12562#[inline(always)]
12563#[target_feature(enable = "neon")]
12564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12565#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12566#[cfg_attr(
12567    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12568    assert_instr(ext, N = 7)
12569)]
12570#[rustc_legacy_const_generics(2)]
12571#[cfg_attr(
12572    not(target_arch = "arm"),
12573    stable(feature = "neon_intrinsics", since = "1.59.0")
12574)]
12575#[cfg_attr(
12576    target_arch = "arm",
12577    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12578)]
12579pub fn vext_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
12580    static_assert_uimm_bits!(N, 3);
12581    unsafe {
12582        match N & 0b111 {
12583            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12584            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12585            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12586            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12587            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12588            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12589            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12590            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12591            _ => unreachable_unchecked(),
12592        }
12593    }
12594}
12595#[doc = "Extract vector from pair of vectors"]
12596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p16)"]
12597#[inline(always)]
12598#[target_feature(enable = "neon")]
12599#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12600#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12601#[cfg_attr(
12602    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12603    assert_instr(ext, N = 7)
12604)]
12605#[rustc_legacy_const_generics(2)]
12606#[cfg_attr(
12607    not(target_arch = "arm"),
12608    stable(feature = "neon_intrinsics", since = "1.59.0")
12609)]
12610#[cfg_attr(
12611    target_arch = "arm",
12612    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12613)]
12614pub fn vextq_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
12615    static_assert_uimm_bits!(N, 3);
12616    unsafe {
12617        match N & 0b111 {
12618            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12619            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12620            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12621            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12622            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12623            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12624            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12625            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12626            _ => unreachable_unchecked(),
12627        }
12628    }
12629}
12630#[doc = "Extract vector from pair of vectors"]
12631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_f16)"]
12632#[inline(always)]
12633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12634#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
12635#[cfg_attr(
12636    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12637    assert_instr(ext, N = 7)
12638)]
12639#[rustc_legacy_const_generics(2)]
12640#[target_feature(enable = "neon,fp16")]
12641#[cfg_attr(
12642    not(target_arch = "arm"),
12643    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
12644)]
12645#[cfg_attr(
12646    target_arch = "arm",
12647    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12648)]
12649#[cfg(not(target_arch = "arm64ec"))]
12650pub fn vextq_f16<const N: i32>(a: float16x8_t, b: float16x8_t) -> float16x8_t {
12651    static_assert_uimm_bits!(N, 3);
12652    unsafe {
12653        match N & 0b111 {
12654            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
12655            1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
12656            2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
12657            3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
12658            4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
12659            5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
12660            6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
12661            7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
12662            _ => unreachable_unchecked(),
12663        }
12664    }
12665}
12666#[doc = "Extract vector from pair of vectors"]
12667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_f32)"]
12668#[inline(always)]
12669#[target_feature(enable = "neon")]
12670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12671#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12672#[cfg_attr(
12673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12674    assert_instr(ext, N = 3)
12675)]
12676#[rustc_legacy_const_generics(2)]
12677#[cfg_attr(
12678    not(target_arch = "arm"),
12679    stable(feature = "neon_intrinsics", since = "1.59.0")
12680)]
12681#[cfg_attr(
12682    target_arch = "arm",
12683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12684)]
12685pub fn vextq_f32<const N: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
12686    static_assert_uimm_bits!(N, 2);
12687    unsafe {
12688        match N & 0b11 {
12689            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12690            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12691            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12692            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12693            _ => unreachable_unchecked(),
12694        }
12695    }
12696}
12697#[doc = "Extract vector from pair of vectors"]
12698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s16)"]
12699#[inline(always)]
12700#[target_feature(enable = "neon")]
12701#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12702#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12703#[cfg_attr(
12704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12705    assert_instr(ext, N = 3)
12706)]
12707#[rustc_legacy_const_generics(2)]
12708#[cfg_attr(
12709    not(target_arch = "arm"),
12710    stable(feature = "neon_intrinsics", since = "1.59.0")
12711)]
12712#[cfg_attr(
12713    target_arch = "arm",
12714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12715)]
12716pub fn vext_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
12717    static_assert_uimm_bits!(N, 2);
12718    unsafe {
12719        match N & 0b11 {
12720            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12721            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12722            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12723            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12724            _ => unreachable_unchecked(),
12725        }
12726    }
12727}
12728#[doc = "Extract vector from pair of vectors"]
12729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s32)"]
12730#[inline(always)]
12731#[target_feature(enable = "neon")]
12732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12733#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12734#[cfg_attr(
12735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12736    assert_instr(ext, N = 3)
12737)]
12738#[rustc_legacy_const_generics(2)]
12739#[cfg_attr(
12740    not(target_arch = "arm"),
12741    stable(feature = "neon_intrinsics", since = "1.59.0")
12742)]
12743#[cfg_attr(
12744    target_arch = "arm",
12745    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12746)]
12747pub fn vextq_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
12748    static_assert_uimm_bits!(N, 2);
12749    unsafe {
12750        match N & 0b11 {
12751            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12752            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12753            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12754            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12755            _ => unreachable_unchecked(),
12756        }
12757    }
12758}
12759#[doc = "Extract vector from pair of vectors"]
12760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u16)"]
12761#[inline(always)]
12762#[target_feature(enable = "neon")]
12763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12764#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12765#[cfg_attr(
12766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12767    assert_instr(ext, N = 3)
12768)]
12769#[rustc_legacy_const_generics(2)]
12770#[cfg_attr(
12771    not(target_arch = "arm"),
12772    stable(feature = "neon_intrinsics", since = "1.59.0")
12773)]
12774#[cfg_attr(
12775    target_arch = "arm",
12776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12777)]
12778pub fn vext_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
12779    static_assert_uimm_bits!(N, 2);
12780    unsafe {
12781        match N & 0b11 {
12782            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12783            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12784            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12785            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12786            _ => unreachable_unchecked(),
12787        }
12788    }
12789}
12790#[doc = "Extract vector from pair of vectors"]
12791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u32)"]
12792#[inline(always)]
12793#[target_feature(enable = "neon")]
12794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12795#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12796#[cfg_attr(
12797    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12798    assert_instr(ext, N = 3)
12799)]
12800#[rustc_legacy_const_generics(2)]
12801#[cfg_attr(
12802    not(target_arch = "arm"),
12803    stable(feature = "neon_intrinsics", since = "1.59.0")
12804)]
12805#[cfg_attr(
12806    target_arch = "arm",
12807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12808)]
12809pub fn vextq_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
12810    static_assert_uimm_bits!(N, 2);
12811    unsafe {
12812        match N & 0b11 {
12813            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12814            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12815            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12816            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12817            _ => unreachable_unchecked(),
12818        }
12819    }
12820}
12821#[doc = "Extract vector from pair of vectors"]
12822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p16)"]
12823#[inline(always)]
12824#[target_feature(enable = "neon")]
12825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12826#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
12827#[cfg_attr(
12828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12829    assert_instr(ext, N = 3)
12830)]
12831#[rustc_legacy_const_generics(2)]
12832#[cfg_attr(
12833    not(target_arch = "arm"),
12834    stable(feature = "neon_intrinsics", since = "1.59.0")
12835)]
12836#[cfg_attr(
12837    target_arch = "arm",
12838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12839)]
12840pub fn vext_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
12841    static_assert_uimm_bits!(N, 2);
12842    unsafe {
12843        match N & 0b11 {
12844            0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
12845            1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
12846            2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
12847            3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
12848            _ => unreachable_unchecked(),
12849        }
12850    }
12851}
12852#[doc = "Extract vector from pair of vectors"]
12853#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s64)"]
12854#[inline(always)]
12855#[target_feature(enable = "neon")]
12856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
12858#[cfg_attr(
12859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12860    assert_instr(ext, N = 1)
12861)]
12862#[rustc_legacy_const_generics(2)]
12863#[cfg_attr(
12864    not(target_arch = "arm"),
12865    stable(feature = "neon_intrinsics", since = "1.59.0")
12866)]
12867#[cfg_attr(
12868    target_arch = "arm",
12869    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12870)]
12871pub fn vextq_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
12872    static_assert_uimm_bits!(N, 1);
12873    unsafe {
12874        match N & 0b1 {
12875            0 => simd_shuffle!(a, b, [0, 1]),
12876            1 => simd_shuffle!(a, b, [1, 2]),
12877            _ => unreachable_unchecked(),
12878        }
12879    }
12880}
12881#[doc = "Extract vector from pair of vectors"]
12882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u64)"]
12883#[inline(always)]
12884#[target_feature(enable = "neon")]
12885#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12886#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
12887#[cfg_attr(
12888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12889    assert_instr(ext, N = 1)
12890)]
12891#[rustc_legacy_const_generics(2)]
12892#[cfg_attr(
12893    not(target_arch = "arm"),
12894    stable(feature = "neon_intrinsics", since = "1.59.0")
12895)]
12896#[cfg_attr(
12897    target_arch = "arm",
12898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12899)]
12900pub fn vextq_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
12901    static_assert_uimm_bits!(N, 1);
12902    unsafe {
12903        match N & 0b1 {
12904            0 => simd_shuffle!(a, b, [0, 1]),
12905            1 => simd_shuffle!(a, b, [1, 2]),
12906            _ => unreachable_unchecked(),
12907        }
12908    }
12909}
12910#[doc = "Extract vector from pair of vectors"]
12911#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s8)"]
12912#[inline(always)]
12913#[target_feature(enable = "neon")]
12914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12915#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
12916#[cfg_attr(
12917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
12918    assert_instr(ext, N = 15)
12919)]
12920#[rustc_legacy_const_generics(2)]
12921#[cfg_attr(
12922    not(target_arch = "arm"),
12923    stable(feature = "neon_intrinsics", since = "1.59.0")
12924)]
12925#[cfg_attr(
12926    target_arch = "arm",
12927    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
12928)]
12929pub fn vextq_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
12930    static_assert_uimm_bits!(N, 4);
12931    unsafe {
12932        match N & 0b1111 {
12933            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
12934            1 => simd_shuffle!(
12935                a,
12936                b,
12937                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
12938            ),
12939            2 => simd_shuffle!(
12940                a,
12941                b,
12942                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
12943            ),
12944            3 => simd_shuffle!(
12945                a,
12946                b,
12947                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
12948            ),
12949            4 => simd_shuffle!(
12950                a,
12951                b,
12952                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
12953            ),
12954            5 => simd_shuffle!(
12955                a,
12956                b,
12957                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
12958            ),
12959            6 => simd_shuffle!(
12960                a,
12961                b,
12962                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
12963            ),
12964            7 => simd_shuffle!(
12965                a,
12966                b,
12967                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
12968            ),
12969            8 => simd_shuffle!(
12970                a,
12971                b,
12972                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12973            ),
12974            9 => simd_shuffle!(
12975                a,
12976                b,
12977                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
12978            ),
12979            10 => simd_shuffle!(
12980                a,
12981                b,
12982                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
12983            ),
12984            11 => simd_shuffle!(
12985                a,
12986                b,
12987                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
12988            ),
12989            12 => simd_shuffle!(
12990                a,
12991                b,
12992                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
12993            ),
12994            13 => simd_shuffle!(
12995                a,
12996                b,
12997                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
12998            ),
12999            14 => simd_shuffle!(
13000                a,
13001                b,
13002                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
13003            ),
13004            15 => simd_shuffle!(
13005                a,
13006                b,
13007                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
13008            ),
13009            _ => unreachable_unchecked(),
13010        }
13011    }
13012}
13013#[doc = "Extract vector from pair of vectors"]
13014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u8)"]
13015#[inline(always)]
13016#[target_feature(enable = "neon")]
13017#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13018#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
13019#[cfg_attr(
13020    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13021    assert_instr(ext, N = 15)
13022)]
13023#[rustc_legacy_const_generics(2)]
13024#[cfg_attr(
13025    not(target_arch = "arm"),
13026    stable(feature = "neon_intrinsics", since = "1.59.0")
13027)]
13028#[cfg_attr(
13029    target_arch = "arm",
13030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13031)]
13032pub fn vextq_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
13033    static_assert_uimm_bits!(N, 4);
13034    unsafe {
13035        match N & 0b1111 {
13036            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
13037            1 => simd_shuffle!(
13038                a,
13039                b,
13040                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
13041            ),
13042            2 => simd_shuffle!(
13043                a,
13044                b,
13045                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
13046            ),
13047            3 => simd_shuffle!(
13048                a,
13049                b,
13050                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
13051            ),
13052            4 => simd_shuffle!(
13053                a,
13054                b,
13055                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
13056            ),
13057            5 => simd_shuffle!(
13058                a,
13059                b,
13060                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
13061            ),
13062            6 => simd_shuffle!(
13063                a,
13064                b,
13065                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
13066            ),
13067            7 => simd_shuffle!(
13068                a,
13069                b,
13070                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
13071            ),
13072            8 => simd_shuffle!(
13073                a,
13074                b,
13075                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
13076            ),
13077            9 => simd_shuffle!(
13078                a,
13079                b,
13080                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
13081            ),
13082            10 => simd_shuffle!(
13083                a,
13084                b,
13085                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
13086            ),
13087            11 => simd_shuffle!(
13088                a,
13089                b,
13090                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
13091            ),
13092            12 => simd_shuffle!(
13093                a,
13094                b,
13095                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
13096            ),
13097            13 => simd_shuffle!(
13098                a,
13099                b,
13100                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
13101            ),
13102            14 => simd_shuffle!(
13103                a,
13104                b,
13105                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
13106            ),
13107            15 => simd_shuffle!(
13108                a,
13109                b,
13110                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
13111            ),
13112            _ => unreachable_unchecked(),
13113        }
13114    }
13115}
13116#[doc = "Extract vector from pair of vectors"]
13117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p8)"]
13118#[inline(always)]
13119#[target_feature(enable = "neon")]
13120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13121#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
13122#[cfg_attr(
13123    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13124    assert_instr(ext, N = 15)
13125)]
13126#[rustc_legacy_const_generics(2)]
13127#[cfg_attr(
13128    not(target_arch = "arm"),
13129    stable(feature = "neon_intrinsics", since = "1.59.0")
13130)]
13131#[cfg_attr(
13132    target_arch = "arm",
13133    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13134)]
13135pub fn vextq_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
13136    static_assert_uimm_bits!(N, 4);
13137    unsafe {
13138        match N & 0b1111 {
13139            0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
13140            1 => simd_shuffle!(
13141                a,
13142                b,
13143                [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
13144            ),
13145            2 => simd_shuffle!(
13146                a,
13147                b,
13148                [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
13149            ),
13150            3 => simd_shuffle!(
13151                a,
13152                b,
13153                [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
13154            ),
13155            4 => simd_shuffle!(
13156                a,
13157                b,
13158                [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
13159            ),
13160            5 => simd_shuffle!(
13161                a,
13162                b,
13163                [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
13164            ),
13165            6 => simd_shuffle!(
13166                a,
13167                b,
13168                [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]
13169            ),
13170            7 => simd_shuffle!(
13171                a,
13172                b,
13173                [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
13174            ),
13175            8 => simd_shuffle!(
13176                a,
13177                b,
13178                [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
13179            ),
13180            9 => simd_shuffle!(
13181                a,
13182                b,
13183                [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]
13184            ),
13185            10 => simd_shuffle!(
13186                a,
13187                b,
13188                [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]
13189            ),
13190            11 => simd_shuffle!(
13191                a,
13192                b,
13193                [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]
13194            ),
13195            12 => simd_shuffle!(
13196                a,
13197                b,
13198                [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]
13199            ),
13200            13 => simd_shuffle!(
13201                a,
13202                b,
13203                [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]
13204            ),
13205            14 => simd_shuffle!(
13206                a,
13207                b,
13208                [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
13209            ),
13210            15 => simd_shuffle!(
13211                a,
13212                b,
13213                [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
13214            ),
13215            _ => unreachable_unchecked(),
13216        }
13217    }
13218}
13219#[doc = "Floating-point fused Multiply-Add to accumulator (vector)"]
13220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_f16)"]
13221#[inline(always)]
13222#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13223#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13224#[cfg_attr(
13225    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13226    assert_instr(fmla)
13227)]
13228#[target_feature(enable = "neon,fp16")]
13229#[cfg_attr(
13230    not(target_arch = "arm"),
13231    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13232)]
13233#[cfg_attr(
13234    target_arch = "arm",
13235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13236)]
13237#[cfg(not(target_arch = "arm64ec"))]
13238pub fn vfma_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
13239    unsafe { simd_fma(b, c, a) }
13240}
13241#[doc = "Floating-point fused Multiply-Add to accumulator (vector)"]
13242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_f16)"]
13243#[inline(always)]
13244#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13245#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13246#[cfg_attr(
13247    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13248    assert_instr(fmla)
13249)]
13250#[target_feature(enable = "neon,fp16")]
13251#[cfg_attr(
13252    not(target_arch = "arm"),
13253    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13254)]
13255#[cfg_attr(
13256    target_arch = "arm",
13257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13258)]
13259#[cfg(not(target_arch = "arm64ec"))]
13260pub fn vfmaq_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
13261    unsafe { simd_fma(b, c, a) }
13262}
13263#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_f32)"]
13265#[inline(always)]
13266#[target_feature(enable = "neon")]
13267#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13268#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13269#[cfg_attr(
13270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13271    assert_instr(fmla)
13272)]
13273#[cfg_attr(
13274    not(target_arch = "arm"),
13275    stable(feature = "neon_intrinsics", since = "1.59.0")
13276)]
13277#[cfg_attr(
13278    target_arch = "arm",
13279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13280)]
13281pub fn vfma_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
13282    unsafe { simd_fma(b, c, a) }
13283}
13284#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_f32)"]
13286#[inline(always)]
13287#[target_feature(enable = "neon")]
13288#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13290#[cfg_attr(
13291    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13292    assert_instr(fmla)
13293)]
13294#[cfg_attr(
13295    not(target_arch = "arm"),
13296    stable(feature = "neon_intrinsics", since = "1.59.0")
13297)]
13298#[cfg_attr(
13299    target_arch = "arm",
13300    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13301)]
13302pub fn vfmaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
13303    unsafe { simd_fma(b, c, a) }
13304}
13305#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13306#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_n_f32)"]
13307#[inline(always)]
13308#[target_feature(enable = "neon")]
13309#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13310#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13311#[cfg_attr(
13312    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13313    assert_instr(fmla)
13314)]
13315#[cfg_attr(
13316    not(target_arch = "arm"),
13317    stable(feature = "neon_intrinsics", since = "1.59.0")
13318)]
13319#[cfg_attr(
13320    target_arch = "arm",
13321    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13322)]
13323pub fn vfma_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
13324    vfma_f32(a, b, vdup_n_f32_vfp4(c))
13325}
13326#[doc = "Floating-point fused Multiply-Add to accumulator(vector)"]
13327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_n_f32)"]
13328#[inline(always)]
13329#[target_feature(enable = "neon")]
13330#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
13332#[cfg_attr(
13333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13334    assert_instr(fmla)
13335)]
13336#[cfg_attr(
13337    not(target_arch = "arm"),
13338    stable(feature = "neon_intrinsics", since = "1.59.0")
13339)]
13340#[cfg_attr(
13341    target_arch = "arm",
13342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13343)]
13344pub fn vfmaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
13345    vfmaq_f32(a, b, vdupq_n_f32_vfp4(c))
13346}
13347#[doc = "Floating-point fused multiply-subtract from accumulator"]
13348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_f16)"]
13349#[inline(always)]
13350#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
13351#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13352#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
13353#[cfg_attr(
13354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13355    assert_instr(fmls)
13356)]
13357#[target_feature(enable = "neon,fp16")]
13358#[cfg_attr(
13359    not(target_arch = "arm"),
13360    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13361)]
13362#[cfg_attr(
13363    target_arch = "arm",
13364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13365)]
13366#[cfg(not(target_arch = "arm64ec"))]
13367pub fn vfms_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t) -> float16x4_t {
13368    unsafe {
13369        let b: float16x4_t = simd_neg(b);
13370        vfma_f16(a, b, c)
13371    }
13372}
13373#[doc = "Floating-point fused multiply-subtract from accumulator"]
13374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_f16)"]
13375#[inline(always)]
13376#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
13377#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13378#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
13379#[cfg_attr(
13380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13381    assert_instr(fmls)
13382)]
13383#[target_feature(enable = "neon,fp16")]
13384#[cfg_attr(
13385    not(target_arch = "arm"),
13386    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13387)]
13388#[cfg_attr(
13389    target_arch = "arm",
13390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13391)]
13392#[cfg(not(target_arch = "arm64ec"))]
13393pub fn vfmsq_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t) -> float16x8_t {
13394    unsafe {
13395        let b: float16x8_t = simd_neg(b);
13396        vfmaq_f16(a, b, c)
13397    }
13398}
13399#[doc = "Floating-point fused multiply-subtract from accumulator"]
13400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_f32)"]
13401#[inline(always)]
13402#[target_feature(enable = "neon")]
13403#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13404#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13405#[cfg_attr(
13406    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13407    assert_instr(fmls)
13408)]
13409#[cfg_attr(
13410    not(target_arch = "arm"),
13411    stable(feature = "neon_intrinsics", since = "1.59.0")
13412)]
13413#[cfg_attr(
13414    target_arch = "arm",
13415    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13416)]
13417pub fn vfms_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
13418    unsafe {
13419        let b: float32x2_t = simd_neg(b);
13420        vfma_f32(a, b, c)
13421    }
13422}
13423#[doc = "Floating-point fused multiply-subtract from accumulator"]
13424#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_f32)"]
13425#[inline(always)]
13426#[target_feature(enable = "neon")]
13427#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13428#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13429#[cfg_attr(
13430    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13431    assert_instr(fmls)
13432)]
13433#[cfg_attr(
13434    not(target_arch = "arm"),
13435    stable(feature = "neon_intrinsics", since = "1.59.0")
13436)]
13437#[cfg_attr(
13438    target_arch = "arm",
13439    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13440)]
13441pub fn vfmsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
13442    unsafe {
13443        let b: float32x4_t = simd_neg(b);
13444        vfmaq_f32(a, b, c)
13445    }
13446}
13447#[doc = "Floating-point fused Multiply-subtract to accumulator(vector)"]
13448#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_n_f32)"]
13449#[inline(always)]
13450#[target_feature(enable = "neon")]
13451#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13452#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13453#[cfg_attr(
13454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13455    assert_instr(fmls)
13456)]
13457#[cfg_attr(
13458    not(target_arch = "arm"),
13459    stable(feature = "neon_intrinsics", since = "1.59.0")
13460)]
13461#[cfg_attr(
13462    target_arch = "arm",
13463    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13464)]
13465pub fn vfms_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
13466    vfms_f32(a, b, vdup_n_f32_vfp4(c))
13467}
13468#[doc = "Floating-point fused Multiply-subtract to accumulator(vector)"]
13469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_n_f32)"]
13470#[inline(always)]
13471#[target_feature(enable = "neon")]
13472#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
13473#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
13474#[cfg_attr(
13475    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13476    assert_instr(fmls)
13477)]
13478#[cfg_attr(
13479    not(target_arch = "arm"),
13480    stable(feature = "neon_intrinsics", since = "1.59.0")
13481)]
13482#[cfg_attr(
13483    target_arch = "arm",
13484    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13485)]
13486pub fn vfmsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
13487    vfmsq_f32(a, b, vdupq_n_f32_vfp4(c))
13488}
13489#[doc = "Duplicate vector element to vector"]
13490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_f16)"]
13491#[inline(always)]
13492#[target_feature(enable = "neon")]
13493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13494#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13495#[cfg_attr(
13496    not(target_arch = "arm"),
13497    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13498)]
13499#[cfg_attr(
13500    target_arch = "arm",
13501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13502)]
13503#[cfg(not(target_arch = "arm64ec"))]
13504#[cfg_attr(test, assert_instr(nop))]
13505pub fn vget_high_f16(a: float16x8_t) -> float16x4_t {
13506    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13507}
13508#[doc = "Duplicate vector element to vector"]
13509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_f16)"]
13510#[inline(always)]
13511#[target_feature(enable = "neon")]
13512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13513#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13514#[cfg_attr(
13515    not(target_arch = "arm"),
13516    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
13517)]
13518#[cfg_attr(
13519    target_arch = "arm",
13520    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13521)]
13522#[cfg(not(target_arch = "arm64ec"))]
13523#[cfg_attr(test, assert_instr(nop))]
13524pub fn vget_low_f16(a: float16x8_t) -> float16x4_t {
13525    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
13526}
13527#[doc = "Duplicate vector element to vector or scalar"]
13528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_f32)"]
13529#[inline(always)]
13530#[target_feature(enable = "neon")]
13531#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13532#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13533#[cfg_attr(
13534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13535    assert_instr(ext)
13536)]
13537#[cfg_attr(
13538    not(target_arch = "arm"),
13539    stable(feature = "neon_intrinsics", since = "1.59.0")
13540)]
13541#[cfg_attr(
13542    target_arch = "arm",
13543    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13544)]
13545pub fn vget_high_f32(a: float32x4_t) -> float32x2_t {
13546    unsafe { simd_shuffle!(a, a, [2, 3]) }
13547}
13548#[doc = "Duplicate vector element to vector or scalar"]
13549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_p16)"]
13550#[inline(always)]
13551#[target_feature(enable = "neon")]
13552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13553#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13554#[cfg_attr(
13555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13556    assert_instr(ext)
13557)]
13558#[cfg_attr(
13559    not(target_arch = "arm"),
13560    stable(feature = "neon_intrinsics", since = "1.59.0")
13561)]
13562#[cfg_attr(
13563    target_arch = "arm",
13564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13565)]
13566pub fn vget_high_p16(a: poly16x8_t) -> poly16x4_t {
13567    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13568}
13569#[doc = "Duplicate vector element to vector or scalar"]
13570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_p8)"]
13571#[inline(always)]
13572#[target_feature(enable = "neon")]
13573#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13574#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13575#[cfg_attr(
13576    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13577    assert_instr(ext)
13578)]
13579#[cfg_attr(
13580    not(target_arch = "arm"),
13581    stable(feature = "neon_intrinsics", since = "1.59.0")
13582)]
13583#[cfg_attr(
13584    target_arch = "arm",
13585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13586)]
13587pub fn vget_high_p8(a: poly8x16_t) -> poly8x8_t {
13588    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
13589}
13590#[doc = "Duplicate vector element to vector or scalar"]
13591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s16)"]
13592#[inline(always)]
13593#[target_feature(enable = "neon")]
13594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13595#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13596#[cfg_attr(
13597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13598    assert_instr(ext)
13599)]
13600#[cfg_attr(
13601    not(target_arch = "arm"),
13602    stable(feature = "neon_intrinsics", since = "1.59.0")
13603)]
13604#[cfg_attr(
13605    target_arch = "arm",
13606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13607)]
13608pub fn vget_high_s16(a: int16x8_t) -> int16x4_t {
13609    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13610}
13611#[doc = "Duplicate vector element to vector or scalar"]
13612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s32)"]
13613#[inline(always)]
13614#[target_feature(enable = "neon")]
13615#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13616#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13617#[cfg_attr(
13618    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13619    assert_instr(ext)
13620)]
13621#[cfg_attr(
13622    not(target_arch = "arm"),
13623    stable(feature = "neon_intrinsics", since = "1.59.0")
13624)]
13625#[cfg_attr(
13626    target_arch = "arm",
13627    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13628)]
13629pub fn vget_high_s32(a: int32x4_t) -> int32x2_t {
13630    unsafe { simd_shuffle!(a, a, [2, 3]) }
13631}
13632#[doc = "Duplicate vector element to vector or scalar"]
13633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s8)"]
13634#[inline(always)]
13635#[target_feature(enable = "neon")]
13636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13637#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13638#[cfg_attr(
13639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13640    assert_instr(ext)
13641)]
13642#[cfg_attr(
13643    not(target_arch = "arm"),
13644    stable(feature = "neon_intrinsics", since = "1.59.0")
13645)]
13646#[cfg_attr(
13647    target_arch = "arm",
13648    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13649)]
13650pub fn vget_high_s8(a: int8x16_t) -> int8x8_t {
13651    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
13652}
13653#[doc = "Duplicate vector element to vector or scalar"]
13654#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u16)"]
13655#[inline(always)]
13656#[target_feature(enable = "neon")]
13657#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13658#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13659#[cfg_attr(
13660    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13661    assert_instr(ext)
13662)]
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_high_u16(a: uint16x8_t) -> uint16x4_t {
13672    unsafe { simd_shuffle!(a, a, [4, 5, 6, 7]) }
13673}
13674#[doc = "Duplicate vector element to vector or scalar"]
13675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u32)"]
13676#[inline(always)]
13677#[target_feature(enable = "neon")]
13678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13679#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13680#[cfg_attr(
13681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13682    assert_instr(ext)
13683)]
13684#[cfg_attr(
13685    not(target_arch = "arm"),
13686    stable(feature = "neon_intrinsics", since = "1.59.0")
13687)]
13688#[cfg_attr(
13689    target_arch = "arm",
13690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13691)]
13692pub fn vget_high_u32(a: uint32x4_t) -> uint32x2_t {
13693    unsafe { simd_shuffle!(a, a, [2, 3]) }
13694}
13695#[doc = "Duplicate vector element to vector or scalar"]
13696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u8)"]
13697#[inline(always)]
13698#[target_feature(enable = "neon")]
13699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13700#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13701#[cfg_attr(
13702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13703    assert_instr(ext)
13704)]
13705#[cfg_attr(
13706    not(target_arch = "arm"),
13707    stable(feature = "neon_intrinsics", since = "1.59.0")
13708)]
13709#[cfg_attr(
13710    target_arch = "arm",
13711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13712)]
13713pub fn vget_high_u8(a: uint8x16_t) -> uint8x8_t {
13714    unsafe { simd_shuffle!(a, a, [8, 9, 10, 11, 12, 13, 14, 15]) }
13715}
13716#[doc = "Duplicate vector element to vector or scalar"]
13717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_s64)"]
13718#[inline(always)]
13719#[target_feature(enable = "neon")]
13720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13721#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13722#[cfg_attr(
13723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13724    assert_instr(ext)
13725)]
13726#[cfg_attr(
13727    not(target_arch = "arm"),
13728    stable(feature = "neon_intrinsics", since = "1.59.0")
13729)]
13730#[cfg_attr(
13731    target_arch = "arm",
13732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13733)]
13734pub fn vget_high_s64(a: int64x2_t) -> int64x1_t {
13735    unsafe { int64x1_t([simd_extract!(a, 1)]) }
13736}
13737#[doc = "Duplicate vector element to vector or scalar"]
13738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_high_u64)"]
13739#[inline(always)]
13740#[target_feature(enable = "neon")]
13741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13742#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
13743#[cfg_attr(
13744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13745    assert_instr(ext)
13746)]
13747#[cfg_attr(
13748    not(target_arch = "arm"),
13749    stable(feature = "neon_intrinsics", since = "1.59.0")
13750)]
13751#[cfg_attr(
13752    target_arch = "arm",
13753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13754)]
13755pub fn vget_high_u64(a: uint64x2_t) -> uint64x1_t {
13756    unsafe { uint64x1_t([simd_extract!(a, 1)]) }
13757}
13758#[doc = "Duplicate vector element to scalar"]
13759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_f16)"]
13760#[inline(always)]
13761#[target_feature(enable = "neon")]
13762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13763#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13764#[cfg_attr(
13765    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13766    assert_instr(nop, LANE = 0)
13767)]
13768#[rustc_legacy_const_generics(1)]
13769#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13770#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
13771#[cfg(not(target_arch = "arm64ec"))]
13772pub fn vget_lane_f16<const LANE: i32>(a: float16x4_t) -> f16 {
13773    static_assert_uimm_bits!(LANE, 2);
13774    unsafe { simd_extract!(a, LANE as u32) }
13775}
13776#[doc = "Duplicate vector element to scalar"]
13777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_f16)"]
13778#[inline(always)]
13779#[target_feature(enable = "neon")]
13780#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13781#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13782#[cfg_attr(
13783    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
13784    assert_instr(nop, LANE = 0)
13785)]
13786#[rustc_legacy_const_generics(1)]
13787#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
13788#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
13789#[cfg(not(target_arch = "arm64ec"))]
13790pub fn vgetq_lane_f16<const LANE: i32>(a: float16x8_t) -> f16 {
13791    static_assert_uimm_bits!(LANE, 3);
13792    unsafe { simd_extract!(a, LANE as u32) }
13793}
13794#[doc = "Move vector element to general-purpose register"]
13795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_f32)"]
13796#[inline(always)]
13797#[target_feature(enable = "neon")]
13798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13799#[rustc_legacy_const_generics(1)]
13800#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13801#[cfg_attr(
13802    not(target_arch = "arm"),
13803    stable(feature = "neon_intrinsics", since = "1.59.0")
13804)]
13805#[cfg_attr(
13806    target_arch = "arm",
13807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13808)]
13809pub fn vget_lane_f32<const IMM5: i32>(v: float32x2_t) -> f32 {
13810    static_assert_uimm_bits!(IMM5, 1);
13811    unsafe { simd_extract!(v, IMM5 as u32) }
13812}
13813#[doc = "Move vector element to general-purpose register"]
13814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p16)"]
13815#[inline(always)]
13816#[target_feature(enable = "neon")]
13817#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13818#[rustc_legacy_const_generics(1)]
13819#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13820#[cfg_attr(
13821    not(target_arch = "arm"),
13822    stable(feature = "neon_intrinsics", since = "1.59.0")
13823)]
13824#[cfg_attr(
13825    target_arch = "arm",
13826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13827)]
13828pub fn vget_lane_p16<const IMM5: i32>(v: poly16x4_t) -> p16 {
13829    static_assert_uimm_bits!(IMM5, 2);
13830    unsafe { simd_extract!(v, IMM5 as u32) }
13831}
13832#[doc = "Move vector element to general-purpose register"]
13833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p8)"]
13834#[inline(always)]
13835#[target_feature(enable = "neon")]
13836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13837#[rustc_legacy_const_generics(1)]
13838#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13839#[cfg_attr(
13840    not(target_arch = "arm"),
13841    stable(feature = "neon_intrinsics", since = "1.59.0")
13842)]
13843#[cfg_attr(
13844    target_arch = "arm",
13845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13846)]
13847pub fn vget_lane_p8<const IMM5: i32>(v: poly8x8_t) -> p8 {
13848    static_assert_uimm_bits!(IMM5, 3);
13849    unsafe { simd_extract!(v, IMM5 as u32) }
13850}
13851#[doc = "Move vector element to general-purpose register"]
13852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s16)"]
13853#[inline(always)]
13854#[target_feature(enable = "neon")]
13855#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13856#[rustc_legacy_const_generics(1)]
13857#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13858#[cfg_attr(
13859    not(target_arch = "arm"),
13860    stable(feature = "neon_intrinsics", since = "1.59.0")
13861)]
13862#[cfg_attr(
13863    target_arch = "arm",
13864    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13865)]
13866pub fn vget_lane_s16<const IMM5: i32>(v: int16x4_t) -> i16 {
13867    static_assert_uimm_bits!(IMM5, 2);
13868    unsafe { simd_extract!(v, IMM5 as u32) }
13869}
13870#[doc = "Move vector element to general-purpose register"]
13871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s32)"]
13872#[inline(always)]
13873#[target_feature(enable = "neon")]
13874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13875#[rustc_legacy_const_generics(1)]
13876#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13877#[cfg_attr(
13878    not(target_arch = "arm"),
13879    stable(feature = "neon_intrinsics", since = "1.59.0")
13880)]
13881#[cfg_attr(
13882    target_arch = "arm",
13883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13884)]
13885pub fn vget_lane_s32<const IMM5: i32>(v: int32x2_t) -> i32 {
13886    static_assert_uimm_bits!(IMM5, 1);
13887    unsafe { simd_extract!(v, IMM5 as u32) }
13888}
13889#[doc = "Move vector element to general-purpose register"]
13890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s8)"]
13891#[inline(always)]
13892#[target_feature(enable = "neon")]
13893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13894#[rustc_legacy_const_generics(1)]
13895#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13896#[cfg_attr(
13897    not(target_arch = "arm"),
13898    stable(feature = "neon_intrinsics", since = "1.59.0")
13899)]
13900#[cfg_attr(
13901    target_arch = "arm",
13902    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13903)]
13904pub fn vget_lane_s8<const IMM5: i32>(v: int8x8_t) -> i8 {
13905    static_assert_uimm_bits!(IMM5, 3);
13906    unsafe { simd_extract!(v, IMM5 as u32) }
13907}
13908#[doc = "Move vector element to general-purpose register"]
13909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u16)"]
13910#[inline(always)]
13911#[target_feature(enable = "neon")]
13912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13913#[rustc_legacy_const_generics(1)]
13914#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13915#[cfg_attr(
13916    not(target_arch = "arm"),
13917    stable(feature = "neon_intrinsics", since = "1.59.0")
13918)]
13919#[cfg_attr(
13920    target_arch = "arm",
13921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13922)]
13923pub fn vget_lane_u16<const IMM5: i32>(v: uint16x4_t) -> u16 {
13924    static_assert_uimm_bits!(IMM5, 2);
13925    unsafe { simd_extract!(v, IMM5 as u32) }
13926}
13927#[doc = "Move vector element to general-purpose register"]
13928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u32)"]
13929#[inline(always)]
13930#[target_feature(enable = "neon")]
13931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13932#[rustc_legacy_const_generics(1)]
13933#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13934#[cfg_attr(
13935    not(target_arch = "arm"),
13936    stable(feature = "neon_intrinsics", since = "1.59.0")
13937)]
13938#[cfg_attr(
13939    target_arch = "arm",
13940    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13941)]
13942pub fn vget_lane_u32<const IMM5: i32>(v: uint32x2_t) -> u32 {
13943    static_assert_uimm_bits!(IMM5, 1);
13944    unsafe { simd_extract!(v, IMM5 as u32) }
13945}
13946#[doc = "Move vector element to general-purpose register"]
13947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u8)"]
13948#[inline(always)]
13949#[target_feature(enable = "neon")]
13950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13951#[rustc_legacy_const_generics(1)]
13952#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13953#[cfg_attr(
13954    not(target_arch = "arm"),
13955    stable(feature = "neon_intrinsics", since = "1.59.0")
13956)]
13957#[cfg_attr(
13958    target_arch = "arm",
13959    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13960)]
13961pub fn vget_lane_u8<const IMM5: i32>(v: uint8x8_t) -> u8 {
13962    static_assert_uimm_bits!(IMM5, 3);
13963    unsafe { simd_extract!(v, IMM5 as u32) }
13964}
13965#[doc = "Move vector element to general-purpose register"]
13966#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_f32)"]
13967#[inline(always)]
13968#[target_feature(enable = "neon")]
13969#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13970#[rustc_legacy_const_generics(1)]
13971#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
13972#[cfg_attr(
13973    not(target_arch = "arm"),
13974    stable(feature = "neon_intrinsics", since = "1.59.0")
13975)]
13976#[cfg_attr(
13977    target_arch = "arm",
13978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13979)]
13980pub fn vgetq_lane_f32<const IMM5: i32>(v: float32x4_t) -> f32 {
13981    static_assert_uimm_bits!(IMM5, 2);
13982    unsafe { simd_extract!(v, IMM5 as u32) }
13983}
13984#[doc = "Move vector element to general-purpose register"]
13985#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p16)"]
13986#[inline(always)]
13987#[target_feature(enable = "neon")]
13988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13989#[rustc_legacy_const_generics(1)]
13990#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
13991#[cfg_attr(
13992    not(target_arch = "arm"),
13993    stable(feature = "neon_intrinsics", since = "1.59.0")
13994)]
13995#[cfg_attr(
13996    target_arch = "arm",
13997    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
13998)]
13999pub fn vgetq_lane_p16<const IMM5: i32>(v: poly16x8_t) -> p16 {
14000    static_assert_uimm_bits!(IMM5, 3);
14001    unsafe { simd_extract!(v, IMM5 as u32) }
14002}
14003#[doc = "Move vector element to general-purpose register"]
14004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p64)"]
14005#[inline(always)]
14006#[target_feature(enable = "neon")]
14007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14008#[rustc_legacy_const_generics(1)]
14009#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
14010#[cfg_attr(
14011    not(target_arch = "arm"),
14012    stable(feature = "neon_intrinsics", since = "1.59.0")
14013)]
14014#[cfg_attr(
14015    target_arch = "arm",
14016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14017)]
14018pub fn vgetq_lane_p64<const IMM5: i32>(v: poly64x2_t) -> p64 {
14019    static_assert_uimm_bits!(IMM5, 1);
14020    unsafe { simd_extract!(v, IMM5 as u32) }
14021}
14022#[doc = "Move vector element to general-purpose register"]
14023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_p8)"]
14024#[inline(always)]
14025#[target_feature(enable = "neon")]
14026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14027#[rustc_legacy_const_generics(1)]
14028#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
14029#[cfg_attr(
14030    not(target_arch = "arm"),
14031    stable(feature = "neon_intrinsics", since = "1.59.0")
14032)]
14033#[cfg_attr(
14034    target_arch = "arm",
14035    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14036)]
14037pub fn vgetq_lane_p8<const IMM5: i32>(v: poly8x16_t) -> p8 {
14038    static_assert_uimm_bits!(IMM5, 4);
14039    unsafe { simd_extract!(v, IMM5 as u32) }
14040}
14041#[doc = "Move vector element to general-purpose register"]
14042#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s16)"]
14043#[inline(always)]
14044#[target_feature(enable = "neon")]
14045#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14046#[rustc_legacy_const_generics(1)]
14047#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
14048#[cfg_attr(
14049    not(target_arch = "arm"),
14050    stable(feature = "neon_intrinsics", since = "1.59.0")
14051)]
14052#[cfg_attr(
14053    target_arch = "arm",
14054    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14055)]
14056pub fn vgetq_lane_s16<const IMM5: i32>(v: int16x8_t) -> i16 {
14057    static_assert_uimm_bits!(IMM5, 3);
14058    unsafe { simd_extract!(v, IMM5 as u32) }
14059}
14060#[doc = "Move vector element to general-purpose register"]
14061#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s32)"]
14062#[inline(always)]
14063#[target_feature(enable = "neon")]
14064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14065#[rustc_legacy_const_generics(1)]
14066#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
14067#[cfg_attr(
14068    not(target_arch = "arm"),
14069    stable(feature = "neon_intrinsics", since = "1.59.0")
14070)]
14071#[cfg_attr(
14072    target_arch = "arm",
14073    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14074)]
14075pub fn vgetq_lane_s32<const IMM5: i32>(v: int32x4_t) -> i32 {
14076    static_assert_uimm_bits!(IMM5, 2);
14077    unsafe { simd_extract!(v, IMM5 as u32) }
14078}
14079#[doc = "Move vector element to general-purpose register"]
14080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s64)"]
14081#[inline(always)]
14082#[target_feature(enable = "neon")]
14083#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14084#[rustc_legacy_const_generics(1)]
14085#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
14086#[cfg_attr(
14087    not(target_arch = "arm"),
14088    stable(feature = "neon_intrinsics", since = "1.59.0")
14089)]
14090#[cfg_attr(
14091    target_arch = "arm",
14092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14093)]
14094pub fn vgetq_lane_s64<const IMM5: i32>(v: int64x2_t) -> i64 {
14095    static_assert_uimm_bits!(IMM5, 1);
14096    unsafe { simd_extract!(v, IMM5 as u32) }
14097}
14098#[doc = "Move vector element to general-purpose register"]
14099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_s8)"]
14100#[inline(always)]
14101#[target_feature(enable = "neon")]
14102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14103#[rustc_legacy_const_generics(1)]
14104#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
14105#[cfg_attr(
14106    not(target_arch = "arm"),
14107    stable(feature = "neon_intrinsics", since = "1.59.0")
14108)]
14109#[cfg_attr(
14110    target_arch = "arm",
14111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14112)]
14113pub fn vgetq_lane_s8<const IMM5: i32>(v: int8x16_t) -> i8 {
14114    static_assert_uimm_bits!(IMM5, 4);
14115    unsafe { simd_extract!(v, IMM5 as u32) }
14116}
14117#[doc = "Move vector element to general-purpose register"]
14118#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u16)"]
14119#[inline(always)]
14120#[target_feature(enable = "neon")]
14121#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14122#[rustc_legacy_const_generics(1)]
14123#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
14124#[cfg_attr(
14125    not(target_arch = "arm"),
14126    stable(feature = "neon_intrinsics", since = "1.59.0")
14127)]
14128#[cfg_attr(
14129    target_arch = "arm",
14130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14131)]
14132pub fn vgetq_lane_u16<const IMM5: i32>(v: uint16x8_t) -> u16 {
14133    static_assert_uimm_bits!(IMM5, 3);
14134    unsafe { simd_extract!(v, IMM5 as u32) }
14135}
14136#[doc = "Move vector element to general-purpose register"]
14137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u32)"]
14138#[inline(always)]
14139#[target_feature(enable = "neon")]
14140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14141#[rustc_legacy_const_generics(1)]
14142#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
14143#[cfg_attr(
14144    not(target_arch = "arm"),
14145    stable(feature = "neon_intrinsics", since = "1.59.0")
14146)]
14147#[cfg_attr(
14148    target_arch = "arm",
14149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14150)]
14151pub fn vgetq_lane_u32<const IMM5: i32>(v: uint32x4_t) -> u32 {
14152    static_assert_uimm_bits!(IMM5, 2);
14153    unsafe { simd_extract!(v, IMM5 as u32) }
14154}
14155#[doc = "Move vector element to general-purpose register"]
14156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u64)"]
14157#[inline(always)]
14158#[target_feature(enable = "neon")]
14159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14160#[rustc_legacy_const_generics(1)]
14161#[cfg_attr(test, assert_instr(nop, IMM5 = 1))]
14162#[cfg_attr(
14163    not(target_arch = "arm"),
14164    stable(feature = "neon_intrinsics", since = "1.59.0")
14165)]
14166#[cfg_attr(
14167    target_arch = "arm",
14168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14169)]
14170pub fn vgetq_lane_u64<const IMM5: i32>(v: uint64x2_t) -> u64 {
14171    static_assert_uimm_bits!(IMM5, 2);
14172    unsafe { simd_extract!(v, IMM5 as u32) }
14173}
14174#[doc = "Move vector element to general-purpose register"]
14175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vgetq_lane_u8)"]
14176#[inline(always)]
14177#[target_feature(enable = "neon")]
14178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14179#[rustc_legacy_const_generics(1)]
14180#[cfg_attr(test, assert_instr(nop, IMM5 = 2))]
14181#[cfg_attr(
14182    not(target_arch = "arm"),
14183    stable(feature = "neon_intrinsics", since = "1.59.0")
14184)]
14185#[cfg_attr(
14186    target_arch = "arm",
14187    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14188)]
14189pub fn vgetq_lane_u8<const IMM5: i32>(v: uint8x16_t) -> u8 {
14190    static_assert_uimm_bits!(IMM5, 4);
14191    unsafe { simd_extract!(v, IMM5 as u32) }
14192}
14193#[doc = "Move vector element to general-purpose register"]
14194#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_p64)"]
14195#[inline(always)]
14196#[target_feature(enable = "neon")]
14197#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14198#[rustc_legacy_const_generics(1)]
14199#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
14200#[cfg_attr(
14201    not(target_arch = "arm"),
14202    stable(feature = "neon_intrinsics", since = "1.59.0")
14203)]
14204#[cfg_attr(
14205    target_arch = "arm",
14206    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14207)]
14208pub fn vget_lane_p64<const IMM5: i32>(v: poly64x1_t) -> p64 {
14209    static_assert!(IMM5 == 0);
14210    unsafe { simd_extract!(v, IMM5 as u32) }
14211}
14212#[doc = "Move vector element to general-purpose register"]
14213#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_s64)"]
14214#[inline(always)]
14215#[target_feature(enable = "neon")]
14216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14217#[rustc_legacy_const_generics(1)]
14218#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
14219#[cfg_attr(
14220    not(target_arch = "arm"),
14221    stable(feature = "neon_intrinsics", since = "1.59.0")
14222)]
14223#[cfg_attr(
14224    target_arch = "arm",
14225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14226)]
14227pub fn vget_lane_s64<const IMM5: i32>(v: int64x1_t) -> i64 {
14228    static_assert!(IMM5 == 0);
14229    unsafe { simd_extract!(v, IMM5 as u32) }
14230}
14231#[doc = "Move vector element to general-purpose register"]
14232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_lane_u64)"]
14233#[inline(always)]
14234#[target_feature(enable = "neon")]
14235#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14236#[rustc_legacy_const_generics(1)]
14237#[cfg_attr(test, assert_instr(nop, IMM5 = 0))]
14238#[cfg_attr(
14239    not(target_arch = "arm"),
14240    stable(feature = "neon_intrinsics", since = "1.59.0")
14241)]
14242#[cfg_attr(
14243    target_arch = "arm",
14244    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14245)]
14246pub fn vget_lane_u64<const IMM5: i32>(v: uint64x1_t) -> u64 {
14247    static_assert!(IMM5 == 0);
14248    unsafe { simd_extract!(v, 0) }
14249}
14250#[doc = "Duplicate vector element to vector or scalar"]
14251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_f32)"]
14252#[inline(always)]
14253#[target_feature(enable = "neon")]
14254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14255#[cfg_attr(test, assert_instr(nop))]
14256#[cfg_attr(
14257    not(target_arch = "arm"),
14258    stable(feature = "neon_intrinsics", since = "1.59.0")
14259)]
14260#[cfg_attr(
14261    target_arch = "arm",
14262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14263)]
14264pub fn vget_low_f32(a: float32x4_t) -> float32x2_t {
14265    unsafe { simd_shuffle!(a, a, [0, 1]) }
14266}
14267#[doc = "Duplicate vector element to vector or scalar"]
14268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_p16)"]
14269#[inline(always)]
14270#[target_feature(enable = "neon")]
14271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14272#[cfg_attr(test, assert_instr(nop))]
14273#[cfg_attr(
14274    not(target_arch = "arm"),
14275    stable(feature = "neon_intrinsics", since = "1.59.0")
14276)]
14277#[cfg_attr(
14278    target_arch = "arm",
14279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14280)]
14281pub fn vget_low_p16(a: poly16x8_t) -> poly16x4_t {
14282    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
14283}
14284#[doc = "Duplicate vector element to vector or scalar"]
14285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_p8)"]
14286#[inline(always)]
14287#[target_feature(enable = "neon")]
14288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14289#[cfg_attr(test, assert_instr(nop))]
14290#[cfg_attr(
14291    not(target_arch = "arm"),
14292    stable(feature = "neon_intrinsics", since = "1.59.0")
14293)]
14294#[cfg_attr(
14295    target_arch = "arm",
14296    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14297)]
14298pub fn vget_low_p8(a: poly8x16_t) -> poly8x8_t {
14299    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
14300}
14301#[doc = "Duplicate vector element to vector or scalar"]
14302#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s16)"]
14303#[inline(always)]
14304#[target_feature(enable = "neon")]
14305#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14306#[cfg_attr(test, assert_instr(nop))]
14307#[cfg_attr(
14308    not(target_arch = "arm"),
14309    stable(feature = "neon_intrinsics", since = "1.59.0")
14310)]
14311#[cfg_attr(
14312    target_arch = "arm",
14313    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14314)]
14315pub fn vget_low_s16(a: int16x8_t) -> int16x4_t {
14316    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
14317}
14318#[doc = "Duplicate vector element to vector or scalar"]
14319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s32)"]
14320#[inline(always)]
14321#[target_feature(enable = "neon")]
14322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14323#[cfg_attr(test, assert_instr(nop))]
14324#[cfg_attr(
14325    not(target_arch = "arm"),
14326    stable(feature = "neon_intrinsics", since = "1.59.0")
14327)]
14328#[cfg_attr(
14329    target_arch = "arm",
14330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14331)]
14332pub fn vget_low_s32(a: int32x4_t) -> int32x2_t {
14333    unsafe { simd_shuffle!(a, a, [0, 1]) }
14334}
14335#[doc = "Duplicate vector element to vector or scalar"]
14336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s8)"]
14337#[inline(always)]
14338#[target_feature(enable = "neon")]
14339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14340#[cfg_attr(test, assert_instr(nop))]
14341#[cfg_attr(
14342    not(target_arch = "arm"),
14343    stable(feature = "neon_intrinsics", since = "1.59.0")
14344)]
14345#[cfg_attr(
14346    target_arch = "arm",
14347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14348)]
14349pub fn vget_low_s8(a: int8x16_t) -> int8x8_t {
14350    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
14351}
14352#[doc = "Duplicate vector element to vector or scalar"]
14353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u16)"]
14354#[inline(always)]
14355#[target_feature(enable = "neon")]
14356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14357#[cfg_attr(test, assert_instr(nop))]
14358#[cfg_attr(
14359    not(target_arch = "arm"),
14360    stable(feature = "neon_intrinsics", since = "1.59.0")
14361)]
14362#[cfg_attr(
14363    target_arch = "arm",
14364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14365)]
14366pub fn vget_low_u16(a: uint16x8_t) -> uint16x4_t {
14367    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3]) }
14368}
14369#[doc = "Duplicate vector element to vector or scalar"]
14370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u32)"]
14371#[inline(always)]
14372#[target_feature(enable = "neon")]
14373#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14374#[cfg_attr(test, assert_instr(nop))]
14375#[cfg_attr(
14376    not(target_arch = "arm"),
14377    stable(feature = "neon_intrinsics", since = "1.59.0")
14378)]
14379#[cfg_attr(
14380    target_arch = "arm",
14381    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14382)]
14383pub fn vget_low_u32(a: uint32x4_t) -> uint32x2_t {
14384    unsafe { simd_shuffle!(a, a, [0, 1]) }
14385}
14386#[doc = "Duplicate vector element to vector or scalar"]
14387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u8)"]
14388#[inline(always)]
14389#[target_feature(enable = "neon")]
14390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14391#[cfg_attr(test, assert_instr(nop))]
14392#[cfg_attr(
14393    not(target_arch = "arm"),
14394    stable(feature = "neon_intrinsics", since = "1.59.0")
14395)]
14396#[cfg_attr(
14397    target_arch = "arm",
14398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14399)]
14400pub fn vget_low_u8(a: uint8x16_t) -> uint8x8_t {
14401    unsafe { simd_shuffle!(a, a, [0, 1, 2, 3, 4, 5, 6, 7]) }
14402}
14403#[doc = "Duplicate vector element to vector or scalar"]
14404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_s64)"]
14405#[inline(always)]
14406#[target_feature(enable = "neon")]
14407#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14408#[cfg_attr(test, assert_instr(nop))]
14409#[cfg_attr(
14410    not(target_arch = "arm"),
14411    stable(feature = "neon_intrinsics", since = "1.59.0")
14412)]
14413#[cfg_attr(
14414    target_arch = "arm",
14415    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14416)]
14417pub fn vget_low_s64(a: int64x2_t) -> int64x1_t {
14418    unsafe { int64x1_t([simd_extract!(a, 0)]) }
14419}
14420#[doc = "Duplicate vector element to vector or scalar"]
14421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vget_low_u64)"]
14422#[inline(always)]
14423#[target_feature(enable = "neon")]
14424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14425#[cfg_attr(test, assert_instr(nop))]
14426#[cfg_attr(
14427    not(target_arch = "arm"),
14428    stable(feature = "neon_intrinsics", since = "1.59.0")
14429)]
14430#[cfg_attr(
14431    target_arch = "arm",
14432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14433)]
14434pub fn vget_low_u64(a: uint64x2_t) -> uint64x1_t {
14435    unsafe { uint64x1_t([simd_extract!(a, 0)]) }
14436}
14437#[doc = "Halving add"]
14438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s8)"]
14439#[inline(always)]
14440#[target_feature(enable = "neon")]
14441#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14442#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
14443#[cfg_attr(
14444    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14445    assert_instr(shadd)
14446)]
14447#[cfg_attr(
14448    not(target_arch = "arm"),
14449    stable(feature = "neon_intrinsics", since = "1.59.0")
14450)]
14451#[cfg_attr(
14452    target_arch = "arm",
14453    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14454)]
14455pub fn vhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
14456    unsafe extern "unadjusted" {
14457        #[cfg_attr(
14458            any(target_arch = "aarch64", target_arch = "arm64ec"),
14459            link_name = "llvm.aarch64.neon.shadd.v8i8"
14460        )]
14461        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i8")]
14462        fn _vhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
14463    }
14464    unsafe { _vhadd_s8(a, b) }
14465}
14466#[doc = "Halving add"]
14467#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s8)"]
14468#[inline(always)]
14469#[target_feature(enable = "neon")]
14470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14471#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
14472#[cfg_attr(
14473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14474    assert_instr(shadd)
14475)]
14476#[cfg_attr(
14477    not(target_arch = "arm"),
14478    stable(feature = "neon_intrinsics", since = "1.59.0")
14479)]
14480#[cfg_attr(
14481    target_arch = "arm",
14482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14483)]
14484pub fn vhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
14485    unsafe extern "unadjusted" {
14486        #[cfg_attr(
14487            any(target_arch = "aarch64", target_arch = "arm64ec"),
14488            link_name = "llvm.aarch64.neon.shadd.v16i8"
14489        )]
14490        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v16i8")]
14491        fn _vhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
14492    }
14493    unsafe { _vhaddq_s8(a, b) }
14494}
14495#[doc = "Halving add"]
14496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s16)"]
14497#[inline(always)]
14498#[target_feature(enable = "neon")]
14499#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14500#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
14501#[cfg_attr(
14502    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14503    assert_instr(shadd)
14504)]
14505#[cfg_attr(
14506    not(target_arch = "arm"),
14507    stable(feature = "neon_intrinsics", since = "1.59.0")
14508)]
14509#[cfg_attr(
14510    target_arch = "arm",
14511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14512)]
14513pub fn vhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
14514    unsafe extern "unadjusted" {
14515        #[cfg_attr(
14516            any(target_arch = "aarch64", target_arch = "arm64ec"),
14517            link_name = "llvm.aarch64.neon.shadd.v4i16"
14518        )]
14519        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i16")]
14520        fn _vhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
14521    }
14522    unsafe { _vhadd_s16(a, b) }
14523}
14524#[doc = "Halving add"]
14525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s16)"]
14526#[inline(always)]
14527#[target_feature(enable = "neon")]
14528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14529#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
14530#[cfg_attr(
14531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14532    assert_instr(shadd)
14533)]
14534#[cfg_attr(
14535    not(target_arch = "arm"),
14536    stable(feature = "neon_intrinsics", since = "1.59.0")
14537)]
14538#[cfg_attr(
14539    target_arch = "arm",
14540    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14541)]
14542pub fn vhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
14543    unsafe extern "unadjusted" {
14544        #[cfg_attr(
14545            any(target_arch = "aarch64", target_arch = "arm64ec"),
14546            link_name = "llvm.aarch64.neon.shadd.v8i16"
14547        )]
14548        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i16")]
14549        fn _vhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
14550    }
14551    unsafe { _vhaddq_s16(a, b) }
14552}
14553#[doc = "Halving add"]
14554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s32)"]
14555#[inline(always)]
14556#[target_feature(enable = "neon")]
14557#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14558#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
14559#[cfg_attr(
14560    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14561    assert_instr(shadd)
14562)]
14563#[cfg_attr(
14564    not(target_arch = "arm"),
14565    stable(feature = "neon_intrinsics", since = "1.59.0")
14566)]
14567#[cfg_attr(
14568    target_arch = "arm",
14569    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14570)]
14571pub fn vhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
14572    unsafe extern "unadjusted" {
14573        #[cfg_attr(
14574            any(target_arch = "aarch64", target_arch = "arm64ec"),
14575            link_name = "llvm.aarch64.neon.shadd.v2i32"
14576        )]
14577        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v2i32")]
14578        fn _vhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
14579    }
14580    unsafe { _vhadd_s32(a, b) }
14581}
14582#[doc = "Halving add"]
14583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s32)"]
14584#[inline(always)]
14585#[target_feature(enable = "neon")]
14586#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14587#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
14588#[cfg_attr(
14589    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14590    assert_instr(shadd)
14591)]
14592#[cfg_attr(
14593    not(target_arch = "arm"),
14594    stable(feature = "neon_intrinsics", since = "1.59.0")
14595)]
14596#[cfg_attr(
14597    target_arch = "arm",
14598    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14599)]
14600pub fn vhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
14601    unsafe extern "unadjusted" {
14602        #[cfg_attr(
14603            any(target_arch = "aarch64", target_arch = "arm64ec"),
14604            link_name = "llvm.aarch64.neon.shadd.v4i32"
14605        )]
14606        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i32")]
14607        fn _vhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
14608    }
14609    unsafe { _vhaddq_s32(a, b) }
14610}
14611#[doc = "Halving add"]
14612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u8)"]
14613#[inline(always)]
14614#[target_feature(enable = "neon")]
14615#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14616#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
14617#[cfg_attr(
14618    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14619    assert_instr(uhadd)
14620)]
14621#[cfg_attr(
14622    not(target_arch = "arm"),
14623    stable(feature = "neon_intrinsics", since = "1.59.0")
14624)]
14625#[cfg_attr(
14626    target_arch = "arm",
14627    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14628)]
14629pub fn vhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
14630    unsafe extern "unadjusted" {
14631        #[cfg_attr(
14632            any(target_arch = "aarch64", target_arch = "arm64ec"),
14633            link_name = "llvm.aarch64.neon.uhadd.v8i8"
14634        )]
14635        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i8")]
14636        fn _vhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
14637    }
14638    unsafe { _vhadd_u8(a, b) }
14639}
14640#[doc = "Halving add"]
14641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u8)"]
14642#[inline(always)]
14643#[target_feature(enable = "neon")]
14644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14645#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
14646#[cfg_attr(
14647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14648    assert_instr(uhadd)
14649)]
14650#[cfg_attr(
14651    not(target_arch = "arm"),
14652    stable(feature = "neon_intrinsics", since = "1.59.0")
14653)]
14654#[cfg_attr(
14655    target_arch = "arm",
14656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14657)]
14658pub fn vhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
14659    unsafe extern "unadjusted" {
14660        #[cfg_attr(
14661            any(target_arch = "aarch64", target_arch = "arm64ec"),
14662            link_name = "llvm.aarch64.neon.uhadd.v16i8"
14663        )]
14664        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v16i8")]
14665        fn _vhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
14666    }
14667    unsafe { _vhaddq_u8(a, b) }
14668}
14669#[doc = "Halving add"]
14670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u16)"]
14671#[inline(always)]
14672#[target_feature(enable = "neon")]
14673#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14674#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
14675#[cfg_attr(
14676    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14677    assert_instr(uhadd)
14678)]
14679#[cfg_attr(
14680    not(target_arch = "arm"),
14681    stable(feature = "neon_intrinsics", since = "1.59.0")
14682)]
14683#[cfg_attr(
14684    target_arch = "arm",
14685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14686)]
14687pub fn vhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
14688    unsafe extern "unadjusted" {
14689        #[cfg_attr(
14690            any(target_arch = "aarch64", target_arch = "arm64ec"),
14691            link_name = "llvm.aarch64.neon.uhadd.v4i16"
14692        )]
14693        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i16")]
14694        fn _vhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
14695    }
14696    unsafe { _vhadd_u16(a, b) }
14697}
14698#[doc = "Halving add"]
14699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u16)"]
14700#[inline(always)]
14701#[target_feature(enable = "neon")]
14702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14703#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
14704#[cfg_attr(
14705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14706    assert_instr(uhadd)
14707)]
14708#[cfg_attr(
14709    not(target_arch = "arm"),
14710    stable(feature = "neon_intrinsics", since = "1.59.0")
14711)]
14712#[cfg_attr(
14713    target_arch = "arm",
14714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14715)]
14716pub fn vhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
14717    unsafe extern "unadjusted" {
14718        #[cfg_attr(
14719            any(target_arch = "aarch64", target_arch = "arm64ec"),
14720            link_name = "llvm.aarch64.neon.uhadd.v8i16"
14721        )]
14722        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i16")]
14723        fn _vhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
14724    }
14725    unsafe { _vhaddq_u16(a, b) }
14726}
14727#[doc = "Halving add"]
14728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u32)"]
14729#[inline(always)]
14730#[target_feature(enable = "neon")]
14731#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14732#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
14733#[cfg_attr(
14734    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14735    assert_instr(uhadd)
14736)]
14737#[cfg_attr(
14738    not(target_arch = "arm"),
14739    stable(feature = "neon_intrinsics", since = "1.59.0")
14740)]
14741#[cfg_attr(
14742    target_arch = "arm",
14743    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14744)]
14745pub fn vhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
14746    unsafe extern "unadjusted" {
14747        #[cfg_attr(
14748            any(target_arch = "aarch64", target_arch = "arm64ec"),
14749            link_name = "llvm.aarch64.neon.uhadd.v2i32"
14750        )]
14751        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v2i32")]
14752        fn _vhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
14753    }
14754    unsafe { _vhadd_u32(a, b) }
14755}
14756#[doc = "Halving add"]
14757#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u32)"]
14758#[inline(always)]
14759#[target_feature(enable = "neon")]
14760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14761#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
14762#[cfg_attr(
14763    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14764    assert_instr(uhadd)
14765)]
14766#[cfg_attr(
14767    not(target_arch = "arm"),
14768    stable(feature = "neon_intrinsics", since = "1.59.0")
14769)]
14770#[cfg_attr(
14771    target_arch = "arm",
14772    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14773)]
14774pub fn vhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
14775    unsafe extern "unadjusted" {
14776        #[cfg_attr(
14777            any(target_arch = "aarch64", target_arch = "arm64ec"),
14778            link_name = "llvm.aarch64.neon.uhadd.v4i32"
14779        )]
14780        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i32")]
14781        fn _vhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
14782    }
14783    unsafe { _vhaddq_u32(a, b) }
14784}
14785#[doc = "Signed halving subtract"]
14786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s16)"]
14787#[inline(always)]
14788#[target_feature(enable = "neon")]
14789#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14790#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
14791#[cfg_attr(
14792    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14793    assert_instr(shsub)
14794)]
14795#[cfg_attr(
14796    not(target_arch = "arm"),
14797    stable(feature = "neon_intrinsics", since = "1.59.0")
14798)]
14799#[cfg_attr(
14800    target_arch = "arm",
14801    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14802)]
14803pub fn vhsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
14804    unsafe extern "unadjusted" {
14805        #[cfg_attr(
14806            any(target_arch = "aarch64", target_arch = "arm64ec"),
14807            link_name = "llvm.aarch64.neon.shsub.v4i16"
14808        )]
14809        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i16")]
14810        fn _vhsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
14811    }
14812    unsafe { _vhsub_s16(a, b) }
14813}
14814#[doc = "Signed halving subtract"]
14815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s16)"]
14816#[inline(always)]
14817#[target_feature(enable = "neon")]
14818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14819#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
14820#[cfg_attr(
14821    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14822    assert_instr(shsub)
14823)]
14824#[cfg_attr(
14825    not(target_arch = "arm"),
14826    stable(feature = "neon_intrinsics", since = "1.59.0")
14827)]
14828#[cfg_attr(
14829    target_arch = "arm",
14830    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14831)]
14832pub fn vhsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
14833    unsafe extern "unadjusted" {
14834        #[cfg_attr(
14835            any(target_arch = "aarch64", target_arch = "arm64ec"),
14836            link_name = "llvm.aarch64.neon.shsub.v8i16"
14837        )]
14838        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i16")]
14839        fn _vhsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
14840    }
14841    unsafe { _vhsubq_s16(a, b) }
14842}
14843#[doc = "Signed halving subtract"]
14844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s32)"]
14845#[inline(always)]
14846#[target_feature(enable = "neon")]
14847#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14848#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
14849#[cfg_attr(
14850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14851    assert_instr(shsub)
14852)]
14853#[cfg_attr(
14854    not(target_arch = "arm"),
14855    stable(feature = "neon_intrinsics", since = "1.59.0")
14856)]
14857#[cfg_attr(
14858    target_arch = "arm",
14859    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14860)]
14861pub fn vhsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
14862    unsafe extern "unadjusted" {
14863        #[cfg_attr(
14864            any(target_arch = "aarch64", target_arch = "arm64ec"),
14865            link_name = "llvm.aarch64.neon.shsub.v2i32"
14866        )]
14867        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v2i32")]
14868        fn _vhsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
14869    }
14870    unsafe { _vhsub_s32(a, b) }
14871}
14872#[doc = "Signed halving subtract"]
14873#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s32)"]
14874#[inline(always)]
14875#[target_feature(enable = "neon")]
14876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14877#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
14878#[cfg_attr(
14879    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14880    assert_instr(shsub)
14881)]
14882#[cfg_attr(
14883    not(target_arch = "arm"),
14884    stable(feature = "neon_intrinsics", since = "1.59.0")
14885)]
14886#[cfg_attr(
14887    target_arch = "arm",
14888    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14889)]
14890pub fn vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
14891    unsafe extern "unadjusted" {
14892        #[cfg_attr(
14893            any(target_arch = "aarch64", target_arch = "arm64ec"),
14894            link_name = "llvm.aarch64.neon.shsub.v4i32"
14895        )]
14896        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i32")]
14897        fn _vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
14898    }
14899    unsafe { _vhsubq_s32(a, b) }
14900}
14901#[doc = "Signed halving subtract"]
14902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s8)"]
14903#[inline(always)]
14904#[target_feature(enable = "neon")]
14905#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14906#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
14907#[cfg_attr(
14908    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14909    assert_instr(shsub)
14910)]
14911#[cfg_attr(
14912    not(target_arch = "arm"),
14913    stable(feature = "neon_intrinsics", since = "1.59.0")
14914)]
14915#[cfg_attr(
14916    target_arch = "arm",
14917    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14918)]
14919pub fn vhsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
14920    unsafe extern "unadjusted" {
14921        #[cfg_attr(
14922            any(target_arch = "aarch64", target_arch = "arm64ec"),
14923            link_name = "llvm.aarch64.neon.shsub.v8i8"
14924        )]
14925        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i8")]
14926        fn _vhsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
14927    }
14928    unsafe { _vhsub_s8(a, b) }
14929}
14930#[doc = "Signed halving subtract"]
14931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s8)"]
14932#[inline(always)]
14933#[target_feature(enable = "neon")]
14934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14935#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
14936#[cfg_attr(
14937    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14938    assert_instr(shsub)
14939)]
14940#[cfg_attr(
14941    not(target_arch = "arm"),
14942    stable(feature = "neon_intrinsics", since = "1.59.0")
14943)]
14944#[cfg_attr(
14945    target_arch = "arm",
14946    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14947)]
14948pub fn vhsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
14949    unsafe extern "unadjusted" {
14950        #[cfg_attr(
14951            any(target_arch = "aarch64", target_arch = "arm64ec"),
14952            link_name = "llvm.aarch64.neon.shsub.v16i8"
14953        )]
14954        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v16i8")]
14955        fn _vhsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
14956    }
14957    unsafe { _vhsubq_s8(a, b) }
14958}
14959#[doc = "Signed halving subtract"]
14960#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u8)"]
14961#[inline(always)]
14962#[target_feature(enable = "neon")]
14963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14964#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u8"))]
14965#[cfg_attr(
14966    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14967    assert_instr(uhsub)
14968)]
14969#[cfg_attr(
14970    not(target_arch = "arm"),
14971    stable(feature = "neon_intrinsics", since = "1.59.0")
14972)]
14973#[cfg_attr(
14974    target_arch = "arm",
14975    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
14976)]
14977pub fn vhsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
14978    unsafe extern "unadjusted" {
14979        #[cfg_attr(
14980            any(target_arch = "aarch64", target_arch = "arm64ec"),
14981            link_name = "llvm.aarch64.neon.uhsub.v8i8"
14982        )]
14983        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i8")]
14984        fn _vhsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
14985    }
14986    unsafe { _vhsub_u8(a, b) }
14987}
14988#[doc = "Signed halving subtract"]
14989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u8)"]
14990#[inline(always)]
14991#[target_feature(enable = "neon")]
14992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14993#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u8"))]
14994#[cfg_attr(
14995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
14996    assert_instr(uhsub)
14997)]
14998#[cfg_attr(
14999    not(target_arch = "arm"),
15000    stable(feature = "neon_intrinsics", since = "1.59.0")
15001)]
15002#[cfg_attr(
15003    target_arch = "arm",
15004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15005)]
15006pub fn vhsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
15007    unsafe extern "unadjusted" {
15008        #[cfg_attr(
15009            any(target_arch = "aarch64", target_arch = "arm64ec"),
15010            link_name = "llvm.aarch64.neon.uhsub.v16i8"
15011        )]
15012        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v16i8")]
15013        fn _vhsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
15014    }
15015    unsafe { _vhsubq_u8(a, b) }
15016}
15017#[doc = "Signed halving subtract"]
15018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u16)"]
15019#[inline(always)]
15020#[target_feature(enable = "neon")]
15021#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15022#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
15023#[cfg_attr(
15024    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15025    assert_instr(uhsub)
15026)]
15027#[cfg_attr(
15028    not(target_arch = "arm"),
15029    stable(feature = "neon_intrinsics", since = "1.59.0")
15030)]
15031#[cfg_attr(
15032    target_arch = "arm",
15033    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15034)]
15035pub fn vhsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
15036    unsafe extern "unadjusted" {
15037        #[cfg_attr(
15038            any(target_arch = "aarch64", target_arch = "arm64ec"),
15039            link_name = "llvm.aarch64.neon.uhsub.v4i16"
15040        )]
15041        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i16")]
15042        fn _vhsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
15043    }
15044    unsafe { _vhsub_u16(a, b) }
15045}
15046#[doc = "Signed halving subtract"]
15047#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u16)"]
15048#[inline(always)]
15049#[target_feature(enable = "neon")]
15050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15051#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
15052#[cfg_attr(
15053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15054    assert_instr(uhsub)
15055)]
15056#[cfg_attr(
15057    not(target_arch = "arm"),
15058    stable(feature = "neon_intrinsics", since = "1.59.0")
15059)]
15060#[cfg_attr(
15061    target_arch = "arm",
15062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15063)]
15064pub fn vhsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
15065    unsafe extern "unadjusted" {
15066        #[cfg_attr(
15067            any(target_arch = "aarch64", target_arch = "arm64ec"),
15068            link_name = "llvm.aarch64.neon.uhsub.v8i16"
15069        )]
15070        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i16")]
15071        fn _vhsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
15072    }
15073    unsafe { _vhsubq_u16(a, b) }
15074}
15075#[doc = "Signed halving subtract"]
15076#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u32)"]
15077#[inline(always)]
15078#[target_feature(enable = "neon")]
15079#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15080#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u32"))]
15081#[cfg_attr(
15082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15083    assert_instr(uhsub)
15084)]
15085#[cfg_attr(
15086    not(target_arch = "arm"),
15087    stable(feature = "neon_intrinsics", since = "1.59.0")
15088)]
15089#[cfg_attr(
15090    target_arch = "arm",
15091    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15092)]
15093pub fn vhsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
15094    unsafe extern "unadjusted" {
15095        #[cfg_attr(
15096            any(target_arch = "aarch64", target_arch = "arm64ec"),
15097            link_name = "llvm.aarch64.neon.uhsub.v2i32"
15098        )]
15099        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v2i32")]
15100        fn _vhsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
15101    }
15102    unsafe { _vhsub_u32(a, b) }
15103}
15104#[doc = "Signed halving subtract"]
15105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u32)"]
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("vhsub.u32"))]
15110#[cfg_attr(
15111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15112    assert_instr(uhsub)
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 fn vhsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
15123    unsafe extern "unadjusted" {
15124        #[cfg_attr(
15125            any(target_arch = "aarch64", target_arch = "arm64ec"),
15126            link_name = "llvm.aarch64.neon.uhsub.v4i32"
15127        )]
15128        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i32")]
15129        fn _vhsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
15130    }
15131    unsafe { _vhsubq_u32(a, b) }
15132}
15133#[doc = "Load one single-element structure and replicate to all lanes of one register"]
15134#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_f16)"]
15135#[doc = "## Safety"]
15136#[doc = "  * Neon intrinsic unsafe"]
15137#[inline(always)]
15138#[target_feature(enable = "neon")]
15139#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15140#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15141#[cfg_attr(
15142    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15143    assert_instr(ld1r)
15144)]
15145#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15146#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15147#[cfg(not(target_arch = "arm64ec"))]
15148pub unsafe fn vld1_dup_f16(ptr: *const f16) -> float16x4_t {
15149    let x: float16x4_t = vld1_lane_f16::<0>(ptr, transmute(f16x4::splat(0.0)));
15150    simd_shuffle!(x, x, [0, 0, 0, 0])
15151}
15152#[doc = "Load one single-element structure and replicate to all lanes of one register"]
15153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_f16)"]
15154#[doc = "## Safety"]
15155#[doc = "  * Neon intrinsic unsafe"]
15156#[inline(always)]
15157#[target_feature(enable = "neon")]
15158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15160#[cfg_attr(
15161    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15162    assert_instr(ld1r)
15163)]
15164#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15165#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15166#[cfg(not(target_arch = "arm64ec"))]
15167pub unsafe fn vld1q_dup_f16(ptr: *const f16) -> float16x8_t {
15168    let x: float16x8_t = vld1q_lane_f16::<0>(ptr, transmute(f16x8::splat(0.0)));
15169    simd_shuffle!(x, x, [0, 0, 0, 0, 0, 0, 0, 0])
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_f32)"]
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.32"))]
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_f32(ptr: *const f32) -> float32x2_t {
15192    transmute(f32x2::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_p16)"]
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.16"))]
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_p16(ptr: *const p16) -> poly16x4_t {
15215    transmute(u16x4::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_p8)"]
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_p8(ptr: *const p8) -> poly8x8_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/vld1_dup_s16)"]
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.16"))]
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 vld1_dup_s16(ptr: *const i16) -> int16x4_t {
15261    transmute(i16x4::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/vld1_dup_s32)"]
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.32"))]
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 vld1_dup_s32(ptr: *const i32) -> int32x2_t {
15284    transmute(i32x2::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/vld1_dup_s8)"]
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 vld1_dup_s8(ptr: *const i8) -> int8x8_t {
15307    transmute(i8x8::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/vld1_dup_u16)"]
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 vld1_dup_u16(ptr: *const u16) -> uint16x4_t {
15330    transmute(u16x4::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/vld1_dup_u32)"]
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 vld1_dup_u32(ptr: *const u32) -> uint32x2_t {
15353    transmute(u32x2::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/vld1_dup_u8)"]
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("vld1.8"))]
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 vld1_dup_u8(ptr: *const u8) -> uint8x8_t {
15376    transmute(u8x8::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_f32)"]
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.32"))]
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_f32(ptr: *const f32) -> float32x4_t {
15399    transmute(f32x4::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_p16)"]
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_p16(ptr: *const p16) -> poly16x8_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_p8)"]
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.8"))]
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_p8(ptr: *const p8) -> poly8x16_t {
15445    transmute(u8x16::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_s16)"]
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("vld1.16"))]
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_s16(ptr: *const i16) -> int16x8_t {
15468    transmute(i16x8::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_s32)"]
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.32"))]
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_s32(ptr: *const i32) -> int32x4_t {
15491    transmute(i32x4::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/vld1q_dup_s64)"]
15495#[doc = "## Safety"]
15496#[doc = "  * Neon intrinsic unsafe"]
15497#[inline(always)]
15498#[target_feature(enable = "neon")]
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(ld1r)
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 vld1q_dup_s64(ptr: *const i64) -> int64x2_t {
15514    transmute(i64x2::splat(*ptr))
15515}
15516#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_s8)"]
15518#[doc = "## Safety"]
15519#[doc = "  * Neon intrinsic unsafe"]
15520#[inline(always)]
15521#[target_feature(enable = "neon")]
15522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15523#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15524#[cfg_attr(
15525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15526    assert_instr(ld1r)
15527)]
15528#[cfg_attr(
15529    not(target_arch = "arm"),
15530    stable(feature = "neon_intrinsics", since = "1.59.0")
15531)]
15532#[cfg_attr(
15533    target_arch = "arm",
15534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15535)]
15536pub unsafe fn vld1q_dup_s8(ptr: *const i8) -> int8x16_t {
15537    transmute(i8x16::splat(*ptr))
15538}
15539#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u16)"]
15541#[doc = "## Safety"]
15542#[doc = "  * Neon intrinsic unsafe"]
15543#[inline(always)]
15544#[target_feature(enable = "neon")]
15545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15546#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15547#[cfg_attr(
15548    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15549    assert_instr(ld1r)
15550)]
15551#[cfg_attr(
15552    not(target_arch = "arm"),
15553    stable(feature = "neon_intrinsics", since = "1.59.0")
15554)]
15555#[cfg_attr(
15556    target_arch = "arm",
15557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15558)]
15559pub unsafe fn vld1q_dup_u16(ptr: *const u16) -> uint16x8_t {
15560    transmute(u16x8::splat(*ptr))
15561}
15562#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u32)"]
15564#[doc = "## Safety"]
15565#[doc = "  * Neon intrinsic unsafe"]
15566#[inline(always)]
15567#[target_feature(enable = "neon")]
15568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15569#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15570#[cfg_attr(
15571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15572    assert_instr(ld1r)
15573)]
15574#[cfg_attr(
15575    not(target_arch = "arm"),
15576    stable(feature = "neon_intrinsics", since = "1.59.0")
15577)]
15578#[cfg_attr(
15579    target_arch = "arm",
15580    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15581)]
15582pub unsafe fn vld1q_dup_u32(ptr: *const u32) -> uint32x4_t {
15583    transmute(u32x4::splat(*ptr))
15584}
15585#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u64)"]
15587#[doc = "## Safety"]
15588#[doc = "  * Neon intrinsic unsafe"]
15589#[inline(always)]
15590#[target_feature(enable = "neon")]
15591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15592#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vldr"))]
15593#[cfg_attr(
15594    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15595    assert_instr(ld1r)
15596)]
15597#[cfg_attr(
15598    not(target_arch = "arm"),
15599    stable(feature = "neon_intrinsics", since = "1.59.0")
15600)]
15601#[cfg_attr(
15602    target_arch = "arm",
15603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15604)]
15605pub unsafe fn vld1q_dup_u64(ptr: *const u64) -> uint64x2_t {
15606    transmute(u64x2::splat(*ptr))
15607}
15608#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_u8)"]
15610#[doc = "## Safety"]
15611#[doc = "  * Neon intrinsic unsafe"]
15612#[inline(always)]
15613#[target_feature(enable = "neon")]
15614#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15615#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15616#[cfg_attr(
15617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15618    assert_instr(ld1r)
15619)]
15620#[cfg_attr(
15621    not(target_arch = "arm"),
15622    stable(feature = "neon_intrinsics", since = "1.59.0")
15623)]
15624#[cfg_attr(
15625    target_arch = "arm",
15626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15627)]
15628pub unsafe fn vld1q_dup_u8(ptr: *const u8) -> uint8x16_t {
15629    transmute(u8x16::splat(*ptr))
15630}
15631#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_p64)"]
15633#[doc = "## Safety"]
15634#[doc = "  * Neon intrinsic unsafe"]
15635#[inline(always)]
15636#[target_feature(enable = "neon,aes")]
15637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15639#[cfg_attr(
15640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15641    assert_instr(ldr)
15642)]
15643#[cfg_attr(
15644    not(target_arch = "arm"),
15645    stable(feature = "neon_intrinsics", since = "1.59.0")
15646)]
15647#[cfg_attr(
15648    target_arch = "arm",
15649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15650)]
15651pub unsafe fn vld1_dup_p64(ptr: *const p64) -> poly64x1_t {
15652    let x: poly64x1_t;
15653    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
15654    {
15655        x = crate::core_arch::aarch64::vld1_p64(ptr);
15656    }
15657    #[cfg(target_arch = "arm")]
15658    {
15659        x = crate::core_arch::arm::vld1_p64(ptr);
15660    };
15661    x
15662}
15663#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_s64)"]
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(vldr))]
15671#[cfg_attr(
15672    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15673    assert_instr(ldr)
15674)]
15675#[cfg_attr(
15676    not(target_arch = "arm"),
15677    stable(feature = "neon_intrinsics", since = "1.59.0")
15678)]
15679#[cfg_attr(
15680    target_arch = "arm",
15681    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15682)]
15683pub unsafe fn vld1_dup_s64(ptr: *const i64) -> int64x1_t {
15684    let x: int64x1_t;
15685    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
15686    {
15687        x = crate::core_arch::aarch64::vld1_s64(ptr);
15688    }
15689    #[cfg(target_arch = "arm")]
15690    {
15691        x = crate::core_arch::arm::vld1_s64(ptr);
15692    };
15693    x
15694}
15695#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
15696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_dup_u64)"]
15697#[doc = "## Safety"]
15698#[doc = "  * Neon intrinsic unsafe"]
15699#[inline(always)]
15700#[target_feature(enable = "neon")]
15701#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15702#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15703#[cfg_attr(
15704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15705    assert_instr(ldr)
15706)]
15707#[cfg_attr(
15708    not(target_arch = "arm"),
15709    stable(feature = "neon_intrinsics", since = "1.59.0")
15710)]
15711#[cfg_attr(
15712    target_arch = "arm",
15713    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
15714)]
15715pub unsafe fn vld1_dup_u64(ptr: *const u64) -> uint64x1_t {
15716    let x: uint64x1_t;
15717    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
15718    {
15719        x = crate::core_arch::aarch64::vld1_u64(ptr);
15720    }
15721    #[cfg(target_arch = "arm")]
15722    {
15723        x = crate::core_arch::arm::vld1_u64(ptr);
15724    };
15725    x
15726}
15727#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16)"]
15729#[doc = "## Safety"]
15730#[doc = "  * Neon intrinsic unsafe"]
15731#[inline(always)]
15732#[cfg(target_endian = "little")]
15733#[cfg(target_arch = "arm")]
15734#[target_feature(enable = "neon,v7")]
15735#[target_feature(enable = "neon,fp16")]
15736#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15737#[cfg(not(target_arch = "arm64ec"))]
15738#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15739pub unsafe fn vld1_f16(ptr: *const f16) -> float16x4_t {
15740    transmute(vld1_v4f16(
15741        ptr as *const i8,
15742        crate::mem::align_of::<f16>() as i32,
15743    ))
15744}
15745#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15746#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16)"]
15747#[doc = "## Safety"]
15748#[doc = "  * Neon intrinsic unsafe"]
15749#[inline(always)]
15750#[cfg(target_endian = "big")]
15751#[cfg(target_arch = "arm")]
15752#[target_feature(enable = "neon,v7")]
15753#[target_feature(enable = "neon,fp16")]
15754#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15755#[cfg(not(target_arch = "arm64ec"))]
15756#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15757pub unsafe fn vld1_f16(ptr: *const f16) -> float16x4_t {
15758    let ret_val: float16x4_t = transmute(vld1_v4f16(
15759        ptr as *const i8,
15760        crate::mem::align_of::<f16>() as i32,
15761    ));
15762    simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
15763}
15764#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16)"]
15766#[doc = "## Safety"]
15767#[doc = "  * Neon intrinsic unsafe"]
15768#[inline(always)]
15769#[cfg(target_endian = "little")]
15770#[cfg(target_arch = "arm")]
15771#[target_feature(enable = "neon,v7")]
15772#[target_feature(enable = "neon,fp16")]
15773#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15774#[cfg(not(target_arch = "arm64ec"))]
15775#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15776pub unsafe fn vld1q_f16(ptr: *const f16) -> float16x8_t {
15777    transmute(vld1q_v8f16(
15778        ptr as *const i8,
15779        crate::mem::align_of::<f16>() as i32,
15780    ))
15781}
15782#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16)"]
15784#[doc = "## Safety"]
15785#[doc = "  * Neon intrinsic unsafe"]
15786#[inline(always)]
15787#[cfg(target_endian = "big")]
15788#[cfg(target_arch = "arm")]
15789#[target_feature(enable = "neon,v7")]
15790#[target_feature(enable = "neon,fp16")]
15791#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15792#[cfg(not(target_arch = "arm64ec"))]
15793#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15794pub unsafe fn vld1q_f16(ptr: *const f16) -> float16x8_t {
15795    let ret_val: float16x8_t = transmute(vld1q_v8f16(
15796        ptr as *const i8,
15797        crate::mem::align_of::<f16>() as i32,
15798    ));
15799    simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
15800}
15801#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x2)"]
15803#[doc = "## Safety"]
15804#[doc = "  * Neon intrinsic unsafe"]
15805#[inline(always)]
15806#[target_feature(enable = "neon")]
15807#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15808#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15809#[cfg_attr(
15810    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15811    assert_instr(ld)
15812)]
15813#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15814#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15815#[cfg(not(target_arch = "arm64ec"))]
15816pub unsafe fn vld1_f16_x2(a: *const f16) -> float16x4x2_t {
15817    crate::ptr::read_unaligned(a.cast())
15818}
15819#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x3)"]
15821#[doc = "## Safety"]
15822#[doc = "  * Neon intrinsic unsafe"]
15823#[inline(always)]
15824#[target_feature(enable = "neon")]
15825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15827#[cfg_attr(
15828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15829    assert_instr(ld)
15830)]
15831#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15832#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15833#[cfg(not(target_arch = "arm64ec"))]
15834pub unsafe fn vld1_f16_x3(a: *const f16) -> float16x4x3_t {
15835    crate::ptr::read_unaligned(a.cast())
15836}
15837#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f16_x4)"]
15839#[doc = "## Safety"]
15840#[doc = "  * Neon intrinsic unsafe"]
15841#[inline(always)]
15842#[target_feature(enable = "neon")]
15843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15844#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15845#[cfg_attr(
15846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15847    assert_instr(ld)
15848)]
15849#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15850#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15851#[cfg(not(target_arch = "arm64ec"))]
15852pub unsafe fn vld1_f16_x4(a: *const f16) -> float16x4x4_t {
15853    crate::ptr::read_unaligned(a.cast())
15854}
15855#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x2)"]
15857#[doc = "## Safety"]
15858#[doc = "  * Neon intrinsic unsafe"]
15859#[inline(always)]
15860#[target_feature(enable = "neon")]
15861#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15862#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15863#[cfg_attr(
15864    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15865    assert_instr(ld)
15866)]
15867#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15868#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15869#[cfg(not(target_arch = "arm64ec"))]
15870pub unsafe fn vld1q_f16_x2(a: *const f16) -> float16x8x2_t {
15871    crate::ptr::read_unaligned(a.cast())
15872}
15873#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x3)"]
15875#[doc = "## Safety"]
15876#[doc = "  * Neon intrinsic unsafe"]
15877#[inline(always)]
15878#[target_feature(enable = "neon")]
15879#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15880#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15881#[cfg_attr(
15882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15883    assert_instr(ld)
15884)]
15885#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15886#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15887#[cfg(not(target_arch = "arm64ec"))]
15888pub unsafe fn vld1q_f16_x3(a: *const f16) -> float16x8x3_t {
15889    crate::ptr::read_unaligned(a.cast())
15890}
15891#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
15892#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f16_x4)"]
15893#[doc = "## Safety"]
15894#[doc = "  * Neon intrinsic unsafe"]
15895#[inline(always)]
15896#[target_feature(enable = "neon")]
15897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15898#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
15899#[cfg_attr(
15900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
15901    assert_instr(ld)
15902)]
15903#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
15904#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
15905#[cfg(not(target_arch = "arm64ec"))]
15906pub unsafe fn vld1q_f16_x4(a: *const f16) -> float16x8x4_t {
15907    crate::ptr::read_unaligned(a.cast())
15908}
15909#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32)"]
15911#[doc = "## Safety"]
15912#[doc = "  * Neon intrinsic unsafe"]
15913#[inline(always)]
15914#[cfg(target_arch = "arm")]
15915#[target_feature(enable = "neon,v7")]
15916#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15917#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15918pub unsafe fn vld1_f32(ptr: *const f32) -> float32x2_t {
15919    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
15920    transmute(vld1_v2f32::<ALIGN>(ptr as *const i8))
15921}
15922#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32)"]
15924#[doc = "## Safety"]
15925#[doc = "  * Neon intrinsic unsafe"]
15926#[inline(always)]
15927#[cfg(target_arch = "arm")]
15928#[target_feature(enable = "neon,v7")]
15929#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15930#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
15931pub unsafe fn vld1q_f32(ptr: *const f32) -> float32x4_t {
15932    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
15933    transmute(vld1q_v4f32::<ALIGN>(ptr as *const i8))
15934}
15935#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8)"]
15937#[doc = "## Safety"]
15938#[doc = "  * Neon intrinsic unsafe"]
15939#[inline(always)]
15940#[cfg(target_arch = "arm")]
15941#[target_feature(enable = "neon,v7")]
15942#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15943#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15944pub unsafe fn vld1_u8(ptr: *const u8) -> uint8x8_t {
15945    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
15946    transmute(vld1_v8i8::<ALIGN>(ptr as *const i8))
15947}
15948#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8)"]
15950#[doc = "## Safety"]
15951#[doc = "  * Neon intrinsic unsafe"]
15952#[inline(always)]
15953#[cfg(target_arch = "arm")]
15954#[target_feature(enable = "neon,v7")]
15955#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15956#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
15957pub unsafe fn vld1q_u8(ptr: *const u8) -> uint8x16_t {
15958    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
15959    transmute(vld1q_v16i8::<ALIGN>(ptr as *const i8))
15960}
15961#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16)"]
15963#[doc = "## Safety"]
15964#[doc = "  * Neon intrinsic unsafe"]
15965#[inline(always)]
15966#[cfg(target_arch = "arm")]
15967#[target_feature(enable = "neon,v7")]
15968#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15969#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15970pub unsafe fn vld1_u16(ptr: *const u16) -> uint16x4_t {
15971    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
15972    transmute(vld1_v4i16::<ALIGN>(ptr as *const i8))
15973}
15974#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16)"]
15976#[doc = "## Safety"]
15977#[doc = "  * Neon intrinsic unsafe"]
15978#[inline(always)]
15979#[cfg(target_arch = "arm")]
15980#[target_feature(enable = "neon,v7")]
15981#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15982#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
15983pub unsafe fn vld1q_u16(ptr: *const u16) -> uint16x8_t {
15984    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
15985    transmute(vld1q_v8i16::<ALIGN>(ptr as *const i8))
15986}
15987#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
15988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32)"]
15989#[doc = "## Safety"]
15990#[doc = "  * Neon intrinsic unsafe"]
15991#[inline(always)]
15992#[cfg(target_arch = "arm")]
15993#[target_feature(enable = "neon,v7")]
15994#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15995#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
15996pub unsafe fn vld1_u32(ptr: *const u32) -> uint32x2_t {
15997    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
15998    transmute(vld1_v2i32::<ALIGN>(ptr as *const i8))
15999}
16000#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32)"]
16002#[doc = "## Safety"]
16003#[doc = "  * Neon intrinsic unsafe"]
16004#[inline(always)]
16005#[cfg(target_arch = "arm")]
16006#[target_feature(enable = "neon,v7")]
16007#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16008#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
16009pub unsafe fn vld1q_u32(ptr: *const u32) -> uint32x4_t {
16010    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
16011    transmute(vld1q_v4i32::<ALIGN>(ptr as *const i8))
16012}
16013#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64)"]
16015#[doc = "## Safety"]
16016#[doc = "  * Neon intrinsic unsafe"]
16017#[inline(always)]
16018#[cfg(target_arch = "arm")]
16019#[target_feature(enable = "neon,v7")]
16020#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
16022pub unsafe fn vld1_u64(ptr: *const u64) -> uint64x1_t {
16023    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
16024    transmute(vld1_v1i64::<ALIGN>(ptr as *const i8))
16025}
16026#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16027#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64)"]
16028#[doc = "## Safety"]
16029#[doc = "  * Neon intrinsic unsafe"]
16030#[inline(always)]
16031#[cfg(target_arch = "arm")]
16032#[target_feature(enable = "neon,v7")]
16033#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16034#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
16035pub unsafe fn vld1q_u64(ptr: *const u64) -> uint64x2_t {
16036    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
16037    transmute(vld1q_v2i64::<ALIGN>(ptr as *const i8))
16038}
16039#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8)"]
16041#[doc = "## Safety"]
16042#[doc = "  * Neon intrinsic unsafe"]
16043#[inline(always)]
16044#[cfg(target_arch = "arm")]
16045#[target_feature(enable = "neon,v7")]
16046#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16047#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
16048pub unsafe fn vld1_p8(ptr: *const p8) -> poly8x8_t {
16049    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
16050    transmute(vld1_v8i8::<ALIGN>(ptr as *const i8))
16051}
16052#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16053#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8)"]
16054#[doc = "## Safety"]
16055#[doc = "  * Neon intrinsic unsafe"]
16056#[inline(always)]
16057#[cfg(target_arch = "arm")]
16058#[target_feature(enable = "neon,v7")]
16059#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16060#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
16061pub unsafe fn vld1q_p8(ptr: *const p8) -> poly8x16_t {
16062    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
16063    transmute(vld1q_v16i8::<ALIGN>(ptr as *const i8))
16064}
16065#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16)"]
16067#[doc = "## Safety"]
16068#[doc = "  * Neon intrinsic unsafe"]
16069#[inline(always)]
16070#[cfg(target_arch = "arm")]
16071#[target_feature(enable = "neon,v7")]
16072#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16073#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
16074pub unsafe fn vld1_p16(ptr: *const p16) -> poly16x4_t {
16075    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
16076    transmute(vld1_v4i16::<ALIGN>(ptr as *const i8))
16077}
16078#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16079#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16)"]
16080#[doc = "## Safety"]
16081#[doc = "  * Neon intrinsic unsafe"]
16082#[inline(always)]
16083#[cfg(target_arch = "arm")]
16084#[target_feature(enable = "neon,v7")]
16085#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16086#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
16087pub unsafe fn vld1q_p16(ptr: *const p16) -> poly16x8_t {
16088    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
16089    transmute(vld1q_v8i16::<ALIGN>(ptr as *const i8))
16090}
16091#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64)"]
16093#[doc = "## Safety"]
16094#[doc = "  * Neon intrinsic unsafe"]
16095#[inline(always)]
16096#[cfg(target_arch = "arm")]
16097#[target_feature(enable = "neon,aes")]
16098#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16099#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
16100pub unsafe fn vld1q_p64(ptr: *const p64) -> poly64x2_t {
16101    const ALIGN: i32 = crate::mem::align_of::<p64>() as i32;
16102    transmute(vld1q_v2i64::<ALIGN>(ptr as *const i8))
16103}
16104#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x2)"]
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(vld))]
16112#[cfg_attr(
16113    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16114    assert_instr(ld)
16115)]
16116#[cfg_attr(
16117    not(target_arch = "arm"),
16118    stable(feature = "neon_intrinsics", since = "1.59.0")
16119)]
16120#[cfg_attr(
16121    target_arch = "arm",
16122    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16123)]
16124pub unsafe fn vld1_f32_x2(a: *const f32) -> float32x2x2_t {
16125    crate::ptr::read_unaligned(a.cast())
16126}
16127#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x3)"]
16129#[doc = "## Safety"]
16130#[doc = "  * Neon intrinsic unsafe"]
16131#[inline(always)]
16132#[target_feature(enable = "neon")]
16133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16134#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16135#[cfg_attr(
16136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16137    assert_instr(ld)
16138)]
16139#[cfg_attr(
16140    not(target_arch = "arm"),
16141    stable(feature = "neon_intrinsics", since = "1.59.0")
16142)]
16143#[cfg_attr(
16144    target_arch = "arm",
16145    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16146)]
16147pub unsafe fn vld1_f32_x3(a: *const f32) -> float32x2x3_t {
16148    crate::ptr::read_unaligned(a.cast())
16149}
16150#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x4)"]
16152#[doc = "## Safety"]
16153#[doc = "  * Neon intrinsic unsafe"]
16154#[inline(always)]
16155#[target_feature(enable = "neon")]
16156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16157#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16158#[cfg_attr(
16159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16160    assert_instr(ld)
16161)]
16162#[cfg_attr(
16163    not(target_arch = "arm"),
16164    stable(feature = "neon_intrinsics", since = "1.59.0")
16165)]
16166#[cfg_attr(
16167    target_arch = "arm",
16168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16169)]
16170pub unsafe fn vld1_f32_x4(a: *const f32) -> float32x2x4_t {
16171    crate::ptr::read_unaligned(a.cast())
16172}
16173#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x2)"]
16175#[doc = "## Safety"]
16176#[doc = "  * Neon intrinsic unsafe"]
16177#[inline(always)]
16178#[target_feature(enable = "neon")]
16179#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16180#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16181#[cfg_attr(
16182    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16183    assert_instr(ld)
16184)]
16185#[cfg_attr(
16186    not(target_arch = "arm"),
16187    stable(feature = "neon_intrinsics", since = "1.59.0")
16188)]
16189#[cfg_attr(
16190    target_arch = "arm",
16191    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16192)]
16193pub unsafe fn vld1q_f32_x2(a: *const f32) -> float32x4x2_t {
16194    crate::ptr::read_unaligned(a.cast())
16195}
16196#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16197#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x3)"]
16198#[doc = "## Safety"]
16199#[doc = "  * Neon intrinsic unsafe"]
16200#[inline(always)]
16201#[target_feature(enable = "neon")]
16202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16203#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16204#[cfg_attr(
16205    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16206    assert_instr(ld)
16207)]
16208#[cfg_attr(
16209    not(target_arch = "arm"),
16210    stable(feature = "neon_intrinsics", since = "1.59.0")
16211)]
16212#[cfg_attr(
16213    target_arch = "arm",
16214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16215)]
16216pub unsafe fn vld1q_f32_x3(a: *const f32) -> float32x4x3_t {
16217    crate::ptr::read_unaligned(a.cast())
16218}
16219#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x4)"]
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#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16227#[cfg_attr(
16228    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16229    assert_instr(ld)
16230)]
16231#[cfg_attr(
16232    not(target_arch = "arm"),
16233    stable(feature = "neon_intrinsics", since = "1.59.0")
16234)]
16235#[cfg_attr(
16236    target_arch = "arm",
16237    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16238)]
16239pub unsafe fn vld1q_f32_x4(a: *const f32) -> float32x4x4_t {
16240    crate::ptr::read_unaligned(a.cast())
16241}
16242#[doc = "Load one single-element structure to one lane of one register"]
16243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_f16)"]
16244#[doc = "## Safety"]
16245#[doc = "  * Neon intrinsic unsafe"]
16246#[inline(always)]
16247#[target_feature(enable = "neon")]
16248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1, LANE = 0))]
16250#[cfg_attr(
16251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16252    assert_instr(ld1, LANE = 0)
16253)]
16254#[rustc_legacy_const_generics(2)]
16255#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
16256#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
16257#[cfg(not(target_arch = "arm64ec"))]
16258pub unsafe fn vld1_lane_f16<const LANE: i32>(ptr: *const f16, src: float16x4_t) -> float16x4_t {
16259    static_assert_uimm_bits!(LANE, 2);
16260    simd_insert!(src, LANE as u32, *ptr)
16261}
16262#[doc = "Load one single-element structure to one lane of one register"]
16263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_f16)"]
16264#[doc = "## Safety"]
16265#[doc = "  * Neon intrinsic unsafe"]
16266#[inline(always)]
16267#[target_feature(enable = "neon")]
16268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16269#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1, LANE = 0))]
16270#[cfg_attr(
16271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16272    assert_instr(ld1, LANE = 0)
16273)]
16274#[rustc_legacy_const_generics(2)]
16275#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
16276#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
16277#[cfg(not(target_arch = "arm64ec"))]
16278pub unsafe fn vld1q_lane_f16<const LANE: i32>(ptr: *const f16, src: float16x8_t) -> float16x8_t {
16279    static_assert_uimm_bits!(LANE, 3);
16280    simd_insert!(src, LANE as u32, *ptr)
16281}
16282#[doc = "Load one single-element structure to one lane of one register."]
16283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_f32)"]
16284#[doc = "## Safety"]
16285#[doc = "  * Neon intrinsic unsafe"]
16286#[inline(always)]
16287#[target_feature(enable = "neon")]
16288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16289#[rustc_legacy_const_generics(2)]
16290#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16291#[cfg_attr(
16292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16293    assert_instr(ld1, LANE = 1)
16294)]
16295#[cfg_attr(
16296    not(target_arch = "arm"),
16297    stable(feature = "neon_intrinsics", since = "1.59.0")
16298)]
16299#[cfg_attr(
16300    target_arch = "arm",
16301    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16302)]
16303pub unsafe fn vld1_lane_f32<const LANE: i32>(ptr: *const f32, src: float32x2_t) -> float32x2_t {
16304    static_assert_uimm_bits!(LANE, 1);
16305    simd_insert!(src, LANE as u32, *ptr)
16306}
16307#[doc = "Load one single-element structure to one lane of one register."]
16308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p16)"]
16309#[doc = "## Safety"]
16310#[doc = "  * Neon intrinsic unsafe"]
16311#[inline(always)]
16312#[target_feature(enable = "neon")]
16313#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16314#[rustc_legacy_const_generics(2)]
16315#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16316#[cfg_attr(
16317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16318    assert_instr(ld1, LANE = 3)
16319)]
16320#[cfg_attr(
16321    not(target_arch = "arm"),
16322    stable(feature = "neon_intrinsics", since = "1.59.0")
16323)]
16324#[cfg_attr(
16325    target_arch = "arm",
16326    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16327)]
16328pub unsafe fn vld1_lane_p16<const LANE: i32>(ptr: *const p16, src: poly16x4_t) -> poly16x4_t {
16329    static_assert_uimm_bits!(LANE, 2);
16330    simd_insert!(src, LANE as u32, *ptr)
16331}
16332#[doc = "Load one single-element structure to one lane of one register."]
16333#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p8)"]
16334#[doc = "## Safety"]
16335#[doc = "  * Neon intrinsic unsafe"]
16336#[inline(always)]
16337#[target_feature(enable = "neon")]
16338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16339#[rustc_legacy_const_generics(2)]
16340#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16341#[cfg_attr(
16342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16343    assert_instr(ld1, LANE = 7)
16344)]
16345#[cfg_attr(
16346    not(target_arch = "arm"),
16347    stable(feature = "neon_intrinsics", since = "1.59.0")
16348)]
16349#[cfg_attr(
16350    target_arch = "arm",
16351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16352)]
16353pub unsafe fn vld1_lane_p8<const LANE: i32>(ptr: *const p8, src: poly8x8_t) -> poly8x8_t {
16354    static_assert_uimm_bits!(LANE, 3);
16355    simd_insert!(src, LANE as u32, *ptr)
16356}
16357#[doc = "Load one single-element structure to one lane of one register."]
16358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s16)"]
16359#[doc = "## Safety"]
16360#[doc = "  * Neon intrinsic unsafe"]
16361#[inline(always)]
16362#[target_feature(enable = "neon")]
16363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16364#[rustc_legacy_const_generics(2)]
16365#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16366#[cfg_attr(
16367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16368    assert_instr(ld1, LANE = 3)
16369)]
16370#[cfg_attr(
16371    not(target_arch = "arm"),
16372    stable(feature = "neon_intrinsics", since = "1.59.0")
16373)]
16374#[cfg_attr(
16375    target_arch = "arm",
16376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16377)]
16378pub unsafe fn vld1_lane_s16<const LANE: i32>(ptr: *const i16, src: int16x4_t) -> int16x4_t {
16379    static_assert_uimm_bits!(LANE, 2);
16380    simd_insert!(src, LANE as u32, *ptr)
16381}
16382#[doc = "Load one single-element structure to one lane of one register."]
16383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s32)"]
16384#[doc = "## Safety"]
16385#[doc = "  * Neon intrinsic unsafe"]
16386#[inline(always)]
16387#[target_feature(enable = "neon")]
16388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16389#[rustc_legacy_const_generics(2)]
16390#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16391#[cfg_attr(
16392    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16393    assert_instr(ld1, LANE = 1)
16394)]
16395#[cfg_attr(
16396    not(target_arch = "arm"),
16397    stable(feature = "neon_intrinsics", since = "1.59.0")
16398)]
16399#[cfg_attr(
16400    target_arch = "arm",
16401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16402)]
16403pub unsafe fn vld1_lane_s32<const LANE: i32>(ptr: *const i32, src: int32x2_t) -> int32x2_t {
16404    static_assert_uimm_bits!(LANE, 1);
16405    simd_insert!(src, LANE as u32, *ptr)
16406}
16407#[doc = "Load one single-element structure to one lane of one register."]
16408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s64)"]
16409#[doc = "## Safety"]
16410#[doc = "  * Neon intrinsic unsafe"]
16411#[inline(always)]
16412#[target_feature(enable = "neon")]
16413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16414#[rustc_legacy_const_generics(2)]
16415#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16416#[cfg_attr(
16417    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16418    assert_instr(ldr, LANE = 0)
16419)]
16420#[cfg_attr(
16421    not(target_arch = "arm"),
16422    stable(feature = "neon_intrinsics", since = "1.59.0")
16423)]
16424#[cfg_attr(
16425    target_arch = "arm",
16426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16427)]
16428pub unsafe fn vld1_lane_s64<const LANE: i32>(ptr: *const i64, src: int64x1_t) -> int64x1_t {
16429    static_assert!(LANE == 0);
16430    simd_insert!(src, LANE as u32, *ptr)
16431}
16432#[doc = "Load one single-element structure to one lane of one register."]
16433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_s8)"]
16434#[doc = "## Safety"]
16435#[doc = "  * Neon intrinsic unsafe"]
16436#[inline(always)]
16437#[target_feature(enable = "neon")]
16438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16439#[rustc_legacy_const_generics(2)]
16440#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16441#[cfg_attr(
16442    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16443    assert_instr(ld1, LANE = 7)
16444)]
16445#[cfg_attr(
16446    not(target_arch = "arm"),
16447    stable(feature = "neon_intrinsics", since = "1.59.0")
16448)]
16449#[cfg_attr(
16450    target_arch = "arm",
16451    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16452)]
16453pub unsafe fn vld1_lane_s8<const LANE: i32>(ptr: *const i8, src: int8x8_t) -> int8x8_t {
16454    static_assert_uimm_bits!(LANE, 3);
16455    simd_insert!(src, LANE as u32, *ptr)
16456}
16457#[doc = "Load one single-element structure to one lane of one register."]
16458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u16)"]
16459#[doc = "## Safety"]
16460#[doc = "  * Neon intrinsic unsafe"]
16461#[inline(always)]
16462#[target_feature(enable = "neon")]
16463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16464#[rustc_legacy_const_generics(2)]
16465#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 3))]
16466#[cfg_attr(
16467    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16468    assert_instr(ld1, LANE = 3)
16469)]
16470#[cfg_attr(
16471    not(target_arch = "arm"),
16472    stable(feature = "neon_intrinsics", since = "1.59.0")
16473)]
16474#[cfg_attr(
16475    target_arch = "arm",
16476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16477)]
16478pub unsafe fn vld1_lane_u16<const LANE: i32>(ptr: *const u16, src: uint16x4_t) -> uint16x4_t {
16479    static_assert_uimm_bits!(LANE, 2);
16480    simd_insert!(src, LANE as u32, *ptr)
16481}
16482#[doc = "Load one single-element structure to one lane of one register."]
16483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u32)"]
16484#[doc = "## Safety"]
16485#[doc = "  * Neon intrinsic unsafe"]
16486#[inline(always)]
16487#[target_feature(enable = "neon")]
16488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16489#[rustc_legacy_const_generics(2)]
16490#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 1))]
16491#[cfg_attr(
16492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16493    assert_instr(ld1, LANE = 1)
16494)]
16495#[cfg_attr(
16496    not(target_arch = "arm"),
16497    stable(feature = "neon_intrinsics", since = "1.59.0")
16498)]
16499#[cfg_attr(
16500    target_arch = "arm",
16501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16502)]
16503pub unsafe fn vld1_lane_u32<const LANE: i32>(ptr: *const u32, src: uint32x2_t) -> uint32x2_t {
16504    static_assert_uimm_bits!(LANE, 1);
16505    simd_insert!(src, LANE as u32, *ptr)
16506}
16507#[doc = "Load one single-element structure to one lane of one register."]
16508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u64)"]
16509#[doc = "## Safety"]
16510#[doc = "  * Neon intrinsic unsafe"]
16511#[inline(always)]
16512#[target_feature(enable = "neon")]
16513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16514#[rustc_legacy_const_generics(2)]
16515#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16516#[cfg_attr(
16517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16518    assert_instr(ldr, LANE = 0)
16519)]
16520#[cfg_attr(
16521    not(target_arch = "arm"),
16522    stable(feature = "neon_intrinsics", since = "1.59.0")
16523)]
16524#[cfg_attr(
16525    target_arch = "arm",
16526    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16527)]
16528pub unsafe fn vld1_lane_u64<const LANE: i32>(ptr: *const u64, src: uint64x1_t) -> uint64x1_t {
16529    static_assert!(LANE == 0);
16530    simd_insert!(src, LANE as u32, *ptr)
16531}
16532#[doc = "Load one single-element structure to one lane of one register."]
16533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_u8)"]
16534#[doc = "## Safety"]
16535#[doc = "  * Neon intrinsic unsafe"]
16536#[inline(always)]
16537#[target_feature(enable = "neon")]
16538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16539#[rustc_legacy_const_generics(2)]
16540#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 7))]
16541#[cfg_attr(
16542    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16543    assert_instr(ld1, LANE = 7)
16544)]
16545#[cfg_attr(
16546    not(target_arch = "arm"),
16547    stable(feature = "neon_intrinsics", since = "1.59.0")
16548)]
16549#[cfg_attr(
16550    target_arch = "arm",
16551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16552)]
16553pub unsafe fn vld1_lane_u8<const LANE: i32>(ptr: *const u8, src: uint8x8_t) -> uint8x8_t {
16554    static_assert_uimm_bits!(LANE, 3);
16555    simd_insert!(src, LANE as u32, *ptr)
16556}
16557#[doc = "Load one single-element structure to one lane of one register."]
16558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_f32)"]
16559#[doc = "## Safety"]
16560#[doc = "  * Neon intrinsic unsafe"]
16561#[inline(always)]
16562#[target_feature(enable = "neon")]
16563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16564#[rustc_legacy_const_generics(2)]
16565#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16566#[cfg_attr(
16567    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16568    assert_instr(ld1, LANE = 3)
16569)]
16570#[cfg_attr(
16571    not(target_arch = "arm"),
16572    stable(feature = "neon_intrinsics", since = "1.59.0")
16573)]
16574#[cfg_attr(
16575    target_arch = "arm",
16576    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16577)]
16578pub unsafe fn vld1q_lane_f32<const LANE: i32>(ptr: *const f32, src: float32x4_t) -> float32x4_t {
16579    static_assert_uimm_bits!(LANE, 2);
16580    simd_insert!(src, LANE as u32, *ptr)
16581}
16582#[doc = "Load one single-element structure to one lane of one register."]
16583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p16)"]
16584#[doc = "## Safety"]
16585#[doc = "  * Neon intrinsic unsafe"]
16586#[inline(always)]
16587#[target_feature(enable = "neon")]
16588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16589#[rustc_legacy_const_generics(2)]
16590#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16591#[cfg_attr(
16592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16593    assert_instr(ld1, LANE = 7)
16594)]
16595#[cfg_attr(
16596    not(target_arch = "arm"),
16597    stable(feature = "neon_intrinsics", since = "1.59.0")
16598)]
16599#[cfg_attr(
16600    target_arch = "arm",
16601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16602)]
16603pub unsafe fn vld1q_lane_p16<const LANE: i32>(ptr: *const p16, src: poly16x8_t) -> poly16x8_t {
16604    static_assert_uimm_bits!(LANE, 3);
16605    simd_insert!(src, LANE as u32, *ptr)
16606}
16607#[doc = "Load one single-element structure to one lane of one register."]
16608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p8)"]
16609#[doc = "## Safety"]
16610#[doc = "  * Neon intrinsic unsafe"]
16611#[inline(always)]
16612#[target_feature(enable = "neon")]
16613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16614#[rustc_legacy_const_generics(2)]
16615#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16616#[cfg_attr(
16617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16618    assert_instr(ld1, LANE = 15)
16619)]
16620#[cfg_attr(
16621    not(target_arch = "arm"),
16622    stable(feature = "neon_intrinsics", since = "1.59.0")
16623)]
16624#[cfg_attr(
16625    target_arch = "arm",
16626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16627)]
16628pub unsafe fn vld1q_lane_p8<const LANE: i32>(ptr: *const p8, src: poly8x16_t) -> poly8x16_t {
16629    static_assert_uimm_bits!(LANE, 4);
16630    simd_insert!(src, LANE as u32, *ptr)
16631}
16632#[doc = "Load one single-element structure to one lane of one register."]
16633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s16)"]
16634#[doc = "## Safety"]
16635#[doc = "  * Neon intrinsic unsafe"]
16636#[inline(always)]
16637#[target_feature(enable = "neon")]
16638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16639#[rustc_legacy_const_generics(2)]
16640#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16641#[cfg_attr(
16642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16643    assert_instr(ld1, LANE = 7)
16644)]
16645#[cfg_attr(
16646    not(target_arch = "arm"),
16647    stable(feature = "neon_intrinsics", since = "1.59.0")
16648)]
16649#[cfg_attr(
16650    target_arch = "arm",
16651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16652)]
16653pub unsafe fn vld1q_lane_s16<const LANE: i32>(ptr: *const i16, src: int16x8_t) -> int16x8_t {
16654    static_assert_uimm_bits!(LANE, 3);
16655    simd_insert!(src, LANE as u32, *ptr)
16656}
16657#[doc = "Load one single-element structure to one lane of one register."]
16658#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s32)"]
16659#[doc = "## Safety"]
16660#[doc = "  * Neon intrinsic unsafe"]
16661#[inline(always)]
16662#[target_feature(enable = "neon")]
16663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16664#[rustc_legacy_const_generics(2)]
16665#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16666#[cfg_attr(
16667    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16668    assert_instr(ld1, LANE = 3)
16669)]
16670#[cfg_attr(
16671    not(target_arch = "arm"),
16672    stable(feature = "neon_intrinsics", since = "1.59.0")
16673)]
16674#[cfg_attr(
16675    target_arch = "arm",
16676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16677)]
16678pub unsafe fn vld1q_lane_s32<const LANE: i32>(ptr: *const i32, src: int32x4_t) -> int32x4_t {
16679    static_assert_uimm_bits!(LANE, 2);
16680    simd_insert!(src, LANE as u32, *ptr)
16681}
16682#[doc = "Load one single-element structure to one lane of one register."]
16683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s64)"]
16684#[doc = "## Safety"]
16685#[doc = "  * Neon intrinsic unsafe"]
16686#[inline(always)]
16687#[target_feature(enable = "neon")]
16688#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16689#[rustc_legacy_const_generics(2)]
16690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16691#[cfg_attr(
16692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16693    assert_instr(ld1, LANE = 1)
16694)]
16695#[cfg_attr(
16696    not(target_arch = "arm"),
16697    stable(feature = "neon_intrinsics", since = "1.59.0")
16698)]
16699#[cfg_attr(
16700    target_arch = "arm",
16701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16702)]
16703pub unsafe fn vld1q_lane_s64<const LANE: i32>(ptr: *const i64, src: int64x2_t) -> int64x2_t {
16704    static_assert_uimm_bits!(LANE, 1);
16705    simd_insert!(src, LANE as u32, *ptr)
16706}
16707#[doc = "Load one single-element structure to one lane of one register."]
16708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_s8)"]
16709#[doc = "## Safety"]
16710#[doc = "  * Neon intrinsic unsafe"]
16711#[inline(always)]
16712#[target_feature(enable = "neon")]
16713#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16714#[rustc_legacy_const_generics(2)]
16715#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16716#[cfg_attr(
16717    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16718    assert_instr(ld1, LANE = 15)
16719)]
16720#[cfg_attr(
16721    not(target_arch = "arm"),
16722    stable(feature = "neon_intrinsics", since = "1.59.0")
16723)]
16724#[cfg_attr(
16725    target_arch = "arm",
16726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16727)]
16728pub unsafe fn vld1q_lane_s8<const LANE: i32>(ptr: *const i8, src: int8x16_t) -> int8x16_t {
16729    static_assert_uimm_bits!(LANE, 4);
16730    simd_insert!(src, LANE as u32, *ptr)
16731}
16732#[doc = "Load one single-element structure to one lane of one register."]
16733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u16)"]
16734#[doc = "## Safety"]
16735#[doc = "  * Neon intrinsic unsafe"]
16736#[inline(always)]
16737#[target_feature(enable = "neon")]
16738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16739#[rustc_legacy_const_generics(2)]
16740#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16", LANE = 7))]
16741#[cfg_attr(
16742    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16743    assert_instr(ld1, LANE = 7)
16744)]
16745#[cfg_attr(
16746    not(target_arch = "arm"),
16747    stable(feature = "neon_intrinsics", since = "1.59.0")
16748)]
16749#[cfg_attr(
16750    target_arch = "arm",
16751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16752)]
16753pub unsafe fn vld1q_lane_u16<const LANE: i32>(ptr: *const u16, src: uint16x8_t) -> uint16x8_t {
16754    static_assert_uimm_bits!(LANE, 3);
16755    simd_insert!(src, LANE as u32, *ptr)
16756}
16757#[doc = "Load one single-element structure to one lane of one register."]
16758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u32)"]
16759#[doc = "## Safety"]
16760#[doc = "  * Neon intrinsic unsafe"]
16761#[inline(always)]
16762#[target_feature(enable = "neon")]
16763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16764#[rustc_legacy_const_generics(2)]
16765#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32", LANE = 3))]
16766#[cfg_attr(
16767    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16768    assert_instr(ld1, LANE = 3)
16769)]
16770#[cfg_attr(
16771    not(target_arch = "arm"),
16772    stable(feature = "neon_intrinsics", since = "1.59.0")
16773)]
16774#[cfg_attr(
16775    target_arch = "arm",
16776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16777)]
16778pub unsafe fn vld1q_lane_u32<const LANE: i32>(ptr: *const u32, src: uint32x4_t) -> uint32x4_t {
16779    static_assert_uimm_bits!(LANE, 2);
16780    simd_insert!(src, LANE as u32, *ptr)
16781}
16782#[doc = "Load one single-element structure to one lane of one register."]
16783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u64)"]
16784#[doc = "## Safety"]
16785#[doc = "  * Neon intrinsic unsafe"]
16786#[inline(always)]
16787#[target_feature(enable = "neon")]
16788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16789#[rustc_legacy_const_generics(2)]
16790#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16791#[cfg_attr(
16792    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16793    assert_instr(ld1, LANE = 1)
16794)]
16795#[cfg_attr(
16796    not(target_arch = "arm"),
16797    stable(feature = "neon_intrinsics", since = "1.59.0")
16798)]
16799#[cfg_attr(
16800    target_arch = "arm",
16801    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16802)]
16803pub unsafe fn vld1q_lane_u64<const LANE: i32>(ptr: *const u64, src: uint64x2_t) -> uint64x2_t {
16804    static_assert_uimm_bits!(LANE, 1);
16805    simd_insert!(src, LANE as u32, *ptr)
16806}
16807#[doc = "Load one single-element structure to one lane of one register."]
16808#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_u8)"]
16809#[doc = "## Safety"]
16810#[doc = "  * Neon intrinsic unsafe"]
16811#[inline(always)]
16812#[target_feature(enable = "neon")]
16813#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16814#[rustc_legacy_const_generics(2)]
16815#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", LANE = 15))]
16816#[cfg_attr(
16817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16818    assert_instr(ld1, LANE = 15)
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 vld1q_lane_u8<const LANE: i32>(ptr: *const u8, src: uint8x16_t) -> uint8x16_t {
16829    static_assert_uimm_bits!(LANE, 4);
16830    simd_insert!(src, LANE as u32, *ptr)
16831}
16832#[doc = "Load one single-element structure to one lane of one register."]
16833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_lane_p64)"]
16834#[doc = "## Safety"]
16835#[doc = "  * Neon intrinsic unsafe"]
16836#[inline(always)]
16837#[target_feature(enable = "neon,aes")]
16838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16839#[rustc_legacy_const_generics(2)]
16840#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 0))]
16841#[cfg_attr(
16842    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16843    assert_instr(ldr, LANE = 0)
16844)]
16845#[cfg_attr(
16846    not(target_arch = "arm"),
16847    stable(feature = "neon_intrinsics", since = "1.59.0")
16848)]
16849#[cfg_attr(
16850    target_arch = "arm",
16851    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16852)]
16853pub unsafe fn vld1_lane_p64<const LANE: i32>(ptr: *const p64, src: poly64x1_t) -> poly64x1_t {
16854    static_assert!(LANE == 0);
16855    simd_insert!(src, LANE as u32, *ptr)
16856}
16857#[doc = "Load one single-element structure to one lane of one register."]
16858#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_lane_p64)"]
16859#[doc = "## Safety"]
16860#[doc = "  * Neon intrinsic unsafe"]
16861#[inline(always)]
16862#[target_feature(enable = "neon,aes")]
16863#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16864#[rustc_legacy_const_generics(2)]
16865#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr, LANE = 1))]
16866#[cfg_attr(
16867    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16868    assert_instr(ld1, LANE = 1)
16869)]
16870#[cfg_attr(
16871    not(target_arch = "arm"),
16872    stable(feature = "neon_intrinsics", since = "1.59.0")
16873)]
16874#[cfg_attr(
16875    target_arch = "arm",
16876    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16877)]
16878pub unsafe fn vld1q_lane_p64<const LANE: i32>(ptr: *const p64, src: poly64x2_t) -> poly64x2_t {
16879    static_assert_uimm_bits!(LANE, 1);
16880    simd_insert!(src, LANE as u32, *ptr)
16881}
16882#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
16883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64)"]
16884#[doc = "## Safety"]
16885#[doc = "  * Neon intrinsic unsafe"]
16886#[inline(always)]
16887#[cfg(target_arch = "arm")]
16888#[target_feature(enable = "neon,aes")]
16889#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
16891pub unsafe fn vld1_p64(ptr: *const p64) -> poly64x1_t {
16892    let a: *const i8 = ptr as *const i8;
16893    let b: i32 = crate::mem::align_of::<p64>() as i32;
16894    unsafe extern "unadjusted" {
16895        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v1i64")]
16896        fn _vld1_v1i64(a: *const i8, b: i32) -> int64x1_t;
16897    }
16898    transmute(_vld1_v1i64(a, b))
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_p64_x2)"]
16902#[doc = "## Safety"]
16903#[doc = "  * Neon intrinsic unsafe"]
16904#[inline(always)]
16905#[target_feature(enable = "neon,aes")]
16906#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
16908#[cfg_attr(
16909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16910    assert_instr(ld)
16911)]
16912#[cfg_attr(
16913    not(target_arch = "arm"),
16914    stable(feature = "neon_intrinsics", since = "1.59.0")
16915)]
16916#[cfg_attr(
16917    target_arch = "arm",
16918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16919)]
16920pub unsafe fn vld1_p64_x2(a: *const p64) -> poly64x1x2_t {
16921    crate::ptr::read_unaligned(a.cast())
16922}
16923#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x3)"]
16925#[doc = "## Safety"]
16926#[doc = "  * Neon intrinsic unsafe"]
16927#[inline(always)]
16928#[target_feature(enable = "neon,aes")]
16929#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16930#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16931#[cfg_attr(
16932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16933    assert_instr(ld)
16934)]
16935#[cfg_attr(
16936    not(target_arch = "arm"),
16937    stable(feature = "neon_intrinsics", since = "1.59.0")
16938)]
16939#[cfg_attr(
16940    target_arch = "arm",
16941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16942)]
16943pub unsafe fn vld1_p64_x3(a: *const p64) -> poly64x1x3_t {
16944    crate::ptr::read_unaligned(a.cast())
16945}
16946#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x4)"]
16948#[doc = "## Safety"]
16949#[doc = "  * Neon intrinsic unsafe"]
16950#[inline(always)]
16951#[target_feature(enable = "neon,aes")]
16952#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16954#[cfg_attr(
16955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16956    assert_instr(ld)
16957)]
16958#[cfg_attr(
16959    not(target_arch = "arm"),
16960    stable(feature = "neon_intrinsics", since = "1.59.0")
16961)]
16962#[cfg_attr(
16963    target_arch = "arm",
16964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16965)]
16966pub unsafe fn vld1_p64_x4(a: *const p64) -> poly64x1x4_t {
16967    crate::ptr::read_unaligned(a.cast())
16968}
16969#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x2)"]
16971#[doc = "## Safety"]
16972#[doc = "  * Neon intrinsic unsafe"]
16973#[inline(always)]
16974#[target_feature(enable = "neon,aes")]
16975#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16976#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16977#[cfg_attr(
16978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
16979    assert_instr(ld)
16980)]
16981#[cfg_attr(
16982    not(target_arch = "arm"),
16983    stable(feature = "neon_intrinsics", since = "1.59.0")
16984)]
16985#[cfg_attr(
16986    target_arch = "arm",
16987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
16988)]
16989pub unsafe fn vld1q_p64_x2(a: *const p64) -> poly64x2x2_t {
16990    crate::ptr::read_unaligned(a.cast())
16991}
16992#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
16993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x3)"]
16994#[doc = "## Safety"]
16995#[doc = "  * Neon intrinsic unsafe"]
16996#[inline(always)]
16997#[target_feature(enable = "neon,aes")]
16998#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16999#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
17000#[cfg_attr(
17001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17002    assert_instr(ld)
17003)]
17004#[cfg_attr(
17005    not(target_arch = "arm"),
17006    stable(feature = "neon_intrinsics", since = "1.59.0")
17007)]
17008#[cfg_attr(
17009    target_arch = "arm",
17010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17011)]
17012pub unsafe fn vld1q_p64_x3(a: *const p64) -> poly64x2x3_t {
17013    crate::ptr::read_unaligned(a.cast())
17014}
17015#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
17016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x4)"]
17017#[doc = "## Safety"]
17018#[doc = "  * Neon intrinsic unsafe"]
17019#[inline(always)]
17020#[target_feature(enable = "neon,aes")]
17021#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
17022#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
17023#[cfg_attr(
17024    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
17025    assert_instr(ld)
17026)]
17027#[cfg_attr(
17028    not(target_arch = "arm"),
17029    stable(feature = "neon_intrinsics", since = "1.59.0")
17030)]
17031#[cfg_attr(
17032    target_arch = "arm",
17033    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
17034)]
17035pub unsafe fn vld1q_p64_x4(a: *const p64) -> poly64x2x4_t {
17036    crate::ptr::read_unaligned(a.cast())
17037}
17038#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17039#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8)"]
17040#[doc = "## Safety"]
17041#[doc = "  * Neon intrinsic unsafe"]
17042#[inline(always)]
17043#[cfg(target_arch = "arm")]
17044#[target_feature(enable = "neon,v7")]
17045#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17046#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
17047pub unsafe fn vld1_s8(ptr: *const i8) -> int8x8_t {
17048    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
17049    vld1_v8i8::<ALIGN>(ptr as *const i8)
17050}
17051#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8)"]
17053#[doc = "## Safety"]
17054#[doc = "  * Neon intrinsic unsafe"]
17055#[inline(always)]
17056#[cfg(target_arch = "arm")]
17057#[target_feature(enable = "neon,v7")]
17058#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17059#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8"))]
17060pub unsafe fn vld1q_s8(ptr: *const i8) -> int8x16_t {
17061    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
17062    vld1q_v16i8::<ALIGN>(ptr as *const i8)
17063}
17064#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16)"]
17066#[doc = "## Safety"]
17067#[doc = "  * Neon intrinsic unsafe"]
17068#[inline(always)]
17069#[cfg(target_arch = "arm")]
17070#[target_feature(enable = "neon,v7")]
17071#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17072#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
17073pub unsafe fn vld1_s16(ptr: *const i16) -> int16x4_t {
17074    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
17075    vld1_v4i16::<ALIGN>(ptr as *const i8)
17076}
17077#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16)"]
17079#[doc = "## Safety"]
17080#[doc = "  * Neon intrinsic unsafe"]
17081#[inline(always)]
17082#[cfg(target_arch = "arm")]
17083#[target_feature(enable = "neon,v7")]
17084#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17085#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.16"))]
17086pub unsafe fn vld1q_s16(ptr: *const i16) -> int16x8_t {
17087    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
17088    vld1q_v8i16::<ALIGN>(ptr as *const i8)
17089}
17090#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32)"]
17092#[doc = "## Safety"]
17093#[doc = "  * Neon intrinsic unsafe"]
17094#[inline(always)]
17095#[cfg(target_arch = "arm")]
17096#[target_feature(enable = "neon,v7")]
17097#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17098#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
17099pub unsafe fn vld1_s32(ptr: *const i32) -> int32x2_t {
17100    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
17101    vld1_v2i32::<ALIGN>(ptr as *const i8)
17102}
17103#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32)"]
17105#[doc = "## Safety"]
17106#[doc = "  * Neon intrinsic unsafe"]
17107#[inline(always)]
17108#[cfg(target_arch = "arm")]
17109#[target_feature(enable = "neon,v7")]
17110#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17111#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.32"))]
17112pub unsafe fn vld1q_s32(ptr: *const i32) -> int32x4_t {
17113    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
17114    vld1q_v4i32::<ALIGN>(ptr as *const i8)
17115}
17116#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17117#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64)"]
17118#[doc = "## Safety"]
17119#[doc = "  * Neon intrinsic unsafe"]
17120#[inline(always)]
17121#[cfg(target_arch = "arm")]
17122#[target_feature(enable = "neon,v7")]
17123#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17124#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
17125pub unsafe fn vld1_s64(ptr: *const i64) -> int64x1_t {
17126    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
17127    vld1_v1i64::<ALIGN>(ptr as *const i8)
17128}
17129#[doc = "Load multiple single-element structures to one, two, three, or four registers."]
17130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64)"]
17131#[doc = "## Safety"]
17132#[doc = "  * Neon intrinsic unsafe"]
17133#[inline(always)]
17134#[cfg(target_arch = "arm")]
17135#[target_feature(enable = "neon,v7")]
17136#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17137#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.64"))]
17138pub unsafe fn vld1q_s64(ptr: *const i64) -> int64x2_t {
17139    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
17140    vld1q_v2i64::<ALIGN>(ptr as *const i8)
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_s8_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_s8_x2(a: *const i8) -> int8x8x2_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_s8_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_s8_x3(a: *const i8) -> int8x8x3_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_s8_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_s8_x4(a: *const i8) -> int8x8x4_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_s8_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_s8_x2(a: *const i8) -> int8x16x2_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_s8_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_s8_x3(a: *const i8) -> int8x16x3_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_s8_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_s8_x4(a: *const i8) -> int8x16x4_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_s16_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_s16_x2(a: *const i16) -> int16x4x2_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_s16_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_s16_x3(a: *const i16) -> int16x4x3_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_s16_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_s16_x4(a: *const i16) -> int16x4x4_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_s16_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_s16_x2(a: *const i16) -> int16x8x2_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_s16_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_s16_x3(a: *const i16) -> int16x8x3_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_s16_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_s16_x4(a: *const i16) -> int16x8x4_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_s32_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_s32_x2(a: *const i32) -> int32x2x2_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_s32_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_s32_x3(a: *const i32) -> int32x2x3_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_s32_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_s32_x4(a: *const i32) -> int32x2x4_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_s32_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_s32_x2(a: *const i32) -> int32x4x2_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_s32_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_s32_x3(a: *const i32) -> int32x4x3_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_s32_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_s32_x4(a: *const i32) -> int32x4x4_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_s64_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_s64_x2(a: *const i64) -> int64x1x2_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_s64_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_s64_x3(a: *const i64) -> int64x1x3_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_s64_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_s64_x4(a: *const i64) -> int64x1x4_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_s64_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_s64_x2(a: *const i64) -> int64x2x2_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_s64_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_s64_x3(a: *const i64) -> int64x2x3_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_s64_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_s64_x4(a: *const i64) -> int64x2x4_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_u8_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_u8_x2(a: *const u8) -> uint8x8x2_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_u8_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_u8_x3(a: *const u8) -> uint8x8x3_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_u8_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_u8_x4(a: *const u8) -> uint8x8x4_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_u8_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_u8_x2(a: *const u8) -> uint8x16x2_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_u8_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_u8_x3(a: *const u8) -> uint8x16x3_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_u8_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_u8_x4(a: *const u8) -> uint8x16x4_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_u16_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_u16_x2(a: *const u16) -> uint16x4x2_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_u16_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_u16_x3(a: *const u16) -> uint16x4x3_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_u16_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_u16_x4(a: *const u16) -> uint16x4x4_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_u16_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_u16_x2(a: *const u16) -> uint16x8x2_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_u16_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_u16_x3(a: *const u16) -> uint16x8x3_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_u16_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_u16_x4(a: *const u16) -> uint16x8x4_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_u32_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_u32_x2(a: *const u32) -> uint32x2x2_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_u32_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_u32_x3(a: *const u32) -> uint32x2x3_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_u32_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_u32_x4(a: *const u32) -> uint32x2x4_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_u32_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_u32_x2(a: *const u32) -> uint32x4x2_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_u32_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_u32_x3(a: *const u32) -> uint32x4x3_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_u32_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_u32_x4(a: *const u32) -> uint32x4x4_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_u64_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_u64_x2(a: *const u64) -> uint64x1x2_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_u64_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_u64_x3(a: *const u64) -> uint64x1x3_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_u64_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_u64_x4(a: *const u64) -> uint64x1x4_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_u64_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_u64_x2(a: *const u64) -> uint64x2x2_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_u64_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_u64_x3(a: *const u64) -> uint64x2x3_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_u64_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_u64_x4(a: *const u64) -> uint64x2x4_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_p8_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_p8_x2(a: *const p8) -> poly8x8x2_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_p8_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_p8_x3(a: *const p8) -> poly8x8x3_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_p8_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_p8_x4(a: *const p8) -> poly8x8x4_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_p8_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_p8_x2(a: *const p8) -> poly8x16x2_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_p8_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_p8_x3(a: *const p8) -> poly8x16x3_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_p8_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_p8_x4(a: *const p8) -> poly8x16x4_t {
18382    crate::ptr::read_unaligned(a.cast())
18383}
18384#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x2)"]
18386#[doc = "## Safety"]
18387#[doc = "  * Neon intrinsic unsafe"]
18388#[inline(always)]
18389#[target_feature(enable = "neon")]
18390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18392#[cfg_attr(
18393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18394    assert_instr(ld)
18395)]
18396#[cfg_attr(
18397    not(target_arch = "arm"),
18398    stable(feature = "neon_intrinsics", since = "1.59.0")
18399)]
18400#[cfg_attr(
18401    target_arch = "arm",
18402    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18403)]
18404pub unsafe fn vld1_p16_x2(a: *const p16) -> poly16x4x2_t {
18405    crate::ptr::read_unaligned(a.cast())
18406}
18407#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x3)"]
18409#[doc = "## Safety"]
18410#[doc = "  * Neon intrinsic unsafe"]
18411#[inline(always)]
18412#[target_feature(enable = "neon")]
18413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18414#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18415#[cfg_attr(
18416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18417    assert_instr(ld)
18418)]
18419#[cfg_attr(
18420    not(target_arch = "arm"),
18421    stable(feature = "neon_intrinsics", since = "1.59.0")
18422)]
18423#[cfg_attr(
18424    target_arch = "arm",
18425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18426)]
18427pub unsafe fn vld1_p16_x3(a: *const p16) -> poly16x4x3_t {
18428    crate::ptr::read_unaligned(a.cast())
18429}
18430#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x4)"]
18432#[doc = "## Safety"]
18433#[doc = "  * Neon intrinsic unsafe"]
18434#[inline(always)]
18435#[target_feature(enable = "neon")]
18436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18438#[cfg_attr(
18439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18440    assert_instr(ld)
18441)]
18442#[cfg_attr(
18443    not(target_arch = "arm"),
18444    stable(feature = "neon_intrinsics", since = "1.59.0")
18445)]
18446#[cfg_attr(
18447    target_arch = "arm",
18448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18449)]
18450pub unsafe fn vld1_p16_x4(a: *const p16) -> poly16x4x4_t {
18451    crate::ptr::read_unaligned(a.cast())
18452}
18453#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x2)"]
18455#[doc = "## Safety"]
18456#[doc = "  * Neon intrinsic unsafe"]
18457#[inline(always)]
18458#[target_feature(enable = "neon")]
18459#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18460#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18461#[cfg_attr(
18462    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18463    assert_instr(ld)
18464)]
18465#[cfg_attr(
18466    not(target_arch = "arm"),
18467    stable(feature = "neon_intrinsics", since = "1.59.0")
18468)]
18469#[cfg_attr(
18470    target_arch = "arm",
18471    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18472)]
18473pub unsafe fn vld1q_p16_x2(a: *const p16) -> poly16x8x2_t {
18474    crate::ptr::read_unaligned(a.cast())
18475}
18476#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18477#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x3)"]
18478#[doc = "## Safety"]
18479#[doc = "  * Neon intrinsic unsafe"]
18480#[inline(always)]
18481#[target_feature(enable = "neon")]
18482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18484#[cfg_attr(
18485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18486    assert_instr(ld)
18487)]
18488#[cfg_attr(
18489    not(target_arch = "arm"),
18490    stable(feature = "neon_intrinsics", since = "1.59.0")
18491)]
18492#[cfg_attr(
18493    target_arch = "arm",
18494    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18495)]
18496pub unsafe fn vld1q_p16_x3(a: *const p16) -> poly16x8x3_t {
18497    crate::ptr::read_unaligned(a.cast())
18498}
18499#[doc = "Load multiple single-element structures to one, two, three, or four registers"]
18500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x4)"]
18501#[doc = "## Safety"]
18502#[doc = "  * Neon intrinsic unsafe"]
18503#[inline(always)]
18504#[target_feature(enable = "neon")]
18505#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18506#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld))]
18507#[cfg_attr(
18508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18509    assert_instr(ld)
18510)]
18511#[cfg_attr(
18512    not(target_arch = "arm"),
18513    stable(feature = "neon_intrinsics", since = "1.59.0")
18514)]
18515#[cfg_attr(
18516    target_arch = "arm",
18517    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18518)]
18519pub unsafe fn vld1q_p16_x4(a: *const p16) -> poly16x8x4_t {
18520    crate::ptr::read_unaligned(a.cast())
18521}
18522#[inline(always)]
18523#[rustc_legacy_const_generics(1)]
18524#[cfg(target_arch = "arm")]
18525#[target_feature(enable = "neon,v7")]
18526#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18527#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18528unsafe fn vld1_v1i64<const ALIGN: i32>(a: *const i8) -> int64x1_t {
18529    unsafe extern "unadjusted" {
18530        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v1i64")]
18531        fn _vld1_v1i64(a: *const i8, b: i32) -> int64x1_t;
18532    }
18533    _vld1_v1i64(a, ALIGN)
18534}
18535#[inline(always)]
18536#[rustc_legacy_const_generics(1)]
18537#[cfg(target_arch = "arm")]
18538#[target_feature(enable = "neon,v7")]
18539#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18540#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18541unsafe fn vld1_v2f32<const ALIGN: i32>(a: *const i8) -> float32x2_t {
18542    unsafe extern "unadjusted" {
18543        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2f32")]
18544        fn _vld1_v2f32(a: *const i8, b: i32) -> float32x2_t;
18545    }
18546    _vld1_v2f32(a, ALIGN)
18547}
18548#[inline(always)]
18549#[rustc_legacy_const_generics(1)]
18550#[cfg(target_arch = "arm")]
18551#[target_feature(enable = "neon,v7")]
18552#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18553#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18554unsafe fn vld1_v2i32<const ALIGN: i32>(a: *const i8) -> int32x2_t {
18555    unsafe extern "unadjusted" {
18556        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2i32")]
18557        fn _vld1_v2i32(a: *const i8, b: i32) -> int32x2_t;
18558    }
18559    _vld1_v2i32(a, ALIGN)
18560}
18561#[inline(always)]
18562#[rustc_legacy_const_generics(1)]
18563#[cfg(target_arch = "arm")]
18564#[target_feature(enable = "neon,v7")]
18565#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18566#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18567unsafe fn vld1_v4i16<const ALIGN: i32>(a: *const i8) -> int16x4_t {
18568    unsafe extern "unadjusted" {
18569        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4i16")]
18570        fn _vld1_v4i16(a: *const i8, b: i32) -> int16x4_t;
18571    }
18572    _vld1_v4i16(a, ALIGN)
18573}
18574#[inline(always)]
18575#[rustc_legacy_const_generics(1)]
18576#[cfg(target_arch = "arm")]
18577#[target_feature(enable = "neon,v7")]
18578#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18579#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18580unsafe fn vld1_v8i8<const ALIGN: i32>(a: *const i8) -> int8x8_t {
18581    unsafe extern "unadjusted" {
18582        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8i8")]
18583        fn _vld1_v8i8(a: *const i8, b: i32) -> int8x8_t;
18584    }
18585    _vld1_v8i8(a, ALIGN)
18586}
18587#[inline(always)]
18588#[rustc_legacy_const_generics(1)]
18589#[cfg(target_arch = "arm")]
18590#[target_feature(enable = "neon,v7")]
18591#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18592#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18593unsafe fn vld1q_v16i8<const ALIGN: i32>(a: *const i8) -> int8x16_t {
18594    unsafe extern "unadjusted" {
18595        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v16i8")]
18596        fn _vld1q_v16i8(a: *const i8, b: i32) -> int8x16_t;
18597    }
18598    _vld1q_v16i8(a, ALIGN)
18599}
18600#[inline(always)]
18601#[rustc_legacy_const_generics(1)]
18602#[cfg(target_arch = "arm")]
18603#[target_feature(enable = "neon,v7")]
18604#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18605#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18606unsafe fn vld1q_v2i64<const ALIGN: i32>(a: *const i8) -> int64x2_t {
18607    unsafe extern "unadjusted" {
18608        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v2i64")]
18609        fn _vld1q_v2i64(a: *const i8, b: i32) -> int64x2_t;
18610    }
18611    _vld1q_v2i64(a, ALIGN)
18612}
18613#[inline(always)]
18614#[rustc_legacy_const_generics(1)]
18615#[cfg(target_arch = "arm")]
18616#[target_feature(enable = "neon,v7")]
18617#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18618#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18619unsafe fn vld1q_v4f32<const ALIGN: i32>(a: *const i8) -> float32x4_t {
18620    unsafe extern "unadjusted" {
18621        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4f32")]
18622        fn _vld1q_v4f32(a: *const i8, b: i32) -> float32x4_t;
18623    }
18624    _vld1q_v4f32(a, ALIGN)
18625}
18626#[inline(always)]
18627#[rustc_legacy_const_generics(1)]
18628#[cfg(target_arch = "arm")]
18629#[target_feature(enable = "neon,v7")]
18630#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18631#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18632unsafe fn vld1q_v4i32<const ALIGN: i32>(a: *const i8) -> int32x4_t {
18633    unsafe extern "unadjusted" {
18634        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4i32")]
18635        fn _vld1q_v4i32(a: *const i8, b: i32) -> int32x4_t;
18636    }
18637    _vld1q_v4i32(a, ALIGN)
18638}
18639#[inline(always)]
18640#[rustc_legacy_const_generics(1)]
18641#[cfg(target_arch = "arm")]
18642#[target_feature(enable = "neon,v7")]
18643#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vld1.8", ALIGN = 0))]
18644#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18645unsafe fn vld1q_v8i16<const ALIGN: i32>(a: *const i8) -> int16x8_t {
18646    unsafe extern "unadjusted" {
18647        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8i16")]
18648        fn _vld1q_v8i16(a: *const i8, b: i32) -> int16x8_t;
18649    }
18650    _vld1q_v8i16(a, ALIGN)
18651}
18652#[inline(always)]
18653#[cfg(target_arch = "arm")]
18654#[target_feature(enable = "neon,v7")]
18655#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
18656#[target_feature(enable = "neon,fp16")]
18657#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18658#[cfg(not(target_arch = "arm64ec"))]
18659unsafe fn vld1_v4f16(a: *const i8, b: i32) -> float16x4_t {
18660    unsafe extern "unadjusted" {
18661        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v4f16")]
18662        fn _vld1_v4f16(a: *const i8, b: i32) -> float16x4_t;
18663    }
18664    _vld1_v4f16(a, b)
18665}
18666#[inline(always)]
18667#[cfg(target_arch = "arm")]
18668#[target_feature(enable = "neon,v7")]
18669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
18670#[target_feature(enable = "neon,fp16")]
18671#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18672#[cfg(not(target_arch = "arm64ec"))]
18673unsafe fn vld1q_v8f16(a: *const i8, b: i32) -> float16x8_t {
18674    unsafe extern "unadjusted" {
18675        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1.v8f16")]
18676        fn _vld1q_v8f16(a: *const i8, b: i32) -> float16x8_t;
18677    }
18678    _vld1q_v8f16(a, b)
18679}
18680#[doc = "Load one single-element structure and Replicate to all lanes (of one register)."]
18681#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_dup_p64)"]
18682#[doc = "## Safety"]
18683#[doc = "  * Neon intrinsic unsafe"]
18684#[inline(always)]
18685#[target_feature(enable = "neon,aes")]
18686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vldr))]
18688#[cfg_attr(
18689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18690    assert_instr(ld1r)
18691)]
18692#[cfg_attr(
18693    not(target_arch = "arm"),
18694    stable(feature = "neon_intrinsics", since = "1.59.0")
18695)]
18696#[cfg_attr(
18697    target_arch = "arm",
18698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
18699)]
18700pub unsafe fn vld1q_dup_p64(ptr: *const p64) -> poly64x2_t {
18701    let x = vld1q_lane_p64::<0>(ptr, transmute(u64x2::splat(0)));
18702    simd_shuffle!(x, x, [0, 0])
18703}
18704#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18705#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f16)"]
18706#[doc = "## Safety"]
18707#[doc = "  * Neon intrinsic unsafe"]
18708#[inline(always)]
18709#[target_feature(enable = "neon")]
18710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18711#[cfg(target_arch = "arm")]
18712#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
18713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
18714#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
18715#[cfg(not(target_arch = "arm64ec"))]
18716pub unsafe fn vld2_dup_f16(a: *const f16) -> float16x4x2_t {
18717    unsafe extern "unadjusted" {
18718        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4f16.p0")]
18719        fn _vld2_dup_f16(ptr: *const f16, size: i32) -> float16x4x2_t;
18720    }
18721    _vld2_dup_f16(a as _, 2)
18722}
18723#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f16)"]
18725#[doc = "## Safety"]
18726#[doc = "  * Neon intrinsic unsafe"]
18727#[inline(always)]
18728#[target_feature(enable = "neon")]
18729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18730#[cfg(target_arch = "arm")]
18731#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
18732#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
18733#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
18734#[cfg(not(target_arch = "arm64ec"))]
18735pub unsafe fn vld2q_dup_f16(a: *const f16) -> float16x8x2_t {
18736    unsafe extern "unadjusted" {
18737        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8f16.p0")]
18738        fn _vld2q_dup_f16(ptr: *const f16, size: i32) -> float16x8x2_t;
18739    }
18740    _vld2q_dup_f16(a as _, 2)
18741}
18742#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f16)"]
18744#[doc = "## Safety"]
18745#[doc = "  * Neon intrinsic unsafe"]
18746#[inline(always)]
18747#[target_feature(enable = "neon")]
18748#[cfg(not(target_arch = "arm"))]
18749#[cfg_attr(
18750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18751    assert_instr(ld2r)
18752)]
18753#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
18754#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
18755#[cfg(not(target_arch = "arm64ec"))]
18756pub unsafe fn vld2_dup_f16(a: *const f16) -> float16x4x2_t {
18757    unsafe extern "unadjusted" {
18758        #[cfg_attr(
18759            any(target_arch = "aarch64", target_arch = "arm64ec"),
18760            link_name = "llvm.aarch64.neon.ld2r.v4f16.p0"
18761        )]
18762        fn _vld2_dup_f16(ptr: *const f16) -> float16x4x2_t;
18763    }
18764    _vld2_dup_f16(a as _)
18765}
18766#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f16)"]
18768#[doc = "## Safety"]
18769#[doc = "  * Neon intrinsic unsafe"]
18770#[inline(always)]
18771#[target_feature(enable = "neon")]
18772#[cfg(not(target_arch = "arm"))]
18773#[cfg_attr(
18774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
18775    assert_instr(ld2r)
18776)]
18777#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
18778#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
18779#[cfg(not(target_arch = "arm64ec"))]
18780pub unsafe fn vld2q_dup_f16(a: *const f16) -> float16x8x2_t {
18781    unsafe extern "unadjusted" {
18782        #[cfg_attr(
18783            any(target_arch = "aarch64", target_arch = "arm64ec"),
18784            link_name = "llvm.aarch64.neon.ld2r.v8f16.p0"
18785        )]
18786        fn _vld2q_dup_f16(ptr: *const f16) -> float16x8x2_t;
18787    }
18788    _vld2q_dup_f16(a as _)
18789}
18790#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)"]
18792#[doc = "## Safety"]
18793#[doc = "  * Neon intrinsic unsafe"]
18794#[inline(always)]
18795#[target_feature(enable = "neon,v7")]
18796#[cfg(target_arch = "arm")]
18797#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18798#[cfg_attr(test, assert_instr(vld2))]
18799pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
18800    unsafe extern "unadjusted" {
18801        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2f32.p0")]
18802        fn _vld2_dup_f32(ptr: *const i8, size: i32) -> float32x2x2_t;
18803    }
18804    _vld2_dup_f32(a as *const i8, 4)
18805}
18806#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)"]
18808#[doc = "## Safety"]
18809#[doc = "  * Neon intrinsic unsafe"]
18810#[inline(always)]
18811#[target_feature(enable = "neon,v7")]
18812#[cfg(target_arch = "arm")]
18813#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18814#[cfg_attr(test, assert_instr(vld2))]
18815pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
18816    unsafe extern "unadjusted" {
18817        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4f32.p0")]
18818        fn _vld2q_dup_f32(ptr: *const i8, size: i32) -> float32x4x2_t;
18819    }
18820    _vld2q_dup_f32(a as *const i8, 4)
18821}
18822#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)"]
18824#[doc = "## Safety"]
18825#[doc = "  * Neon intrinsic unsafe"]
18826#[inline(always)]
18827#[target_feature(enable = "neon,v7")]
18828#[cfg(target_arch = "arm")]
18829#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18830#[cfg_attr(test, assert_instr(vld2))]
18831pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
18832    unsafe extern "unadjusted" {
18833        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i8.p0")]
18834        fn _vld2_dup_s8(ptr: *const i8, size: i32) -> int8x8x2_t;
18835    }
18836    _vld2_dup_s8(a as *const i8, 1)
18837}
18838#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)"]
18840#[doc = "## Safety"]
18841#[doc = "  * Neon intrinsic unsafe"]
18842#[inline(always)]
18843#[target_feature(enable = "neon,v7")]
18844#[cfg(target_arch = "arm")]
18845#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18846#[cfg_attr(test, assert_instr(vld2))]
18847pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
18848    unsafe extern "unadjusted" {
18849        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v16i8.p0")]
18850        fn _vld2q_dup_s8(ptr: *const i8, size: i32) -> int8x16x2_t;
18851    }
18852    _vld2q_dup_s8(a as *const i8, 1)
18853}
18854#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)"]
18856#[doc = "## Safety"]
18857#[doc = "  * Neon intrinsic unsafe"]
18858#[inline(always)]
18859#[target_feature(enable = "neon,v7")]
18860#[cfg(target_arch = "arm")]
18861#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18862#[cfg_attr(test, assert_instr(vld2))]
18863pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
18864    unsafe extern "unadjusted" {
18865        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i16.p0")]
18866        fn _vld2_dup_s16(ptr: *const i8, size: i32) -> int16x4x2_t;
18867    }
18868    _vld2_dup_s16(a as *const i8, 2)
18869}
18870#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s16)"]
18872#[doc = "## Safety"]
18873#[doc = "  * Neon intrinsic unsafe"]
18874#[inline(always)]
18875#[target_feature(enable = "neon,v7")]
18876#[cfg(target_arch = "arm")]
18877#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18878#[cfg_attr(test, assert_instr(vld2))]
18879pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
18880    unsafe extern "unadjusted" {
18881        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i16.p0")]
18882        fn _vld2q_dup_s16(ptr: *const i8, size: i32) -> int16x8x2_t;
18883    }
18884    _vld2q_dup_s16(a as *const i8, 2)
18885}
18886#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)"]
18888#[doc = "## Safety"]
18889#[doc = "  * Neon intrinsic unsafe"]
18890#[inline(always)]
18891#[target_feature(enable = "neon,v7")]
18892#[cfg(target_arch = "arm")]
18893#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18894#[cfg_attr(test, assert_instr(vld2))]
18895pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
18896    unsafe extern "unadjusted" {
18897        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2i32.p0")]
18898        fn _vld2_dup_s32(ptr: *const i8, size: i32) -> int32x2x2_t;
18899    }
18900    _vld2_dup_s32(a as *const i8, 4)
18901}
18902#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s32)"]
18904#[doc = "## Safety"]
18905#[doc = "  * Neon intrinsic unsafe"]
18906#[inline(always)]
18907#[target_feature(enable = "neon,v7")]
18908#[cfg(target_arch = "arm")]
18909#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
18910#[cfg_attr(test, assert_instr(vld2))]
18911pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
18912    unsafe extern "unadjusted" {
18913        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i32.p0")]
18914        fn _vld2q_dup_s32(ptr: *const i8, size: i32) -> int32x4x2_t;
18915    }
18916    _vld2q_dup_s32(a as *const i8, 4)
18917}
18918#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)"]
18920#[doc = "## Safety"]
18921#[doc = "  * Neon intrinsic unsafe"]
18922#[inline(always)]
18923#[target_feature(enable = "neon")]
18924#[cfg(not(target_arch = "arm"))]
18925#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18926#[cfg_attr(test, assert_instr(ld2r))]
18927pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
18928    unsafe extern "unadjusted" {
18929        #[cfg_attr(
18930            any(target_arch = "aarch64", target_arch = "arm64ec"),
18931            link_name = "llvm.aarch64.neon.ld2r.v2f32.p0"
18932        )]
18933        fn _vld2_dup_f32(ptr: *const f32) -> float32x2x2_t;
18934    }
18935    _vld2_dup_f32(a as _)
18936}
18937#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)"]
18939#[doc = "## Safety"]
18940#[doc = "  * Neon intrinsic unsafe"]
18941#[inline(always)]
18942#[target_feature(enable = "neon")]
18943#[cfg(not(target_arch = "arm"))]
18944#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18945#[cfg_attr(test, assert_instr(ld2r))]
18946pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
18947    unsafe extern "unadjusted" {
18948        #[cfg_attr(
18949            any(target_arch = "aarch64", target_arch = "arm64ec"),
18950            link_name = "llvm.aarch64.neon.ld2r.v4f32.p0"
18951        )]
18952        fn _vld2q_dup_f32(ptr: *const f32) -> float32x4x2_t;
18953    }
18954    _vld2q_dup_f32(a as _)
18955}
18956#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)"]
18958#[doc = "## Safety"]
18959#[doc = "  * Neon intrinsic unsafe"]
18960#[inline(always)]
18961#[target_feature(enable = "neon")]
18962#[cfg(not(target_arch = "arm"))]
18963#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18964#[cfg_attr(test, assert_instr(ld2r))]
18965pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
18966    unsafe extern "unadjusted" {
18967        #[cfg_attr(
18968            any(target_arch = "aarch64", target_arch = "arm64ec"),
18969            link_name = "llvm.aarch64.neon.ld2r.v8i8.p0"
18970        )]
18971        fn _vld2_dup_s8(ptr: *const i8) -> int8x8x2_t;
18972    }
18973    _vld2_dup_s8(a as _)
18974}
18975#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18976#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)"]
18977#[doc = "## Safety"]
18978#[doc = "  * Neon intrinsic unsafe"]
18979#[inline(always)]
18980#[target_feature(enable = "neon")]
18981#[cfg(not(target_arch = "arm"))]
18982#[stable(feature = "neon_intrinsics", since = "1.59.0")]
18983#[cfg_attr(test, assert_instr(ld2r))]
18984pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
18985    unsafe extern "unadjusted" {
18986        #[cfg_attr(
18987            any(target_arch = "aarch64", target_arch = "arm64ec"),
18988            link_name = "llvm.aarch64.neon.ld2r.v16i8.p0"
18989        )]
18990        fn _vld2q_dup_s8(ptr: *const i8) -> int8x16x2_t;
18991    }
18992    _vld2q_dup_s8(a as _)
18993}
18994#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
18995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)"]
18996#[doc = "## Safety"]
18997#[doc = "  * Neon intrinsic unsafe"]
18998#[inline(always)]
18999#[target_feature(enable = "neon")]
19000#[cfg(not(target_arch = "arm"))]
19001#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19002#[cfg_attr(test, assert_instr(ld2r))]
19003pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
19004    unsafe extern "unadjusted" {
19005        #[cfg_attr(
19006            any(target_arch = "aarch64", target_arch = "arm64ec"),
19007            link_name = "llvm.aarch64.neon.ld2r.v4i16.p0"
19008        )]
19009        fn _vld2_dup_s16(ptr: *const i16) -> int16x4x2_t;
19010    }
19011    _vld2_dup_s16(a as _)
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/vld2q_dup_s16)"]
19015#[doc = "## Safety"]
19016#[doc = "  * Neon intrinsic unsafe"]
19017#[inline(always)]
19018#[target_feature(enable = "neon")]
19019#[cfg(not(target_arch = "arm"))]
19020#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19021#[cfg_attr(test, assert_instr(ld2r))]
19022pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
19023    unsafe extern "unadjusted" {
19024        #[cfg_attr(
19025            any(target_arch = "aarch64", target_arch = "arm64ec"),
19026            link_name = "llvm.aarch64.neon.ld2r.v8i16.p0"
19027        )]
19028        fn _vld2q_dup_s16(ptr: *const i16) -> int16x8x2_t;
19029    }
19030    _vld2q_dup_s16(a as _)
19031}
19032#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)"]
19034#[doc = "## Safety"]
19035#[doc = "  * Neon intrinsic unsafe"]
19036#[inline(always)]
19037#[target_feature(enable = "neon")]
19038#[cfg(not(target_arch = "arm"))]
19039#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19040#[cfg_attr(test, assert_instr(ld2r))]
19041pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
19042    unsafe extern "unadjusted" {
19043        #[cfg_attr(
19044            any(target_arch = "aarch64", target_arch = "arm64ec"),
19045            link_name = "llvm.aarch64.neon.ld2r.v2i32.p0"
19046        )]
19047        fn _vld2_dup_s32(ptr: *const i32) -> int32x2x2_t;
19048    }
19049    _vld2_dup_s32(a as _)
19050}
19051#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s32)"]
19053#[doc = "## Safety"]
19054#[doc = "  * Neon intrinsic unsafe"]
19055#[inline(always)]
19056#[target_feature(enable = "neon")]
19057#[cfg(not(target_arch = "arm"))]
19058#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19059#[cfg_attr(test, assert_instr(ld2r))]
19060pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
19061    unsafe extern "unadjusted" {
19062        #[cfg_attr(
19063            any(target_arch = "aarch64", target_arch = "arm64ec"),
19064            link_name = "llvm.aarch64.neon.ld2r.v4i32.p0"
19065        )]
19066        fn _vld2q_dup_s32(ptr: *const i32) -> int32x4x2_t;
19067    }
19068    _vld2q_dup_s32(a as _)
19069}
19070#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19071#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p64)"]
19072#[doc = "## Safety"]
19073#[doc = "  * Neon intrinsic unsafe"]
19074#[inline(always)]
19075#[target_feature(enable = "neon,aes")]
19076#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
19077#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19078#[cfg_attr(
19079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19080    assert_instr(ld2r)
19081)]
19082#[cfg_attr(
19083    not(target_arch = "arm"),
19084    stable(feature = "neon_intrinsics", since = "1.59.0")
19085)]
19086#[cfg_attr(
19087    target_arch = "arm",
19088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19089)]
19090pub unsafe fn vld2_dup_p64(a: *const p64) -> poly64x1x2_t {
19091    transmute(vld2_dup_s64(transmute(a)))
19092}
19093#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)"]
19095#[doc = "## Safety"]
19096#[doc = "  * Neon intrinsic unsafe"]
19097#[inline(always)]
19098#[target_feature(enable = "neon,v7")]
19099#[cfg(target_arch = "arm")]
19100#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19101#[cfg_attr(test, assert_instr(nop))]
19102pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
19103    unsafe extern "unadjusted" {
19104        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v1i64.p0")]
19105        fn _vld2_dup_s64(ptr: *const i8, size: i32) -> int64x1x2_t;
19106    }
19107    _vld2_dup_s64(a as *const i8, 8)
19108}
19109#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)"]
19111#[doc = "## Safety"]
19112#[doc = "  * Neon intrinsic unsafe"]
19113#[inline(always)]
19114#[target_feature(enable = "neon")]
19115#[cfg(not(target_arch = "arm"))]
19116#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19117#[cfg_attr(test, assert_instr(ld2r))]
19118pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
19119    unsafe extern "unadjusted" {
19120        #[cfg_attr(
19121            any(target_arch = "aarch64", target_arch = "arm64ec"),
19122            link_name = "llvm.aarch64.neon.ld2r.v1i64.p0"
19123        )]
19124        fn _vld2_dup_s64(ptr: *const i64) -> int64x1x2_t;
19125    }
19126    _vld2_dup_s64(a as _)
19127}
19128#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u64)"]
19130#[doc = "## Safety"]
19131#[doc = "  * Neon intrinsic unsafe"]
19132#[inline(always)]
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(nop))]
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_u64(a: *const u64) -> uint64x1x2_t {
19149    transmute(vld2_dup_s64(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_u8)"]
19153#[doc = "## Safety"]
19154#[doc = "  * Neon intrinsic unsafe"]
19155#[inline(always)]
19156#[cfg(target_endian = "little")]
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_u8(a: *const u8) -> uint8x8x2_t {
19173    transmute(vld2_dup_s8(transmute(a)))
19174}
19175#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19176#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u8)"]
19177#[doc = "## Safety"]
19178#[doc = "  * Neon intrinsic unsafe"]
19179#[inline(always)]
19180#[cfg(target_endian = "big")]
19181#[target_feature(enable = "neon")]
19182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19184#[cfg_attr(
19185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19186    assert_instr(ld2r)
19187)]
19188#[cfg_attr(
19189    not(target_arch = "arm"),
19190    stable(feature = "neon_intrinsics", since = "1.59.0")
19191)]
19192#[cfg_attr(
19193    target_arch = "arm",
19194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19195)]
19196pub unsafe fn vld2_dup_u8(a: *const u8) -> uint8x8x2_t {
19197    let mut ret_val: uint8x8x2_t = transmute(vld2_dup_s8(transmute(a)));
19198    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19199    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19200    ret_val
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_u8)"]
19204#[doc = "## Safety"]
19205#[doc = "  * Neon intrinsic unsafe"]
19206#[inline(always)]
19207#[cfg(target_endian = "little")]
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_u8(a: *const u8) -> uint8x16x2_t {
19224    transmute(vld2q_dup_s8(transmute(a)))
19225}
19226#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19227#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u8)"]
19228#[doc = "## Safety"]
19229#[doc = "  * Neon intrinsic unsafe"]
19230#[inline(always)]
19231#[cfg(target_endian = "big")]
19232#[target_feature(enable = "neon")]
19233#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19234#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19235#[cfg_attr(
19236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19237    assert_instr(ld2r)
19238)]
19239#[cfg_attr(
19240    not(target_arch = "arm"),
19241    stable(feature = "neon_intrinsics", since = "1.59.0")
19242)]
19243#[cfg_attr(
19244    target_arch = "arm",
19245    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19246)]
19247pub unsafe fn vld2q_dup_u8(a: *const u8) -> uint8x16x2_t {
19248    let mut ret_val: uint8x16x2_t = transmute(vld2q_dup_s8(transmute(a)));
19249    ret_val.0 = unsafe {
19250        simd_shuffle!(
19251            ret_val.0,
19252            ret_val.0,
19253            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19254        )
19255    };
19256    ret_val.1 = unsafe {
19257        simd_shuffle!(
19258            ret_val.1,
19259            ret_val.1,
19260            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19261        )
19262    };
19263    ret_val
19264}
19265#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u16)"]
19267#[doc = "## Safety"]
19268#[doc = "  * Neon intrinsic unsafe"]
19269#[inline(always)]
19270#[cfg(target_endian = "little")]
19271#[target_feature(enable = "neon")]
19272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19274#[cfg_attr(
19275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19276    assert_instr(ld2r)
19277)]
19278#[cfg_attr(
19279    not(target_arch = "arm"),
19280    stable(feature = "neon_intrinsics", since = "1.59.0")
19281)]
19282#[cfg_attr(
19283    target_arch = "arm",
19284    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19285)]
19286pub unsafe fn vld2_dup_u16(a: *const u16) -> uint16x4x2_t {
19287    transmute(vld2_dup_s16(transmute(a)))
19288}
19289#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19290#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u16)"]
19291#[doc = "## Safety"]
19292#[doc = "  * Neon intrinsic unsafe"]
19293#[inline(always)]
19294#[cfg(target_endian = "big")]
19295#[target_feature(enable = "neon")]
19296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19298#[cfg_attr(
19299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19300    assert_instr(ld2r)
19301)]
19302#[cfg_attr(
19303    not(target_arch = "arm"),
19304    stable(feature = "neon_intrinsics", since = "1.59.0")
19305)]
19306#[cfg_attr(
19307    target_arch = "arm",
19308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19309)]
19310pub unsafe fn vld2_dup_u16(a: *const u16) -> uint16x4x2_t {
19311    let mut ret_val: uint16x4x2_t = transmute(vld2_dup_s16(transmute(a)));
19312    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19313    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19314    ret_val
19315}
19316#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u16)"]
19318#[doc = "## Safety"]
19319#[doc = "  * Neon intrinsic unsafe"]
19320#[inline(always)]
19321#[cfg(target_endian = "little")]
19322#[target_feature(enable = "neon")]
19323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19324#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19325#[cfg_attr(
19326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19327    assert_instr(ld2r)
19328)]
19329#[cfg_attr(
19330    not(target_arch = "arm"),
19331    stable(feature = "neon_intrinsics", since = "1.59.0")
19332)]
19333#[cfg_attr(
19334    target_arch = "arm",
19335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19336)]
19337pub unsafe fn vld2q_dup_u16(a: *const u16) -> uint16x8x2_t {
19338    transmute(vld2q_dup_s16(transmute(a)))
19339}
19340#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19341#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u16)"]
19342#[doc = "## Safety"]
19343#[doc = "  * Neon intrinsic unsafe"]
19344#[inline(always)]
19345#[cfg(target_endian = "big")]
19346#[target_feature(enable = "neon")]
19347#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19348#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19349#[cfg_attr(
19350    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19351    assert_instr(ld2r)
19352)]
19353#[cfg_attr(
19354    not(target_arch = "arm"),
19355    stable(feature = "neon_intrinsics", since = "1.59.0")
19356)]
19357#[cfg_attr(
19358    target_arch = "arm",
19359    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19360)]
19361pub unsafe fn vld2q_dup_u16(a: *const u16) -> uint16x8x2_t {
19362    let mut ret_val: uint16x8x2_t = transmute(vld2q_dup_s16(transmute(a)));
19363    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19364    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19365    ret_val
19366}
19367#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u32)"]
19369#[doc = "## Safety"]
19370#[doc = "  * Neon intrinsic unsafe"]
19371#[inline(always)]
19372#[cfg(target_endian = "little")]
19373#[target_feature(enable = "neon")]
19374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19376#[cfg_attr(
19377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19378    assert_instr(ld2r)
19379)]
19380#[cfg_attr(
19381    not(target_arch = "arm"),
19382    stable(feature = "neon_intrinsics", since = "1.59.0")
19383)]
19384#[cfg_attr(
19385    target_arch = "arm",
19386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19387)]
19388pub unsafe fn vld2_dup_u32(a: *const u32) -> uint32x2x2_t {
19389    transmute(vld2_dup_s32(transmute(a)))
19390}
19391#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u32)"]
19393#[doc = "## Safety"]
19394#[doc = "  * Neon intrinsic unsafe"]
19395#[inline(always)]
19396#[cfg(target_endian = "big")]
19397#[target_feature(enable = "neon")]
19398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19399#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19400#[cfg_attr(
19401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19402    assert_instr(ld2r)
19403)]
19404#[cfg_attr(
19405    not(target_arch = "arm"),
19406    stable(feature = "neon_intrinsics", since = "1.59.0")
19407)]
19408#[cfg_attr(
19409    target_arch = "arm",
19410    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19411)]
19412pub unsafe fn vld2_dup_u32(a: *const u32) -> uint32x2x2_t {
19413    let mut ret_val: uint32x2x2_t = transmute(vld2_dup_s32(transmute(a)));
19414    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
19415    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
19416    ret_val
19417}
19418#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u32)"]
19420#[doc = "## Safety"]
19421#[doc = "  * Neon intrinsic unsafe"]
19422#[inline(always)]
19423#[cfg(target_endian = "little")]
19424#[target_feature(enable = "neon")]
19425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19426#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19427#[cfg_attr(
19428    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19429    assert_instr(ld2r)
19430)]
19431#[cfg_attr(
19432    not(target_arch = "arm"),
19433    stable(feature = "neon_intrinsics", since = "1.59.0")
19434)]
19435#[cfg_attr(
19436    target_arch = "arm",
19437    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19438)]
19439pub unsafe fn vld2q_dup_u32(a: *const u32) -> uint32x4x2_t {
19440    transmute(vld2q_dup_s32(transmute(a)))
19441}
19442#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19443#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u32)"]
19444#[doc = "## Safety"]
19445#[doc = "  * Neon intrinsic unsafe"]
19446#[inline(always)]
19447#[cfg(target_endian = "big")]
19448#[target_feature(enable = "neon")]
19449#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19450#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19451#[cfg_attr(
19452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19453    assert_instr(ld2r)
19454)]
19455#[cfg_attr(
19456    not(target_arch = "arm"),
19457    stable(feature = "neon_intrinsics", since = "1.59.0")
19458)]
19459#[cfg_attr(
19460    target_arch = "arm",
19461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19462)]
19463pub unsafe fn vld2q_dup_u32(a: *const u32) -> uint32x4x2_t {
19464    let mut ret_val: uint32x4x2_t = transmute(vld2q_dup_s32(transmute(a)));
19465    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19466    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19467    ret_val
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_p8)"]
19471#[doc = "## Safety"]
19472#[doc = "  * Neon intrinsic unsafe"]
19473#[inline(always)]
19474#[cfg(target_endian = "little")]
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_p8(a: *const p8) -> poly8x8x2_t {
19491    transmute(vld2_dup_s8(transmute(a)))
19492}
19493#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p8)"]
19495#[doc = "## Safety"]
19496#[doc = "  * Neon intrinsic unsafe"]
19497#[inline(always)]
19498#[cfg(target_endian = "big")]
19499#[target_feature(enable = "neon")]
19500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19502#[cfg_attr(
19503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19504    assert_instr(ld2r)
19505)]
19506#[cfg_attr(
19507    not(target_arch = "arm"),
19508    stable(feature = "neon_intrinsics", since = "1.59.0")
19509)]
19510#[cfg_attr(
19511    target_arch = "arm",
19512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19513)]
19514pub unsafe fn vld2_dup_p8(a: *const p8) -> poly8x8x2_t {
19515    let mut ret_val: poly8x8x2_t = transmute(vld2_dup_s8(transmute(a)));
19516    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19517    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19518    ret_val
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_p8)"]
19522#[doc = "## Safety"]
19523#[doc = "  * Neon intrinsic unsafe"]
19524#[inline(always)]
19525#[cfg(target_endian = "little")]
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_p8(a: *const p8) -> poly8x16x2_t {
19542    transmute(vld2q_dup_s8(transmute(a)))
19543}
19544#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19545#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p8)"]
19546#[doc = "## Safety"]
19547#[doc = "  * Neon intrinsic unsafe"]
19548#[inline(always)]
19549#[cfg(target_endian = "big")]
19550#[target_feature(enable = "neon")]
19551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19553#[cfg_attr(
19554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19555    assert_instr(ld2r)
19556)]
19557#[cfg_attr(
19558    not(target_arch = "arm"),
19559    stable(feature = "neon_intrinsics", since = "1.59.0")
19560)]
19561#[cfg_attr(
19562    target_arch = "arm",
19563    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19564)]
19565pub unsafe fn vld2q_dup_p8(a: *const p8) -> poly8x16x2_t {
19566    let mut ret_val: poly8x16x2_t = transmute(vld2q_dup_s8(transmute(a)));
19567    ret_val.0 = unsafe {
19568        simd_shuffle!(
19569            ret_val.0,
19570            ret_val.0,
19571            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19572        )
19573    };
19574    ret_val.1 = unsafe {
19575        simd_shuffle!(
19576            ret_val.1,
19577            ret_val.1,
19578            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19579        )
19580    };
19581    ret_val
19582}
19583#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p16)"]
19585#[doc = "## Safety"]
19586#[doc = "  * Neon intrinsic unsafe"]
19587#[inline(always)]
19588#[cfg(target_endian = "little")]
19589#[target_feature(enable = "neon")]
19590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19592#[cfg_attr(
19593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19594    assert_instr(ld2r)
19595)]
19596#[cfg_attr(
19597    not(target_arch = "arm"),
19598    stable(feature = "neon_intrinsics", since = "1.59.0")
19599)]
19600#[cfg_attr(
19601    target_arch = "arm",
19602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19603)]
19604pub unsafe fn vld2_dup_p16(a: *const p16) -> poly16x4x2_t {
19605    transmute(vld2_dup_s16(transmute(a)))
19606}
19607#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p16)"]
19609#[doc = "## Safety"]
19610#[doc = "  * Neon intrinsic unsafe"]
19611#[inline(always)]
19612#[cfg(target_endian = "big")]
19613#[target_feature(enable = "neon")]
19614#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19615#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19616#[cfg_attr(
19617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19618    assert_instr(ld2r)
19619)]
19620#[cfg_attr(
19621    not(target_arch = "arm"),
19622    stable(feature = "neon_intrinsics", since = "1.59.0")
19623)]
19624#[cfg_attr(
19625    target_arch = "arm",
19626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19627)]
19628pub unsafe fn vld2_dup_p16(a: *const p16) -> poly16x4x2_t {
19629    let mut ret_val: poly16x4x2_t = transmute(vld2_dup_s16(transmute(a)));
19630    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
19631    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
19632    ret_val
19633}
19634#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p16)"]
19636#[doc = "## Safety"]
19637#[doc = "  * Neon intrinsic unsafe"]
19638#[inline(always)]
19639#[cfg(target_endian = "little")]
19640#[target_feature(enable = "neon")]
19641#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19642#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19643#[cfg_attr(
19644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19645    assert_instr(ld2r)
19646)]
19647#[cfg_attr(
19648    not(target_arch = "arm"),
19649    stable(feature = "neon_intrinsics", since = "1.59.0")
19650)]
19651#[cfg_attr(
19652    target_arch = "arm",
19653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19654)]
19655pub unsafe fn vld2q_dup_p16(a: *const p16) -> poly16x8x2_t {
19656    transmute(vld2q_dup_s16(transmute(a)))
19657}
19658#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p16)"]
19660#[doc = "## Safety"]
19661#[doc = "  * Neon intrinsic unsafe"]
19662#[inline(always)]
19663#[cfg(target_endian = "big")]
19664#[target_feature(enable = "neon")]
19665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19666#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19667#[cfg_attr(
19668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19669    assert_instr(ld2r)
19670)]
19671#[cfg_attr(
19672    not(target_arch = "arm"),
19673    stable(feature = "neon_intrinsics", since = "1.59.0")
19674)]
19675#[cfg_attr(
19676    target_arch = "arm",
19677    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
19678)]
19679pub unsafe fn vld2q_dup_p16(a: *const p16) -> poly16x8x2_t {
19680    let mut ret_val: poly16x8x2_t = transmute(vld2q_dup_s16(transmute(a)));
19681    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
19682    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
19683    ret_val
19684}
19685#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f16)"]
19687#[doc = "## Safety"]
19688#[doc = "  * Neon intrinsic unsafe"]
19689#[inline(always)]
19690#[target_feature(enable = "neon")]
19691#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19692#[cfg(target_arch = "arm")]
19693#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19694#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19695#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19696#[cfg(not(target_arch = "arm64ec"))]
19697pub unsafe fn vld2_f16(a: *const f16) -> float16x4x2_t {
19698    unsafe extern "unadjusted" {
19699        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4f16.p0")]
19700        fn _vld2_f16(ptr: *const f16, size: i32) -> float16x4x2_t;
19701    }
19702    _vld2_f16(a as _, 2)
19703}
19704#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19705#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f16)"]
19706#[doc = "## Safety"]
19707#[doc = "  * Neon intrinsic unsafe"]
19708#[inline(always)]
19709#[target_feature(enable = "neon")]
19710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19711#[cfg(target_arch = "arm")]
19712#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
19713#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19714#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19715#[cfg(not(target_arch = "arm64ec"))]
19716pub unsafe fn vld2q_f16(a: *const f16) -> float16x8x2_t {
19717    unsafe extern "unadjusted" {
19718        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8f16.p0")]
19719        fn _vld2q_f16(ptr: *const f16, size: i32) -> float16x8x2_t;
19720    }
19721    _vld2q_f16(a as _, 2)
19722}
19723#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f16)"]
19725#[doc = "## Safety"]
19726#[doc = "  * Neon intrinsic unsafe"]
19727#[inline(always)]
19728#[target_feature(enable = "neon")]
19729#[cfg(not(target_arch = "arm"))]
19730#[cfg_attr(
19731    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19732    assert_instr(ld2)
19733)]
19734#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19735#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19736#[cfg(not(target_arch = "arm64ec"))]
19737pub unsafe fn vld2_f16(a: *const f16) -> float16x4x2_t {
19738    unsafe extern "unadjusted" {
19739        #[cfg_attr(
19740            any(target_arch = "aarch64", target_arch = "arm64ec"),
19741            link_name = "llvm.aarch64.neon.ld2.v4f16.p0"
19742        )]
19743        fn _vld2_f16(ptr: *const f16) -> float16x4x2_t;
19744    }
19745    _vld2_f16(a as _)
19746}
19747#[doc = "Load single 2-element structure and replicate to all lanes of two registers"]
19748#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f16)"]
19749#[doc = "## Safety"]
19750#[doc = "  * Neon intrinsic unsafe"]
19751#[inline(always)]
19752#[target_feature(enable = "neon")]
19753#[cfg(not(target_arch = "arm"))]
19754#[cfg_attr(
19755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
19756    assert_instr(ld2)
19757)]
19758#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
19759#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
19760#[cfg(not(target_arch = "arm64ec"))]
19761pub unsafe fn vld2q_f16(a: *const f16) -> float16x8x2_t {
19762    unsafe extern "unadjusted" {
19763        #[cfg_attr(
19764            any(target_arch = "aarch64", target_arch = "arm64ec"),
19765            link_name = "llvm.aarch64.neon.ld2.v8f16.p0"
19766        )]
19767        fn _vld2q_f16(ptr: *const f16) -> float16x8x2_t;
19768    }
19769    _vld2q_f16(a as _)
19770}
19771#[doc = "Load multiple 2-element structures to two registers"]
19772#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)"]
19773#[doc = "## Safety"]
19774#[doc = "  * Neon intrinsic unsafe"]
19775#[inline(always)]
19776#[target_feature(enable = "neon,v7")]
19777#[cfg(target_arch = "arm")]
19778#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19779#[cfg_attr(test, assert_instr(vld2))]
19780pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
19781    unsafe extern "unadjusted" {
19782        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2f32")]
19783        fn _vld2_f32(ptr: *const i8, size: i32) -> float32x2x2_t;
19784    }
19785    _vld2_f32(a as *const i8, 4)
19786}
19787#[doc = "Load multiple 2-element structures to two registers"]
19788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)"]
19789#[doc = "## Safety"]
19790#[doc = "  * Neon intrinsic unsafe"]
19791#[inline(always)]
19792#[target_feature(enable = "neon,v7")]
19793#[cfg(target_arch = "arm")]
19794#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19795#[cfg_attr(test, assert_instr(vld2))]
19796pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
19797    unsafe extern "unadjusted" {
19798        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4f32")]
19799        fn _vld2q_f32(ptr: *const i8, size: i32) -> float32x4x2_t;
19800    }
19801    _vld2q_f32(a as *const i8, 4)
19802}
19803#[doc = "Load multiple 2-element structures to two registers"]
19804#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s8)"]
19805#[doc = "## Safety"]
19806#[doc = "  * Neon intrinsic unsafe"]
19807#[inline(always)]
19808#[target_feature(enable = "neon,v7")]
19809#[cfg(target_arch = "arm")]
19810#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19811#[cfg_attr(test, assert_instr(vld2))]
19812pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
19813    unsafe extern "unadjusted" {
19814        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i8")]
19815        fn _vld2_s8(ptr: *const i8, size: i32) -> int8x8x2_t;
19816    }
19817    _vld2_s8(a as *const i8, 1)
19818}
19819#[doc = "Load multiple 2-element structures to two registers"]
19820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)"]
19821#[doc = "## Safety"]
19822#[doc = "  * Neon intrinsic unsafe"]
19823#[inline(always)]
19824#[target_feature(enable = "neon,v7")]
19825#[cfg(target_arch = "arm")]
19826#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19827#[cfg_attr(test, assert_instr(vld2))]
19828pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
19829    unsafe extern "unadjusted" {
19830        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v16i8")]
19831        fn _vld2q_s8(ptr: *const i8, size: i32) -> int8x16x2_t;
19832    }
19833    _vld2q_s8(a as *const i8, 1)
19834}
19835#[doc = "Load multiple 2-element structures to two registers"]
19836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)"]
19837#[doc = "## Safety"]
19838#[doc = "  * Neon intrinsic unsafe"]
19839#[inline(always)]
19840#[target_feature(enable = "neon,v7")]
19841#[cfg(target_arch = "arm")]
19842#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19843#[cfg_attr(test, assert_instr(vld2))]
19844pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
19845    unsafe extern "unadjusted" {
19846        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i16")]
19847        fn _vld2_s16(ptr: *const i8, size: i32) -> int16x4x2_t;
19848    }
19849    _vld2_s16(a as *const i8, 2)
19850}
19851#[doc = "Load multiple 2-element structures to two registers"]
19852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)"]
19853#[doc = "## Safety"]
19854#[doc = "  * Neon intrinsic unsafe"]
19855#[inline(always)]
19856#[target_feature(enable = "neon,v7")]
19857#[cfg(target_arch = "arm")]
19858#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19859#[cfg_attr(test, assert_instr(vld2))]
19860pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
19861    unsafe extern "unadjusted" {
19862        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i16")]
19863        fn _vld2q_s16(ptr: *const i8, size: i32) -> int16x8x2_t;
19864    }
19865    _vld2q_s16(a as *const i8, 2)
19866}
19867#[doc = "Load multiple 2-element structures to two registers"]
19868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)"]
19869#[doc = "## Safety"]
19870#[doc = "  * Neon intrinsic unsafe"]
19871#[inline(always)]
19872#[target_feature(enable = "neon,v7")]
19873#[cfg(target_arch = "arm")]
19874#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19875#[cfg_attr(test, assert_instr(vld2))]
19876pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
19877    unsafe extern "unadjusted" {
19878        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2i32")]
19879        fn _vld2_s32(ptr: *const i8, size: i32) -> int32x2x2_t;
19880    }
19881    _vld2_s32(a as *const i8, 4)
19882}
19883#[doc = "Load multiple 2-element structures to two registers"]
19884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)"]
19885#[doc = "## Safety"]
19886#[doc = "  * Neon intrinsic unsafe"]
19887#[inline(always)]
19888#[target_feature(enable = "neon,v7")]
19889#[cfg(target_arch = "arm")]
19890#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
19891#[cfg_attr(test, assert_instr(vld2))]
19892pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
19893    unsafe extern "unadjusted" {
19894        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i32")]
19895        fn _vld2q_s32(ptr: *const i8, size: i32) -> int32x4x2_t;
19896    }
19897    _vld2q_s32(a as *const i8, 4)
19898}
19899#[doc = "Load multiple 2-element structures to two registers"]
19900#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)"]
19901#[doc = "## Safety"]
19902#[doc = "  * Neon intrinsic unsafe"]
19903#[inline(always)]
19904#[target_feature(enable = "neon")]
19905#[cfg(not(target_arch = "arm"))]
19906#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19907#[cfg_attr(test, assert_instr(ld2))]
19908pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
19909    unsafe extern "unadjusted" {
19910        #[cfg_attr(
19911            any(target_arch = "aarch64", target_arch = "arm64ec"),
19912            link_name = "llvm.aarch64.neon.ld2.v2f32.p0"
19913        )]
19914        fn _vld2_f32(ptr: *const float32x2_t) -> float32x2x2_t;
19915    }
19916    _vld2_f32(a as _)
19917}
19918#[doc = "Load multiple 2-element structures to two registers"]
19919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)"]
19920#[doc = "## Safety"]
19921#[doc = "  * Neon intrinsic unsafe"]
19922#[inline(always)]
19923#[target_feature(enable = "neon")]
19924#[cfg(not(target_arch = "arm"))]
19925#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19926#[cfg_attr(test, assert_instr(ld2))]
19927pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
19928    unsafe extern "unadjusted" {
19929        #[cfg_attr(
19930            any(target_arch = "aarch64", target_arch = "arm64ec"),
19931            link_name = "llvm.aarch64.neon.ld2.v4f32.p0"
19932        )]
19933        fn _vld2q_f32(ptr: *const float32x4_t) -> float32x4x2_t;
19934    }
19935    _vld2q_f32(a as _)
19936}
19937#[doc = "Load multiple 2-element structures to two registers"]
19938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s8)"]
19939#[doc = "## Safety"]
19940#[doc = "  * Neon intrinsic unsafe"]
19941#[inline(always)]
19942#[target_feature(enable = "neon")]
19943#[cfg(not(target_arch = "arm"))]
19944#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19945#[cfg_attr(test, assert_instr(ld2))]
19946pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
19947    unsafe extern "unadjusted" {
19948        #[cfg_attr(
19949            any(target_arch = "aarch64", target_arch = "arm64ec"),
19950            link_name = "llvm.aarch64.neon.ld2.v8i8.p0"
19951        )]
19952        fn _vld2_s8(ptr: *const int8x8_t) -> int8x8x2_t;
19953    }
19954    _vld2_s8(a as _)
19955}
19956#[doc = "Load multiple 2-element structures to two registers"]
19957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)"]
19958#[doc = "## Safety"]
19959#[doc = "  * Neon intrinsic unsafe"]
19960#[inline(always)]
19961#[target_feature(enable = "neon")]
19962#[cfg(not(target_arch = "arm"))]
19963#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19964#[cfg_attr(test, assert_instr(ld2))]
19965pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
19966    unsafe extern "unadjusted" {
19967        #[cfg_attr(
19968            any(target_arch = "aarch64", target_arch = "arm64ec"),
19969            link_name = "llvm.aarch64.neon.ld2.v16i8.p0"
19970        )]
19971        fn _vld2q_s8(ptr: *const int8x16_t) -> int8x16x2_t;
19972    }
19973    _vld2q_s8(a as _)
19974}
19975#[doc = "Load multiple 2-element structures to two registers"]
19976#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)"]
19977#[doc = "## Safety"]
19978#[doc = "  * Neon intrinsic unsafe"]
19979#[inline(always)]
19980#[target_feature(enable = "neon")]
19981#[cfg(not(target_arch = "arm"))]
19982#[stable(feature = "neon_intrinsics", since = "1.59.0")]
19983#[cfg_attr(test, assert_instr(ld2))]
19984pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
19985    unsafe extern "unadjusted" {
19986        #[cfg_attr(
19987            any(target_arch = "aarch64", target_arch = "arm64ec"),
19988            link_name = "llvm.aarch64.neon.ld2.v4i16.p0"
19989        )]
19990        fn _vld2_s16(ptr: *const int16x4_t) -> int16x4x2_t;
19991    }
19992    _vld2_s16(a as _)
19993}
19994#[doc = "Load multiple 2-element structures to two registers"]
19995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)"]
19996#[doc = "## Safety"]
19997#[doc = "  * Neon intrinsic unsafe"]
19998#[inline(always)]
19999#[target_feature(enable = "neon")]
20000#[cfg(not(target_arch = "arm"))]
20001#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20002#[cfg_attr(test, assert_instr(ld2))]
20003pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
20004    unsafe extern "unadjusted" {
20005        #[cfg_attr(
20006            any(target_arch = "aarch64", target_arch = "arm64ec"),
20007            link_name = "llvm.aarch64.neon.ld2.v8i16.p0"
20008        )]
20009        fn _vld2q_s16(ptr: *const int16x8_t) -> int16x8x2_t;
20010    }
20011    _vld2q_s16(a as _)
20012}
20013#[doc = "Load multiple 2-element structures to two registers"]
20014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)"]
20015#[doc = "## Safety"]
20016#[doc = "  * Neon intrinsic unsafe"]
20017#[inline(always)]
20018#[target_feature(enable = "neon")]
20019#[cfg(not(target_arch = "arm"))]
20020#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20021#[cfg_attr(test, assert_instr(ld2))]
20022pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
20023    unsafe extern "unadjusted" {
20024        #[cfg_attr(
20025            any(target_arch = "aarch64", target_arch = "arm64ec"),
20026            link_name = "llvm.aarch64.neon.ld2.v2i32.p0"
20027        )]
20028        fn _vld2_s32(ptr: *const int32x2_t) -> int32x2x2_t;
20029    }
20030    _vld2_s32(a as _)
20031}
20032#[doc = "Load multiple 2-element structures to two registers"]
20033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)"]
20034#[doc = "## Safety"]
20035#[doc = "  * Neon intrinsic unsafe"]
20036#[inline(always)]
20037#[target_feature(enable = "neon")]
20038#[cfg(not(target_arch = "arm"))]
20039#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20040#[cfg_attr(test, assert_instr(ld2))]
20041pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
20042    unsafe extern "unadjusted" {
20043        #[cfg_attr(
20044            any(target_arch = "aarch64", target_arch = "arm64ec"),
20045            link_name = "llvm.aarch64.neon.ld2.v4i32.p0"
20046        )]
20047        fn _vld2q_s32(ptr: *const int32x4_t) -> int32x4x2_t;
20048    }
20049    _vld2q_s32(a as _)
20050}
20051#[doc = "Load multiple 2-element structures to two registers"]
20052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f16)"]
20053#[doc = "## Safety"]
20054#[doc = "  * Neon intrinsic unsafe"]
20055#[inline(always)]
20056#[target_feature(enable = "neon,v7")]
20057#[cfg(target_arch = "arm")]
20058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20059#[rustc_legacy_const_generics(2)]
20060#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20061#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20062#[cfg(not(target_arch = "arm64ec"))]
20063pub unsafe fn vld2_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x2_t) -> float16x4x2_t {
20064    static_assert_uimm_bits!(LANE, 2);
20065    unsafe extern "unadjusted" {
20066        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4f16.p0")]
20067        fn _vld2_lane_f16(
20068            ptr: *const f16,
20069            a: float16x4_t,
20070            b: float16x4_t,
20071            n: i32,
20072            size: i32,
20073        ) -> float16x4x2_t;
20074    }
20075    _vld2_lane_f16(a as _, b.0, b.1, LANE, 2)
20076}
20077#[doc = "Load multiple 2-element structures to two registers"]
20078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f16)"]
20079#[doc = "## Safety"]
20080#[doc = "  * Neon intrinsic unsafe"]
20081#[inline(always)]
20082#[target_feature(enable = "neon,v7")]
20083#[cfg(target_arch = "arm")]
20084#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20085#[rustc_legacy_const_generics(2)]
20086#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20087#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20088#[cfg(not(target_arch = "arm64ec"))]
20089pub unsafe fn vld2q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x2_t) -> float16x8x2_t {
20090    static_assert_uimm_bits!(LANE, 3);
20091    unsafe extern "unadjusted" {
20092        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8f16.p0")]
20093        fn _vld2q_lane_f16(
20094            ptr: *const f16,
20095            a: float16x8_t,
20096            b: float16x8_t,
20097            n: i32,
20098            size: i32,
20099        ) -> float16x8x2_t;
20100    }
20101    _vld2q_lane_f16(a as _, b.0, b.1, LANE, 2)
20102}
20103#[doc = "Load multiple 2-element structures to two registers"]
20104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f16)"]
20105#[doc = "## Safety"]
20106#[doc = "  * Neon intrinsic unsafe"]
20107#[inline(always)]
20108#[target_feature(enable = "neon")]
20109#[cfg(not(target_arch = "arm"))]
20110#[cfg_attr(
20111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20112    assert_instr(ld2, LANE = 0)
20113)]
20114#[rustc_legacy_const_generics(2)]
20115#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20116#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20117#[cfg(not(target_arch = "arm64ec"))]
20118pub unsafe fn vld2_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x2_t) -> float16x4x2_t {
20119    static_assert_uimm_bits!(LANE, 2);
20120    unsafe extern "unadjusted" {
20121        #[cfg_attr(
20122            any(target_arch = "aarch64", target_arch = "arm64ec"),
20123            link_name = "llvm.aarch64.neon.ld2lane.v4f16.p0"
20124        )]
20125        fn _vld2_lane_f16(a: float16x4_t, b: float16x4_t, n: i64, ptr: *const f16)
20126            -> float16x4x2_t;
20127    }
20128    _vld2_lane_f16(b.0, b.1, LANE as i64, a as _)
20129}
20130#[doc = "Load multiple 2-element structures to two registers"]
20131#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f16)"]
20132#[doc = "## Safety"]
20133#[doc = "  * Neon intrinsic unsafe"]
20134#[inline(always)]
20135#[target_feature(enable = "neon")]
20136#[cfg(not(target_arch = "arm"))]
20137#[cfg_attr(
20138    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20139    assert_instr(ld2, LANE = 0)
20140)]
20141#[rustc_legacy_const_generics(2)]
20142#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20143#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20144#[cfg(not(target_arch = "arm64ec"))]
20145pub unsafe fn vld2q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x2_t) -> float16x8x2_t {
20146    static_assert_uimm_bits!(LANE, 3);
20147    unsafe extern "unadjusted" {
20148        #[cfg_attr(
20149            any(target_arch = "aarch64", target_arch = "arm64ec"),
20150            link_name = "llvm.aarch64.neon.ld2lane.v8f16.p0"
20151        )]
20152        fn _vld2q_lane_f16(
20153            a: float16x8_t,
20154            b: float16x8_t,
20155            n: i64,
20156            ptr: *const f16,
20157        ) -> float16x8x2_t;
20158    }
20159    _vld2q_lane_f16(b.0, b.1, LANE as i64, a as _)
20160}
20161#[doc = "Load multiple 2-element structures to two registers"]
20162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)"]
20163#[doc = "## Safety"]
20164#[doc = "  * Neon intrinsic unsafe"]
20165#[inline(always)]
20166#[target_feature(enable = "neon")]
20167#[cfg(not(target_arch = "arm"))]
20168#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20169#[rustc_legacy_const_generics(2)]
20170#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20171pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
20172    static_assert_uimm_bits!(LANE, 2);
20173    unsafe extern "unadjusted" {
20174        #[cfg_attr(
20175            any(target_arch = "aarch64", target_arch = "arm64ec"),
20176            link_name = "llvm.aarch64.neon.ld2lane.v2f32.p0"
20177        )]
20178        fn _vld2_lane_f32(a: float32x2_t, b: float32x2_t, n: i64, ptr: *const i8) -> float32x2x2_t;
20179    }
20180    _vld2_lane_f32(b.0, b.1, LANE as i64, a as _)
20181}
20182#[doc = "Load multiple 2-element structures to two registers"]
20183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)"]
20184#[doc = "## Safety"]
20185#[doc = "  * Neon intrinsic unsafe"]
20186#[inline(always)]
20187#[target_feature(enable = "neon")]
20188#[cfg(not(target_arch = "arm"))]
20189#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20190#[rustc_legacy_const_generics(2)]
20191#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20192pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
20193    static_assert_uimm_bits!(LANE, 2);
20194    unsafe extern "unadjusted" {
20195        #[cfg_attr(
20196            any(target_arch = "aarch64", target_arch = "arm64ec"),
20197            link_name = "llvm.aarch64.neon.ld2lane.v4f32.p0"
20198        )]
20199        fn _vld2q_lane_f32(a: float32x4_t, b: float32x4_t, n: i64, ptr: *const i8)
20200            -> float32x4x2_t;
20201    }
20202    _vld2q_lane_f32(b.0, b.1, LANE as i64, a as _)
20203}
20204#[doc = "Load multiple 2-element structures to two registers"]
20205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)"]
20206#[doc = "## Safety"]
20207#[doc = "  * Neon intrinsic unsafe"]
20208#[inline(always)]
20209#[target_feature(enable = "neon")]
20210#[cfg(not(target_arch = "arm"))]
20211#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20212#[rustc_legacy_const_generics(2)]
20213#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20214pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
20215    static_assert_uimm_bits!(LANE, 3);
20216    unsafe extern "unadjusted" {
20217        #[cfg_attr(
20218            any(target_arch = "aarch64", target_arch = "arm64ec"),
20219            link_name = "llvm.aarch64.neon.ld2lane.v8i8.p0"
20220        )]
20221        fn _vld2_lane_s8(a: int8x8_t, b: int8x8_t, n: i64, ptr: *const i8) -> int8x8x2_t;
20222    }
20223    _vld2_lane_s8(b.0, b.1, LANE as i64, a as _)
20224}
20225#[doc = "Load multiple 2-element structures to two registers"]
20226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)"]
20227#[doc = "## Safety"]
20228#[doc = "  * Neon intrinsic unsafe"]
20229#[inline(always)]
20230#[target_feature(enable = "neon")]
20231#[cfg(not(target_arch = "arm"))]
20232#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20233#[rustc_legacy_const_generics(2)]
20234#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20235pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
20236    static_assert_uimm_bits!(LANE, 2);
20237    unsafe extern "unadjusted" {
20238        #[cfg_attr(
20239            any(target_arch = "aarch64", target_arch = "arm64ec"),
20240            link_name = "llvm.aarch64.neon.ld2lane.v4i16.p0"
20241        )]
20242        fn _vld2_lane_s16(a: int16x4_t, b: int16x4_t, n: i64, ptr: *const i8) -> int16x4x2_t;
20243    }
20244    _vld2_lane_s16(b.0, b.1, LANE as i64, a as _)
20245}
20246#[doc = "Load multiple 2-element structures to two registers"]
20247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)"]
20248#[doc = "## Safety"]
20249#[doc = "  * Neon intrinsic unsafe"]
20250#[inline(always)]
20251#[target_feature(enable = "neon")]
20252#[cfg(not(target_arch = "arm"))]
20253#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20254#[rustc_legacy_const_generics(2)]
20255#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20256pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
20257    static_assert_uimm_bits!(LANE, 3);
20258    unsafe extern "unadjusted" {
20259        #[cfg_attr(
20260            any(target_arch = "aarch64", target_arch = "arm64ec"),
20261            link_name = "llvm.aarch64.neon.ld2lane.v8i16.p0"
20262        )]
20263        fn _vld2q_lane_s16(a: int16x8_t, b: int16x8_t, n: i64, ptr: *const i8) -> int16x8x2_t;
20264    }
20265    _vld2q_lane_s16(b.0, b.1, LANE as i64, a as _)
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_s32)"]
20269#[doc = "## Safety"]
20270#[doc = "  * Neon intrinsic unsafe"]
20271#[inline(always)]
20272#[target_feature(enable = "neon")]
20273#[cfg(not(target_arch = "arm"))]
20274#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20275#[rustc_legacy_const_generics(2)]
20276#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20277pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
20278    static_assert_uimm_bits!(LANE, 1);
20279    unsafe extern "unadjusted" {
20280        #[cfg_attr(
20281            any(target_arch = "aarch64", target_arch = "arm64ec"),
20282            link_name = "llvm.aarch64.neon.ld2lane.v2i32.p0"
20283        )]
20284        fn _vld2_lane_s32(a: int32x2_t, b: int32x2_t, n: i64, ptr: *const i8) -> int32x2x2_t;
20285    }
20286    _vld2_lane_s32(b.0, b.1, LANE as i64, a as _)
20287}
20288#[doc = "Load multiple 2-element structures to two registers"]
20289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)"]
20290#[doc = "## Safety"]
20291#[doc = "  * Neon intrinsic unsafe"]
20292#[inline(always)]
20293#[target_feature(enable = "neon")]
20294#[cfg(not(target_arch = "arm"))]
20295#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
20296#[rustc_legacy_const_generics(2)]
20297#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20298pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
20299    static_assert_uimm_bits!(LANE, 2);
20300    unsafe extern "unadjusted" {
20301        #[cfg_attr(
20302            any(target_arch = "aarch64", target_arch = "arm64ec"),
20303            link_name = "llvm.aarch64.neon.ld2lane.v4i32.p0"
20304        )]
20305        fn _vld2q_lane_s32(a: int32x4_t, b: int32x4_t, n: i64, ptr: *const i8) -> int32x4x2_t;
20306    }
20307    _vld2q_lane_s32(b.0, b.1, LANE as i64, a as _)
20308}
20309#[doc = "Load multiple 2-element structures to two registers"]
20310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)"]
20311#[doc = "## Safety"]
20312#[doc = "  * Neon intrinsic unsafe"]
20313#[inline(always)]
20314#[target_feature(enable = "neon,v7")]
20315#[cfg(target_arch = "arm")]
20316#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20317#[rustc_legacy_const_generics(2)]
20318#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20319pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
20320    static_assert_uimm_bits!(LANE, 1);
20321    unsafe extern "unadjusted" {
20322        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2f32.p0")]
20323        fn _vld2_lane_f32(
20324            ptr: *const i8,
20325            a: float32x2_t,
20326            b: float32x2_t,
20327            n: i32,
20328            size: i32,
20329        ) -> float32x2x2_t;
20330    }
20331    _vld2_lane_f32(a as _, b.0, b.1, LANE, 4)
20332}
20333#[doc = "Load multiple 2-element structures to two registers"]
20334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)"]
20335#[doc = "## Safety"]
20336#[doc = "  * Neon intrinsic unsafe"]
20337#[inline(always)]
20338#[target_feature(enable = "neon,v7")]
20339#[cfg(target_arch = "arm")]
20340#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20341#[rustc_legacy_const_generics(2)]
20342#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20343pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
20344    static_assert_uimm_bits!(LANE, 2);
20345    unsafe extern "unadjusted" {
20346        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4f32.p0")]
20347        fn _vld2q_lane_f32(
20348            ptr: *const i8,
20349            a: float32x4_t,
20350            b: float32x4_t,
20351            n: i32,
20352            size: i32,
20353        ) -> float32x4x2_t;
20354    }
20355    _vld2q_lane_f32(a as _, b.0, b.1, LANE, 4)
20356}
20357#[doc = "Load multiple 2-element structures to two registers"]
20358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)"]
20359#[doc = "## Safety"]
20360#[doc = "  * Neon intrinsic unsafe"]
20361#[inline(always)]
20362#[target_feature(enable = "neon,v7")]
20363#[cfg(target_arch = "arm")]
20364#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20365#[rustc_legacy_const_generics(2)]
20366#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20367pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
20368    static_assert_uimm_bits!(LANE, 3);
20369    unsafe extern "unadjusted" {
20370        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i16.p0")]
20371        fn _vld2q_lane_s16(
20372            ptr: *const i8,
20373            a: int16x8_t,
20374            b: int16x8_t,
20375            n: i32,
20376            size: i32,
20377        ) -> int16x8x2_t;
20378    }
20379    _vld2q_lane_s16(a as _, b.0, b.1, LANE, 2)
20380}
20381#[doc = "Load multiple 2-element structures to two registers"]
20382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)"]
20383#[doc = "## Safety"]
20384#[doc = "  * Neon intrinsic unsafe"]
20385#[inline(always)]
20386#[target_feature(enable = "neon,v7")]
20387#[cfg(target_arch = "arm")]
20388#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20389#[rustc_legacy_const_generics(2)]
20390#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20391pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
20392    static_assert_uimm_bits!(LANE, 2);
20393    unsafe extern "unadjusted" {
20394        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i32.p0")]
20395        fn _vld2q_lane_s32(
20396            ptr: *const i8,
20397            a: int32x4_t,
20398            b: int32x4_t,
20399            n: i32,
20400            size: i32,
20401        ) -> int32x4x2_t;
20402    }
20403    _vld2q_lane_s32(a as _, b.0, b.1, LANE, 4)
20404}
20405#[doc = "Load multiple 2-element structures to two registers"]
20406#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)"]
20407#[doc = "## Safety"]
20408#[doc = "  * Neon intrinsic unsafe"]
20409#[inline(always)]
20410#[target_feature(enable = "neon,v7")]
20411#[cfg(target_arch = "arm")]
20412#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20413#[rustc_legacy_const_generics(2)]
20414#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20415pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
20416    static_assert_uimm_bits!(LANE, 3);
20417    unsafe extern "unadjusted" {
20418        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i8.p0")]
20419        fn _vld2_lane_s8(ptr: *const i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32)
20420            -> int8x8x2_t;
20421    }
20422    _vld2_lane_s8(a as _, b.0, b.1, LANE, 1)
20423}
20424#[doc = "Load multiple 2-element structures to two registers"]
20425#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)"]
20426#[doc = "## Safety"]
20427#[doc = "  * Neon intrinsic unsafe"]
20428#[inline(always)]
20429#[target_feature(enable = "neon,v7")]
20430#[cfg(target_arch = "arm")]
20431#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20432#[rustc_legacy_const_generics(2)]
20433#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20434pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
20435    static_assert_uimm_bits!(LANE, 2);
20436    unsafe extern "unadjusted" {
20437        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i16.p0")]
20438        fn _vld2_lane_s16(
20439            ptr: *const i8,
20440            a: int16x4_t,
20441            b: int16x4_t,
20442            n: i32,
20443            size: i32,
20444        ) -> int16x4x2_t;
20445    }
20446    _vld2_lane_s16(a as _, b.0, b.1, LANE, 2)
20447}
20448#[doc = "Load multiple 2-element structures to two registers"]
20449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s32)"]
20450#[doc = "## Safety"]
20451#[doc = "  * Neon intrinsic unsafe"]
20452#[inline(always)]
20453#[target_feature(enable = "neon,v7")]
20454#[cfg(target_arch = "arm")]
20455#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
20456#[rustc_legacy_const_generics(2)]
20457#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20458pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
20459    static_assert_uimm_bits!(LANE, 1);
20460    unsafe extern "unadjusted" {
20461        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2i32.p0")]
20462        fn _vld2_lane_s32(
20463            ptr: *const i8,
20464            a: int32x2_t,
20465            b: int32x2_t,
20466            n: i32,
20467            size: i32,
20468        ) -> int32x2x2_t;
20469    }
20470    _vld2_lane_s32(a as _, b.0, b.1, LANE, 4)
20471}
20472#[doc = "Load multiple 2-element structures to two registers"]
20473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u8)"]
20474#[doc = "## Safety"]
20475#[doc = "  * Neon intrinsic unsafe"]
20476#[inline(always)]
20477#[target_feature(enable = "neon")]
20478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20480#[cfg_attr(
20481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20482    assert_instr(ld2, LANE = 0)
20483)]
20484#[rustc_legacy_const_generics(2)]
20485#[cfg_attr(
20486    not(target_arch = "arm"),
20487    stable(feature = "neon_intrinsics", since = "1.59.0")
20488)]
20489#[cfg_attr(
20490    target_arch = "arm",
20491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20492)]
20493pub unsafe fn vld2_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x2_t) -> uint8x8x2_t {
20494    static_assert_uimm_bits!(LANE, 3);
20495    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
20496}
20497#[doc = "Load multiple 2-element structures to two registers"]
20498#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u16)"]
20499#[doc = "## Safety"]
20500#[doc = "  * Neon intrinsic unsafe"]
20501#[inline(always)]
20502#[target_feature(enable = "neon")]
20503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20505#[cfg_attr(
20506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20507    assert_instr(ld2, LANE = 0)
20508)]
20509#[rustc_legacy_const_generics(2)]
20510#[cfg_attr(
20511    not(target_arch = "arm"),
20512    stable(feature = "neon_intrinsics", since = "1.59.0")
20513)]
20514#[cfg_attr(
20515    target_arch = "arm",
20516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20517)]
20518pub unsafe fn vld2_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x2_t) -> uint16x4x2_t {
20519    static_assert_uimm_bits!(LANE, 2);
20520    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
20521}
20522#[doc = "Load multiple 2-element structures to two registers"]
20523#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u16)"]
20524#[doc = "## Safety"]
20525#[doc = "  * Neon intrinsic unsafe"]
20526#[inline(always)]
20527#[target_feature(enable = "neon")]
20528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20529#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20530#[cfg_attr(
20531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20532    assert_instr(ld2, LANE = 0)
20533)]
20534#[rustc_legacy_const_generics(2)]
20535#[cfg_attr(
20536    not(target_arch = "arm"),
20537    stable(feature = "neon_intrinsics", since = "1.59.0")
20538)]
20539#[cfg_attr(
20540    target_arch = "arm",
20541    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20542)]
20543pub unsafe fn vld2q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x2_t) -> uint16x8x2_t {
20544    static_assert_uimm_bits!(LANE, 3);
20545    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
20546}
20547#[doc = "Load multiple 2-element structures to two registers"]
20548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u32)"]
20549#[doc = "## Safety"]
20550#[doc = "  * Neon intrinsic unsafe"]
20551#[inline(always)]
20552#[target_feature(enable = "neon")]
20553#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20554#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20555#[cfg_attr(
20556    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20557    assert_instr(ld2, LANE = 0)
20558)]
20559#[rustc_legacy_const_generics(2)]
20560#[cfg_attr(
20561    not(target_arch = "arm"),
20562    stable(feature = "neon_intrinsics", since = "1.59.0")
20563)]
20564#[cfg_attr(
20565    target_arch = "arm",
20566    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20567)]
20568pub unsafe fn vld2_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x2_t) -> uint32x2x2_t {
20569    static_assert_uimm_bits!(LANE, 1);
20570    transmute(vld2_lane_s32::<LANE>(transmute(a), transmute(b)))
20571}
20572#[doc = "Load multiple 2-element structures to two registers"]
20573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u32)"]
20574#[doc = "## Safety"]
20575#[doc = "  * Neon intrinsic unsafe"]
20576#[inline(always)]
20577#[target_feature(enable = "neon")]
20578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20579#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20580#[cfg_attr(
20581    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20582    assert_instr(ld2, LANE = 0)
20583)]
20584#[rustc_legacy_const_generics(2)]
20585#[cfg_attr(
20586    not(target_arch = "arm"),
20587    stable(feature = "neon_intrinsics", since = "1.59.0")
20588)]
20589#[cfg_attr(
20590    target_arch = "arm",
20591    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20592)]
20593pub unsafe fn vld2q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x2_t) -> uint32x4x2_t {
20594    static_assert_uimm_bits!(LANE, 2);
20595    transmute(vld2q_lane_s32::<LANE>(transmute(a), transmute(b)))
20596}
20597#[doc = "Load multiple 2-element structures to two registers"]
20598#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p8)"]
20599#[doc = "## Safety"]
20600#[doc = "  * Neon intrinsic unsafe"]
20601#[inline(always)]
20602#[target_feature(enable = "neon")]
20603#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20604#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20605#[cfg_attr(
20606    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20607    assert_instr(ld2, LANE = 0)
20608)]
20609#[rustc_legacy_const_generics(2)]
20610#[cfg_attr(
20611    not(target_arch = "arm"),
20612    stable(feature = "neon_intrinsics", since = "1.59.0")
20613)]
20614#[cfg_attr(
20615    target_arch = "arm",
20616    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20617)]
20618pub unsafe fn vld2_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x2_t) -> poly8x8x2_t {
20619    static_assert_uimm_bits!(LANE, 3);
20620    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
20621}
20622#[doc = "Load multiple 2-element structures to two registers"]
20623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p16)"]
20624#[doc = "## Safety"]
20625#[doc = "  * Neon intrinsic unsafe"]
20626#[inline(always)]
20627#[target_feature(enable = "neon")]
20628#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20629#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20630#[cfg_attr(
20631    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20632    assert_instr(ld2, LANE = 0)
20633)]
20634#[rustc_legacy_const_generics(2)]
20635#[cfg_attr(
20636    not(target_arch = "arm"),
20637    stable(feature = "neon_intrinsics", since = "1.59.0")
20638)]
20639#[cfg_attr(
20640    target_arch = "arm",
20641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20642)]
20643pub unsafe fn vld2_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x2_t) -> poly16x4x2_t {
20644    static_assert_uimm_bits!(LANE, 2);
20645    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
20646}
20647#[doc = "Load multiple 2-element structures to two registers"]
20648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_p16)"]
20649#[doc = "## Safety"]
20650#[doc = "  * Neon intrinsic unsafe"]
20651#[inline(always)]
20652#[target_feature(enable = "neon")]
20653#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20654#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
20655#[cfg_attr(
20656    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20657    assert_instr(ld2, LANE = 0)
20658)]
20659#[rustc_legacy_const_generics(2)]
20660#[cfg_attr(
20661    not(target_arch = "arm"),
20662    stable(feature = "neon_intrinsics", since = "1.59.0")
20663)]
20664#[cfg_attr(
20665    target_arch = "arm",
20666    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20667)]
20668pub unsafe fn vld2q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x2_t) -> poly16x8x2_t {
20669    static_assert_uimm_bits!(LANE, 3);
20670    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
20671}
20672#[doc = "Load multiple 2-element structures to two registers"]
20673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p64)"]
20674#[doc = "## Safety"]
20675#[doc = "  * Neon intrinsic unsafe"]
20676#[inline(always)]
20677#[target_feature(enable = "neon,aes")]
20678#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
20679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
20680#[cfg_attr(
20681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20682    assert_instr(nop)
20683)]
20684#[cfg_attr(
20685    not(target_arch = "arm"),
20686    stable(feature = "neon_intrinsics", since = "1.59.0")
20687)]
20688#[cfg_attr(
20689    target_arch = "arm",
20690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20691)]
20692pub unsafe fn vld2_p64(a: *const p64) -> poly64x1x2_t {
20693    transmute(vld2_s64(transmute(a)))
20694}
20695#[doc = "Load multiple 2-element structures to two registers"]
20696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)"]
20697#[doc = "## Safety"]
20698#[doc = "  * Neon intrinsic unsafe"]
20699#[inline(always)]
20700#[target_feature(enable = "neon,v7")]
20701#[cfg(target_arch = "arm")]
20702#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
20703#[cfg_attr(test, assert_instr(nop))]
20704pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
20705    unsafe extern "unadjusted" {
20706        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v1i64")]
20707        fn _vld2_s64(ptr: *const i8, size: i32) -> int64x1x2_t;
20708    }
20709    _vld2_s64(a as *const i8, 8)
20710}
20711#[doc = "Load multiple 2-element structures to two registers"]
20712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)"]
20713#[doc = "## Safety"]
20714#[doc = "  * Neon intrinsic unsafe"]
20715#[inline(always)]
20716#[target_feature(enable = "neon")]
20717#[cfg(not(target_arch = "arm"))]
20718#[stable(feature = "neon_intrinsics", since = "1.59.0")]
20719#[cfg_attr(test, assert_instr(nop))]
20720pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
20721    unsafe extern "unadjusted" {
20722        #[cfg_attr(
20723            any(target_arch = "aarch64", target_arch = "arm64ec"),
20724            link_name = "llvm.aarch64.neon.ld2.v1i64.p0"
20725        )]
20726        fn _vld2_s64(ptr: *const int64x1_t) -> int64x1x2_t;
20727    }
20728    _vld2_s64(a as _)
20729}
20730#[doc = "Load multiple 2-element structures to two registers"]
20731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u64)"]
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(nop))]
20738#[cfg_attr(
20739    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20740    assert_instr(nop)
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 vld2_u64(a: *const u64) -> uint64x1x2_t {
20751    transmute(vld2_s64(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_u8)"]
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_u8(a: *const u8) -> uint8x8x2_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_u8)"]
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_u8(a: *const u8) -> uint8x16x2_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_u16)"]
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_u16(a: *const u16) -> uint16x4x2_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_u16)"]
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_u16(a: *const u16) -> uint16x8x2_t {
20843    transmute(vld2q_s16(transmute(a)))
20844}
20845#[doc = "Load multiple 2-element structures to two registers"]
20846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u32)"]
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_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20853#[cfg_attr(
20854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20855    assert_instr(ld2)
20856)]
20857#[cfg_attr(
20858    not(target_arch = "arm"),
20859    stable(feature = "neon_intrinsics", since = "1.59.0")
20860)]
20861#[cfg_attr(
20862    target_arch = "arm",
20863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20864)]
20865pub unsafe fn vld2_u32(a: *const u32) -> uint32x2x2_t {
20866    transmute(vld2_s32(transmute(a)))
20867}
20868#[doc = "Load multiple 2-element structures to two registers"]
20869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u32)"]
20870#[doc = "## Safety"]
20871#[doc = "  * Neon intrinsic unsafe"]
20872#[inline(always)]
20873#[target_feature(enable = "neon")]
20874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20876#[cfg_attr(
20877    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20878    assert_instr(ld2)
20879)]
20880#[cfg_attr(
20881    not(target_arch = "arm"),
20882    stable(feature = "neon_intrinsics", since = "1.59.0")
20883)]
20884#[cfg_attr(
20885    target_arch = "arm",
20886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20887)]
20888pub unsafe fn vld2q_u32(a: *const u32) -> uint32x4x2_t {
20889    transmute(vld2q_s32(transmute(a)))
20890}
20891#[doc = "Load multiple 2-element structures to two registers"]
20892#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p8)"]
20893#[doc = "## Safety"]
20894#[doc = "  * Neon intrinsic unsafe"]
20895#[inline(always)]
20896#[target_feature(enable = "neon")]
20897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20898#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20899#[cfg_attr(
20900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20901    assert_instr(ld2)
20902)]
20903#[cfg_attr(
20904    not(target_arch = "arm"),
20905    stable(feature = "neon_intrinsics", since = "1.59.0")
20906)]
20907#[cfg_attr(
20908    target_arch = "arm",
20909    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20910)]
20911pub unsafe fn vld2_p8(a: *const p8) -> poly8x8x2_t {
20912    transmute(vld2_s8(transmute(a)))
20913}
20914#[doc = "Load multiple 2-element structures to two registers"]
20915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p8)"]
20916#[doc = "## Safety"]
20917#[doc = "  * Neon intrinsic unsafe"]
20918#[inline(always)]
20919#[target_feature(enable = "neon")]
20920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20921#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20922#[cfg_attr(
20923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20924    assert_instr(ld2)
20925)]
20926#[cfg_attr(
20927    not(target_arch = "arm"),
20928    stable(feature = "neon_intrinsics", since = "1.59.0")
20929)]
20930#[cfg_attr(
20931    target_arch = "arm",
20932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20933)]
20934pub unsafe fn vld2q_p8(a: *const p8) -> poly8x16x2_t {
20935    transmute(vld2q_s8(transmute(a)))
20936}
20937#[doc = "Load multiple 2-element structures to two registers"]
20938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p16)"]
20939#[doc = "## Safety"]
20940#[doc = "  * Neon intrinsic unsafe"]
20941#[inline(always)]
20942#[target_feature(enable = "neon")]
20943#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20944#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20945#[cfg_attr(
20946    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20947    assert_instr(ld2)
20948)]
20949#[cfg_attr(
20950    not(target_arch = "arm"),
20951    stable(feature = "neon_intrinsics", since = "1.59.0")
20952)]
20953#[cfg_attr(
20954    target_arch = "arm",
20955    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20956)]
20957pub unsafe fn vld2_p16(a: *const p16) -> poly16x4x2_t {
20958    transmute(vld2_s16(transmute(a)))
20959}
20960#[doc = "Load multiple 2-element structures to two registers"]
20961#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p16)"]
20962#[doc = "## Safety"]
20963#[doc = "  * Neon intrinsic unsafe"]
20964#[inline(always)]
20965#[target_feature(enable = "neon")]
20966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
20968#[cfg_attr(
20969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
20970    assert_instr(ld2)
20971)]
20972#[cfg_attr(
20973    not(target_arch = "arm"),
20974    stable(feature = "neon_intrinsics", since = "1.59.0")
20975)]
20976#[cfg_attr(
20977    target_arch = "arm",
20978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
20979)]
20980pub unsafe fn vld2q_p16(a: *const p16) -> poly16x8x2_t {
20981    transmute(vld2q_s16(transmute(a)))
20982}
20983#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
20984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f16)"]
20985#[doc = "## Safety"]
20986#[doc = "  * Neon intrinsic unsafe"]
20987#[inline(always)]
20988#[target_feature(enable = "neon")]
20989#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20990#[cfg(target_arch = "arm")]
20991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
20992#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
20993#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
20994#[cfg(not(target_arch = "arm64ec"))]
20995pub unsafe fn vld3_dup_f16(a: *const f16) -> float16x4x3_t {
20996    unsafe extern "unadjusted" {
20997        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4f16.p0")]
20998        fn _vld3_dup_f16(ptr: *const f16, size: i32) -> float16x4x3_t;
20999    }
21000    _vld3_dup_f16(a as _, 2)
21001}
21002#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
21003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f16)"]
21004#[doc = "## Safety"]
21005#[doc = "  * Neon intrinsic unsafe"]
21006#[inline(always)]
21007#[target_feature(enable = "neon")]
21008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21009#[cfg(target_arch = "arm")]
21010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21011#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21012#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21013#[cfg(not(target_arch = "arm64ec"))]
21014pub unsafe fn vld3q_dup_f16(a: *const f16) -> float16x8x3_t {
21015    unsafe extern "unadjusted" {
21016        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8f16.p0")]
21017        fn _vld3q_dup_f16(ptr: *const f16, size: i32) -> float16x8x3_t;
21018    }
21019    _vld3q_dup_f16(a as _, 2)
21020}
21021#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
21022#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f16)"]
21023#[doc = "## Safety"]
21024#[doc = "  * Neon intrinsic unsafe"]
21025#[inline(always)]
21026#[target_feature(enable = "neon")]
21027#[cfg(not(target_arch = "arm"))]
21028#[cfg_attr(
21029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21030    assert_instr(ld3r)
21031)]
21032#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21033#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21034#[cfg(not(target_arch = "arm64ec"))]
21035pub unsafe fn vld3_dup_f16(a: *const f16) -> float16x4x3_t {
21036    unsafe extern "unadjusted" {
21037        #[cfg_attr(
21038            any(target_arch = "aarch64", target_arch = "arm64ec"),
21039            link_name = "llvm.aarch64.neon.ld3r.v4f16.p0"
21040        )]
21041        fn _vld3_dup_f16(ptr: *const f16) -> float16x4x3_t;
21042    }
21043    _vld3_dup_f16(a as _)
21044}
21045#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
21046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f16)"]
21047#[doc = "## Safety"]
21048#[doc = "  * Neon intrinsic unsafe"]
21049#[inline(always)]
21050#[target_feature(enable = "neon")]
21051#[cfg(not(target_arch = "arm"))]
21052#[cfg_attr(
21053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21054    assert_instr(ld3r)
21055)]
21056#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21057#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21058#[cfg(not(target_arch = "arm64ec"))]
21059pub unsafe fn vld3q_dup_f16(a: *const f16) -> float16x8x3_t {
21060    unsafe extern "unadjusted" {
21061        #[cfg_attr(
21062            any(target_arch = "aarch64", target_arch = "arm64ec"),
21063            link_name = "llvm.aarch64.neon.ld3r.v8f16.p0"
21064        )]
21065        fn _vld3q_dup_f16(ptr: *const f16) -> float16x8x3_t;
21066    }
21067    _vld3q_dup_f16(a as _)
21068}
21069#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)"]
21071#[doc = "## Safety"]
21072#[doc = "  * Neon intrinsic unsafe"]
21073#[inline(always)]
21074#[target_feature(enable = "neon")]
21075#[cfg(not(target_arch = "arm"))]
21076#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21077#[cfg_attr(test, assert_instr(ld3r))]
21078pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
21079    unsafe extern "unadjusted" {
21080        #[cfg_attr(
21081            any(target_arch = "aarch64", target_arch = "arm64ec"),
21082            link_name = "llvm.aarch64.neon.ld3r.v2f32.p0"
21083        )]
21084        fn _vld3_dup_f32(ptr: *const f32) -> float32x2x3_t;
21085    }
21086    _vld3_dup_f32(a as _)
21087}
21088#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21089#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)"]
21090#[doc = "## Safety"]
21091#[doc = "  * Neon intrinsic unsafe"]
21092#[inline(always)]
21093#[target_feature(enable = "neon")]
21094#[cfg(not(target_arch = "arm"))]
21095#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21096#[cfg_attr(test, assert_instr(ld3r))]
21097pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
21098    unsafe extern "unadjusted" {
21099        #[cfg_attr(
21100            any(target_arch = "aarch64", target_arch = "arm64ec"),
21101            link_name = "llvm.aarch64.neon.ld3r.v4f32.p0"
21102        )]
21103        fn _vld3q_dup_f32(ptr: *const f32) -> float32x4x3_t;
21104    }
21105    _vld3q_dup_f32(a as _)
21106}
21107#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)"]
21109#[doc = "## Safety"]
21110#[doc = "  * Neon intrinsic unsafe"]
21111#[inline(always)]
21112#[target_feature(enable = "neon")]
21113#[cfg(not(target_arch = "arm"))]
21114#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21115#[cfg_attr(test, assert_instr(ld3r))]
21116pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
21117    unsafe extern "unadjusted" {
21118        #[cfg_attr(
21119            any(target_arch = "aarch64", target_arch = "arm64ec"),
21120            link_name = "llvm.aarch64.neon.ld3r.v8i8.p0"
21121        )]
21122        fn _vld3_dup_s8(ptr: *const i8) -> int8x8x3_t;
21123    }
21124    _vld3_dup_s8(a as _)
21125}
21126#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)"]
21128#[doc = "## Safety"]
21129#[doc = "  * Neon intrinsic unsafe"]
21130#[inline(always)]
21131#[target_feature(enable = "neon")]
21132#[cfg(not(target_arch = "arm"))]
21133#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21134#[cfg_attr(test, assert_instr(ld3r))]
21135pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
21136    unsafe extern "unadjusted" {
21137        #[cfg_attr(
21138            any(target_arch = "aarch64", target_arch = "arm64ec"),
21139            link_name = "llvm.aarch64.neon.ld3r.v16i8.p0"
21140        )]
21141        fn _vld3q_dup_s8(ptr: *const i8) -> int8x16x3_t;
21142    }
21143    _vld3q_dup_s8(a as _)
21144}
21145#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)"]
21147#[doc = "## Safety"]
21148#[doc = "  * Neon intrinsic unsafe"]
21149#[inline(always)]
21150#[target_feature(enable = "neon")]
21151#[cfg(not(target_arch = "arm"))]
21152#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21153#[cfg_attr(test, assert_instr(ld3r))]
21154pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
21155    unsafe extern "unadjusted" {
21156        #[cfg_attr(
21157            any(target_arch = "aarch64", target_arch = "arm64ec"),
21158            link_name = "llvm.aarch64.neon.ld3r.v4i16.p0"
21159        )]
21160        fn _vld3_dup_s16(ptr: *const i16) -> int16x4x3_t;
21161    }
21162    _vld3_dup_s16(a as _)
21163}
21164#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21165#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)"]
21166#[doc = "## Safety"]
21167#[doc = "  * Neon intrinsic unsafe"]
21168#[inline(always)]
21169#[target_feature(enable = "neon")]
21170#[cfg(not(target_arch = "arm"))]
21171#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21172#[cfg_attr(test, assert_instr(ld3r))]
21173pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
21174    unsafe extern "unadjusted" {
21175        #[cfg_attr(
21176            any(target_arch = "aarch64", target_arch = "arm64ec"),
21177            link_name = "llvm.aarch64.neon.ld3r.v8i16.p0"
21178        )]
21179        fn _vld3q_dup_s16(ptr: *const i16) -> int16x8x3_t;
21180    }
21181    _vld3q_dup_s16(a as _)
21182}
21183#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)"]
21185#[doc = "## Safety"]
21186#[doc = "  * Neon intrinsic unsafe"]
21187#[inline(always)]
21188#[target_feature(enable = "neon")]
21189#[cfg(not(target_arch = "arm"))]
21190#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21191#[cfg_attr(test, assert_instr(ld3r))]
21192pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
21193    unsafe extern "unadjusted" {
21194        #[cfg_attr(
21195            any(target_arch = "aarch64", target_arch = "arm64ec"),
21196            link_name = "llvm.aarch64.neon.ld3r.v2i32.p0"
21197        )]
21198        fn _vld3_dup_s32(ptr: *const i32) -> int32x2x3_t;
21199    }
21200    _vld3_dup_s32(a as _)
21201}
21202#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)"]
21204#[doc = "## Safety"]
21205#[doc = "  * Neon intrinsic unsafe"]
21206#[inline(always)]
21207#[target_feature(enable = "neon")]
21208#[cfg(not(target_arch = "arm"))]
21209#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21210#[cfg_attr(test, assert_instr(ld3r))]
21211pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
21212    unsafe extern "unadjusted" {
21213        #[cfg_attr(
21214            any(target_arch = "aarch64", target_arch = "arm64ec"),
21215            link_name = "llvm.aarch64.neon.ld3r.v4i32.p0"
21216        )]
21217        fn _vld3q_dup_s32(ptr: *const i32) -> int32x4x3_t;
21218    }
21219    _vld3q_dup_s32(a as _)
21220}
21221#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)"]
21223#[doc = "## Safety"]
21224#[doc = "  * Neon intrinsic unsafe"]
21225#[inline(always)]
21226#[target_feature(enable = "neon")]
21227#[cfg(not(target_arch = "arm"))]
21228#[stable(feature = "neon_intrinsics", since = "1.59.0")]
21229#[cfg_attr(test, assert_instr(ld3r))]
21230pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
21231    unsafe extern "unadjusted" {
21232        #[cfg_attr(
21233            any(target_arch = "aarch64", target_arch = "arm64ec"),
21234            link_name = "llvm.aarch64.neon.ld3r.v1i64.p0"
21235        )]
21236        fn _vld3_dup_s64(ptr: *const i64) -> int64x1x3_t;
21237    }
21238    _vld3_dup_s64(a as _)
21239}
21240#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)"]
21242#[doc = "## Safety"]
21243#[doc = "  * Neon intrinsic unsafe"]
21244#[inline(always)]
21245#[target_feature(enable = "neon,v7")]
21246#[cfg(target_arch = "arm")]
21247#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21248#[cfg_attr(test, assert_instr(vld3))]
21249pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
21250    unsafe extern "unadjusted" {
21251        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2f32.p0")]
21252        fn _vld3_dup_f32(ptr: *const i8, size: i32) -> float32x2x3_t;
21253    }
21254    _vld3_dup_f32(a as *const i8, 4)
21255}
21256#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21257#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)"]
21258#[doc = "## Safety"]
21259#[doc = "  * Neon intrinsic unsafe"]
21260#[inline(always)]
21261#[target_feature(enable = "neon,v7")]
21262#[cfg(target_arch = "arm")]
21263#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21264#[cfg_attr(test, assert_instr(vld3))]
21265pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
21266    unsafe extern "unadjusted" {
21267        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4f32.p0")]
21268        fn _vld3q_dup_f32(ptr: *const i8, size: i32) -> float32x4x3_t;
21269    }
21270    _vld3q_dup_f32(a as *const i8, 4)
21271}
21272#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21273#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)"]
21274#[doc = "## Safety"]
21275#[doc = "  * Neon intrinsic unsafe"]
21276#[inline(always)]
21277#[target_feature(enable = "neon,v7")]
21278#[cfg(target_arch = "arm")]
21279#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21280#[cfg_attr(test, assert_instr(vld3))]
21281pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
21282    unsafe extern "unadjusted" {
21283        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i8.p0")]
21284        fn _vld3_dup_s8(ptr: *const i8, size: i32) -> int8x8x3_t;
21285    }
21286    _vld3_dup_s8(a as *const i8, 1)
21287}
21288#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)"]
21290#[doc = "## Safety"]
21291#[doc = "  * Neon intrinsic unsafe"]
21292#[inline(always)]
21293#[target_feature(enable = "neon,v7")]
21294#[cfg(target_arch = "arm")]
21295#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21296#[cfg_attr(test, assert_instr(vld3))]
21297pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
21298    unsafe extern "unadjusted" {
21299        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v16i8.p0")]
21300        fn _vld3q_dup_s8(ptr: *const i8, size: i32) -> int8x16x3_t;
21301    }
21302    _vld3q_dup_s8(a as *const i8, 1)
21303}
21304#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)"]
21306#[doc = "## Safety"]
21307#[doc = "  * Neon intrinsic unsafe"]
21308#[inline(always)]
21309#[target_feature(enable = "neon,v7")]
21310#[cfg(target_arch = "arm")]
21311#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21312#[cfg_attr(test, assert_instr(vld3))]
21313pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
21314    unsafe extern "unadjusted" {
21315        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i16.p0")]
21316        fn _vld3_dup_s16(ptr: *const i8, size: i32) -> int16x4x3_t;
21317    }
21318    _vld3_dup_s16(a as *const i8, 2)
21319}
21320#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)"]
21322#[doc = "## Safety"]
21323#[doc = "  * Neon intrinsic unsafe"]
21324#[inline(always)]
21325#[target_feature(enable = "neon,v7")]
21326#[cfg(target_arch = "arm")]
21327#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21328#[cfg_attr(test, assert_instr(vld3))]
21329pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
21330    unsafe extern "unadjusted" {
21331        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i16.p0")]
21332        fn _vld3q_dup_s16(ptr: *const i8, size: i32) -> int16x8x3_t;
21333    }
21334    _vld3q_dup_s16(a as *const i8, 2)
21335}
21336#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)"]
21338#[doc = "## Safety"]
21339#[doc = "  * Neon intrinsic unsafe"]
21340#[inline(always)]
21341#[target_feature(enable = "neon,v7")]
21342#[cfg(target_arch = "arm")]
21343#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21344#[cfg_attr(test, assert_instr(vld3))]
21345pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
21346    unsafe extern "unadjusted" {
21347        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2i32.p0")]
21348        fn _vld3_dup_s32(ptr: *const i8, size: i32) -> int32x2x3_t;
21349    }
21350    _vld3_dup_s32(a as *const i8, 4)
21351}
21352#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)"]
21354#[doc = "## Safety"]
21355#[doc = "  * Neon intrinsic unsafe"]
21356#[inline(always)]
21357#[target_feature(enable = "neon,v7")]
21358#[cfg(target_arch = "arm")]
21359#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21360#[cfg_attr(test, assert_instr(vld3))]
21361pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
21362    unsafe extern "unadjusted" {
21363        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i32.p0")]
21364        fn _vld3q_dup_s32(ptr: *const i8, size: i32) -> int32x4x3_t;
21365    }
21366    _vld3q_dup_s32(a as *const i8, 4)
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/vld3_dup_p64)"]
21370#[doc = "## Safety"]
21371#[doc = "  * Neon intrinsic unsafe"]
21372#[inline(always)]
21373#[target_feature(enable = "neon,aes")]
21374#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
21375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
21376#[cfg_attr(
21377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21378    assert_instr(ld3r)
21379)]
21380#[cfg_attr(
21381    not(target_arch = "arm"),
21382    stable(feature = "neon_intrinsics", since = "1.59.0")
21383)]
21384#[cfg_attr(
21385    target_arch = "arm",
21386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21387)]
21388pub unsafe fn vld3_dup_p64(a: *const p64) -> poly64x1x3_t {
21389    transmute(vld3_dup_s64(transmute(a)))
21390}
21391#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)"]
21393#[doc = "## Safety"]
21394#[doc = "  * Neon intrinsic unsafe"]
21395#[inline(always)]
21396#[cfg(target_arch = "arm")]
21397#[target_feature(enable = "neon,v7")]
21398#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21399#[cfg_attr(test, assert_instr(nop))]
21400pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
21401    unsafe extern "unadjusted" {
21402        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v1i64.p0")]
21403        fn _vld3_dup_s64(ptr: *const i8, size: i32) -> int64x1x3_t;
21404    }
21405    _vld3_dup_s64(a as *const i8, 8)
21406}
21407#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u64)"]
21409#[doc = "## Safety"]
21410#[doc = "  * Neon intrinsic unsafe"]
21411#[inline(always)]
21412#[target_feature(enable = "neon")]
21413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21414#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
21415#[cfg_attr(
21416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21417    assert_instr(ld3r)
21418)]
21419#[cfg_attr(
21420    not(target_arch = "arm"),
21421    stable(feature = "neon_intrinsics", since = "1.59.0")
21422)]
21423#[cfg_attr(
21424    target_arch = "arm",
21425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21426)]
21427pub unsafe fn vld3_dup_u64(a: *const u64) -> uint64x1x3_t {
21428    transmute(vld3_dup_s64(transmute(a)))
21429}
21430#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u8)"]
21432#[doc = "## Safety"]
21433#[doc = "  * Neon intrinsic unsafe"]
21434#[inline(always)]
21435#[cfg(target_endian = "little")]
21436#[target_feature(enable = "neon")]
21437#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21438#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21439#[cfg_attr(
21440    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21441    assert_instr(ld3r)
21442)]
21443#[cfg_attr(
21444    not(target_arch = "arm"),
21445    stable(feature = "neon_intrinsics", since = "1.59.0")
21446)]
21447#[cfg_attr(
21448    target_arch = "arm",
21449    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21450)]
21451pub unsafe fn vld3_dup_u8(a: *const u8) -> uint8x8x3_t {
21452    transmute(vld3_dup_s8(transmute(a)))
21453}
21454#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u8)"]
21456#[doc = "## Safety"]
21457#[doc = "  * Neon intrinsic unsafe"]
21458#[inline(always)]
21459#[cfg(target_endian = "big")]
21460#[target_feature(enable = "neon")]
21461#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21462#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21463#[cfg_attr(
21464    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21465    assert_instr(ld3r)
21466)]
21467#[cfg_attr(
21468    not(target_arch = "arm"),
21469    stable(feature = "neon_intrinsics", since = "1.59.0")
21470)]
21471#[cfg_attr(
21472    target_arch = "arm",
21473    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21474)]
21475pub unsafe fn vld3_dup_u8(a: *const u8) -> uint8x8x3_t {
21476    let mut ret_val: uint8x8x3_t = transmute(vld3_dup_s8(transmute(a)));
21477    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21478    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21479    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
21480    ret_val
21481}
21482#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u8)"]
21484#[doc = "## Safety"]
21485#[doc = "  * Neon intrinsic unsafe"]
21486#[inline(always)]
21487#[cfg(target_endian = "little")]
21488#[target_feature(enable = "neon")]
21489#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21490#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21491#[cfg_attr(
21492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21493    assert_instr(ld3r)
21494)]
21495#[cfg_attr(
21496    not(target_arch = "arm"),
21497    stable(feature = "neon_intrinsics", since = "1.59.0")
21498)]
21499#[cfg_attr(
21500    target_arch = "arm",
21501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21502)]
21503pub unsafe fn vld3q_dup_u8(a: *const u8) -> uint8x16x3_t {
21504    transmute(vld3q_dup_s8(transmute(a)))
21505}
21506#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u8)"]
21508#[doc = "## Safety"]
21509#[doc = "  * Neon intrinsic unsafe"]
21510#[inline(always)]
21511#[cfg(target_endian = "big")]
21512#[target_feature(enable = "neon")]
21513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21515#[cfg_attr(
21516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21517    assert_instr(ld3r)
21518)]
21519#[cfg_attr(
21520    not(target_arch = "arm"),
21521    stable(feature = "neon_intrinsics", since = "1.59.0")
21522)]
21523#[cfg_attr(
21524    target_arch = "arm",
21525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21526)]
21527pub unsafe fn vld3q_dup_u8(a: *const u8) -> uint8x16x3_t {
21528    let mut ret_val: uint8x16x3_t = transmute(vld3q_dup_s8(transmute(a)));
21529    ret_val.0 = unsafe {
21530        simd_shuffle!(
21531            ret_val.0,
21532            ret_val.0,
21533            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21534        )
21535    };
21536    ret_val.1 = unsafe {
21537        simd_shuffle!(
21538            ret_val.1,
21539            ret_val.1,
21540            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21541        )
21542    };
21543    ret_val.2 = unsafe {
21544        simd_shuffle!(
21545            ret_val.2,
21546            ret_val.2,
21547            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21548        )
21549    };
21550    ret_val
21551}
21552#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u16)"]
21554#[doc = "## Safety"]
21555#[doc = "  * Neon intrinsic unsafe"]
21556#[inline(always)]
21557#[cfg(target_endian = "little")]
21558#[target_feature(enable = "neon")]
21559#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21560#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21561#[cfg_attr(
21562    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21563    assert_instr(ld3r)
21564)]
21565#[cfg_attr(
21566    not(target_arch = "arm"),
21567    stable(feature = "neon_intrinsics", since = "1.59.0")
21568)]
21569#[cfg_attr(
21570    target_arch = "arm",
21571    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21572)]
21573pub unsafe fn vld3_dup_u16(a: *const u16) -> uint16x4x3_t {
21574    transmute(vld3_dup_s16(transmute(a)))
21575}
21576#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u16)"]
21578#[doc = "## Safety"]
21579#[doc = "  * Neon intrinsic unsafe"]
21580#[inline(always)]
21581#[cfg(target_endian = "big")]
21582#[target_feature(enable = "neon")]
21583#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21584#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21585#[cfg_attr(
21586    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21587    assert_instr(ld3r)
21588)]
21589#[cfg_attr(
21590    not(target_arch = "arm"),
21591    stable(feature = "neon_intrinsics", since = "1.59.0")
21592)]
21593#[cfg_attr(
21594    target_arch = "arm",
21595    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21596)]
21597pub unsafe fn vld3_dup_u16(a: *const u16) -> uint16x4x3_t {
21598    let mut ret_val: uint16x4x3_t = transmute(vld3_dup_s16(transmute(a)));
21599    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
21600    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
21601    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
21602    ret_val
21603}
21604#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u16)"]
21606#[doc = "## Safety"]
21607#[doc = "  * Neon intrinsic unsafe"]
21608#[inline(always)]
21609#[cfg(target_endian = "little")]
21610#[target_feature(enable = "neon")]
21611#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21612#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21613#[cfg_attr(
21614    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21615    assert_instr(ld3r)
21616)]
21617#[cfg_attr(
21618    not(target_arch = "arm"),
21619    stable(feature = "neon_intrinsics", since = "1.59.0")
21620)]
21621#[cfg_attr(
21622    target_arch = "arm",
21623    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21624)]
21625pub unsafe fn vld3q_dup_u16(a: *const u16) -> uint16x8x3_t {
21626    transmute(vld3q_dup_s16(transmute(a)))
21627}
21628#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u16)"]
21630#[doc = "## Safety"]
21631#[doc = "  * Neon intrinsic unsafe"]
21632#[inline(always)]
21633#[cfg(target_endian = "big")]
21634#[target_feature(enable = "neon")]
21635#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21636#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21637#[cfg_attr(
21638    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21639    assert_instr(ld3r)
21640)]
21641#[cfg_attr(
21642    not(target_arch = "arm"),
21643    stable(feature = "neon_intrinsics", since = "1.59.0")
21644)]
21645#[cfg_attr(
21646    target_arch = "arm",
21647    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21648)]
21649pub unsafe fn vld3q_dup_u16(a: *const u16) -> uint16x8x3_t {
21650    let mut ret_val: uint16x8x3_t = transmute(vld3q_dup_s16(transmute(a)));
21651    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21652    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21653    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
21654    ret_val
21655}
21656#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u32)"]
21658#[doc = "## Safety"]
21659#[doc = "  * Neon intrinsic unsafe"]
21660#[inline(always)]
21661#[cfg(target_endian = "little")]
21662#[target_feature(enable = "neon")]
21663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21664#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21665#[cfg_attr(
21666    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21667    assert_instr(ld3r)
21668)]
21669#[cfg_attr(
21670    not(target_arch = "arm"),
21671    stable(feature = "neon_intrinsics", since = "1.59.0")
21672)]
21673#[cfg_attr(
21674    target_arch = "arm",
21675    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21676)]
21677pub unsafe fn vld3_dup_u32(a: *const u32) -> uint32x2x3_t {
21678    transmute(vld3_dup_s32(transmute(a)))
21679}
21680#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21681#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u32)"]
21682#[doc = "## Safety"]
21683#[doc = "  * Neon intrinsic unsafe"]
21684#[inline(always)]
21685#[cfg(target_endian = "big")]
21686#[target_feature(enable = "neon")]
21687#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21688#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21689#[cfg_attr(
21690    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21691    assert_instr(ld3r)
21692)]
21693#[cfg_attr(
21694    not(target_arch = "arm"),
21695    stable(feature = "neon_intrinsics", since = "1.59.0")
21696)]
21697#[cfg_attr(
21698    target_arch = "arm",
21699    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21700)]
21701pub unsafe fn vld3_dup_u32(a: *const u32) -> uint32x2x3_t {
21702    let mut ret_val: uint32x2x3_t = transmute(vld3_dup_s32(transmute(a)));
21703    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
21704    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
21705    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
21706    ret_val
21707}
21708#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21709#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u32)"]
21710#[doc = "## Safety"]
21711#[doc = "  * Neon intrinsic unsafe"]
21712#[inline(always)]
21713#[cfg(target_endian = "little")]
21714#[target_feature(enable = "neon")]
21715#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21716#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21717#[cfg_attr(
21718    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21719    assert_instr(ld3r)
21720)]
21721#[cfg_attr(
21722    not(target_arch = "arm"),
21723    stable(feature = "neon_intrinsics", since = "1.59.0")
21724)]
21725#[cfg_attr(
21726    target_arch = "arm",
21727    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21728)]
21729pub unsafe fn vld3q_dup_u32(a: *const u32) -> uint32x4x3_t {
21730    transmute(vld3q_dup_s32(transmute(a)))
21731}
21732#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u32)"]
21734#[doc = "## Safety"]
21735#[doc = "  * Neon intrinsic unsafe"]
21736#[inline(always)]
21737#[cfg(target_endian = "big")]
21738#[target_feature(enable = "neon")]
21739#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21740#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21741#[cfg_attr(
21742    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21743    assert_instr(ld3r)
21744)]
21745#[cfg_attr(
21746    not(target_arch = "arm"),
21747    stable(feature = "neon_intrinsics", since = "1.59.0")
21748)]
21749#[cfg_attr(
21750    target_arch = "arm",
21751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21752)]
21753pub unsafe fn vld3q_dup_u32(a: *const u32) -> uint32x4x3_t {
21754    let mut ret_val: uint32x4x3_t = transmute(vld3q_dup_s32(transmute(a)));
21755    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
21756    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
21757    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
21758    ret_val
21759}
21760#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p8)"]
21762#[doc = "## Safety"]
21763#[doc = "  * Neon intrinsic unsafe"]
21764#[inline(always)]
21765#[cfg(target_endian = "little")]
21766#[target_feature(enable = "neon")]
21767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21768#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21769#[cfg_attr(
21770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21771    assert_instr(ld3r)
21772)]
21773#[cfg_attr(
21774    not(target_arch = "arm"),
21775    stable(feature = "neon_intrinsics", since = "1.59.0")
21776)]
21777#[cfg_attr(
21778    target_arch = "arm",
21779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21780)]
21781pub unsafe fn vld3_dup_p8(a: *const p8) -> poly8x8x3_t {
21782    transmute(vld3_dup_s8(transmute(a)))
21783}
21784#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p8)"]
21786#[doc = "## Safety"]
21787#[doc = "  * Neon intrinsic unsafe"]
21788#[inline(always)]
21789#[cfg(target_endian = "big")]
21790#[target_feature(enable = "neon")]
21791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21793#[cfg_attr(
21794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21795    assert_instr(ld3r)
21796)]
21797#[cfg_attr(
21798    not(target_arch = "arm"),
21799    stable(feature = "neon_intrinsics", since = "1.59.0")
21800)]
21801#[cfg_attr(
21802    target_arch = "arm",
21803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21804)]
21805pub unsafe fn vld3_dup_p8(a: *const p8) -> poly8x8x3_t {
21806    let mut ret_val: poly8x8x3_t = transmute(vld3_dup_s8(transmute(a)));
21807    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21808    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21809    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
21810    ret_val
21811}
21812#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p8)"]
21814#[doc = "## Safety"]
21815#[doc = "  * Neon intrinsic unsafe"]
21816#[inline(always)]
21817#[cfg(target_endian = "little")]
21818#[target_feature(enable = "neon")]
21819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21820#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21821#[cfg_attr(
21822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21823    assert_instr(ld3r)
21824)]
21825#[cfg_attr(
21826    not(target_arch = "arm"),
21827    stable(feature = "neon_intrinsics", since = "1.59.0")
21828)]
21829#[cfg_attr(
21830    target_arch = "arm",
21831    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21832)]
21833pub unsafe fn vld3q_dup_p8(a: *const p8) -> poly8x16x3_t {
21834    transmute(vld3q_dup_s8(transmute(a)))
21835}
21836#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p8)"]
21838#[doc = "## Safety"]
21839#[doc = "  * Neon intrinsic unsafe"]
21840#[inline(always)]
21841#[cfg(target_endian = "big")]
21842#[target_feature(enable = "neon")]
21843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21844#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21845#[cfg_attr(
21846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21847    assert_instr(ld3r)
21848)]
21849#[cfg_attr(
21850    not(target_arch = "arm"),
21851    stable(feature = "neon_intrinsics", since = "1.59.0")
21852)]
21853#[cfg_attr(
21854    target_arch = "arm",
21855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21856)]
21857pub unsafe fn vld3q_dup_p8(a: *const p8) -> poly8x16x3_t {
21858    let mut ret_val: poly8x16x3_t = transmute(vld3q_dup_s8(transmute(a)));
21859    ret_val.0 = unsafe {
21860        simd_shuffle!(
21861            ret_val.0,
21862            ret_val.0,
21863            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21864        )
21865    };
21866    ret_val.1 = unsafe {
21867        simd_shuffle!(
21868            ret_val.1,
21869            ret_val.1,
21870            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21871        )
21872    };
21873    ret_val.2 = unsafe {
21874        simd_shuffle!(
21875            ret_val.2,
21876            ret_val.2,
21877            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
21878        )
21879    };
21880    ret_val
21881}
21882#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p16)"]
21884#[doc = "## Safety"]
21885#[doc = "  * Neon intrinsic unsafe"]
21886#[inline(always)]
21887#[cfg(target_endian = "little")]
21888#[target_feature(enable = "neon")]
21889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21891#[cfg_attr(
21892    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21893    assert_instr(ld3r)
21894)]
21895#[cfg_attr(
21896    not(target_arch = "arm"),
21897    stable(feature = "neon_intrinsics", since = "1.59.0")
21898)]
21899#[cfg_attr(
21900    target_arch = "arm",
21901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21902)]
21903pub unsafe fn vld3_dup_p16(a: *const p16) -> poly16x4x3_t {
21904    transmute(vld3_dup_s16(transmute(a)))
21905}
21906#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p16)"]
21908#[doc = "## Safety"]
21909#[doc = "  * Neon intrinsic unsafe"]
21910#[inline(always)]
21911#[cfg(target_endian = "big")]
21912#[target_feature(enable = "neon")]
21913#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21914#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21915#[cfg_attr(
21916    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21917    assert_instr(ld3r)
21918)]
21919#[cfg_attr(
21920    not(target_arch = "arm"),
21921    stable(feature = "neon_intrinsics", since = "1.59.0")
21922)]
21923#[cfg_attr(
21924    target_arch = "arm",
21925    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21926)]
21927pub unsafe fn vld3_dup_p16(a: *const p16) -> poly16x4x3_t {
21928    let mut ret_val: poly16x4x3_t = transmute(vld3_dup_s16(transmute(a)));
21929    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
21930    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
21931    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
21932    ret_val
21933}
21934#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21935#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p16)"]
21936#[doc = "## Safety"]
21937#[doc = "  * Neon intrinsic unsafe"]
21938#[inline(always)]
21939#[cfg(target_endian = "little")]
21940#[target_feature(enable = "neon")]
21941#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21942#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21943#[cfg_attr(
21944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21945    assert_instr(ld3r)
21946)]
21947#[cfg_attr(
21948    not(target_arch = "arm"),
21949    stable(feature = "neon_intrinsics", since = "1.59.0")
21950)]
21951#[cfg_attr(
21952    target_arch = "arm",
21953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21954)]
21955pub unsafe fn vld3q_dup_p16(a: *const p16) -> poly16x8x3_t {
21956    transmute(vld3q_dup_s16(transmute(a)))
21957}
21958#[doc = "Load single 3-element structure and replicate to all lanes of three registers"]
21959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p16)"]
21960#[doc = "## Safety"]
21961#[doc = "  * Neon intrinsic unsafe"]
21962#[inline(always)]
21963#[cfg(target_endian = "big")]
21964#[target_feature(enable = "neon")]
21965#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21966#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21967#[cfg_attr(
21968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
21969    assert_instr(ld3r)
21970)]
21971#[cfg_attr(
21972    not(target_arch = "arm"),
21973    stable(feature = "neon_intrinsics", since = "1.59.0")
21974)]
21975#[cfg_attr(
21976    target_arch = "arm",
21977    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
21978)]
21979pub unsafe fn vld3q_dup_p16(a: *const p16) -> poly16x8x3_t {
21980    let mut ret_val: poly16x8x3_t = transmute(vld3q_dup_s16(transmute(a)));
21981    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
21982    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
21983    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
21984    ret_val
21985}
21986#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
21987#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f16)"]
21988#[doc = "## Safety"]
21989#[doc = "  * Neon intrinsic unsafe"]
21990#[inline(always)]
21991#[target_feature(enable = "neon")]
21992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21993#[cfg(target_arch = "arm")]
21994#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
21995#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
21996#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
21997#[cfg(not(target_arch = "arm64ec"))]
21998pub unsafe fn vld3_f16(a: *const f16) -> float16x4x3_t {
21999    unsafe extern "unadjusted" {
22000        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4f16.p0")]
22001        fn _vld3_f16(ptr: *const f16, size: i32) -> float16x4x3_t;
22002    }
22003    _vld3_f16(a as _, 2)
22004}
22005#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22006#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f16)"]
22007#[doc = "## Safety"]
22008#[doc = "  * Neon intrinsic unsafe"]
22009#[inline(always)]
22010#[target_feature(enable = "neon")]
22011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22012#[cfg(target_arch = "arm")]
22013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
22014#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22015#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22016#[cfg(not(target_arch = "arm64ec"))]
22017pub unsafe fn vld3q_f16(a: *const f16) -> float16x8x3_t {
22018    unsafe extern "unadjusted" {
22019        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8f16.p0")]
22020        fn _vld3q_f16(ptr: *const f16, size: i32) -> float16x8x3_t;
22021    }
22022    _vld3q_f16(a as _, 2)
22023}
22024#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22025#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f16)"]
22026#[doc = "## Safety"]
22027#[doc = "  * Neon intrinsic unsafe"]
22028#[inline(always)]
22029#[target_feature(enable = "neon")]
22030#[cfg(not(target_arch = "arm"))]
22031#[cfg_attr(
22032    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22033    assert_instr(ld3)
22034)]
22035#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22036#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22037#[cfg(not(target_arch = "arm64ec"))]
22038pub unsafe fn vld3_f16(a: *const f16) -> float16x4x3_t {
22039    crate::core_arch::macros::deinterleaving_load!(f16, 4, 3, a)
22040}
22041#[doc = "Load single 3-element structure and replicate to all lanes of two registers"]
22042#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f16)"]
22043#[doc = "## Safety"]
22044#[doc = "  * Neon intrinsic unsafe"]
22045#[inline(always)]
22046#[target_feature(enable = "neon")]
22047#[cfg(not(target_arch = "arm"))]
22048#[cfg_attr(
22049    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22050    assert_instr(ld3)
22051)]
22052#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22053#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22054#[cfg(not(target_arch = "arm64ec"))]
22055pub unsafe fn vld3q_f16(a: *const f16) -> float16x8x3_t {
22056    crate::core_arch::macros::deinterleaving_load!(f16, 8, 3, a)
22057}
22058#[doc = "Load multiple 3-element structures to three registers"]
22059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)"]
22060#[doc = "## Safety"]
22061#[doc = "  * Neon intrinsic unsafe"]
22062#[inline(always)]
22063#[target_feature(enable = "neon")]
22064#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22065#[cfg(not(target_arch = "arm"))]
22066#[cfg_attr(test, assert_instr(ld3))]
22067pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
22068    crate::core_arch::macros::deinterleaving_load!(f32, 2, 3, a)
22069}
22070#[doc = "Load multiple 3-element structures to three registers"]
22071#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)"]
22072#[doc = "## Safety"]
22073#[doc = "  * Neon intrinsic unsafe"]
22074#[inline(always)]
22075#[target_feature(enable = "neon")]
22076#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22077#[cfg(not(target_arch = "arm"))]
22078#[cfg_attr(test, assert_instr(ld3))]
22079pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
22080    crate::core_arch::macros::deinterleaving_load!(f32, 4, 3, a)
22081}
22082#[doc = "Load multiple 3-element structures to three registers"]
22083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)"]
22084#[doc = "## Safety"]
22085#[doc = "  * Neon intrinsic unsafe"]
22086#[inline(always)]
22087#[target_feature(enable = "neon")]
22088#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22089#[cfg(not(target_arch = "arm"))]
22090#[cfg_attr(test, assert_instr(ld3))]
22091pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
22092    crate::core_arch::macros::deinterleaving_load!(i8, 8, 3, a)
22093}
22094#[doc = "Load multiple 3-element structures to three registers"]
22095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)"]
22096#[doc = "## Safety"]
22097#[doc = "  * Neon intrinsic unsafe"]
22098#[inline(always)]
22099#[target_feature(enable = "neon")]
22100#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22101#[cfg(not(target_arch = "arm"))]
22102#[cfg_attr(test, assert_instr(ld3))]
22103pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
22104    crate::core_arch::macros::deinterleaving_load!(i8, 16, 3, a)
22105}
22106#[doc = "Load multiple 3-element structures to three registers"]
22107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)"]
22108#[doc = "## Safety"]
22109#[doc = "  * Neon intrinsic unsafe"]
22110#[inline(always)]
22111#[target_feature(enable = "neon")]
22112#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22113#[cfg(not(target_arch = "arm"))]
22114#[cfg_attr(test, assert_instr(ld3))]
22115pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
22116    crate::core_arch::macros::deinterleaving_load!(i16, 4, 3, a)
22117}
22118#[doc = "Load multiple 3-element structures to three registers"]
22119#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)"]
22120#[doc = "## Safety"]
22121#[doc = "  * Neon intrinsic unsafe"]
22122#[inline(always)]
22123#[target_feature(enable = "neon")]
22124#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22125#[cfg(not(target_arch = "arm"))]
22126#[cfg_attr(test, assert_instr(ld3))]
22127pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
22128    crate::core_arch::macros::deinterleaving_load!(i16, 8, 3, a)
22129}
22130#[doc = "Load multiple 3-element structures to three registers"]
22131#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)"]
22132#[doc = "## Safety"]
22133#[doc = "  * Neon intrinsic unsafe"]
22134#[inline(always)]
22135#[target_feature(enable = "neon")]
22136#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22137#[cfg(not(target_arch = "arm"))]
22138#[cfg_attr(test, assert_instr(ld3))]
22139pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
22140    crate::core_arch::macros::deinterleaving_load!(i32, 2, 3, a)
22141}
22142#[doc = "Load multiple 3-element structures to three registers"]
22143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)"]
22144#[doc = "## Safety"]
22145#[doc = "  * Neon intrinsic unsafe"]
22146#[inline(always)]
22147#[target_feature(enable = "neon")]
22148#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22149#[cfg(not(target_arch = "arm"))]
22150#[cfg_attr(test, assert_instr(ld3))]
22151pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
22152    crate::core_arch::macros::deinterleaving_load!(i32, 4, 3, a)
22153}
22154#[doc = "Load multiple 3-element structures to three registers"]
22155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)"]
22156#[doc = "## Safety"]
22157#[doc = "  * Neon intrinsic unsafe"]
22158#[inline(always)]
22159#[cfg(target_arch = "arm")]
22160#[target_feature(enable = "neon,v7")]
22161#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22162#[cfg_attr(test, assert_instr(vld3))]
22163pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
22164    unsafe extern "unadjusted" {
22165        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2f32.p0")]
22166        fn _vld3_f32(ptr: *const i8, size: i32) -> float32x2x3_t;
22167    }
22168    _vld3_f32(a as *const i8, 4)
22169}
22170#[doc = "Load multiple 3-element structures to three registers"]
22171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)"]
22172#[doc = "## Safety"]
22173#[doc = "  * Neon intrinsic unsafe"]
22174#[inline(always)]
22175#[cfg(target_arch = "arm")]
22176#[target_feature(enable = "neon,v7")]
22177#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22178#[cfg_attr(test, assert_instr(vld3))]
22179pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
22180    unsafe extern "unadjusted" {
22181        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4f32.p0")]
22182        fn _vld3q_f32(ptr: *const i8, size: i32) -> float32x4x3_t;
22183    }
22184    _vld3q_f32(a as *const i8, 4)
22185}
22186#[doc = "Load multiple 3-element structures to three registers"]
22187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)"]
22188#[doc = "## Safety"]
22189#[doc = "  * Neon intrinsic unsafe"]
22190#[inline(always)]
22191#[cfg(target_arch = "arm")]
22192#[target_feature(enable = "neon,v7")]
22193#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22194#[cfg_attr(test, assert_instr(vld3))]
22195pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
22196    unsafe extern "unadjusted" {
22197        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i8.p0")]
22198        fn _vld3_s8(ptr: *const i8, size: i32) -> int8x8x3_t;
22199    }
22200    _vld3_s8(a as *const i8, 1)
22201}
22202#[doc = "Load multiple 3-element structures to three registers"]
22203#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)"]
22204#[doc = "## Safety"]
22205#[doc = "  * Neon intrinsic unsafe"]
22206#[inline(always)]
22207#[cfg(target_arch = "arm")]
22208#[target_feature(enable = "neon,v7")]
22209#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22210#[cfg_attr(test, assert_instr(vld3))]
22211pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
22212    unsafe extern "unadjusted" {
22213        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v16i8.p0")]
22214        fn _vld3q_s8(ptr: *const i8, size: i32) -> int8x16x3_t;
22215    }
22216    _vld3q_s8(a as *const i8, 1)
22217}
22218#[doc = "Load multiple 3-element structures to three registers"]
22219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)"]
22220#[doc = "## Safety"]
22221#[doc = "  * Neon intrinsic unsafe"]
22222#[inline(always)]
22223#[cfg(target_arch = "arm")]
22224#[target_feature(enable = "neon,v7")]
22225#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22226#[cfg_attr(test, assert_instr(vld3))]
22227pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
22228    unsafe extern "unadjusted" {
22229        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i16.p0")]
22230        fn _vld3_s16(ptr: *const i8, size: i32) -> int16x4x3_t;
22231    }
22232    _vld3_s16(a as *const i8, 2)
22233}
22234#[doc = "Load multiple 3-element structures to three registers"]
22235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)"]
22236#[doc = "## Safety"]
22237#[doc = "  * Neon intrinsic unsafe"]
22238#[inline(always)]
22239#[cfg(target_arch = "arm")]
22240#[target_feature(enable = "neon,v7")]
22241#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22242#[cfg_attr(test, assert_instr(vld3))]
22243pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
22244    unsafe extern "unadjusted" {
22245        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i16.p0")]
22246        fn _vld3q_s16(ptr: *const i8, size: i32) -> int16x8x3_t;
22247    }
22248    _vld3q_s16(a as *const i8, 2)
22249}
22250#[doc = "Load multiple 3-element structures to three registers"]
22251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)"]
22252#[doc = "## Safety"]
22253#[doc = "  * Neon intrinsic unsafe"]
22254#[inline(always)]
22255#[cfg(target_arch = "arm")]
22256#[target_feature(enable = "neon,v7")]
22257#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22258#[cfg_attr(test, assert_instr(vld3))]
22259pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
22260    unsafe extern "unadjusted" {
22261        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2i32.p0")]
22262        fn _vld3_s32(ptr: *const i8, size: i32) -> int32x2x3_t;
22263    }
22264    _vld3_s32(a as *const i8, 4)
22265}
22266#[doc = "Load multiple 3-element structures to three registers"]
22267#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)"]
22268#[doc = "## Safety"]
22269#[doc = "  * Neon intrinsic unsafe"]
22270#[inline(always)]
22271#[cfg(target_arch = "arm")]
22272#[target_feature(enable = "neon,v7")]
22273#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22274#[cfg_attr(test, assert_instr(vld3))]
22275pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
22276    unsafe extern "unadjusted" {
22277        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i32.p0")]
22278        fn _vld3q_s32(ptr: *const i8, size: i32) -> int32x4x3_t;
22279    }
22280    _vld3q_s32(a as *const i8, 4)
22281}
22282#[doc = "Load multiple 3-element structures to two registers"]
22283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f16)"]
22284#[doc = "## Safety"]
22285#[doc = "  * Neon intrinsic unsafe"]
22286#[inline(always)]
22287#[target_feature(enable = "neon,v7")]
22288#[cfg(target_arch = "arm")]
22289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22290#[rustc_legacy_const_generics(2)]
22291#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22292#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22293#[cfg(not(target_arch = "arm64ec"))]
22294pub unsafe fn vld3_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x3_t) -> float16x4x3_t {
22295    static_assert_uimm_bits!(LANE, 2);
22296    unsafe extern "unadjusted" {
22297        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4f16.p0")]
22298        fn _vld3_lane_f16(
22299            ptr: *const f16,
22300            a: float16x4_t,
22301            b: float16x4_t,
22302            c: float16x4_t,
22303            n: i32,
22304            size: i32,
22305        ) -> float16x4x3_t;
22306    }
22307    _vld3_lane_f16(a as _, b.0, b.1, b.2, LANE, 2)
22308}
22309#[doc = "Load multiple 3-element structures to two registers"]
22310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f16)"]
22311#[doc = "## Safety"]
22312#[doc = "  * Neon intrinsic unsafe"]
22313#[inline(always)]
22314#[target_feature(enable = "neon,v7")]
22315#[cfg(target_arch = "arm")]
22316#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22317#[rustc_legacy_const_generics(2)]
22318#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22319#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22320#[cfg(not(target_arch = "arm64ec"))]
22321pub unsafe fn vld3q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x3_t) -> float16x8x3_t {
22322    static_assert_uimm_bits!(LANE, 3);
22323    unsafe extern "unadjusted" {
22324        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8f16.p0")]
22325        fn _vld3q_lane_f16(
22326            ptr: *const f16,
22327            a: float16x8_t,
22328            b: float16x8_t,
22329            c: float16x8_t,
22330            n: i32,
22331            size: i32,
22332        ) -> float16x8x3_t;
22333    }
22334    _vld3q_lane_f16(a as _, b.0, b.1, b.2, LANE, 2)
22335}
22336#[doc = "Load multiple 3-element structures to two registers"]
22337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f16)"]
22338#[doc = "## Safety"]
22339#[doc = "  * Neon intrinsic unsafe"]
22340#[inline(always)]
22341#[target_feature(enable = "neon")]
22342#[cfg(not(target_arch = "arm"))]
22343#[cfg_attr(
22344    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22345    assert_instr(ld3, LANE = 0)
22346)]
22347#[rustc_legacy_const_generics(2)]
22348#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22349#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22350#[cfg(not(target_arch = "arm64ec"))]
22351pub unsafe fn vld3_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x3_t) -> float16x4x3_t {
22352    static_assert_uimm_bits!(LANE, 2);
22353    unsafe extern "unadjusted" {
22354        #[cfg_attr(
22355            any(target_arch = "aarch64", target_arch = "arm64ec"),
22356            link_name = "llvm.aarch64.neon.ld3lane.v4f16.p0"
22357        )]
22358        fn _vld3_lane_f16(
22359            a: float16x4_t,
22360            b: float16x4_t,
22361            c: float16x4_t,
22362            n: i64,
22363            ptr: *const f16,
22364        ) -> float16x4x3_t;
22365    }
22366    _vld3_lane_f16(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/vld3q_lane_f16)"]
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(
22376    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22377    assert_instr(ld3, LANE = 0)
22378)]
22379#[rustc_legacy_const_generics(2)]
22380#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
22381#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
22382#[cfg(not(target_arch = "arm64ec"))]
22383pub unsafe fn vld3q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x3_t) -> float16x8x3_t {
22384    static_assert_uimm_bits!(LANE, 3);
22385    unsafe extern "unadjusted" {
22386        #[cfg_attr(
22387            any(target_arch = "aarch64", target_arch = "arm64ec"),
22388            link_name = "llvm.aarch64.neon.ld3lane.v8f16.p0"
22389        )]
22390        fn _vld3q_lane_f16(
22391            a: float16x8_t,
22392            b: float16x8_t,
22393            c: float16x8_t,
22394            n: i64,
22395            ptr: *const f16,
22396        ) -> float16x8x3_t;
22397    }
22398    _vld3q_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
22399}
22400#[doc = "Load multiple 3-element structures to three registers"]
22401#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)"]
22402#[doc = "## Safety"]
22403#[doc = "  * Neon intrinsic unsafe"]
22404#[inline(always)]
22405#[target_feature(enable = "neon")]
22406#[cfg(not(target_arch = "arm"))]
22407#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22408#[rustc_legacy_const_generics(2)]
22409#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22410pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
22411    static_assert_uimm_bits!(LANE, 1);
22412    unsafe extern "unadjusted" {
22413        #[cfg_attr(
22414            any(target_arch = "aarch64", target_arch = "arm64ec"),
22415            link_name = "llvm.aarch64.neon.ld3lane.v2f32.p0"
22416        )]
22417        fn _vld3_lane_f32(
22418            a: float32x2_t,
22419            b: float32x2_t,
22420            c: float32x2_t,
22421            n: i64,
22422            ptr: *const i8,
22423        ) -> float32x2x3_t;
22424    }
22425    _vld3_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
22426}
22427#[doc = "Load multiple 3-element structures to three registers"]
22428#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)"]
22429#[doc = "## Safety"]
22430#[doc = "  * Neon intrinsic unsafe"]
22431#[inline(always)]
22432#[target_feature(enable = "neon")]
22433#[cfg(not(target_arch = "arm"))]
22434#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22435#[rustc_legacy_const_generics(2)]
22436#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22437pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
22438    static_assert_uimm_bits!(LANE, 2);
22439    unsafe extern "unadjusted" {
22440        #[cfg_attr(
22441            any(target_arch = "aarch64", target_arch = "arm64ec"),
22442            link_name = "llvm.aarch64.neon.ld3lane.v4f32.p0"
22443        )]
22444        fn _vld3q_lane_f32(
22445            a: float32x4_t,
22446            b: float32x4_t,
22447            c: float32x4_t,
22448            n: i64,
22449            ptr: *const i8,
22450        ) -> float32x4x3_t;
22451    }
22452    _vld3q_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
22453}
22454#[doc = "Load multiple 3-element structures to three registers"]
22455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)"]
22456#[doc = "## Safety"]
22457#[doc = "  * Neon intrinsic unsafe"]
22458#[inline(always)]
22459#[cfg(target_arch = "arm")]
22460#[target_feature(enable = "neon,v7")]
22461#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22462#[rustc_legacy_const_generics(2)]
22463#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22464pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
22465    static_assert_uimm_bits!(LANE, 1);
22466    unsafe extern "unadjusted" {
22467        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2f32.p0")]
22468        fn _vld3_lane_f32(
22469            ptr: *const i8,
22470            a: float32x2_t,
22471            b: float32x2_t,
22472            c: float32x2_t,
22473            n: i32,
22474            size: i32,
22475        ) -> float32x2x3_t;
22476    }
22477    _vld3_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
22478}
22479#[doc = "Load multiple 3-element structures to two registers"]
22480#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)"]
22481#[doc = "## Safety"]
22482#[doc = "  * Neon intrinsic unsafe"]
22483#[inline(always)]
22484#[target_feature(enable = "neon")]
22485#[cfg(not(target_arch = "arm"))]
22486#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22487#[rustc_legacy_const_generics(2)]
22488#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22489pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
22490    static_assert_uimm_bits!(LANE, 3);
22491    unsafe extern "unadjusted" {
22492        #[cfg_attr(
22493            any(target_arch = "aarch64", target_arch = "arm64ec"),
22494            link_name = "llvm.aarch64.neon.ld3lane.v8i8.p0"
22495        )]
22496        fn _vld3_lane_s8(
22497            a: int8x8_t,
22498            b: int8x8_t,
22499            c: int8x8_t,
22500            n: i64,
22501            ptr: *const i8,
22502        ) -> int8x8x3_t;
22503    }
22504    _vld3_lane_s8(b.0, b.1, b.2, LANE as i64, a as _)
22505}
22506#[doc = "Load multiple 3-element structures to two registers"]
22507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)"]
22508#[doc = "## Safety"]
22509#[doc = "  * Neon intrinsic unsafe"]
22510#[inline(always)]
22511#[target_feature(enable = "neon")]
22512#[cfg(not(target_arch = "arm"))]
22513#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22514#[rustc_legacy_const_generics(2)]
22515#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22516pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
22517    static_assert_uimm_bits!(LANE, 2);
22518    unsafe extern "unadjusted" {
22519        #[cfg_attr(
22520            any(target_arch = "aarch64", target_arch = "arm64ec"),
22521            link_name = "llvm.aarch64.neon.ld3lane.v4i16.p0"
22522        )]
22523        fn _vld3_lane_s16(
22524            a: int16x4_t,
22525            b: int16x4_t,
22526            c: int16x4_t,
22527            n: i64,
22528            ptr: *const i8,
22529        ) -> int16x4x3_t;
22530    }
22531    _vld3_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
22532}
22533#[doc = "Load multiple 3-element structures to two registers"]
22534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)"]
22535#[doc = "## Safety"]
22536#[doc = "  * Neon intrinsic unsafe"]
22537#[inline(always)]
22538#[target_feature(enable = "neon")]
22539#[cfg(not(target_arch = "arm"))]
22540#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22541#[rustc_legacy_const_generics(2)]
22542#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22543pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
22544    static_assert_uimm_bits!(LANE, 4);
22545    unsafe extern "unadjusted" {
22546        #[cfg_attr(
22547            any(target_arch = "aarch64", target_arch = "arm64ec"),
22548            link_name = "llvm.aarch64.neon.ld3lane.v8i16.p0"
22549        )]
22550        fn _vld3q_lane_s16(
22551            a: int16x8_t,
22552            b: int16x8_t,
22553            c: int16x8_t,
22554            n: i64,
22555            ptr: *const i8,
22556        ) -> int16x8x3_t;
22557    }
22558    _vld3q_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
22559}
22560#[doc = "Load multiple 3-element structures to two registers"]
22561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)"]
22562#[doc = "## Safety"]
22563#[doc = "  * Neon intrinsic unsafe"]
22564#[inline(always)]
22565#[target_feature(enable = "neon")]
22566#[cfg(not(target_arch = "arm"))]
22567#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22568#[rustc_legacy_const_generics(2)]
22569#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22570pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
22571    static_assert_uimm_bits!(LANE, 1);
22572    unsafe extern "unadjusted" {
22573        #[cfg_attr(
22574            any(target_arch = "aarch64", target_arch = "arm64ec"),
22575            link_name = "llvm.aarch64.neon.ld3lane.v2i32.p0"
22576        )]
22577        fn _vld3_lane_s32(
22578            a: int32x2_t,
22579            b: int32x2_t,
22580            c: int32x2_t,
22581            n: i64,
22582            ptr: *const i8,
22583        ) -> int32x2x3_t;
22584    }
22585    _vld3_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
22586}
22587#[doc = "Load multiple 3-element structures to two registers"]
22588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)"]
22589#[doc = "## Safety"]
22590#[doc = "  * Neon intrinsic unsafe"]
22591#[inline(always)]
22592#[target_feature(enable = "neon")]
22593#[cfg(not(target_arch = "arm"))]
22594#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
22595#[rustc_legacy_const_generics(2)]
22596#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22597pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
22598    static_assert_uimm_bits!(LANE, 2);
22599    unsafe extern "unadjusted" {
22600        #[cfg_attr(
22601            any(target_arch = "aarch64", target_arch = "arm64ec"),
22602            link_name = "llvm.aarch64.neon.ld3lane.v4i32.p0"
22603        )]
22604        fn _vld3q_lane_s32(
22605            a: int32x4_t,
22606            b: int32x4_t,
22607            c: int32x4_t,
22608            n: i64,
22609            ptr: *const i8,
22610        ) -> int32x4x3_t;
22611    }
22612    _vld3q_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
22613}
22614#[doc = "Load multiple 3-element structures to two registers"]
22615#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)"]
22616#[doc = "## Safety"]
22617#[doc = "  * Neon intrinsic unsafe"]
22618#[inline(always)]
22619#[cfg(target_arch = "arm")]
22620#[target_feature(enable = "neon,v7")]
22621#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22622#[rustc_legacy_const_generics(2)]
22623#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22624pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
22625    static_assert_uimm_bits!(LANE, 3);
22626    unsafe extern "unadjusted" {
22627        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i8.p0")]
22628        fn _vld3_lane_s8(
22629            ptr: *const i8,
22630            a: int8x8_t,
22631            b: int8x8_t,
22632            c: int8x8_t,
22633            n: i32,
22634            size: i32,
22635        ) -> int8x8x3_t;
22636    }
22637    _vld3_lane_s8(a as _, b.0, b.1, b.2, LANE, 1)
22638}
22639#[doc = "Load multiple 3-element structures to two registers"]
22640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)"]
22641#[doc = "## Safety"]
22642#[doc = "  * Neon intrinsic unsafe"]
22643#[inline(always)]
22644#[cfg(target_arch = "arm")]
22645#[target_feature(enable = "neon,v7")]
22646#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22647#[rustc_legacy_const_generics(2)]
22648#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22649pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
22650    static_assert_uimm_bits!(LANE, 2);
22651    unsafe extern "unadjusted" {
22652        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i16.p0")]
22653        fn _vld3_lane_s16(
22654            ptr: *const i8,
22655            a: int16x4_t,
22656            b: int16x4_t,
22657            c: int16x4_t,
22658            n: i32,
22659            size: i32,
22660        ) -> int16x4x3_t;
22661    }
22662    _vld3_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
22663}
22664#[doc = "Load multiple 3-element structures to two registers"]
22665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)"]
22666#[doc = "## Safety"]
22667#[doc = "  * Neon intrinsic unsafe"]
22668#[inline(always)]
22669#[cfg(target_arch = "arm")]
22670#[target_feature(enable = "neon,v7")]
22671#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22672#[rustc_legacy_const_generics(2)]
22673#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22674pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
22675    static_assert_uimm_bits!(LANE, 3);
22676    unsafe extern "unadjusted" {
22677        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i16.p0")]
22678        fn _vld3q_lane_s16(
22679            ptr: *const i8,
22680            a: int16x8_t,
22681            b: int16x8_t,
22682            c: int16x8_t,
22683            n: i32,
22684            size: i32,
22685        ) -> int16x8x3_t;
22686    }
22687    _vld3q_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
22688}
22689#[doc = "Load multiple 3-element structures to two registers"]
22690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)"]
22691#[doc = "## Safety"]
22692#[doc = "  * Neon intrinsic unsafe"]
22693#[inline(always)]
22694#[cfg(target_arch = "arm")]
22695#[target_feature(enable = "neon,v7")]
22696#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22697#[rustc_legacy_const_generics(2)]
22698#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22699pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
22700    static_assert_uimm_bits!(LANE, 1);
22701    unsafe extern "unadjusted" {
22702        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2i32.p0")]
22703        fn _vld3_lane_s32(
22704            ptr: *const i8,
22705            a: int32x2_t,
22706            b: int32x2_t,
22707            c: int32x2_t,
22708            n: i32,
22709            size: i32,
22710        ) -> int32x2x3_t;
22711    }
22712    _vld3_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
22713}
22714#[doc = "Load multiple 3-element structures to two registers"]
22715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)"]
22716#[doc = "## Safety"]
22717#[doc = "  * Neon intrinsic unsafe"]
22718#[inline(always)]
22719#[cfg(target_arch = "arm")]
22720#[target_feature(enable = "neon,v7")]
22721#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
22722#[rustc_legacy_const_generics(2)]
22723#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22724pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
22725    static_assert_uimm_bits!(LANE, 2);
22726    unsafe extern "unadjusted" {
22727        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i32.p0")]
22728        fn _vld3q_lane_s32(
22729            ptr: *const i8,
22730            a: int32x4_t,
22731            b: int32x4_t,
22732            c: int32x4_t,
22733            n: i32,
22734            size: i32,
22735        ) -> int32x4x3_t;
22736    }
22737    _vld3q_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
22738}
22739#[doc = "Load multiple 3-element structures to three registers"]
22740#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u8)"]
22741#[doc = "## Safety"]
22742#[doc = "  * Neon intrinsic unsafe"]
22743#[inline(always)]
22744#[target_feature(enable = "neon")]
22745#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22746#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22747#[cfg_attr(
22748    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22749    assert_instr(ld3, LANE = 0)
22750)]
22751#[rustc_legacy_const_generics(2)]
22752#[cfg_attr(
22753    not(target_arch = "arm"),
22754    stable(feature = "neon_intrinsics", since = "1.59.0")
22755)]
22756#[cfg_attr(
22757    target_arch = "arm",
22758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22759)]
22760pub unsafe fn vld3_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x3_t) -> uint8x8x3_t {
22761    static_assert_uimm_bits!(LANE, 3);
22762    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
22763}
22764#[doc = "Load multiple 3-element structures to three registers"]
22765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u16)"]
22766#[doc = "## Safety"]
22767#[doc = "  * Neon intrinsic unsafe"]
22768#[inline(always)]
22769#[target_feature(enable = "neon")]
22770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22772#[cfg_attr(
22773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22774    assert_instr(ld3, LANE = 0)
22775)]
22776#[rustc_legacy_const_generics(2)]
22777#[cfg_attr(
22778    not(target_arch = "arm"),
22779    stable(feature = "neon_intrinsics", since = "1.59.0")
22780)]
22781#[cfg_attr(
22782    target_arch = "arm",
22783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22784)]
22785pub unsafe fn vld3_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x3_t) -> uint16x4x3_t {
22786    static_assert_uimm_bits!(LANE, 2);
22787    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
22788}
22789#[doc = "Load multiple 3-element structures to three registers"]
22790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u16)"]
22791#[doc = "## Safety"]
22792#[doc = "  * Neon intrinsic unsafe"]
22793#[inline(always)]
22794#[target_feature(enable = "neon")]
22795#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22796#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22797#[cfg_attr(
22798    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22799    assert_instr(ld3, LANE = 0)
22800)]
22801#[rustc_legacy_const_generics(2)]
22802#[cfg_attr(
22803    not(target_arch = "arm"),
22804    stable(feature = "neon_intrinsics", since = "1.59.0")
22805)]
22806#[cfg_attr(
22807    target_arch = "arm",
22808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22809)]
22810pub unsafe fn vld3q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x3_t) -> uint16x8x3_t {
22811    static_assert_uimm_bits!(LANE, 3);
22812    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
22813}
22814#[doc = "Load multiple 3-element structures to three registers"]
22815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u32)"]
22816#[doc = "## Safety"]
22817#[doc = "  * Neon intrinsic unsafe"]
22818#[inline(always)]
22819#[target_feature(enable = "neon")]
22820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22822#[cfg_attr(
22823    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22824    assert_instr(ld3, LANE = 0)
22825)]
22826#[rustc_legacy_const_generics(2)]
22827#[cfg_attr(
22828    not(target_arch = "arm"),
22829    stable(feature = "neon_intrinsics", since = "1.59.0")
22830)]
22831#[cfg_attr(
22832    target_arch = "arm",
22833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22834)]
22835pub unsafe fn vld3_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x3_t) -> uint32x2x3_t {
22836    static_assert_uimm_bits!(LANE, 1);
22837    transmute(vld3_lane_s32::<LANE>(transmute(a), transmute(b)))
22838}
22839#[doc = "Load multiple 3-element structures to three registers"]
22840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u32)"]
22841#[doc = "## Safety"]
22842#[doc = "  * Neon intrinsic unsafe"]
22843#[inline(always)]
22844#[target_feature(enable = "neon")]
22845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22846#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22847#[cfg_attr(
22848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22849    assert_instr(ld3, LANE = 0)
22850)]
22851#[rustc_legacy_const_generics(2)]
22852#[cfg_attr(
22853    not(target_arch = "arm"),
22854    stable(feature = "neon_intrinsics", since = "1.59.0")
22855)]
22856#[cfg_attr(
22857    target_arch = "arm",
22858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22859)]
22860pub unsafe fn vld3q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x3_t) -> uint32x4x3_t {
22861    static_assert_uimm_bits!(LANE, 2);
22862    transmute(vld3q_lane_s32::<LANE>(transmute(a), transmute(b)))
22863}
22864#[doc = "Load multiple 3-element structures to three registers"]
22865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p8)"]
22866#[doc = "## Safety"]
22867#[doc = "  * Neon intrinsic unsafe"]
22868#[inline(always)]
22869#[target_feature(enable = "neon")]
22870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22872#[cfg_attr(
22873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22874    assert_instr(ld3, LANE = 0)
22875)]
22876#[rustc_legacy_const_generics(2)]
22877#[cfg_attr(
22878    not(target_arch = "arm"),
22879    stable(feature = "neon_intrinsics", since = "1.59.0")
22880)]
22881#[cfg_attr(
22882    target_arch = "arm",
22883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22884)]
22885pub unsafe fn vld3_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x3_t) -> poly8x8x3_t {
22886    static_assert_uimm_bits!(LANE, 3);
22887    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
22888}
22889#[doc = "Load multiple 3-element structures to three registers"]
22890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p16)"]
22891#[doc = "## Safety"]
22892#[doc = "  * Neon intrinsic unsafe"]
22893#[inline(always)]
22894#[target_feature(enable = "neon")]
22895#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22896#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22897#[cfg_attr(
22898    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22899    assert_instr(ld3, LANE = 0)
22900)]
22901#[rustc_legacy_const_generics(2)]
22902#[cfg_attr(
22903    not(target_arch = "arm"),
22904    stable(feature = "neon_intrinsics", since = "1.59.0")
22905)]
22906#[cfg_attr(
22907    target_arch = "arm",
22908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22909)]
22910pub unsafe fn vld3_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x3_t) -> poly16x4x3_t {
22911    static_assert_uimm_bits!(LANE, 2);
22912    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
22913}
22914#[doc = "Load multiple 3-element structures to three registers"]
22915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_p16)"]
22916#[doc = "## Safety"]
22917#[doc = "  * Neon intrinsic unsafe"]
22918#[inline(always)]
22919#[target_feature(enable = "neon")]
22920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22921#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
22922#[cfg_attr(
22923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22924    assert_instr(ld3, LANE = 0)
22925)]
22926#[rustc_legacy_const_generics(2)]
22927#[cfg_attr(
22928    not(target_arch = "arm"),
22929    stable(feature = "neon_intrinsics", since = "1.59.0")
22930)]
22931#[cfg_attr(
22932    target_arch = "arm",
22933    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22934)]
22935pub unsafe fn vld3q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x3_t) -> poly16x8x3_t {
22936    static_assert_uimm_bits!(LANE, 3);
22937    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
22938}
22939#[doc = "Load multiple 3-element structures to three registers"]
22940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p64)"]
22941#[doc = "## Safety"]
22942#[doc = "  * Neon intrinsic unsafe"]
22943#[inline(always)]
22944#[target_feature(enable = "neon,aes")]
22945#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
22946#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
22947#[cfg_attr(
22948    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
22949    assert_instr(nop)
22950)]
22951#[cfg_attr(
22952    not(target_arch = "arm"),
22953    stable(feature = "neon_intrinsics", since = "1.59.0")
22954)]
22955#[cfg_attr(
22956    target_arch = "arm",
22957    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
22958)]
22959pub unsafe fn vld3_p64(a: *const p64) -> poly64x1x3_t {
22960    transmute(vld3_s64(transmute(a)))
22961}
22962#[doc = "Load multiple 3-element structures to three registers"]
22963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)"]
22964#[doc = "## Safety"]
22965#[doc = "  * Neon intrinsic unsafe"]
22966#[inline(always)]
22967#[target_feature(enable = "neon")]
22968#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22969#[cfg(not(target_arch = "arm"))]
22970#[cfg_attr(test, assert_instr(nop))]
22971pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
22972    crate::ptr::read_unaligned(a.cast())
22973}
22974#[doc = "Load multiple 3-element structures to three registers"]
22975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)"]
22976#[doc = "## Safety"]
22977#[doc = "  * Neon intrinsic unsafe"]
22978#[inline(always)]
22979#[cfg(target_arch = "arm")]
22980#[target_feature(enable = "neon,v7")]
22981#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22982#[cfg_attr(test, assert_instr(nop))]
22983pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
22984    unsafe extern "unadjusted" {
22985        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v1i64.p0")]
22986        fn _vld3_s64(ptr: *const i8, size: i32) -> int64x1x3_t;
22987    }
22988    _vld3_s64(a as *const i8, 8)
22989}
22990#[doc = "Load multiple 3-element structures to three registers"]
22991#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u64)"]
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(nop))]
22998#[cfg_attr(
22999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23000    assert_instr(nop)
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 vld3_u64(a: *const u64) -> uint64x1x3_t {
23011    transmute(vld3_s64(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_u8)"]
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_u8(a: *const u8) -> uint8x8x3_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_u8)"]
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_u8(a: *const u8) -> uint8x16x3_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_u16)"]
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_u16(a: *const u16) -> uint16x4x3_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_u16)"]
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_u16(a: *const u16) -> uint16x8x3_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/vld3_u32)"]
23107#[doc = "## Safety"]
23108#[doc = "  * Neon intrinsic unsafe"]
23109#[inline(always)]
23110#[target_feature(enable = "neon")]
23111#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23112#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23113#[cfg_attr(
23114    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23115    assert_instr(ld3)
23116)]
23117#[cfg_attr(
23118    not(target_arch = "arm"),
23119    stable(feature = "neon_intrinsics", since = "1.59.0")
23120)]
23121#[cfg_attr(
23122    target_arch = "arm",
23123    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23124)]
23125pub unsafe fn vld3_u32(a: *const u32) -> uint32x2x3_t {
23126    transmute(vld3_s32(transmute(a)))
23127}
23128#[doc = "Load multiple 3-element structures to three registers"]
23129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u32)"]
23130#[doc = "## Safety"]
23131#[doc = "  * Neon intrinsic unsafe"]
23132#[inline(always)]
23133#[target_feature(enable = "neon")]
23134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23136#[cfg_attr(
23137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23138    assert_instr(ld3)
23139)]
23140#[cfg_attr(
23141    not(target_arch = "arm"),
23142    stable(feature = "neon_intrinsics", since = "1.59.0")
23143)]
23144#[cfg_attr(
23145    target_arch = "arm",
23146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23147)]
23148pub unsafe fn vld3q_u32(a: *const u32) -> uint32x4x3_t {
23149    transmute(vld3q_s32(transmute(a)))
23150}
23151#[doc = "Load multiple 3-element structures to three registers"]
23152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p8)"]
23153#[doc = "## Safety"]
23154#[doc = "  * Neon intrinsic unsafe"]
23155#[inline(always)]
23156#[target_feature(enable = "neon")]
23157#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23158#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23159#[cfg_attr(
23160    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23161    assert_instr(ld3)
23162)]
23163#[cfg_attr(
23164    not(target_arch = "arm"),
23165    stable(feature = "neon_intrinsics", since = "1.59.0")
23166)]
23167#[cfg_attr(
23168    target_arch = "arm",
23169    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23170)]
23171pub unsafe fn vld3_p8(a: *const p8) -> poly8x8x3_t {
23172    transmute(vld3_s8(transmute(a)))
23173}
23174#[doc = "Load multiple 3-element structures to three registers"]
23175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p8)"]
23176#[doc = "## Safety"]
23177#[doc = "  * Neon intrinsic unsafe"]
23178#[inline(always)]
23179#[target_feature(enable = "neon")]
23180#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23181#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23182#[cfg_attr(
23183    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23184    assert_instr(ld3)
23185)]
23186#[cfg_attr(
23187    not(target_arch = "arm"),
23188    stable(feature = "neon_intrinsics", since = "1.59.0")
23189)]
23190#[cfg_attr(
23191    target_arch = "arm",
23192    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23193)]
23194pub unsafe fn vld3q_p8(a: *const p8) -> poly8x16x3_t {
23195    transmute(vld3q_s8(transmute(a)))
23196}
23197#[doc = "Load multiple 3-element structures to three registers"]
23198#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p16)"]
23199#[doc = "## Safety"]
23200#[doc = "  * Neon intrinsic unsafe"]
23201#[inline(always)]
23202#[target_feature(enable = "neon")]
23203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23204#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23205#[cfg_attr(
23206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23207    assert_instr(ld3)
23208)]
23209#[cfg_attr(
23210    not(target_arch = "arm"),
23211    stable(feature = "neon_intrinsics", since = "1.59.0")
23212)]
23213#[cfg_attr(
23214    target_arch = "arm",
23215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23216)]
23217pub unsafe fn vld3_p16(a: *const p16) -> poly16x4x3_t {
23218    transmute(vld3_s16(transmute(a)))
23219}
23220#[doc = "Load multiple 3-element structures to three registers"]
23221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p16)"]
23222#[doc = "## Safety"]
23223#[doc = "  * Neon intrinsic unsafe"]
23224#[inline(always)]
23225#[target_feature(enable = "neon")]
23226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
23228#[cfg_attr(
23229    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23230    assert_instr(ld3)
23231)]
23232#[cfg_attr(
23233    not(target_arch = "arm"),
23234    stable(feature = "neon_intrinsics", since = "1.59.0")
23235)]
23236#[cfg_attr(
23237    target_arch = "arm",
23238    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23239)]
23240pub unsafe fn vld3q_p16(a: *const p16) -> poly16x8x3_t {
23241    transmute(vld3q_s16(transmute(a)))
23242}
23243#[doc = "Load multiple 3-element structures to three registers"]
23244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)"]
23245#[doc = "## Safety"]
23246#[doc = "  * Neon intrinsic unsafe"]
23247#[inline(always)]
23248#[cfg(target_arch = "arm")]
23249#[target_feature(enable = "neon,v7")]
23250#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
23251#[rustc_legacy_const_generics(2)]
23252#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23253pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
23254    static_assert_uimm_bits!(LANE, 2);
23255    unsafe extern "unadjusted" {
23256        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4f32.p0")]
23257        fn _vld3q_lane_f32(
23258            ptr: *const i8,
23259            a: float32x4_t,
23260            b: float32x4_t,
23261            c: float32x4_t,
23262            n: i32,
23263            size: i32,
23264        ) -> float32x4x3_t;
23265    }
23266    _vld3q_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
23267}
23268#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
23269#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f16)"]
23270#[doc = "## Safety"]
23271#[doc = "  * Neon intrinsic unsafe"]
23272#[inline(always)]
23273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23274#[cfg(target_arch = "arm")]
23275#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23276#[target_feature(enable = "neon,fp16")]
23277#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23278#[cfg(not(target_arch = "arm64ec"))]
23279pub unsafe fn vld4_dup_f16(a: *const f16) -> float16x4x4_t {
23280    unsafe extern "unadjusted" {
23281        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4f16.p0")]
23282        fn _vld4_dup_f16(ptr: *const f16, size: i32) -> float16x4x4_t;
23283    }
23284    _vld4_dup_f16(a as _, 2)
23285}
23286#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
23287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f16)"]
23288#[doc = "## Safety"]
23289#[doc = "  * Neon intrinsic unsafe"]
23290#[inline(always)]
23291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23292#[cfg(target_arch = "arm")]
23293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23294#[target_feature(enable = "neon,fp16")]
23295#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23296#[cfg(not(target_arch = "arm64ec"))]
23297pub unsafe fn vld4q_dup_f16(a: *const f16) -> float16x8x4_t {
23298    unsafe extern "unadjusted" {
23299        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8f16.p0")]
23300        fn _vld4q_dup_f16(ptr: *const f16, size: i32) -> float16x8x4_t;
23301    }
23302    _vld4q_dup_f16(a as _, 2)
23303}
23304#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
23305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f16)"]
23306#[doc = "## Safety"]
23307#[doc = "  * Neon intrinsic unsafe"]
23308#[inline(always)]
23309#[cfg(not(target_arch = "arm"))]
23310#[cfg_attr(
23311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23312    assert_instr(ld4r)
23313)]
23314#[target_feature(enable = "neon,fp16")]
23315#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23316#[cfg(not(target_arch = "arm64ec"))]
23317pub unsafe fn vld4_dup_f16(a: *const f16) -> float16x4x4_t {
23318    unsafe extern "unadjusted" {
23319        #[cfg_attr(
23320            any(target_arch = "aarch64", target_arch = "arm64ec"),
23321            link_name = "llvm.aarch64.neon.ld4r.v4f16.p0"
23322        )]
23323        fn _vld4_dup_f16(ptr: *const f16) -> float16x4x4_t;
23324    }
23325    _vld4_dup_f16(a as _)
23326}
23327#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
23328#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f16)"]
23329#[doc = "## Safety"]
23330#[doc = "  * Neon intrinsic unsafe"]
23331#[inline(always)]
23332#[cfg(not(target_arch = "arm"))]
23333#[cfg_attr(
23334    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23335    assert_instr(ld4r)
23336)]
23337#[target_feature(enable = "neon,fp16")]
23338#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
23339#[cfg(not(target_arch = "arm64ec"))]
23340pub unsafe fn vld4q_dup_f16(a: *const f16) -> float16x8x4_t {
23341    unsafe extern "unadjusted" {
23342        #[cfg_attr(
23343            any(target_arch = "aarch64", target_arch = "arm64ec"),
23344            link_name = "llvm.aarch64.neon.ld4r.v8f16.p0"
23345        )]
23346        fn _vld4q_dup_f16(ptr: *const f16) -> float16x8x4_t;
23347    }
23348    _vld4q_dup_f16(a as _)
23349}
23350#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23351#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)"]
23352#[doc = "## Safety"]
23353#[doc = "  * Neon intrinsic unsafe"]
23354#[inline(always)]
23355#[cfg(target_arch = "arm")]
23356#[target_feature(enable = "neon,v7")]
23357#[cfg_attr(test, assert_instr(vld4))]
23358#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23359pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
23360    unsafe extern "unadjusted" {
23361        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2f32.p0")]
23362        fn _vld4_dup_f32(ptr: *const i8, size: i32) -> float32x2x4_t;
23363    }
23364    _vld4_dup_f32(a as *const i8, 4)
23365}
23366#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)"]
23368#[doc = "## Safety"]
23369#[doc = "  * Neon intrinsic unsafe"]
23370#[inline(always)]
23371#[cfg(target_arch = "arm")]
23372#[target_feature(enable = "neon,v7")]
23373#[cfg_attr(test, assert_instr(vld4))]
23374#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23375pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
23376    unsafe extern "unadjusted" {
23377        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4f32.p0")]
23378        fn _vld4q_dup_f32(ptr: *const i8, size: i32) -> float32x4x4_t;
23379    }
23380    _vld4q_dup_f32(a as *const i8, 4)
23381}
23382#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)"]
23384#[doc = "## Safety"]
23385#[doc = "  * Neon intrinsic unsafe"]
23386#[inline(always)]
23387#[cfg(target_arch = "arm")]
23388#[target_feature(enable = "neon,v7")]
23389#[cfg_attr(test, assert_instr(vld4))]
23390#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23391pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
23392    unsafe extern "unadjusted" {
23393        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i8.p0")]
23394        fn _vld4_dup_s8(ptr: *const i8, size: i32) -> int8x8x4_t;
23395    }
23396    _vld4_dup_s8(a as *const i8, 1)
23397}
23398#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23399#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)"]
23400#[doc = "## Safety"]
23401#[doc = "  * Neon intrinsic unsafe"]
23402#[inline(always)]
23403#[cfg(target_arch = "arm")]
23404#[target_feature(enable = "neon,v7")]
23405#[cfg_attr(test, assert_instr(vld4))]
23406#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23407pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
23408    unsafe extern "unadjusted" {
23409        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v16i8.p0")]
23410        fn _vld4q_dup_s8(ptr: *const i8, size: i32) -> int8x16x4_t;
23411    }
23412    _vld4q_dup_s8(a as *const i8, 1)
23413}
23414#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s16)"]
23416#[doc = "## Safety"]
23417#[doc = "  * Neon intrinsic unsafe"]
23418#[inline(always)]
23419#[cfg(target_arch = "arm")]
23420#[target_feature(enable = "neon,v7")]
23421#[cfg_attr(test, assert_instr(vld4))]
23422#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23423pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
23424    unsafe extern "unadjusted" {
23425        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i16.p0")]
23426        fn _vld4_dup_s16(ptr: *const i8, size: i32) -> int16x4x4_t;
23427    }
23428    _vld4_dup_s16(a as *const i8, 2)
23429}
23430#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s16)"]
23432#[doc = "## Safety"]
23433#[doc = "  * Neon intrinsic unsafe"]
23434#[inline(always)]
23435#[cfg(target_arch = "arm")]
23436#[target_feature(enable = "neon,v7")]
23437#[cfg_attr(test, assert_instr(vld4))]
23438#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23439pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
23440    unsafe extern "unadjusted" {
23441        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i16.p0")]
23442        fn _vld4q_dup_s16(ptr: *const i8, size: i32) -> int16x8x4_t;
23443    }
23444    _vld4q_dup_s16(a as *const i8, 2)
23445}
23446#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)"]
23448#[doc = "## Safety"]
23449#[doc = "  * Neon intrinsic unsafe"]
23450#[inline(always)]
23451#[cfg(target_arch = "arm")]
23452#[target_feature(enable = "neon,v7")]
23453#[cfg_attr(test, assert_instr(vld4))]
23454#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23455pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
23456    unsafe extern "unadjusted" {
23457        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2i32.p0")]
23458        fn _vld4_dup_s32(ptr: *const i8, size: i32) -> int32x2x4_t;
23459    }
23460    _vld4_dup_s32(a as *const i8, 4)
23461}
23462#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)"]
23464#[doc = "## Safety"]
23465#[doc = "  * Neon intrinsic unsafe"]
23466#[inline(always)]
23467#[cfg(target_arch = "arm")]
23468#[target_feature(enable = "neon,v7")]
23469#[cfg_attr(test, assert_instr(vld4))]
23470#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23471pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
23472    unsafe extern "unadjusted" {
23473        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i32.p0")]
23474        fn _vld4q_dup_s32(ptr: *const i8, size: i32) -> int32x4x4_t;
23475    }
23476    _vld4q_dup_s32(a as *const i8, 4)
23477}
23478#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)"]
23480#[doc = "## Safety"]
23481#[doc = "  * Neon intrinsic unsafe"]
23482#[inline(always)]
23483#[target_feature(enable = "neon")]
23484#[cfg(not(target_arch = "arm"))]
23485#[cfg_attr(test, assert_instr(ld4r))]
23486#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23487pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
23488    unsafe extern "unadjusted" {
23489        #[cfg_attr(
23490            any(target_arch = "aarch64", target_arch = "arm64ec"),
23491            link_name = "llvm.aarch64.neon.ld4r.v2f32.p0.p0"
23492        )]
23493        fn _vld4_dup_f32(ptr: *const f32) -> float32x2x4_t;
23494    }
23495    _vld4_dup_f32(a as _)
23496}
23497#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23498#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)"]
23499#[doc = "## Safety"]
23500#[doc = "  * Neon intrinsic unsafe"]
23501#[inline(always)]
23502#[target_feature(enable = "neon")]
23503#[cfg(not(target_arch = "arm"))]
23504#[cfg_attr(test, assert_instr(ld4r))]
23505#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23506pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
23507    unsafe extern "unadjusted" {
23508        #[cfg_attr(
23509            any(target_arch = "aarch64", target_arch = "arm64ec"),
23510            link_name = "llvm.aarch64.neon.ld4r.v4f32.p0.p0"
23511        )]
23512        fn _vld4q_dup_f32(ptr: *const f32) -> float32x4x4_t;
23513    }
23514    _vld4q_dup_f32(a as _)
23515}
23516#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)"]
23518#[doc = "## Safety"]
23519#[doc = "  * Neon intrinsic unsafe"]
23520#[inline(always)]
23521#[target_feature(enable = "neon")]
23522#[cfg(not(target_arch = "arm"))]
23523#[cfg_attr(test, assert_instr(ld4r))]
23524#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23525pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
23526    unsafe extern "unadjusted" {
23527        #[cfg_attr(
23528            any(target_arch = "aarch64", target_arch = "arm64ec"),
23529            link_name = "llvm.aarch64.neon.ld4r.v8i8.p0.p0"
23530        )]
23531        fn _vld4_dup_s8(ptr: *const i8) -> int8x8x4_t;
23532    }
23533    _vld4_dup_s8(a as _)
23534}
23535#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)"]
23537#[doc = "## Safety"]
23538#[doc = "  * Neon intrinsic unsafe"]
23539#[inline(always)]
23540#[target_feature(enable = "neon")]
23541#[cfg(not(target_arch = "arm"))]
23542#[cfg_attr(test, assert_instr(ld4r))]
23543#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23544pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
23545    unsafe extern "unadjusted" {
23546        #[cfg_attr(
23547            any(target_arch = "aarch64", target_arch = "arm64ec"),
23548            link_name = "llvm.aarch64.neon.ld4r.v16i8.p0.p0"
23549        )]
23550        fn _vld4q_dup_s8(ptr: *const i8) -> int8x16x4_t;
23551    }
23552    _vld4q_dup_s8(a as _)
23553}
23554#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23555#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s16)"]
23556#[doc = "## Safety"]
23557#[doc = "  * Neon intrinsic unsafe"]
23558#[inline(always)]
23559#[target_feature(enable = "neon")]
23560#[cfg(not(target_arch = "arm"))]
23561#[cfg_attr(test, assert_instr(ld4r))]
23562#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23563pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
23564    unsafe extern "unadjusted" {
23565        #[cfg_attr(
23566            any(target_arch = "aarch64", target_arch = "arm64ec"),
23567            link_name = "llvm.aarch64.neon.ld4r.v4i16.p0.p0"
23568        )]
23569        fn _vld4_dup_s16(ptr: *const i16) -> int16x4x4_t;
23570    }
23571    _vld4_dup_s16(a as _)
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/vld4q_dup_s16)"]
23575#[doc = "## Safety"]
23576#[doc = "  * Neon intrinsic unsafe"]
23577#[inline(always)]
23578#[target_feature(enable = "neon")]
23579#[cfg(not(target_arch = "arm"))]
23580#[cfg_attr(test, assert_instr(ld4r))]
23581#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23582pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
23583    unsafe extern "unadjusted" {
23584        #[cfg_attr(
23585            any(target_arch = "aarch64", target_arch = "arm64ec"),
23586            link_name = "llvm.aarch64.neon.ld4r.v8i16.p0.p0"
23587        )]
23588        fn _vld4q_dup_s16(ptr: *const i16) -> int16x8x4_t;
23589    }
23590    _vld4q_dup_s16(a as _)
23591}
23592#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23593#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)"]
23594#[doc = "## Safety"]
23595#[doc = "  * Neon intrinsic unsafe"]
23596#[inline(always)]
23597#[target_feature(enable = "neon")]
23598#[cfg(not(target_arch = "arm"))]
23599#[cfg_attr(test, assert_instr(ld4r))]
23600#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23601pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
23602    unsafe extern "unadjusted" {
23603        #[cfg_attr(
23604            any(target_arch = "aarch64", target_arch = "arm64ec"),
23605            link_name = "llvm.aarch64.neon.ld4r.v2i32.p0.p0"
23606        )]
23607        fn _vld4_dup_s32(ptr: *const i32) -> int32x2x4_t;
23608    }
23609    _vld4_dup_s32(a as _)
23610}
23611#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)"]
23613#[doc = "## Safety"]
23614#[doc = "  * Neon intrinsic unsafe"]
23615#[inline(always)]
23616#[target_feature(enable = "neon")]
23617#[cfg(not(target_arch = "arm"))]
23618#[cfg_attr(test, assert_instr(ld4r))]
23619#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23620pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
23621    unsafe extern "unadjusted" {
23622        #[cfg_attr(
23623            any(target_arch = "aarch64", target_arch = "arm64ec"),
23624            link_name = "llvm.aarch64.neon.ld4r.v4i32.p0.p0"
23625        )]
23626        fn _vld4q_dup_s32(ptr: *const i32) -> int32x4x4_t;
23627    }
23628    _vld4q_dup_s32(a as _)
23629}
23630#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)"]
23632#[doc = "## Safety"]
23633#[doc = "  * Neon intrinsic unsafe"]
23634#[inline(always)]
23635#[target_feature(enable = "neon")]
23636#[cfg(not(target_arch = "arm"))]
23637#[cfg_attr(test, assert_instr(ld4r))]
23638#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23639pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
23640    unsafe extern "unadjusted" {
23641        #[cfg_attr(
23642            any(target_arch = "aarch64", target_arch = "arm64ec"),
23643            link_name = "llvm.aarch64.neon.ld4r.v1i64.p0.p0"
23644        )]
23645        fn _vld4_dup_s64(ptr: *const i64) -> int64x1x4_t;
23646    }
23647    _vld4_dup_s64(a as _)
23648}
23649#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23650#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p64)"]
23651#[doc = "## Safety"]
23652#[doc = "  * Neon intrinsic unsafe"]
23653#[inline(always)]
23654#[target_feature(enable = "neon,aes")]
23655#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
23656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23657#[cfg_attr(
23658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23659    assert_instr(ld4r)
23660)]
23661#[cfg_attr(
23662    not(target_arch = "arm"),
23663    stable(feature = "neon_intrinsics", since = "1.59.0")
23664)]
23665#[cfg_attr(
23666    target_arch = "arm",
23667    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23668)]
23669pub unsafe fn vld4_dup_p64(a: *const p64) -> poly64x1x4_t {
23670    transmute(vld4_dup_s64(transmute(a)))
23671}
23672#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)"]
23674#[doc = "## Safety"]
23675#[doc = "  * Neon intrinsic unsafe"]
23676#[inline(always)]
23677#[cfg(target_arch = "arm")]
23678#[target_feature(enable = "neon,v7")]
23679#[cfg_attr(test, assert_instr(nop))]
23680#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23681pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
23682    unsafe extern "unadjusted" {
23683        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v1i64.p0")]
23684        fn _vld4_dup_s64(ptr: *const i8, size: i32) -> int64x1x4_t;
23685    }
23686    _vld4_dup_s64(a as *const i8, 8)
23687}
23688#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u64)"]
23690#[doc = "## Safety"]
23691#[doc = "  * Neon intrinsic unsafe"]
23692#[inline(always)]
23693#[target_feature(enable = "neon")]
23694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23696#[cfg_attr(
23697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23698    assert_instr(ld4r)
23699)]
23700#[cfg_attr(
23701    not(target_arch = "arm"),
23702    stable(feature = "neon_intrinsics", since = "1.59.0")
23703)]
23704#[cfg_attr(
23705    target_arch = "arm",
23706    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23707)]
23708pub unsafe fn vld4_dup_u64(a: *const u64) -> uint64x1x4_t {
23709    transmute(vld4_dup_s64(transmute(a)))
23710}
23711#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u8)"]
23713#[doc = "## Safety"]
23714#[doc = "  * Neon intrinsic unsafe"]
23715#[inline(always)]
23716#[cfg(target_endian = "little")]
23717#[target_feature(enable = "neon")]
23718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23720#[cfg_attr(
23721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23722    assert_instr(ld4r)
23723)]
23724#[cfg_attr(
23725    not(target_arch = "arm"),
23726    stable(feature = "neon_intrinsics", since = "1.59.0")
23727)]
23728#[cfg_attr(
23729    target_arch = "arm",
23730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23731)]
23732pub unsafe fn vld4_dup_u8(a: *const u8) -> uint8x8x4_t {
23733    transmute(vld4_dup_s8(transmute(a)))
23734}
23735#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u8)"]
23737#[doc = "## Safety"]
23738#[doc = "  * Neon intrinsic unsafe"]
23739#[inline(always)]
23740#[cfg(target_endian = "big")]
23741#[target_feature(enable = "neon")]
23742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23743#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23744#[cfg_attr(
23745    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23746    assert_instr(ld4r)
23747)]
23748#[cfg_attr(
23749    not(target_arch = "arm"),
23750    stable(feature = "neon_intrinsics", since = "1.59.0")
23751)]
23752#[cfg_attr(
23753    target_arch = "arm",
23754    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23755)]
23756pub unsafe fn vld4_dup_u8(a: *const u8) -> uint8x8x4_t {
23757    let mut ret_val: uint8x8x4_t = transmute(vld4_dup_s8(transmute(a)));
23758    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23759    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23760    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23761    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
23762    ret_val
23763}
23764#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u8)"]
23766#[doc = "## Safety"]
23767#[doc = "  * Neon intrinsic unsafe"]
23768#[inline(always)]
23769#[cfg(target_endian = "little")]
23770#[target_feature(enable = "neon")]
23771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23772#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23773#[cfg_attr(
23774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23775    assert_instr(ld4r)
23776)]
23777#[cfg_attr(
23778    not(target_arch = "arm"),
23779    stable(feature = "neon_intrinsics", since = "1.59.0")
23780)]
23781#[cfg_attr(
23782    target_arch = "arm",
23783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23784)]
23785pub unsafe fn vld4q_dup_u8(a: *const u8) -> uint8x16x4_t {
23786    transmute(vld4q_dup_s8(transmute(a)))
23787}
23788#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u8)"]
23790#[doc = "## Safety"]
23791#[doc = "  * Neon intrinsic unsafe"]
23792#[inline(always)]
23793#[cfg(target_endian = "big")]
23794#[target_feature(enable = "neon")]
23795#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23796#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23797#[cfg_attr(
23798    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23799    assert_instr(ld4r)
23800)]
23801#[cfg_attr(
23802    not(target_arch = "arm"),
23803    stable(feature = "neon_intrinsics", since = "1.59.0")
23804)]
23805#[cfg_attr(
23806    target_arch = "arm",
23807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23808)]
23809pub unsafe fn vld4q_dup_u8(a: *const u8) -> uint8x16x4_t {
23810    let mut ret_val: uint8x16x4_t = transmute(vld4q_dup_s8(transmute(a)));
23811    ret_val.0 = unsafe {
23812        simd_shuffle!(
23813            ret_val.0,
23814            ret_val.0,
23815            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23816        )
23817    };
23818    ret_val.1 = unsafe {
23819        simd_shuffle!(
23820            ret_val.1,
23821            ret_val.1,
23822            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23823        )
23824    };
23825    ret_val.2 = unsafe {
23826        simd_shuffle!(
23827            ret_val.2,
23828            ret_val.2,
23829            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23830        )
23831    };
23832    ret_val.3 = unsafe {
23833        simd_shuffle!(
23834            ret_val.3,
23835            ret_val.3,
23836            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
23837        )
23838    };
23839    ret_val
23840}
23841#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u16)"]
23843#[doc = "## Safety"]
23844#[doc = "  * Neon intrinsic unsafe"]
23845#[inline(always)]
23846#[cfg(target_endian = "little")]
23847#[target_feature(enable = "neon")]
23848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23850#[cfg_attr(
23851    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23852    assert_instr(ld4r)
23853)]
23854#[cfg_attr(
23855    not(target_arch = "arm"),
23856    stable(feature = "neon_intrinsics", since = "1.59.0")
23857)]
23858#[cfg_attr(
23859    target_arch = "arm",
23860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23861)]
23862pub unsafe fn vld4_dup_u16(a: *const u16) -> uint16x4x4_t {
23863    transmute(vld4_dup_s16(transmute(a)))
23864}
23865#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u16)"]
23867#[doc = "## Safety"]
23868#[doc = "  * Neon intrinsic unsafe"]
23869#[inline(always)]
23870#[cfg(target_endian = "big")]
23871#[target_feature(enable = "neon")]
23872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23874#[cfg_attr(
23875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23876    assert_instr(ld4r)
23877)]
23878#[cfg_attr(
23879    not(target_arch = "arm"),
23880    stable(feature = "neon_intrinsics", since = "1.59.0")
23881)]
23882#[cfg_attr(
23883    target_arch = "arm",
23884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23885)]
23886pub unsafe fn vld4_dup_u16(a: *const u16) -> uint16x4x4_t {
23887    let mut ret_val: uint16x4x4_t = transmute(vld4_dup_s16(transmute(a)));
23888    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
23889    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
23890    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
23891    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
23892    ret_val
23893}
23894#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u16)"]
23896#[doc = "## Safety"]
23897#[doc = "  * Neon intrinsic unsafe"]
23898#[inline(always)]
23899#[cfg(target_endian = "little")]
23900#[target_feature(enable = "neon")]
23901#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23902#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23903#[cfg_attr(
23904    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23905    assert_instr(ld4r)
23906)]
23907#[cfg_attr(
23908    not(target_arch = "arm"),
23909    stable(feature = "neon_intrinsics", since = "1.59.0")
23910)]
23911#[cfg_attr(
23912    target_arch = "arm",
23913    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23914)]
23915pub unsafe fn vld4q_dup_u16(a: *const u16) -> uint16x8x4_t {
23916    transmute(vld4q_dup_s16(transmute(a)))
23917}
23918#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u16)"]
23920#[doc = "## Safety"]
23921#[doc = "  * Neon intrinsic unsafe"]
23922#[inline(always)]
23923#[cfg(target_endian = "big")]
23924#[target_feature(enable = "neon")]
23925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23926#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23927#[cfg_attr(
23928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23929    assert_instr(ld4r)
23930)]
23931#[cfg_attr(
23932    not(target_arch = "arm"),
23933    stable(feature = "neon_intrinsics", since = "1.59.0")
23934)]
23935#[cfg_attr(
23936    target_arch = "arm",
23937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23938)]
23939pub unsafe fn vld4q_dup_u16(a: *const u16) -> uint16x8x4_t {
23940    let mut ret_val: uint16x8x4_t = transmute(vld4q_dup_s16(transmute(a)));
23941    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
23942    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
23943    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
23944    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
23945    ret_val
23946}
23947#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u32)"]
23949#[doc = "## Safety"]
23950#[doc = "  * Neon intrinsic unsafe"]
23951#[inline(always)]
23952#[cfg(target_endian = "little")]
23953#[target_feature(enable = "neon")]
23954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23956#[cfg_attr(
23957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23958    assert_instr(ld4r)
23959)]
23960#[cfg_attr(
23961    not(target_arch = "arm"),
23962    stable(feature = "neon_intrinsics", since = "1.59.0")
23963)]
23964#[cfg_attr(
23965    target_arch = "arm",
23966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23967)]
23968pub unsafe fn vld4_dup_u32(a: *const u32) -> uint32x2x4_t {
23969    transmute(vld4_dup_s32(transmute(a)))
23970}
23971#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
23972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u32)"]
23973#[doc = "## Safety"]
23974#[doc = "  * Neon intrinsic unsafe"]
23975#[inline(always)]
23976#[cfg(target_endian = "big")]
23977#[target_feature(enable = "neon")]
23978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23979#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
23980#[cfg_attr(
23981    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
23982    assert_instr(ld4r)
23983)]
23984#[cfg_attr(
23985    not(target_arch = "arm"),
23986    stable(feature = "neon_intrinsics", since = "1.59.0")
23987)]
23988#[cfg_attr(
23989    target_arch = "arm",
23990    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
23991)]
23992pub unsafe fn vld4_dup_u32(a: *const u32) -> uint32x2x4_t {
23993    let mut ret_val: uint32x2x4_t = transmute(vld4_dup_s32(transmute(a)));
23994    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [1, 0]) };
23995    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [1, 0]) };
23996    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [1, 0]) };
23997    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [1, 0]) };
23998    ret_val
23999}
24000#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u32)"]
24002#[doc = "## Safety"]
24003#[doc = "  * Neon intrinsic unsafe"]
24004#[inline(always)]
24005#[cfg(target_endian = "little")]
24006#[target_feature(enable = "neon")]
24007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24008#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24009#[cfg_attr(
24010    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24011    assert_instr(ld4r)
24012)]
24013#[cfg_attr(
24014    not(target_arch = "arm"),
24015    stable(feature = "neon_intrinsics", since = "1.59.0")
24016)]
24017#[cfg_attr(
24018    target_arch = "arm",
24019    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24020)]
24021pub unsafe fn vld4q_dup_u32(a: *const u32) -> uint32x4x4_t {
24022    transmute(vld4q_dup_s32(transmute(a)))
24023}
24024#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24025#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u32)"]
24026#[doc = "## Safety"]
24027#[doc = "  * Neon intrinsic unsafe"]
24028#[inline(always)]
24029#[cfg(target_endian = "big")]
24030#[target_feature(enable = "neon")]
24031#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24032#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24033#[cfg_attr(
24034    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24035    assert_instr(ld4r)
24036)]
24037#[cfg_attr(
24038    not(target_arch = "arm"),
24039    stable(feature = "neon_intrinsics", since = "1.59.0")
24040)]
24041#[cfg_attr(
24042    target_arch = "arm",
24043    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24044)]
24045pub unsafe fn vld4q_dup_u32(a: *const u32) -> uint32x4x4_t {
24046    let mut ret_val: uint32x4x4_t = transmute(vld4q_dup_s32(transmute(a)));
24047    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
24048    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
24049    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
24050    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
24051    ret_val
24052}
24053#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p8)"]
24055#[doc = "## Safety"]
24056#[doc = "  * Neon intrinsic unsafe"]
24057#[inline(always)]
24058#[cfg(target_endian = "little")]
24059#[target_feature(enable = "neon")]
24060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24061#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24062#[cfg_attr(
24063    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24064    assert_instr(ld4r)
24065)]
24066#[cfg_attr(
24067    not(target_arch = "arm"),
24068    stable(feature = "neon_intrinsics", since = "1.59.0")
24069)]
24070#[cfg_attr(
24071    target_arch = "arm",
24072    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24073)]
24074pub unsafe fn vld4_dup_p8(a: *const p8) -> poly8x8x4_t {
24075    transmute(vld4_dup_s8(transmute(a)))
24076}
24077#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p8)"]
24079#[doc = "## Safety"]
24080#[doc = "  * Neon intrinsic unsafe"]
24081#[inline(always)]
24082#[cfg(target_endian = "big")]
24083#[target_feature(enable = "neon")]
24084#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24085#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24086#[cfg_attr(
24087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24088    assert_instr(ld4r)
24089)]
24090#[cfg_attr(
24091    not(target_arch = "arm"),
24092    stable(feature = "neon_intrinsics", since = "1.59.0")
24093)]
24094#[cfg_attr(
24095    target_arch = "arm",
24096    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24097)]
24098pub unsafe fn vld4_dup_p8(a: *const p8) -> poly8x8x4_t {
24099    let mut ret_val: poly8x8x4_t = transmute(vld4_dup_s8(transmute(a)));
24100    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
24101    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
24102    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
24103    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
24104    ret_val
24105}
24106#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p8)"]
24108#[doc = "## Safety"]
24109#[doc = "  * Neon intrinsic unsafe"]
24110#[inline(always)]
24111#[cfg(target_endian = "little")]
24112#[target_feature(enable = "neon")]
24113#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24114#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24115#[cfg_attr(
24116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24117    assert_instr(ld4r)
24118)]
24119#[cfg_attr(
24120    not(target_arch = "arm"),
24121    stable(feature = "neon_intrinsics", since = "1.59.0")
24122)]
24123#[cfg_attr(
24124    target_arch = "arm",
24125    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24126)]
24127pub unsafe fn vld4q_dup_p8(a: *const p8) -> poly8x16x4_t {
24128    transmute(vld4q_dup_s8(transmute(a)))
24129}
24130#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24131#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p8)"]
24132#[doc = "## Safety"]
24133#[doc = "  * Neon intrinsic unsafe"]
24134#[inline(always)]
24135#[cfg(target_endian = "big")]
24136#[target_feature(enable = "neon")]
24137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24138#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24139#[cfg_attr(
24140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24141    assert_instr(ld4r)
24142)]
24143#[cfg_attr(
24144    not(target_arch = "arm"),
24145    stable(feature = "neon_intrinsics", since = "1.59.0")
24146)]
24147#[cfg_attr(
24148    target_arch = "arm",
24149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24150)]
24151pub unsafe fn vld4q_dup_p8(a: *const p8) -> poly8x16x4_t {
24152    let mut ret_val: poly8x16x4_t = transmute(vld4q_dup_s8(transmute(a)));
24153    ret_val.0 = unsafe {
24154        simd_shuffle!(
24155            ret_val.0,
24156            ret_val.0,
24157            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24158        )
24159    };
24160    ret_val.1 = unsafe {
24161        simd_shuffle!(
24162            ret_val.1,
24163            ret_val.1,
24164            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24165        )
24166    };
24167    ret_val.2 = unsafe {
24168        simd_shuffle!(
24169            ret_val.2,
24170            ret_val.2,
24171            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24172        )
24173    };
24174    ret_val.3 = unsafe {
24175        simd_shuffle!(
24176            ret_val.3,
24177            ret_val.3,
24178            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
24179        )
24180    };
24181    ret_val
24182}
24183#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p16)"]
24185#[doc = "## Safety"]
24186#[doc = "  * Neon intrinsic unsafe"]
24187#[inline(always)]
24188#[cfg(target_endian = "little")]
24189#[target_feature(enable = "neon")]
24190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24192#[cfg_attr(
24193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24194    assert_instr(ld4r)
24195)]
24196#[cfg_attr(
24197    not(target_arch = "arm"),
24198    stable(feature = "neon_intrinsics", since = "1.59.0")
24199)]
24200#[cfg_attr(
24201    target_arch = "arm",
24202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24203)]
24204pub unsafe fn vld4_dup_p16(a: *const p16) -> poly16x4x4_t {
24205    transmute(vld4_dup_s16(transmute(a)))
24206}
24207#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p16)"]
24209#[doc = "## Safety"]
24210#[doc = "  * Neon intrinsic unsafe"]
24211#[inline(always)]
24212#[cfg(target_endian = "big")]
24213#[target_feature(enable = "neon")]
24214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24216#[cfg_attr(
24217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24218    assert_instr(ld4r)
24219)]
24220#[cfg_attr(
24221    not(target_arch = "arm"),
24222    stable(feature = "neon_intrinsics", since = "1.59.0")
24223)]
24224#[cfg_attr(
24225    target_arch = "arm",
24226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24227)]
24228pub unsafe fn vld4_dup_p16(a: *const p16) -> poly16x4x4_t {
24229    let mut ret_val: poly16x4x4_t = transmute(vld4_dup_s16(transmute(a)));
24230    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [3, 2, 1, 0]) };
24231    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [3, 2, 1, 0]) };
24232    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [3, 2, 1, 0]) };
24233    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [3, 2, 1, 0]) };
24234    ret_val
24235}
24236#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p16)"]
24238#[doc = "## Safety"]
24239#[doc = "  * Neon intrinsic unsafe"]
24240#[inline(always)]
24241#[cfg(target_endian = "little")]
24242#[target_feature(enable = "neon")]
24243#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24244#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24245#[cfg_attr(
24246    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24247    assert_instr(ld4r)
24248)]
24249#[cfg_attr(
24250    not(target_arch = "arm"),
24251    stable(feature = "neon_intrinsics", since = "1.59.0")
24252)]
24253#[cfg_attr(
24254    target_arch = "arm",
24255    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24256)]
24257pub unsafe fn vld4q_dup_p16(a: *const p16) -> poly16x8x4_t {
24258    transmute(vld4q_dup_s16(transmute(a)))
24259}
24260#[doc = "Load single 4-element structure and replicate to all lanes of four registers"]
24261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p16)"]
24262#[doc = "## Safety"]
24263#[doc = "  * Neon intrinsic unsafe"]
24264#[inline(always)]
24265#[cfg(target_endian = "big")]
24266#[target_feature(enable = "neon")]
24267#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24268#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24269#[cfg_attr(
24270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24271    assert_instr(ld4r)
24272)]
24273#[cfg_attr(
24274    not(target_arch = "arm"),
24275    stable(feature = "neon_intrinsics", since = "1.59.0")
24276)]
24277#[cfg_attr(
24278    target_arch = "arm",
24279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
24280)]
24281pub unsafe fn vld4q_dup_p16(a: *const p16) -> poly16x8x4_t {
24282    let mut ret_val: poly16x8x4_t = transmute(vld4q_dup_s16(transmute(a)));
24283    ret_val.0 = unsafe { simd_shuffle!(ret_val.0, ret_val.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
24284    ret_val.1 = unsafe { simd_shuffle!(ret_val.1, ret_val.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
24285    ret_val.2 = unsafe { simd_shuffle!(ret_val.2, ret_val.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
24286    ret_val.3 = unsafe { simd_shuffle!(ret_val.3, ret_val.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
24287    ret_val
24288}
24289#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24290#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f16)"]
24291#[doc = "## Safety"]
24292#[doc = "  * Neon intrinsic unsafe"]
24293#[inline(always)]
24294#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24295#[cfg(target_arch = "arm")]
24296#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24297#[target_feature(enable = "neon,fp16")]
24298#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24299#[cfg(not(target_arch = "arm64ec"))]
24300pub unsafe fn vld4_f16(a: *const f16) -> float16x4x4_t {
24301    unsafe extern "unadjusted" {
24302        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4f16.p0")]
24303        fn _vld4_f16(ptr: *const f16, size: i32) -> float16x4x4_t;
24304    }
24305    _vld4_f16(a as _, 2)
24306}
24307#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f16)"]
24309#[doc = "## Safety"]
24310#[doc = "  * Neon intrinsic unsafe"]
24311#[inline(always)]
24312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24313#[cfg(target_arch = "arm")]
24314#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
24315#[target_feature(enable = "neon,fp16")]
24316#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24317#[cfg(not(target_arch = "arm64ec"))]
24318pub unsafe fn vld4q_f16(a: *const f16) -> float16x8x4_t {
24319    unsafe extern "unadjusted" {
24320        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8f16.p0")]
24321        fn _vld4q_f16(ptr: *const f16, size: i32) -> float16x8x4_t;
24322    }
24323    _vld4q_f16(a as _, 2)
24324}
24325#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f16)"]
24327#[doc = "## Safety"]
24328#[doc = "  * Neon intrinsic unsafe"]
24329#[inline(always)]
24330#[cfg(not(target_arch = "arm"))]
24331#[cfg_attr(
24332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24333    assert_instr(ld4)
24334)]
24335#[target_feature(enable = "neon,fp16")]
24336#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24337#[cfg(not(target_arch = "arm64ec"))]
24338pub unsafe fn vld4_f16(a: *const f16) -> float16x4x4_t {
24339    crate::core_arch::macros::deinterleaving_load!(f16, 4, 4, a)
24340}
24341#[doc = "Load single 4-element structure and replicate to all lanes of two registers"]
24342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f16)"]
24343#[doc = "## Safety"]
24344#[doc = "  * Neon intrinsic unsafe"]
24345#[inline(always)]
24346#[cfg(not(target_arch = "arm"))]
24347#[cfg_attr(
24348    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24349    assert_instr(ld4)
24350)]
24351#[target_feature(enable = "neon,fp16")]
24352#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24353#[cfg(not(target_arch = "arm64ec"))]
24354pub unsafe fn vld4q_f16(a: *const f16) -> float16x8x4_t {
24355    crate::core_arch::macros::deinterleaving_load!(f16, 8, 4, a)
24356}
24357#[doc = "Load multiple 4-element structures to four registers"]
24358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)"]
24359#[doc = "## Safety"]
24360#[doc = "  * Neon intrinsic unsafe"]
24361#[inline(always)]
24362#[target_feature(enable = "neon")]
24363#[cfg(not(target_arch = "arm"))]
24364#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24365#[cfg_attr(test, assert_instr(ld4))]
24366pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
24367    crate::core_arch::macros::deinterleaving_load!(f32, 2, 4, a)
24368}
24369#[doc = "Load multiple 4-element structures to four registers"]
24370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)"]
24371#[doc = "## Safety"]
24372#[doc = "  * Neon intrinsic unsafe"]
24373#[inline(always)]
24374#[target_feature(enable = "neon")]
24375#[cfg(not(target_arch = "arm"))]
24376#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24377#[cfg_attr(test, assert_instr(ld4))]
24378pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
24379    crate::core_arch::macros::deinterleaving_load!(f32, 4, 4, a)
24380}
24381#[doc = "Load multiple 4-element structures to four registers"]
24382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)"]
24383#[doc = "## Safety"]
24384#[doc = "  * Neon intrinsic unsafe"]
24385#[inline(always)]
24386#[target_feature(enable = "neon")]
24387#[cfg(not(target_arch = "arm"))]
24388#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24389#[cfg_attr(test, assert_instr(ld4))]
24390pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
24391    crate::core_arch::macros::deinterleaving_load!(i8, 8, 4, a)
24392}
24393#[doc = "Load multiple 4-element structures to four registers"]
24394#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)"]
24395#[doc = "## Safety"]
24396#[doc = "  * Neon intrinsic unsafe"]
24397#[inline(always)]
24398#[target_feature(enable = "neon")]
24399#[cfg(not(target_arch = "arm"))]
24400#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24401#[cfg_attr(test, assert_instr(ld4))]
24402pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
24403    crate::core_arch::macros::deinterleaving_load!(i8, 16, 4, a)
24404}
24405#[doc = "Load multiple 4-element structures to four registers"]
24406#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)"]
24407#[doc = "## Safety"]
24408#[doc = "  * Neon intrinsic unsafe"]
24409#[inline(always)]
24410#[target_feature(enable = "neon")]
24411#[cfg(not(target_arch = "arm"))]
24412#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24413#[cfg_attr(test, assert_instr(ld4))]
24414pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
24415    crate::core_arch::macros::deinterleaving_load!(i16, 4, 4, a)
24416}
24417#[doc = "Load multiple 4-element structures to four registers"]
24418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)"]
24419#[doc = "## Safety"]
24420#[doc = "  * Neon intrinsic unsafe"]
24421#[inline(always)]
24422#[target_feature(enable = "neon")]
24423#[cfg(not(target_arch = "arm"))]
24424#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24425#[cfg_attr(test, assert_instr(ld4))]
24426pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
24427    crate::core_arch::macros::deinterleaving_load!(i16, 8, 4, a)
24428}
24429#[doc = "Load multiple 4-element structures to four registers"]
24430#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)"]
24431#[doc = "## Safety"]
24432#[doc = "  * Neon intrinsic unsafe"]
24433#[inline(always)]
24434#[target_feature(enable = "neon")]
24435#[cfg(not(target_arch = "arm"))]
24436#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24437#[cfg_attr(test, assert_instr(ld4))]
24438pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
24439    crate::core_arch::macros::deinterleaving_load!(i32, 2, 4, a)
24440}
24441#[doc = "Load multiple 4-element structures to four registers"]
24442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)"]
24443#[doc = "## Safety"]
24444#[doc = "  * Neon intrinsic unsafe"]
24445#[inline(always)]
24446#[target_feature(enable = "neon")]
24447#[cfg(not(target_arch = "arm"))]
24448#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24449#[cfg_attr(test, assert_instr(ld4))]
24450pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
24451    crate::core_arch::macros::deinterleaving_load!(i32, 4, 4, a)
24452}
24453#[doc = "Load multiple 4-element structures to four registers"]
24454#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)"]
24455#[doc = "## Safety"]
24456#[doc = "  * Neon intrinsic unsafe"]
24457#[inline(always)]
24458#[target_feature(enable = "neon,v7")]
24459#[cfg(target_arch = "arm")]
24460#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24461#[cfg_attr(test, assert_instr(vld4))]
24462pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
24463    unsafe extern "unadjusted" {
24464        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2f32.p0")]
24465        fn _vld4_f32(ptr: *const i8, size: i32) -> float32x2x4_t;
24466    }
24467    _vld4_f32(a as *const i8, 4)
24468}
24469#[doc = "Load multiple 4-element structures to four registers"]
24470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)"]
24471#[doc = "## Safety"]
24472#[doc = "  * Neon intrinsic unsafe"]
24473#[inline(always)]
24474#[target_feature(enable = "neon,v7")]
24475#[cfg(target_arch = "arm")]
24476#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24477#[cfg_attr(test, assert_instr(vld4))]
24478pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
24479    unsafe extern "unadjusted" {
24480        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4f32.p0")]
24481        fn _vld4q_f32(ptr: *const i8, size: i32) -> float32x4x4_t;
24482    }
24483    _vld4q_f32(a as *const i8, 4)
24484}
24485#[doc = "Load multiple 4-element structures to four registers"]
24486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)"]
24487#[doc = "## Safety"]
24488#[doc = "  * Neon intrinsic unsafe"]
24489#[inline(always)]
24490#[target_feature(enable = "neon,v7")]
24491#[cfg(target_arch = "arm")]
24492#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24493#[cfg_attr(test, assert_instr(vld4))]
24494pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
24495    unsafe extern "unadjusted" {
24496        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i8.p0")]
24497        fn _vld4_s8(ptr: *const i8, size: i32) -> int8x8x4_t;
24498    }
24499    _vld4_s8(a as *const i8, 1)
24500}
24501#[doc = "Load multiple 4-element structures to four registers"]
24502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)"]
24503#[doc = "## Safety"]
24504#[doc = "  * Neon intrinsic unsafe"]
24505#[inline(always)]
24506#[target_feature(enable = "neon,v7")]
24507#[cfg(target_arch = "arm")]
24508#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24509#[cfg_attr(test, assert_instr(vld4))]
24510pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
24511    unsafe extern "unadjusted" {
24512        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v16i8.p0")]
24513        fn _vld4q_s8(ptr: *const i8, size: i32) -> int8x16x4_t;
24514    }
24515    _vld4q_s8(a as *const i8, 1)
24516}
24517#[doc = "Load multiple 4-element structures to four registers"]
24518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)"]
24519#[doc = "## Safety"]
24520#[doc = "  * Neon intrinsic unsafe"]
24521#[inline(always)]
24522#[target_feature(enable = "neon,v7")]
24523#[cfg(target_arch = "arm")]
24524#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24525#[cfg_attr(test, assert_instr(vld4))]
24526pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
24527    unsafe extern "unadjusted" {
24528        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i16.p0")]
24529        fn _vld4_s16(ptr: *const i8, size: i32) -> int16x4x4_t;
24530    }
24531    _vld4_s16(a as *const i8, 2)
24532}
24533#[doc = "Load multiple 4-element structures to four registers"]
24534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)"]
24535#[doc = "## Safety"]
24536#[doc = "  * Neon intrinsic unsafe"]
24537#[inline(always)]
24538#[target_feature(enable = "neon,v7")]
24539#[cfg(target_arch = "arm")]
24540#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24541#[cfg_attr(test, assert_instr(vld4))]
24542pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
24543    unsafe extern "unadjusted" {
24544        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i16.p0")]
24545        fn _vld4q_s16(ptr: *const i8, size: i32) -> int16x8x4_t;
24546    }
24547    _vld4q_s16(a as *const i8, 2)
24548}
24549#[doc = "Load multiple 4-element structures to four registers"]
24550#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)"]
24551#[doc = "## Safety"]
24552#[doc = "  * Neon intrinsic unsafe"]
24553#[inline(always)]
24554#[target_feature(enable = "neon,v7")]
24555#[cfg(target_arch = "arm")]
24556#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24557#[cfg_attr(test, assert_instr(vld4))]
24558pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
24559    unsafe extern "unadjusted" {
24560        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2i32.p0")]
24561        fn _vld4_s32(ptr: *const i8, size: i32) -> int32x2x4_t;
24562    }
24563    _vld4_s32(a as *const i8, 4)
24564}
24565#[doc = "Load multiple 4-element structures to four registers"]
24566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)"]
24567#[doc = "## Safety"]
24568#[doc = "  * Neon intrinsic unsafe"]
24569#[inline(always)]
24570#[target_feature(enable = "neon,v7")]
24571#[cfg(target_arch = "arm")]
24572#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24573#[cfg_attr(test, assert_instr(vld4))]
24574pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
24575    unsafe extern "unadjusted" {
24576        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i32.p0")]
24577        fn _vld4q_s32(ptr: *const i8, size: i32) -> int32x4x4_t;
24578    }
24579    _vld4q_s32(a as *const i8, 4)
24580}
24581#[doc = "Load multiple 4-element structures to two registers"]
24582#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f16)"]
24583#[doc = "## Safety"]
24584#[doc = "  * Neon intrinsic unsafe"]
24585#[inline(always)]
24586#[target_feature(enable = "neon,v7")]
24587#[cfg(target_arch = "arm")]
24588#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
24589#[rustc_legacy_const_generics(2)]
24590#[target_feature(enable = "neon,fp16")]
24591#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24592#[cfg(not(target_arch = "arm64ec"))]
24593pub unsafe fn vld4_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x4_t) -> float16x4x4_t {
24594    static_assert_uimm_bits!(LANE, 2);
24595    unsafe extern "unadjusted" {
24596        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4f16.p0")]
24597        fn _vld4_lane_f16(
24598            ptr: *const f16,
24599            a: float16x4_t,
24600            b: float16x4_t,
24601            c: float16x4_t,
24602            d: float16x4_t,
24603            n: i32,
24604            size: i32,
24605        ) -> float16x4x4_t;
24606    }
24607    _vld4_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
24608}
24609#[doc = "Load multiple 4-element structures to two registers"]
24610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f16)"]
24611#[doc = "## Safety"]
24612#[doc = "  * Neon intrinsic unsafe"]
24613#[inline(always)]
24614#[target_feature(enable = "neon,v7")]
24615#[cfg(target_arch = "arm")]
24616#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
24617#[rustc_legacy_const_generics(2)]
24618#[target_feature(enable = "neon,fp16")]
24619#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24620#[cfg(not(target_arch = "arm64ec"))]
24621pub unsafe fn vld4q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x4_t) -> float16x8x4_t {
24622    static_assert_uimm_bits!(LANE, 3);
24623    unsafe extern "unadjusted" {
24624        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8f16.p0")]
24625        fn _vld4q_lane_f16(
24626            ptr: *const f16,
24627            a: float16x8_t,
24628            b: float16x8_t,
24629            c: float16x8_t,
24630            d: float16x8_t,
24631            n: i32,
24632            size: i32,
24633        ) -> float16x8x4_t;
24634    }
24635    _vld4q_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
24636}
24637#[doc = "Load multiple 4-element structures to two registers"]
24638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f16)"]
24639#[doc = "## Safety"]
24640#[doc = "  * Neon intrinsic unsafe"]
24641#[inline(always)]
24642#[cfg(not(target_arch = "arm"))]
24643#[cfg_attr(
24644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24645    assert_instr(ld4, LANE = 0)
24646)]
24647#[rustc_legacy_const_generics(2)]
24648#[target_feature(enable = "neon,fp16")]
24649#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24650#[cfg(not(target_arch = "arm64ec"))]
24651pub unsafe fn vld4_lane_f16<const LANE: i32>(a: *const f16, b: float16x4x4_t) -> float16x4x4_t {
24652    static_assert_uimm_bits!(LANE, 2);
24653    unsafe extern "unadjusted" {
24654        #[cfg_attr(
24655            any(target_arch = "aarch64", target_arch = "arm64ec"),
24656            link_name = "llvm.aarch64.neon.ld4lane.v4f16.p0"
24657        )]
24658        fn _vld4_lane_f16(
24659            a: float16x4_t,
24660            b: float16x4_t,
24661            c: float16x4_t,
24662            d: float16x4_t,
24663            n: i64,
24664            ptr: *const f16,
24665        ) -> float16x4x4_t;
24666    }
24667    _vld4_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24668}
24669#[doc = "Load multiple 4-element structures to two registers"]
24670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f16)"]
24671#[doc = "## Safety"]
24672#[doc = "  * Neon intrinsic unsafe"]
24673#[inline(always)]
24674#[cfg(not(target_arch = "arm"))]
24675#[cfg_attr(
24676    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
24677    assert_instr(ld4, LANE = 0)
24678)]
24679#[rustc_legacy_const_generics(2)]
24680#[target_feature(enable = "neon,fp16")]
24681#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
24682#[cfg(not(target_arch = "arm64ec"))]
24683pub unsafe fn vld4q_lane_f16<const LANE: i32>(a: *const f16, b: float16x8x4_t) -> float16x8x4_t {
24684    static_assert_uimm_bits!(LANE, 3);
24685    unsafe extern "unadjusted" {
24686        #[cfg_attr(
24687            any(target_arch = "aarch64", target_arch = "arm64ec"),
24688            link_name = "llvm.aarch64.neon.ld4lane.v8f16.p0"
24689        )]
24690        fn _vld4q_lane_f16(
24691            a: float16x8_t,
24692            b: float16x8_t,
24693            c: float16x8_t,
24694            d: float16x8_t,
24695            n: i64,
24696            ptr: *const f16,
24697        ) -> float16x8x4_t;
24698    }
24699    _vld4q_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24700}
24701#[doc = "Load multiple 4-element structures to four registers"]
24702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)"]
24703#[doc = "## Safety"]
24704#[doc = "  * Neon intrinsic unsafe"]
24705#[inline(always)]
24706#[target_feature(enable = "neon")]
24707#[cfg(not(target_arch = "arm"))]
24708#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24709#[rustc_legacy_const_generics(2)]
24710#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24711pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
24712    static_assert_uimm_bits!(LANE, 1);
24713    unsafe extern "unadjusted" {
24714        #[cfg_attr(
24715            any(target_arch = "aarch64", target_arch = "arm64ec"),
24716            link_name = "llvm.aarch64.neon.ld4lane.v2f32.p0"
24717        )]
24718        fn _vld4_lane_f32(
24719            a: float32x2_t,
24720            b: float32x2_t,
24721            c: float32x2_t,
24722            d: float32x2_t,
24723            n: i64,
24724            ptr: *const i8,
24725        ) -> float32x2x4_t;
24726    }
24727    _vld4_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24728}
24729#[doc = "Load multiple 4-element structures to four registers"]
24730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)"]
24731#[doc = "## Safety"]
24732#[doc = "  * Neon intrinsic unsafe"]
24733#[inline(always)]
24734#[target_feature(enable = "neon")]
24735#[cfg(not(target_arch = "arm"))]
24736#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24737#[rustc_legacy_const_generics(2)]
24738#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24739pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
24740    static_assert_uimm_bits!(LANE, 2);
24741    unsafe extern "unadjusted" {
24742        #[cfg_attr(
24743            any(target_arch = "aarch64", target_arch = "arm64ec"),
24744            link_name = "llvm.aarch64.neon.ld4lane.v4f32.p0"
24745        )]
24746        fn _vld4q_lane_f32(
24747            a: float32x4_t,
24748            b: float32x4_t,
24749            c: float32x4_t,
24750            d: float32x4_t,
24751            n: i64,
24752            ptr: *const i8,
24753        ) -> float32x4x4_t;
24754    }
24755    _vld4q_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24756}
24757#[doc = "Load multiple 4-element structures to four registers"]
24758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)"]
24759#[doc = "## Safety"]
24760#[doc = "  * Neon intrinsic unsafe"]
24761#[inline(always)]
24762#[target_feature(enable = "neon")]
24763#[cfg(not(target_arch = "arm"))]
24764#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24765#[rustc_legacy_const_generics(2)]
24766#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24767pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
24768    static_assert_uimm_bits!(LANE, 3);
24769    unsafe extern "unadjusted" {
24770        #[cfg_attr(
24771            any(target_arch = "aarch64", target_arch = "arm64ec"),
24772            link_name = "llvm.aarch64.neon.ld4lane.v8i8.p0"
24773        )]
24774        fn _vld4_lane_s8(
24775            a: int8x8_t,
24776            b: int8x8_t,
24777            c: int8x8_t,
24778            d: int8x8_t,
24779            n: i64,
24780            ptr: *const i8,
24781        ) -> int8x8x4_t;
24782    }
24783    _vld4_lane_s8(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24784}
24785#[doc = "Load multiple 4-element structures to four registers"]
24786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)"]
24787#[doc = "## Safety"]
24788#[doc = "  * Neon intrinsic unsafe"]
24789#[inline(always)]
24790#[target_feature(enable = "neon")]
24791#[cfg(not(target_arch = "arm"))]
24792#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24793#[rustc_legacy_const_generics(2)]
24794#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24795pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
24796    static_assert_uimm_bits!(LANE, 2);
24797    unsafe extern "unadjusted" {
24798        #[cfg_attr(
24799            any(target_arch = "aarch64", target_arch = "arm64ec"),
24800            link_name = "llvm.aarch64.neon.ld4lane.v4i16.p0"
24801        )]
24802        fn _vld4_lane_s16(
24803            a: int16x4_t,
24804            b: int16x4_t,
24805            c: int16x4_t,
24806            d: int16x4_t,
24807            n: i64,
24808            ptr: *const i8,
24809        ) -> int16x4x4_t;
24810    }
24811    _vld4_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24812}
24813#[doc = "Load multiple 4-element structures to four registers"]
24814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)"]
24815#[doc = "## Safety"]
24816#[doc = "  * Neon intrinsic unsafe"]
24817#[inline(always)]
24818#[target_feature(enable = "neon")]
24819#[cfg(not(target_arch = "arm"))]
24820#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24821#[rustc_legacy_const_generics(2)]
24822#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24823pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
24824    static_assert_uimm_bits!(LANE, 3);
24825    unsafe extern "unadjusted" {
24826        #[cfg_attr(
24827            any(target_arch = "aarch64", target_arch = "arm64ec"),
24828            link_name = "llvm.aarch64.neon.ld4lane.v8i16.p0"
24829        )]
24830        fn _vld4q_lane_s16(
24831            a: int16x8_t,
24832            b: int16x8_t,
24833            c: int16x8_t,
24834            d: int16x8_t,
24835            n: i64,
24836            ptr: *const i8,
24837        ) -> int16x8x4_t;
24838    }
24839    _vld4q_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24840}
24841#[doc = "Load multiple 4-element structures to four registers"]
24842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)"]
24843#[doc = "## Safety"]
24844#[doc = "  * Neon intrinsic unsafe"]
24845#[inline(always)]
24846#[target_feature(enable = "neon")]
24847#[cfg(not(target_arch = "arm"))]
24848#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24849#[rustc_legacy_const_generics(2)]
24850#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24851pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
24852    static_assert_uimm_bits!(LANE, 1);
24853    unsafe extern "unadjusted" {
24854        #[cfg_attr(
24855            any(target_arch = "aarch64", target_arch = "arm64ec"),
24856            link_name = "llvm.aarch64.neon.ld4lane.v2i32.p0"
24857        )]
24858        fn _vld4_lane_s32(
24859            a: int32x2_t,
24860            b: int32x2_t,
24861            c: int32x2_t,
24862            d: int32x2_t,
24863            n: i64,
24864            ptr: *const i8,
24865        ) -> int32x2x4_t;
24866    }
24867    _vld4_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24868}
24869#[doc = "Load multiple 4-element structures to four registers"]
24870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)"]
24871#[doc = "## Safety"]
24872#[doc = "  * Neon intrinsic unsafe"]
24873#[inline(always)]
24874#[target_feature(enable = "neon")]
24875#[cfg(not(target_arch = "arm"))]
24876#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
24877#[rustc_legacy_const_generics(2)]
24878#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24879pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
24880    static_assert_uimm_bits!(LANE, 2);
24881    unsafe extern "unadjusted" {
24882        #[cfg_attr(
24883            any(target_arch = "aarch64", target_arch = "arm64ec"),
24884            link_name = "llvm.aarch64.neon.ld4lane.v4i32.p0"
24885        )]
24886        fn _vld4q_lane_s32(
24887            a: int32x4_t,
24888            b: int32x4_t,
24889            c: int32x4_t,
24890            d: int32x4_t,
24891            n: i64,
24892            ptr: *const i8,
24893        ) -> int32x4x4_t;
24894    }
24895    _vld4q_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
24896}
24897#[doc = "Load multiple 4-element structures to four registers"]
24898#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)"]
24899#[doc = "## Safety"]
24900#[doc = "  * Neon intrinsic unsafe"]
24901#[inline(always)]
24902#[target_feature(enable = "neon,v7")]
24903#[cfg(target_arch = "arm")]
24904#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24905#[rustc_legacy_const_generics(2)]
24906#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24907pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
24908    static_assert_uimm_bits!(LANE, 1);
24909    unsafe extern "unadjusted" {
24910        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2f32.p0")]
24911        fn _vld4_lane_f32(
24912            ptr: *const i8,
24913            a: float32x2_t,
24914            b: float32x2_t,
24915            c: float32x2_t,
24916            d: float32x2_t,
24917            n: i32,
24918            size: i32,
24919        ) -> float32x2x4_t;
24920    }
24921    _vld4_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
24922}
24923#[doc = "Load multiple 4-element structures to four registers"]
24924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)"]
24925#[doc = "## Safety"]
24926#[doc = "  * Neon intrinsic unsafe"]
24927#[inline(always)]
24928#[target_feature(enable = "neon,v7")]
24929#[cfg(target_arch = "arm")]
24930#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24931#[rustc_legacy_const_generics(2)]
24932#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24933pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
24934    static_assert_uimm_bits!(LANE, 2);
24935    unsafe extern "unadjusted" {
24936        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4f32.p0")]
24937        fn _vld4q_lane_f32(
24938            ptr: *const i8,
24939            a: float32x4_t,
24940            b: float32x4_t,
24941            c: float32x4_t,
24942            d: float32x4_t,
24943            n: i32,
24944            size: i32,
24945        ) -> float32x4x4_t;
24946    }
24947    _vld4q_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
24948}
24949#[doc = "Load multiple 4-element structures to four registers"]
24950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)"]
24951#[doc = "## Safety"]
24952#[doc = "  * Neon intrinsic unsafe"]
24953#[inline(always)]
24954#[target_feature(enable = "neon,v7")]
24955#[cfg(target_arch = "arm")]
24956#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24957#[rustc_legacy_const_generics(2)]
24958#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24959pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
24960    static_assert_uimm_bits!(LANE, 3);
24961    unsafe extern "unadjusted" {
24962        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i8.p0")]
24963        fn _vld4_lane_s8(
24964            ptr: *const i8,
24965            a: int8x8_t,
24966            b: int8x8_t,
24967            c: int8x8_t,
24968            d: int8x8_t,
24969            n: i32,
24970            size: i32,
24971        ) -> int8x8x4_t;
24972    }
24973    _vld4_lane_s8(a as _, b.0, b.1, b.2, b.3, LANE, 1)
24974}
24975#[doc = "Load multiple 4-element structures to four registers"]
24976#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)"]
24977#[doc = "## Safety"]
24978#[doc = "  * Neon intrinsic unsafe"]
24979#[inline(always)]
24980#[target_feature(enable = "neon,v7")]
24981#[cfg(target_arch = "arm")]
24982#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
24983#[rustc_legacy_const_generics(2)]
24984#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
24985pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
24986    static_assert_uimm_bits!(LANE, 2);
24987    unsafe extern "unadjusted" {
24988        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i16.p0")]
24989        fn _vld4_lane_s16(
24990            ptr: *const i8,
24991            a: int16x4_t,
24992            b: int16x4_t,
24993            c: int16x4_t,
24994            d: int16x4_t,
24995            n: i32,
24996            size: i32,
24997        ) -> int16x4x4_t;
24998    }
24999    _vld4_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
25000}
25001#[doc = "Load multiple 4-element structures to four registers"]
25002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)"]
25003#[doc = "## Safety"]
25004#[doc = "  * Neon intrinsic unsafe"]
25005#[inline(always)]
25006#[target_feature(enable = "neon,v7")]
25007#[cfg(target_arch = "arm")]
25008#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
25009#[rustc_legacy_const_generics(2)]
25010#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25011pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
25012    static_assert_uimm_bits!(LANE, 3);
25013    unsafe extern "unadjusted" {
25014        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i16.p0")]
25015        fn _vld4q_lane_s16(
25016            ptr: *const i8,
25017            a: int16x8_t,
25018            b: int16x8_t,
25019            c: int16x8_t,
25020            d: int16x8_t,
25021            n: i32,
25022            size: i32,
25023        ) -> int16x8x4_t;
25024    }
25025    _vld4q_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
25026}
25027#[doc = "Load multiple 4-element structures to four registers"]
25028#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)"]
25029#[doc = "## Safety"]
25030#[doc = "  * Neon intrinsic unsafe"]
25031#[inline(always)]
25032#[target_feature(enable = "neon,v7")]
25033#[cfg(target_arch = "arm")]
25034#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
25035#[rustc_legacy_const_generics(2)]
25036#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25037pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
25038    static_assert_uimm_bits!(LANE, 1);
25039    unsafe extern "unadjusted" {
25040        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2i32.p0")]
25041        fn _vld4_lane_s32(
25042            ptr: *const i8,
25043            a: int32x2_t,
25044            b: int32x2_t,
25045            c: int32x2_t,
25046            d: int32x2_t,
25047            n: i32,
25048            size: i32,
25049        ) -> int32x2x4_t;
25050    }
25051    _vld4_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
25052}
25053#[doc = "Load multiple 4-element structures to four registers"]
25054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)"]
25055#[doc = "## Safety"]
25056#[doc = "  * Neon intrinsic unsafe"]
25057#[inline(always)]
25058#[target_feature(enable = "neon,v7")]
25059#[cfg(target_arch = "arm")]
25060#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
25061#[rustc_legacy_const_generics(2)]
25062#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25063pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
25064    static_assert_uimm_bits!(LANE, 2);
25065    unsafe extern "unadjusted" {
25066        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i32.p0")]
25067        fn _vld4q_lane_s32(
25068            ptr: *const i8,
25069            a: int32x4_t,
25070            b: int32x4_t,
25071            c: int32x4_t,
25072            d: int32x4_t,
25073            n: i32,
25074            size: i32,
25075        ) -> int32x4x4_t;
25076    }
25077    _vld4q_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
25078}
25079#[doc = "Load multiple 4-element structures to four registers"]
25080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u8)"]
25081#[doc = "## Safety"]
25082#[doc = "  * Neon intrinsic unsafe"]
25083#[inline(always)]
25084#[target_feature(enable = "neon")]
25085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25086#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25087#[cfg_attr(
25088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25089    assert_instr(ld4, LANE = 0)
25090)]
25091#[rustc_legacy_const_generics(2)]
25092#[cfg_attr(
25093    not(target_arch = "arm"),
25094    stable(feature = "neon_intrinsics", since = "1.59.0")
25095)]
25096#[cfg_attr(
25097    target_arch = "arm",
25098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25099)]
25100pub unsafe fn vld4_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x4_t) -> uint8x8x4_t {
25101    static_assert_uimm_bits!(LANE, 3);
25102    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
25103}
25104#[doc = "Load multiple 4-element structures to four registers"]
25105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u16)"]
25106#[doc = "## Safety"]
25107#[doc = "  * Neon intrinsic unsafe"]
25108#[inline(always)]
25109#[target_feature(enable = "neon")]
25110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25111#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25112#[cfg_attr(
25113    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25114    assert_instr(ld4, LANE = 0)
25115)]
25116#[rustc_legacy_const_generics(2)]
25117#[cfg_attr(
25118    not(target_arch = "arm"),
25119    stable(feature = "neon_intrinsics", since = "1.59.0")
25120)]
25121#[cfg_attr(
25122    target_arch = "arm",
25123    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25124)]
25125pub unsafe fn vld4_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x4_t) -> uint16x4x4_t {
25126    static_assert_uimm_bits!(LANE, 2);
25127    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
25128}
25129#[doc = "Load multiple 4-element structures to four registers"]
25130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u16)"]
25131#[doc = "## Safety"]
25132#[doc = "  * Neon intrinsic unsafe"]
25133#[inline(always)]
25134#[target_feature(enable = "neon")]
25135#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25136#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25137#[cfg_attr(
25138    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25139    assert_instr(ld4, LANE = 0)
25140)]
25141#[rustc_legacy_const_generics(2)]
25142#[cfg_attr(
25143    not(target_arch = "arm"),
25144    stable(feature = "neon_intrinsics", since = "1.59.0")
25145)]
25146#[cfg_attr(
25147    target_arch = "arm",
25148    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25149)]
25150pub unsafe fn vld4q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x4_t) -> uint16x8x4_t {
25151    static_assert_uimm_bits!(LANE, 3);
25152    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
25153}
25154#[doc = "Load multiple 4-element structures to four registers"]
25155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u32)"]
25156#[doc = "## Safety"]
25157#[doc = "  * Neon intrinsic unsafe"]
25158#[inline(always)]
25159#[target_feature(enable = "neon")]
25160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25161#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25162#[cfg_attr(
25163    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25164    assert_instr(ld4, LANE = 0)
25165)]
25166#[rustc_legacy_const_generics(2)]
25167#[cfg_attr(
25168    not(target_arch = "arm"),
25169    stable(feature = "neon_intrinsics", since = "1.59.0")
25170)]
25171#[cfg_attr(
25172    target_arch = "arm",
25173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25174)]
25175pub unsafe fn vld4_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x4_t) -> uint32x2x4_t {
25176    static_assert_uimm_bits!(LANE, 1);
25177    transmute(vld4_lane_s32::<LANE>(transmute(a), transmute(b)))
25178}
25179#[doc = "Load multiple 4-element structures to four registers"]
25180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u32)"]
25181#[doc = "## Safety"]
25182#[doc = "  * Neon intrinsic unsafe"]
25183#[inline(always)]
25184#[target_feature(enable = "neon")]
25185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25186#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25187#[cfg_attr(
25188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25189    assert_instr(ld4, LANE = 0)
25190)]
25191#[rustc_legacy_const_generics(2)]
25192#[cfg_attr(
25193    not(target_arch = "arm"),
25194    stable(feature = "neon_intrinsics", since = "1.59.0")
25195)]
25196#[cfg_attr(
25197    target_arch = "arm",
25198    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25199)]
25200pub unsafe fn vld4q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x4_t) -> uint32x4x4_t {
25201    static_assert_uimm_bits!(LANE, 2);
25202    transmute(vld4q_lane_s32::<LANE>(transmute(a), transmute(b)))
25203}
25204#[doc = "Load multiple 4-element structures to four registers"]
25205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p8)"]
25206#[doc = "## Safety"]
25207#[doc = "  * Neon intrinsic unsafe"]
25208#[inline(always)]
25209#[target_feature(enable = "neon")]
25210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25212#[cfg_attr(
25213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25214    assert_instr(ld4, LANE = 0)
25215)]
25216#[rustc_legacy_const_generics(2)]
25217#[cfg_attr(
25218    not(target_arch = "arm"),
25219    stable(feature = "neon_intrinsics", since = "1.59.0")
25220)]
25221#[cfg_attr(
25222    target_arch = "arm",
25223    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25224)]
25225pub unsafe fn vld4_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x4_t) -> poly8x8x4_t {
25226    static_assert_uimm_bits!(LANE, 3);
25227    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
25228}
25229#[doc = "Load multiple 4-element structures to four registers"]
25230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p16)"]
25231#[doc = "## Safety"]
25232#[doc = "  * Neon intrinsic unsafe"]
25233#[inline(always)]
25234#[target_feature(enable = "neon")]
25235#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25236#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25237#[cfg_attr(
25238    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25239    assert_instr(ld4, LANE = 0)
25240)]
25241#[rustc_legacy_const_generics(2)]
25242#[cfg_attr(
25243    not(target_arch = "arm"),
25244    stable(feature = "neon_intrinsics", since = "1.59.0")
25245)]
25246#[cfg_attr(
25247    target_arch = "arm",
25248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25249)]
25250pub unsafe fn vld4_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x4_t) -> poly16x4x4_t {
25251    static_assert_uimm_bits!(LANE, 2);
25252    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
25253}
25254#[doc = "Load multiple 4-element structures to four registers"]
25255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_p16)"]
25256#[doc = "## Safety"]
25257#[doc = "  * Neon intrinsic unsafe"]
25258#[inline(always)]
25259#[target_feature(enable = "neon")]
25260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25261#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
25262#[cfg_attr(
25263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25264    assert_instr(ld4, LANE = 0)
25265)]
25266#[rustc_legacy_const_generics(2)]
25267#[cfg_attr(
25268    not(target_arch = "arm"),
25269    stable(feature = "neon_intrinsics", since = "1.59.0")
25270)]
25271#[cfg_attr(
25272    target_arch = "arm",
25273    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25274)]
25275pub unsafe fn vld4q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x4_t) -> poly16x8x4_t {
25276    static_assert_uimm_bits!(LANE, 3);
25277    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
25278}
25279#[doc = "Load multiple 4-element structures to four registers"]
25280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p64)"]
25281#[doc = "## Safety"]
25282#[doc = "  * Neon intrinsic unsafe"]
25283#[inline(always)]
25284#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25285#[target_feature(enable = "neon,aes")]
25286#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25287#[cfg_attr(
25288    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25289    assert_instr(nop)
25290)]
25291#[cfg_attr(
25292    not(target_arch = "arm"),
25293    stable(feature = "neon_intrinsics", since = "1.59.0")
25294)]
25295#[cfg_attr(
25296    target_arch = "arm",
25297    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25298)]
25299pub unsafe fn vld4_p64(a: *const p64) -> poly64x1x4_t {
25300    transmute(vld4_s64(transmute(a)))
25301}
25302#[doc = "Load multiple 4-element structures to four registers"]
25303#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)"]
25304#[doc = "## Safety"]
25305#[doc = "  * Neon intrinsic unsafe"]
25306#[inline(always)]
25307#[target_feature(enable = "neon")]
25308#[cfg(not(target_arch = "arm"))]
25309#[stable(feature = "neon_intrinsics", since = "1.59.0")]
25310#[cfg_attr(test, assert_instr(nop))]
25311pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
25312    crate::ptr::read_unaligned(a.cast())
25313}
25314#[doc = "Load multiple 4-element structures to four registers"]
25315#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)"]
25316#[doc = "## Safety"]
25317#[doc = "  * Neon intrinsic unsafe"]
25318#[inline(always)]
25319#[target_feature(enable = "neon,v7")]
25320#[cfg(target_arch = "arm")]
25321#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
25322#[cfg_attr(test, assert_instr(nop))]
25323pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
25324    unsafe extern "unadjusted" {
25325        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v1i64.p0")]
25326        fn _vld4_s64(ptr: *const i8, size: i32) -> int64x1x4_t;
25327    }
25328    _vld4_s64(a as *const i8, 8)
25329}
25330#[doc = "Load multiple 4-element structures to four registers"]
25331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u64)"]
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(nop))]
25338#[cfg_attr(
25339    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25340    assert_instr(nop)
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 vld4_u64(a: *const u64) -> uint64x1x4_t {
25351    transmute(vld4_s64(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_u8)"]
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_u8(a: *const u8) -> uint8x8x4_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_u8)"]
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_u8(a: *const u8) -> uint8x16x4_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_u16)"]
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_u16(a: *const u16) -> uint16x4x4_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_u16)"]
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_u16(a: *const u16) -> uint16x8x4_t {
25443    transmute(vld4q_s16(transmute(a)))
25444}
25445#[doc = "Load multiple 4-element structures to four registers"]
25446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u32)"]
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(vld4))]
25453#[cfg_attr(
25454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25455    assert_instr(ld4)
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 vld4_u32(a: *const u32) -> uint32x2x4_t {
25466    transmute(vld4_s32(transmute(a)))
25467}
25468#[doc = "Load multiple 4-element structures to four registers"]
25469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u32)"]
25470#[doc = "## Safety"]
25471#[doc = "  * Neon intrinsic unsafe"]
25472#[inline(always)]
25473#[target_feature(enable = "neon")]
25474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25475#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25476#[cfg_attr(
25477    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25478    assert_instr(ld4)
25479)]
25480#[cfg_attr(
25481    not(target_arch = "arm"),
25482    stable(feature = "neon_intrinsics", since = "1.59.0")
25483)]
25484#[cfg_attr(
25485    target_arch = "arm",
25486    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25487)]
25488pub unsafe fn vld4q_u32(a: *const u32) -> uint32x4x4_t {
25489    transmute(vld4q_s32(transmute(a)))
25490}
25491#[doc = "Load multiple 4-element structures to four registers"]
25492#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p8)"]
25493#[doc = "## Safety"]
25494#[doc = "  * Neon intrinsic unsafe"]
25495#[inline(always)]
25496#[target_feature(enable = "neon")]
25497#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25498#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25499#[cfg_attr(
25500    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25501    assert_instr(ld4)
25502)]
25503#[cfg_attr(
25504    not(target_arch = "arm"),
25505    stable(feature = "neon_intrinsics", since = "1.59.0")
25506)]
25507#[cfg_attr(
25508    target_arch = "arm",
25509    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25510)]
25511pub unsafe fn vld4_p8(a: *const p8) -> poly8x8x4_t {
25512    transmute(vld4_s8(transmute(a)))
25513}
25514#[doc = "Load multiple 4-element structures to four registers"]
25515#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p8)"]
25516#[doc = "## Safety"]
25517#[doc = "  * Neon intrinsic unsafe"]
25518#[inline(always)]
25519#[target_feature(enable = "neon")]
25520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25522#[cfg_attr(
25523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25524    assert_instr(ld4)
25525)]
25526#[cfg_attr(
25527    not(target_arch = "arm"),
25528    stable(feature = "neon_intrinsics", since = "1.59.0")
25529)]
25530#[cfg_attr(
25531    target_arch = "arm",
25532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25533)]
25534pub unsafe fn vld4q_p8(a: *const p8) -> poly8x16x4_t {
25535    transmute(vld4q_s8(transmute(a)))
25536}
25537#[doc = "Load multiple 4-element structures to four registers"]
25538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p16)"]
25539#[doc = "## Safety"]
25540#[doc = "  * Neon intrinsic unsafe"]
25541#[inline(always)]
25542#[target_feature(enable = "neon")]
25543#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25544#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25545#[cfg_attr(
25546    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25547    assert_instr(ld4)
25548)]
25549#[cfg_attr(
25550    not(target_arch = "arm"),
25551    stable(feature = "neon_intrinsics", since = "1.59.0")
25552)]
25553#[cfg_attr(
25554    target_arch = "arm",
25555    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25556)]
25557pub unsafe fn vld4_p16(a: *const p16) -> poly16x4x4_t {
25558    transmute(vld4_s16(transmute(a)))
25559}
25560#[doc = "Load multiple 4-element structures to four registers"]
25561#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p16)"]
25562#[doc = "## Safety"]
25563#[doc = "  * Neon intrinsic unsafe"]
25564#[inline(always)]
25565#[target_feature(enable = "neon")]
25566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
25568#[cfg_attr(
25569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25570    assert_instr(ld4)
25571)]
25572#[cfg_attr(
25573    not(target_arch = "arm"),
25574    stable(feature = "neon_intrinsics", since = "1.59.0")
25575)]
25576#[cfg_attr(
25577    target_arch = "arm",
25578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25579)]
25580pub unsafe fn vld4q_p16(a: *const p16) -> poly16x8x4_t {
25581    transmute(vld4q_s16(transmute(a)))
25582}
25583#[doc = "Store SIMD&FP register (immediate offset)"]
25584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vldrq_p128)"]
25585#[doc = "## Safety"]
25586#[doc = "  * Neon intrinsic unsafe"]
25587#[inline(always)]
25588#[target_feature(enable = "neon")]
25589#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25590#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25591#[cfg_attr(
25592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25593    assert_instr(nop)
25594)]
25595#[cfg_attr(
25596    not(target_arch = "arm"),
25597    stable(feature = "neon_intrinsics", since = "1.59.0")
25598)]
25599#[cfg_attr(
25600    target_arch = "arm",
25601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25602)]
25603pub unsafe fn vldrq_p128(a: *const p128) -> p128 {
25604    *a
25605}
25606#[doc = "Maximum (vector)"]
25607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_f16)"]
25608#[inline(always)]
25609#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25611#[cfg_attr(
25612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25613    assert_instr(fmax)
25614)]
25615#[target_feature(enable = "neon,fp16")]
25616#[cfg_attr(
25617    not(target_arch = "arm"),
25618    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
25619)]
25620#[cfg_attr(
25621    target_arch = "arm",
25622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25623)]
25624#[cfg(not(target_arch = "arm64ec"))]
25625pub fn vmax_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
25626    unsafe extern "unadjusted" {
25627        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4f16")]
25628        #[cfg_attr(
25629            any(target_arch = "aarch64", target_arch = "arm64ec"),
25630            link_name = "llvm.aarch64.neon.fmax.v4f16"
25631        )]
25632        fn _vmax_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
25633    }
25634    unsafe { _vmax_f16(a, b) }
25635}
25636#[doc = "Maximum (vector)"]
25637#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_f16)"]
25638#[inline(always)]
25639#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25640#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25641#[cfg_attr(
25642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25643    assert_instr(fmax)
25644)]
25645#[target_feature(enable = "neon,fp16")]
25646#[cfg_attr(
25647    not(target_arch = "arm"),
25648    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
25649)]
25650#[cfg_attr(
25651    target_arch = "arm",
25652    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25653)]
25654#[cfg(not(target_arch = "arm64ec"))]
25655pub fn vmaxq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
25656    unsafe extern "unadjusted" {
25657        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v8f16")]
25658        #[cfg_attr(
25659            any(target_arch = "aarch64", target_arch = "arm64ec"),
25660            link_name = "llvm.aarch64.neon.fmax.v8f16"
25661        )]
25662        fn _vmaxq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
25663    }
25664    unsafe { _vmaxq_f16(a, b) }
25665}
25666#[doc = "Maximum (vector)"]
25667#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_f32)"]
25668#[inline(always)]
25669#[target_feature(enable = "neon")]
25670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25672#[cfg_attr(
25673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25674    assert_instr(fmax)
25675)]
25676#[cfg_attr(
25677    not(target_arch = "arm"),
25678    stable(feature = "neon_intrinsics", since = "1.59.0")
25679)]
25680#[cfg_attr(
25681    target_arch = "arm",
25682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25683)]
25684pub fn vmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
25685    unsafe extern "unadjusted" {
25686        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v2f32")]
25687        #[cfg_attr(
25688            any(target_arch = "aarch64", target_arch = "arm64ec"),
25689            link_name = "llvm.aarch64.neon.fmax.v2f32"
25690        )]
25691        fn _vmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
25692    }
25693    unsafe { _vmax_f32(a, b) }
25694}
25695#[doc = "Maximum (vector)"]
25696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_f32)"]
25697#[inline(always)]
25698#[target_feature(enable = "neon")]
25699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25700#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25701#[cfg_attr(
25702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25703    assert_instr(fmax)
25704)]
25705#[cfg_attr(
25706    not(target_arch = "arm"),
25707    stable(feature = "neon_intrinsics", since = "1.59.0")
25708)]
25709#[cfg_attr(
25710    target_arch = "arm",
25711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25712)]
25713pub fn vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
25714    unsafe extern "unadjusted" {
25715        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4f32")]
25716        #[cfg_attr(
25717            any(target_arch = "aarch64", target_arch = "arm64ec"),
25718            link_name = "llvm.aarch64.neon.fmax.v4f32"
25719        )]
25720        fn _vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
25721    }
25722    unsafe { _vmaxq_f32(a, b) }
25723}
25724#[doc = "Maximum (vector)"]
25725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s8)"]
25726#[inline(always)]
25727#[target_feature(enable = "neon")]
25728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25730#[cfg_attr(
25731    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25732    assert_instr(smax)
25733)]
25734#[cfg_attr(
25735    not(target_arch = "arm"),
25736    stable(feature = "neon_intrinsics", since = "1.59.0")
25737)]
25738#[cfg_attr(
25739    target_arch = "arm",
25740    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25741)]
25742pub fn vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
25743    unsafe {
25744        let mask: int8x8_t = simd_ge(a, b);
25745        simd_select(mask, a, b)
25746    }
25747}
25748#[doc = "Maximum (vector)"]
25749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s8)"]
25750#[inline(always)]
25751#[target_feature(enable = "neon")]
25752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25753#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25754#[cfg_attr(
25755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25756    assert_instr(smax)
25757)]
25758#[cfg_attr(
25759    not(target_arch = "arm"),
25760    stable(feature = "neon_intrinsics", since = "1.59.0")
25761)]
25762#[cfg_attr(
25763    target_arch = "arm",
25764    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25765)]
25766pub fn vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
25767    unsafe {
25768        let mask: int8x16_t = simd_ge(a, b);
25769        simd_select(mask, a, b)
25770    }
25771}
25772#[doc = "Maximum (vector)"]
25773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s16)"]
25774#[inline(always)]
25775#[target_feature(enable = "neon")]
25776#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25777#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25778#[cfg_attr(
25779    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25780    assert_instr(smax)
25781)]
25782#[cfg_attr(
25783    not(target_arch = "arm"),
25784    stable(feature = "neon_intrinsics", since = "1.59.0")
25785)]
25786#[cfg_attr(
25787    target_arch = "arm",
25788    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25789)]
25790pub fn vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
25791    unsafe {
25792        let mask: int16x4_t = simd_ge(a, b);
25793        simd_select(mask, a, b)
25794    }
25795}
25796#[doc = "Maximum (vector)"]
25797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s16)"]
25798#[inline(always)]
25799#[target_feature(enable = "neon")]
25800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25802#[cfg_attr(
25803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25804    assert_instr(smax)
25805)]
25806#[cfg_attr(
25807    not(target_arch = "arm"),
25808    stable(feature = "neon_intrinsics", since = "1.59.0")
25809)]
25810#[cfg_attr(
25811    target_arch = "arm",
25812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25813)]
25814pub fn vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
25815    unsafe {
25816        let mask: int16x8_t = simd_ge(a, b);
25817        simd_select(mask, a, b)
25818    }
25819}
25820#[doc = "Maximum (vector)"]
25821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s32)"]
25822#[inline(always)]
25823#[target_feature(enable = "neon")]
25824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25826#[cfg_attr(
25827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25828    assert_instr(smax)
25829)]
25830#[cfg_attr(
25831    not(target_arch = "arm"),
25832    stable(feature = "neon_intrinsics", since = "1.59.0")
25833)]
25834#[cfg_attr(
25835    target_arch = "arm",
25836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25837)]
25838pub fn vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
25839    unsafe {
25840        let mask: int32x2_t = simd_ge(a, b);
25841        simd_select(mask, a, b)
25842    }
25843}
25844#[doc = "Maximum (vector)"]
25845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s32)"]
25846#[inline(always)]
25847#[target_feature(enable = "neon")]
25848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25850#[cfg_attr(
25851    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25852    assert_instr(smax)
25853)]
25854#[cfg_attr(
25855    not(target_arch = "arm"),
25856    stable(feature = "neon_intrinsics", since = "1.59.0")
25857)]
25858#[cfg_attr(
25859    target_arch = "arm",
25860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25861)]
25862pub fn vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
25863    unsafe {
25864        let mask: int32x4_t = simd_ge(a, b);
25865        simd_select(mask, a, b)
25866    }
25867}
25868#[doc = "Maximum (vector)"]
25869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u8)"]
25870#[inline(always)]
25871#[target_feature(enable = "neon")]
25872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25874#[cfg_attr(
25875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25876    assert_instr(umax)
25877)]
25878#[cfg_attr(
25879    not(target_arch = "arm"),
25880    stable(feature = "neon_intrinsics", since = "1.59.0")
25881)]
25882#[cfg_attr(
25883    target_arch = "arm",
25884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25885)]
25886pub fn vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
25887    unsafe {
25888        let mask: uint8x8_t = simd_ge(a, b);
25889        simd_select(mask, a, b)
25890    }
25891}
25892#[doc = "Maximum (vector)"]
25893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u8)"]
25894#[inline(always)]
25895#[target_feature(enable = "neon")]
25896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25898#[cfg_attr(
25899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25900    assert_instr(umax)
25901)]
25902#[cfg_attr(
25903    not(target_arch = "arm"),
25904    stable(feature = "neon_intrinsics", since = "1.59.0")
25905)]
25906#[cfg_attr(
25907    target_arch = "arm",
25908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25909)]
25910pub fn vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
25911    unsafe {
25912        let mask: uint8x16_t = simd_ge(a, b);
25913        simd_select(mask, a, b)
25914    }
25915}
25916#[doc = "Maximum (vector)"]
25917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u16)"]
25918#[inline(always)]
25919#[target_feature(enable = "neon")]
25920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25921#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25922#[cfg_attr(
25923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25924    assert_instr(umax)
25925)]
25926#[cfg_attr(
25927    not(target_arch = "arm"),
25928    stable(feature = "neon_intrinsics", since = "1.59.0")
25929)]
25930#[cfg_attr(
25931    target_arch = "arm",
25932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25933)]
25934pub fn vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
25935    unsafe {
25936        let mask: uint16x4_t = simd_ge(a, b);
25937        simd_select(mask, a, b)
25938    }
25939}
25940#[doc = "Maximum (vector)"]
25941#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u16)"]
25942#[inline(always)]
25943#[target_feature(enable = "neon")]
25944#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25945#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25946#[cfg_attr(
25947    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25948    assert_instr(umax)
25949)]
25950#[cfg_attr(
25951    not(target_arch = "arm"),
25952    stable(feature = "neon_intrinsics", since = "1.59.0")
25953)]
25954#[cfg_attr(
25955    target_arch = "arm",
25956    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25957)]
25958pub fn vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
25959    unsafe {
25960        let mask: uint16x8_t = simd_ge(a, b);
25961        simd_select(mask, a, b)
25962    }
25963}
25964#[doc = "Maximum (vector)"]
25965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u32)"]
25966#[inline(always)]
25967#[target_feature(enable = "neon")]
25968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25970#[cfg_attr(
25971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25972    assert_instr(umax)
25973)]
25974#[cfg_attr(
25975    not(target_arch = "arm"),
25976    stable(feature = "neon_intrinsics", since = "1.59.0")
25977)]
25978#[cfg_attr(
25979    target_arch = "arm",
25980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
25981)]
25982pub fn vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
25983    unsafe {
25984        let mask: uint32x2_t = simd_ge(a, b);
25985        simd_select(mask, a, b)
25986    }
25987}
25988#[doc = "Maximum (vector)"]
25989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u32)"]
25990#[inline(always)]
25991#[target_feature(enable = "neon")]
25992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25993#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
25994#[cfg_attr(
25995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
25996    assert_instr(umax)
25997)]
25998#[cfg_attr(
25999    not(target_arch = "arm"),
26000    stable(feature = "neon_intrinsics", since = "1.59.0")
26001)]
26002#[cfg_attr(
26003    target_arch = "arm",
26004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26005)]
26006pub fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
26007    unsafe {
26008        let mask: uint32x4_t = simd_ge(a, b);
26009        simd_select(mask, a, b)
26010    }
26011}
26012#[doc = "Floating-point Maximum Number (vector)"]
26013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f16)"]
26014#[inline(always)]
26015#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26016#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
26017#[cfg_attr(
26018    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26019    assert_instr(fmaxnm)
26020)]
26021#[target_feature(enable = "neon,fp16")]
26022#[cfg_attr(
26023    not(target_arch = "arm"),
26024    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26025)]
26026#[cfg_attr(
26027    target_arch = "arm",
26028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26029)]
26030#[cfg(not(target_arch = "arm64ec"))]
26031pub fn vmaxnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
26032    unsafe { simd_fmax(a, b) }
26033}
26034#[doc = "Floating-point Maximum Number (vector)"]
26035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f16)"]
26036#[inline(always)]
26037#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26038#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
26039#[cfg_attr(
26040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26041    assert_instr(fmaxnm)
26042)]
26043#[target_feature(enable = "neon,fp16")]
26044#[cfg_attr(
26045    not(target_arch = "arm"),
26046    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26047)]
26048#[cfg_attr(
26049    target_arch = "arm",
26050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26051)]
26052#[cfg(not(target_arch = "arm64ec"))]
26053pub fn vmaxnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
26054    unsafe { simd_fmax(a, b) }
26055}
26056#[doc = "Floating-point Maximum Number (vector)"]
26057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f32)"]
26058#[inline(always)]
26059#[target_feature(enable = "neon")]
26060#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26061#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
26062#[cfg_attr(
26063    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26064    assert_instr(fmaxnm)
26065)]
26066#[cfg_attr(
26067    not(target_arch = "arm"),
26068    stable(feature = "neon_intrinsics", since = "1.59.0")
26069)]
26070#[cfg_attr(
26071    target_arch = "arm",
26072    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26073)]
26074pub fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
26075    unsafe { simd_fmax(a, b) }
26076}
26077#[doc = "Floating-point Maximum Number (vector)"]
26078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f32)"]
26079#[inline(always)]
26080#[target_feature(enable = "neon")]
26081#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26082#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
26083#[cfg_attr(
26084    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26085    assert_instr(fmaxnm)
26086)]
26087#[cfg_attr(
26088    not(target_arch = "arm"),
26089    stable(feature = "neon_intrinsics", since = "1.59.0")
26090)]
26091#[cfg_attr(
26092    target_arch = "arm",
26093    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26094)]
26095pub fn vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
26096    unsafe { simd_fmax(a, b) }
26097}
26098#[doc = "Minimum (vector)"]
26099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f16)"]
26100#[inline(always)]
26101#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26103#[cfg_attr(
26104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26105    assert_instr(fmin)
26106)]
26107#[target_feature(enable = "neon,fp16")]
26108#[cfg_attr(
26109    not(target_arch = "arm"),
26110    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26111)]
26112#[cfg_attr(
26113    target_arch = "arm",
26114    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26115)]
26116#[cfg(not(target_arch = "arm64ec"))]
26117pub fn vmin_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
26118    unsafe extern "unadjusted" {
26119        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4f16")]
26120        #[cfg_attr(
26121            any(target_arch = "aarch64", target_arch = "arm64ec"),
26122            link_name = "llvm.aarch64.neon.fmin.v4f16"
26123        )]
26124        fn _vmin_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
26125    }
26126    unsafe { _vmin_f16(a, b) }
26127}
26128#[doc = "Minimum (vector)"]
26129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_f16)"]
26130#[inline(always)]
26131#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26132#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26133#[cfg_attr(
26134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26135    assert_instr(fmin)
26136)]
26137#[target_feature(enable = "neon,fp16")]
26138#[cfg_attr(
26139    not(target_arch = "arm"),
26140    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26141)]
26142#[cfg_attr(
26143    target_arch = "arm",
26144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26145)]
26146#[cfg(not(target_arch = "arm64ec"))]
26147pub fn vminq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
26148    unsafe extern "unadjusted" {
26149        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v8f16")]
26150        #[cfg_attr(
26151            any(target_arch = "aarch64", target_arch = "arm64ec"),
26152            link_name = "llvm.aarch64.neon.fmin.v8f16"
26153        )]
26154        fn _vminq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
26155    }
26156    unsafe { _vminq_f16(a, b) }
26157}
26158#[doc = "Minimum (vector)"]
26159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f32)"]
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(fmin)
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_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
26177    unsafe extern "unadjusted" {
26178        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v2f32")]
26179        #[cfg_attr(
26180            any(target_arch = "aarch64", target_arch = "arm64ec"),
26181            link_name = "llvm.aarch64.neon.fmin.v2f32"
26182        )]
26183        fn _vmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
26184    }
26185    unsafe { _vmin_f32(a, b) }
26186}
26187#[doc = "Minimum (vector)"]
26188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_f32)"]
26189#[inline(always)]
26190#[target_feature(enable = "neon")]
26191#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26192#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26193#[cfg_attr(
26194    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26195    assert_instr(fmin)
26196)]
26197#[cfg_attr(
26198    not(target_arch = "arm"),
26199    stable(feature = "neon_intrinsics", since = "1.59.0")
26200)]
26201#[cfg_attr(
26202    target_arch = "arm",
26203    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26204)]
26205pub fn vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
26206    unsafe extern "unadjusted" {
26207        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4f32")]
26208        #[cfg_attr(
26209            any(target_arch = "aarch64", target_arch = "arm64ec"),
26210            link_name = "llvm.aarch64.neon.fmin.v4f32"
26211        )]
26212        fn _vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
26213    }
26214    unsafe { _vminq_f32(a, b) }
26215}
26216#[doc = "Minimum (vector)"]
26217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s8)"]
26218#[inline(always)]
26219#[target_feature(enable = "neon")]
26220#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26221#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26222#[cfg_attr(
26223    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26224    assert_instr(smin)
26225)]
26226#[cfg_attr(
26227    not(target_arch = "arm"),
26228    stable(feature = "neon_intrinsics", since = "1.59.0")
26229)]
26230#[cfg_attr(
26231    target_arch = "arm",
26232    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26233)]
26234pub fn vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
26235    unsafe {
26236        let mask: int8x8_t = simd_le(a, b);
26237        simd_select(mask, a, b)
26238    }
26239}
26240#[doc = "Minimum (vector)"]
26241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s8)"]
26242#[inline(always)]
26243#[target_feature(enable = "neon")]
26244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26245#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26246#[cfg_attr(
26247    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26248    assert_instr(smin)
26249)]
26250#[cfg_attr(
26251    not(target_arch = "arm"),
26252    stable(feature = "neon_intrinsics", since = "1.59.0")
26253)]
26254#[cfg_attr(
26255    target_arch = "arm",
26256    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26257)]
26258pub fn vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
26259    unsafe {
26260        let mask: int8x16_t = simd_le(a, b);
26261        simd_select(mask, a, b)
26262    }
26263}
26264#[doc = "Minimum (vector)"]
26265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s16)"]
26266#[inline(always)]
26267#[target_feature(enable = "neon")]
26268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26269#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26270#[cfg_attr(
26271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26272    assert_instr(smin)
26273)]
26274#[cfg_attr(
26275    not(target_arch = "arm"),
26276    stable(feature = "neon_intrinsics", since = "1.59.0")
26277)]
26278#[cfg_attr(
26279    target_arch = "arm",
26280    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26281)]
26282pub fn vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
26283    unsafe {
26284        let mask: int16x4_t = simd_le(a, b);
26285        simd_select(mask, a, b)
26286    }
26287}
26288#[doc = "Minimum (vector)"]
26289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s16)"]
26290#[inline(always)]
26291#[target_feature(enable = "neon")]
26292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26294#[cfg_attr(
26295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26296    assert_instr(smin)
26297)]
26298#[cfg_attr(
26299    not(target_arch = "arm"),
26300    stable(feature = "neon_intrinsics", since = "1.59.0")
26301)]
26302#[cfg_attr(
26303    target_arch = "arm",
26304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26305)]
26306pub fn vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
26307    unsafe {
26308        let mask: int16x8_t = simd_le(a, b);
26309        simd_select(mask, a, b)
26310    }
26311}
26312#[doc = "Minimum (vector)"]
26313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s32)"]
26314#[inline(always)]
26315#[target_feature(enable = "neon")]
26316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26318#[cfg_attr(
26319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26320    assert_instr(smin)
26321)]
26322#[cfg_attr(
26323    not(target_arch = "arm"),
26324    stable(feature = "neon_intrinsics", since = "1.59.0")
26325)]
26326#[cfg_attr(
26327    target_arch = "arm",
26328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26329)]
26330pub fn vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
26331    unsafe {
26332        let mask: int32x2_t = simd_le(a, b);
26333        simd_select(mask, a, b)
26334    }
26335}
26336#[doc = "Minimum (vector)"]
26337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s32)"]
26338#[inline(always)]
26339#[target_feature(enable = "neon")]
26340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26342#[cfg_attr(
26343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26344    assert_instr(smin)
26345)]
26346#[cfg_attr(
26347    not(target_arch = "arm"),
26348    stable(feature = "neon_intrinsics", since = "1.59.0")
26349)]
26350#[cfg_attr(
26351    target_arch = "arm",
26352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26353)]
26354pub fn vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
26355    unsafe {
26356        let mask: int32x4_t = simd_le(a, b);
26357        simd_select(mask, a, b)
26358    }
26359}
26360#[doc = "Minimum (vector)"]
26361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u8)"]
26362#[inline(always)]
26363#[target_feature(enable = "neon")]
26364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26366#[cfg_attr(
26367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26368    assert_instr(umin)
26369)]
26370#[cfg_attr(
26371    not(target_arch = "arm"),
26372    stable(feature = "neon_intrinsics", since = "1.59.0")
26373)]
26374#[cfg_attr(
26375    target_arch = "arm",
26376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26377)]
26378pub fn vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
26379    unsafe {
26380        let mask: uint8x8_t = simd_le(a, b);
26381        simd_select(mask, a, b)
26382    }
26383}
26384#[doc = "Minimum (vector)"]
26385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u8)"]
26386#[inline(always)]
26387#[target_feature(enable = "neon")]
26388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26390#[cfg_attr(
26391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26392    assert_instr(umin)
26393)]
26394#[cfg_attr(
26395    not(target_arch = "arm"),
26396    stable(feature = "neon_intrinsics", since = "1.59.0")
26397)]
26398#[cfg_attr(
26399    target_arch = "arm",
26400    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26401)]
26402pub fn vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
26403    unsafe {
26404        let mask: uint8x16_t = simd_le(a, b);
26405        simd_select(mask, a, b)
26406    }
26407}
26408#[doc = "Minimum (vector)"]
26409#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u16)"]
26410#[inline(always)]
26411#[target_feature(enable = "neon")]
26412#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26413#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26414#[cfg_attr(
26415    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26416    assert_instr(umin)
26417)]
26418#[cfg_attr(
26419    not(target_arch = "arm"),
26420    stable(feature = "neon_intrinsics", since = "1.59.0")
26421)]
26422#[cfg_attr(
26423    target_arch = "arm",
26424    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26425)]
26426pub fn vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
26427    unsafe {
26428        let mask: uint16x4_t = simd_le(a, b);
26429        simd_select(mask, a, b)
26430    }
26431}
26432#[doc = "Minimum (vector)"]
26433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u16)"]
26434#[inline(always)]
26435#[target_feature(enable = "neon")]
26436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26438#[cfg_attr(
26439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26440    assert_instr(umin)
26441)]
26442#[cfg_attr(
26443    not(target_arch = "arm"),
26444    stable(feature = "neon_intrinsics", since = "1.59.0")
26445)]
26446#[cfg_attr(
26447    target_arch = "arm",
26448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26449)]
26450pub fn vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
26451    unsafe {
26452        let mask: uint16x8_t = simd_le(a, b);
26453        simd_select(mask, a, b)
26454    }
26455}
26456#[doc = "Minimum (vector)"]
26457#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u32)"]
26458#[inline(always)]
26459#[target_feature(enable = "neon")]
26460#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26461#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26462#[cfg_attr(
26463    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26464    assert_instr(umin)
26465)]
26466#[cfg_attr(
26467    not(target_arch = "arm"),
26468    stable(feature = "neon_intrinsics", since = "1.59.0")
26469)]
26470#[cfg_attr(
26471    target_arch = "arm",
26472    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26473)]
26474pub fn vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
26475    unsafe {
26476        let mask: uint32x2_t = simd_le(a, b);
26477        simd_select(mask, a, b)
26478    }
26479}
26480#[doc = "Minimum (vector)"]
26481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u32)"]
26482#[inline(always)]
26483#[target_feature(enable = "neon")]
26484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
26486#[cfg_attr(
26487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26488    assert_instr(umin)
26489)]
26490#[cfg_attr(
26491    not(target_arch = "arm"),
26492    stable(feature = "neon_intrinsics", since = "1.59.0")
26493)]
26494#[cfg_attr(
26495    target_arch = "arm",
26496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26497)]
26498pub fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
26499    unsafe {
26500        let mask: uint32x4_t = simd_le(a, b);
26501        simd_select(mask, a, b)
26502    }
26503}
26504#[doc = "Floating-point Minimum Number (vector)"]
26505#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f16)"]
26506#[inline(always)]
26507#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26508#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
26509#[cfg_attr(
26510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26511    assert_instr(fminnm)
26512)]
26513#[target_feature(enable = "neon,fp16")]
26514#[cfg_attr(
26515    not(target_arch = "arm"),
26516    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26517)]
26518#[cfg_attr(
26519    target_arch = "arm",
26520    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26521)]
26522#[cfg(not(target_arch = "arm64ec"))]
26523pub fn vminnm_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
26524    unsafe { simd_fmin(a, b) }
26525}
26526#[doc = "Floating-point Minimum Number (vector)"]
26527#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f16)"]
26528#[inline(always)]
26529#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26530#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
26531#[cfg_attr(
26532    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26533    assert_instr(fminnm)
26534)]
26535#[target_feature(enable = "neon,fp16")]
26536#[cfg_attr(
26537    not(target_arch = "arm"),
26538    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
26539)]
26540#[cfg_attr(
26541    target_arch = "arm",
26542    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26543)]
26544#[cfg(not(target_arch = "arm64ec"))]
26545pub fn vminnmq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
26546    unsafe { simd_fmin(a, b) }
26547}
26548#[doc = "Floating-point Minimum Number (vector)"]
26549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f32)"]
26550#[inline(always)]
26551#[target_feature(enable = "neon")]
26552#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
26554#[cfg_attr(
26555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26556    assert_instr(fminnm)
26557)]
26558#[cfg_attr(
26559    not(target_arch = "arm"),
26560    stable(feature = "neon_intrinsics", since = "1.59.0")
26561)]
26562#[cfg_attr(
26563    target_arch = "arm",
26564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26565)]
26566pub fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
26567    unsafe { simd_fmin(a, b) }
26568}
26569#[doc = "Floating-point Minimum Number (vector)"]
26570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f32)"]
26571#[inline(always)]
26572#[target_feature(enable = "neon")]
26573#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
26574#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
26575#[cfg_attr(
26576    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26577    assert_instr(fminnm)
26578)]
26579#[cfg_attr(
26580    not(target_arch = "arm"),
26581    stable(feature = "neon_intrinsics", since = "1.59.0")
26582)]
26583#[cfg_attr(
26584    target_arch = "arm",
26585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26586)]
26587pub fn vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
26588    unsafe { simd_fmin(a, b) }
26589}
26590#[doc = "Floating-point multiply-add to accumulator"]
26591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f32)"]
26592#[inline(always)]
26593#[target_feature(enable = "neon")]
26594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26595#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
26596#[cfg_attr(
26597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26598    assert_instr(fmul)
26599)]
26600#[cfg_attr(
26601    not(target_arch = "arm"),
26602    stable(feature = "neon_intrinsics", since = "1.59.0")
26603)]
26604#[cfg_attr(
26605    target_arch = "arm",
26606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26607)]
26608pub fn vmla_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
26609    unsafe { simd_add(a, simd_mul(b, c)) }
26610}
26611#[doc = "Floating-point multiply-add to accumulator"]
26612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_f32)"]
26613#[inline(always)]
26614#[target_feature(enable = "neon")]
26615#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26616#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
26617#[cfg_attr(
26618    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26619    assert_instr(fmul)
26620)]
26621#[cfg_attr(
26622    not(target_arch = "arm"),
26623    stable(feature = "neon_intrinsics", since = "1.59.0")
26624)]
26625#[cfg_attr(
26626    target_arch = "arm",
26627    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26628)]
26629pub fn vmlaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
26630    unsafe { simd_add(a, simd_mul(b, c)) }
26631}
26632#[doc = "Vector multiply accumulate with scalar"]
26633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_f32)"]
26634#[inline(always)]
26635#[target_feature(enable = "neon")]
26636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26637#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
26638#[cfg_attr(
26639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26640    assert_instr(fmul, LANE = 1)
26641)]
26642#[rustc_legacy_const_generics(3)]
26643#[cfg_attr(
26644    not(target_arch = "arm"),
26645    stable(feature = "neon_intrinsics", since = "1.59.0")
26646)]
26647#[cfg_attr(
26648    target_arch = "arm",
26649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26650)]
26651pub fn vmla_lane_f32<const LANE: i32>(
26652    a: float32x2_t,
26653    b: float32x2_t,
26654    c: float32x2_t,
26655) -> float32x2_t {
26656    static_assert_uimm_bits!(LANE, 1);
26657    unsafe { vmla_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
26658}
26659#[doc = "Vector multiply accumulate with scalar"]
26660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_f32)"]
26661#[inline(always)]
26662#[target_feature(enable = "neon")]
26663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26664#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
26665#[cfg_attr(
26666    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26667    assert_instr(fmul, LANE = 1)
26668)]
26669#[rustc_legacy_const_generics(3)]
26670#[cfg_attr(
26671    not(target_arch = "arm"),
26672    stable(feature = "neon_intrinsics", since = "1.59.0")
26673)]
26674#[cfg_attr(
26675    target_arch = "arm",
26676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26677)]
26678pub fn vmla_laneq_f32<const LANE: i32>(
26679    a: float32x2_t,
26680    b: float32x2_t,
26681    c: float32x4_t,
26682) -> float32x2_t {
26683    static_assert_uimm_bits!(LANE, 2);
26684    unsafe { vmla_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
26685}
26686#[doc = "Vector multiply accumulate with scalar"]
26687#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_f32)"]
26688#[inline(always)]
26689#[target_feature(enable = "neon")]
26690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26691#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
26692#[cfg_attr(
26693    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26694    assert_instr(fmul, LANE = 1)
26695)]
26696#[rustc_legacy_const_generics(3)]
26697#[cfg_attr(
26698    not(target_arch = "arm"),
26699    stable(feature = "neon_intrinsics", since = "1.59.0")
26700)]
26701#[cfg_attr(
26702    target_arch = "arm",
26703    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26704)]
26705pub fn vmlaq_lane_f32<const LANE: i32>(
26706    a: float32x4_t,
26707    b: float32x4_t,
26708    c: float32x2_t,
26709) -> float32x4_t {
26710    static_assert_uimm_bits!(LANE, 1);
26711    unsafe {
26712        vmlaq_f32(
26713            a,
26714            b,
26715            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26716        )
26717    }
26718}
26719#[doc = "Vector multiply accumulate with scalar"]
26720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_f32)"]
26721#[inline(always)]
26722#[target_feature(enable = "neon")]
26723#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26724#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
26725#[cfg_attr(
26726    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26727    assert_instr(fmul, LANE = 1)
26728)]
26729#[rustc_legacy_const_generics(3)]
26730#[cfg_attr(
26731    not(target_arch = "arm"),
26732    stable(feature = "neon_intrinsics", since = "1.59.0")
26733)]
26734#[cfg_attr(
26735    target_arch = "arm",
26736    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26737)]
26738pub fn vmlaq_laneq_f32<const LANE: i32>(
26739    a: float32x4_t,
26740    b: float32x4_t,
26741    c: float32x4_t,
26742) -> float32x4_t {
26743    static_assert_uimm_bits!(LANE, 2);
26744    unsafe {
26745        vmlaq_f32(
26746            a,
26747            b,
26748            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26749        )
26750    }
26751}
26752#[doc = "Vector multiply accumulate with scalar"]
26753#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s16)"]
26754#[inline(always)]
26755#[target_feature(enable = "neon")]
26756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26757#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26758#[cfg_attr(
26759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26760    assert_instr(mla, LANE = 1)
26761)]
26762#[rustc_legacy_const_generics(3)]
26763#[cfg_attr(
26764    not(target_arch = "arm"),
26765    stable(feature = "neon_intrinsics", since = "1.59.0")
26766)]
26767#[cfg_attr(
26768    target_arch = "arm",
26769    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26770)]
26771pub fn vmla_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
26772    static_assert_uimm_bits!(LANE, 2);
26773    unsafe {
26774        vmla_s16(
26775            a,
26776            b,
26777            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26778        )
26779    }
26780}
26781#[doc = "Vector multiply accumulate with scalar"]
26782#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u16)"]
26783#[inline(always)]
26784#[target_feature(enable = "neon")]
26785#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26786#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26787#[cfg_attr(
26788    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26789    assert_instr(mla, LANE = 1)
26790)]
26791#[rustc_legacy_const_generics(3)]
26792#[cfg_attr(
26793    not(target_arch = "arm"),
26794    stable(feature = "neon_intrinsics", since = "1.59.0")
26795)]
26796#[cfg_attr(
26797    target_arch = "arm",
26798    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26799)]
26800pub fn vmla_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
26801    static_assert_uimm_bits!(LANE, 2);
26802    unsafe {
26803        vmla_u16(
26804            a,
26805            b,
26806            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26807        )
26808    }
26809}
26810#[doc = "Vector multiply accumulate with scalar"]
26811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s16)"]
26812#[inline(always)]
26813#[target_feature(enable = "neon")]
26814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26815#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26816#[cfg_attr(
26817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26818    assert_instr(mla, LANE = 1)
26819)]
26820#[rustc_legacy_const_generics(3)]
26821#[cfg_attr(
26822    not(target_arch = "arm"),
26823    stable(feature = "neon_intrinsics", since = "1.59.0")
26824)]
26825#[cfg_attr(
26826    target_arch = "arm",
26827    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26828)]
26829pub fn vmla_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
26830    static_assert_uimm_bits!(LANE, 3);
26831    unsafe {
26832        vmla_s16(
26833            a,
26834            b,
26835            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26836        )
26837    }
26838}
26839#[doc = "Vector multiply accumulate with scalar"]
26840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u16)"]
26841#[inline(always)]
26842#[target_feature(enable = "neon")]
26843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26844#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26845#[cfg_attr(
26846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26847    assert_instr(mla, LANE = 1)
26848)]
26849#[rustc_legacy_const_generics(3)]
26850#[cfg_attr(
26851    not(target_arch = "arm"),
26852    stable(feature = "neon_intrinsics", since = "1.59.0")
26853)]
26854#[cfg_attr(
26855    target_arch = "arm",
26856    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26857)]
26858pub fn vmla_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
26859    static_assert_uimm_bits!(LANE, 3);
26860    unsafe {
26861        vmla_u16(
26862            a,
26863            b,
26864            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
26865        )
26866    }
26867}
26868#[doc = "Vector multiply accumulate with scalar"]
26869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s16)"]
26870#[inline(always)]
26871#[target_feature(enable = "neon")]
26872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26873#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26874#[cfg_attr(
26875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26876    assert_instr(mla, LANE = 1)
26877)]
26878#[rustc_legacy_const_generics(3)]
26879#[cfg_attr(
26880    not(target_arch = "arm"),
26881    stable(feature = "neon_intrinsics", since = "1.59.0")
26882)]
26883#[cfg_attr(
26884    target_arch = "arm",
26885    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26886)]
26887pub fn vmlaq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
26888    static_assert_uimm_bits!(LANE, 2);
26889    unsafe {
26890        vmlaq_s16(
26891            a,
26892            b,
26893            simd_shuffle!(
26894                c,
26895                c,
26896                [
26897                    LANE as u32,
26898                    LANE as u32,
26899                    LANE as u32,
26900                    LANE as u32,
26901                    LANE as u32,
26902                    LANE as u32,
26903                    LANE as u32,
26904                    LANE as u32
26905                ]
26906            ),
26907        )
26908    }
26909}
26910#[doc = "Vector multiply accumulate with scalar"]
26911#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u16)"]
26912#[inline(always)]
26913#[target_feature(enable = "neon")]
26914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26915#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26916#[cfg_attr(
26917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26918    assert_instr(mla, LANE = 1)
26919)]
26920#[rustc_legacy_const_generics(3)]
26921#[cfg_attr(
26922    not(target_arch = "arm"),
26923    stable(feature = "neon_intrinsics", since = "1.59.0")
26924)]
26925#[cfg_attr(
26926    target_arch = "arm",
26927    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26928)]
26929pub fn vmlaq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
26930    static_assert_uimm_bits!(LANE, 2);
26931    unsafe {
26932        vmlaq_u16(
26933            a,
26934            b,
26935            simd_shuffle!(
26936                c,
26937                c,
26938                [
26939                    LANE as u32,
26940                    LANE as u32,
26941                    LANE as u32,
26942                    LANE as u32,
26943                    LANE as u32,
26944                    LANE as u32,
26945                    LANE as u32,
26946                    LANE as u32
26947                ]
26948            ),
26949        )
26950    }
26951}
26952#[doc = "Vector multiply accumulate with scalar"]
26953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s16)"]
26954#[inline(always)]
26955#[target_feature(enable = "neon")]
26956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26957#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
26958#[cfg_attr(
26959    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
26960    assert_instr(mla, LANE = 1)
26961)]
26962#[rustc_legacy_const_generics(3)]
26963#[cfg_attr(
26964    not(target_arch = "arm"),
26965    stable(feature = "neon_intrinsics", since = "1.59.0")
26966)]
26967#[cfg_attr(
26968    target_arch = "arm",
26969    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
26970)]
26971pub fn vmlaq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
26972    static_assert_uimm_bits!(LANE, 3);
26973    unsafe {
26974        vmlaq_s16(
26975            a,
26976            b,
26977            simd_shuffle!(
26978                c,
26979                c,
26980                [
26981                    LANE as u32,
26982                    LANE as u32,
26983                    LANE as u32,
26984                    LANE as u32,
26985                    LANE as u32,
26986                    LANE as u32,
26987                    LANE as u32,
26988                    LANE as u32
26989                ]
26990            ),
26991        )
26992    }
26993}
26994#[doc = "Vector multiply accumulate with scalar"]
26995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u16)"]
26996#[inline(always)]
26997#[target_feature(enable = "neon")]
26998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26999#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
27000#[cfg_attr(
27001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27002    assert_instr(mla, LANE = 1)
27003)]
27004#[rustc_legacy_const_generics(3)]
27005#[cfg_attr(
27006    not(target_arch = "arm"),
27007    stable(feature = "neon_intrinsics", since = "1.59.0")
27008)]
27009#[cfg_attr(
27010    target_arch = "arm",
27011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27012)]
27013pub fn vmlaq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
27014    static_assert_uimm_bits!(LANE, 3);
27015    unsafe {
27016        vmlaq_u16(
27017            a,
27018            b,
27019            simd_shuffle!(
27020                c,
27021                c,
27022                [
27023                    LANE as u32,
27024                    LANE as u32,
27025                    LANE as u32,
27026                    LANE as u32,
27027                    LANE as u32,
27028                    LANE as u32,
27029                    LANE as u32,
27030                    LANE as u32
27031                ]
27032            ),
27033        )
27034    }
27035}
27036#[doc = "Vector multiply accumulate with scalar"]
27037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s32)"]
27038#[inline(always)]
27039#[target_feature(enable = "neon")]
27040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27041#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27042#[cfg_attr(
27043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27044    assert_instr(mla, LANE = 1)
27045)]
27046#[rustc_legacy_const_generics(3)]
27047#[cfg_attr(
27048    not(target_arch = "arm"),
27049    stable(feature = "neon_intrinsics", since = "1.59.0")
27050)]
27051#[cfg_attr(
27052    target_arch = "arm",
27053    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27054)]
27055pub fn vmla_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
27056    static_assert_uimm_bits!(LANE, 1);
27057    unsafe { vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27058}
27059#[doc = "Vector multiply accumulate with scalar"]
27060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u32)"]
27061#[inline(always)]
27062#[target_feature(enable = "neon")]
27063#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27064#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27065#[cfg_attr(
27066    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27067    assert_instr(mla, LANE = 1)
27068)]
27069#[rustc_legacy_const_generics(3)]
27070#[cfg_attr(
27071    not(target_arch = "arm"),
27072    stable(feature = "neon_intrinsics", since = "1.59.0")
27073)]
27074#[cfg_attr(
27075    target_arch = "arm",
27076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27077)]
27078pub fn vmla_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
27079    static_assert_uimm_bits!(LANE, 1);
27080    unsafe { vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27081}
27082#[doc = "Vector multiply accumulate with scalar"]
27083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s32)"]
27084#[inline(always)]
27085#[target_feature(enable = "neon")]
27086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27087#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27088#[cfg_attr(
27089    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27090    assert_instr(mla, LANE = 1)
27091)]
27092#[rustc_legacy_const_generics(3)]
27093#[cfg_attr(
27094    not(target_arch = "arm"),
27095    stable(feature = "neon_intrinsics", since = "1.59.0")
27096)]
27097#[cfg_attr(
27098    target_arch = "arm",
27099    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27100)]
27101pub fn vmla_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
27102    static_assert_uimm_bits!(LANE, 2);
27103    unsafe { vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27104}
27105#[doc = "Vector multiply accumulate with scalar"]
27106#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u32)"]
27107#[inline(always)]
27108#[target_feature(enable = "neon")]
27109#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27110#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27111#[cfg_attr(
27112    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27113    assert_instr(mla, LANE = 1)
27114)]
27115#[rustc_legacy_const_generics(3)]
27116#[cfg_attr(
27117    not(target_arch = "arm"),
27118    stable(feature = "neon_intrinsics", since = "1.59.0")
27119)]
27120#[cfg_attr(
27121    target_arch = "arm",
27122    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27123)]
27124pub fn vmla_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
27125    static_assert_uimm_bits!(LANE, 2);
27126    unsafe { vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27127}
27128#[doc = "Vector multiply accumulate with scalar"]
27129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s32)"]
27130#[inline(always)]
27131#[target_feature(enable = "neon")]
27132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27133#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27134#[cfg_attr(
27135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27136    assert_instr(mla, LANE = 1)
27137)]
27138#[rustc_legacy_const_generics(3)]
27139#[cfg_attr(
27140    not(target_arch = "arm"),
27141    stable(feature = "neon_intrinsics", since = "1.59.0")
27142)]
27143#[cfg_attr(
27144    target_arch = "arm",
27145    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27146)]
27147pub fn vmlaq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
27148    static_assert_uimm_bits!(LANE, 1);
27149    unsafe {
27150        vmlaq_s32(
27151            a,
27152            b,
27153            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27154        )
27155    }
27156}
27157#[doc = "Vector multiply accumulate with scalar"]
27158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u32)"]
27159#[inline(always)]
27160#[target_feature(enable = "neon")]
27161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27162#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27163#[cfg_attr(
27164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27165    assert_instr(mla, LANE = 1)
27166)]
27167#[rustc_legacy_const_generics(3)]
27168#[cfg_attr(
27169    not(target_arch = "arm"),
27170    stable(feature = "neon_intrinsics", since = "1.59.0")
27171)]
27172#[cfg_attr(
27173    target_arch = "arm",
27174    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27175)]
27176pub fn vmlaq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
27177    static_assert_uimm_bits!(LANE, 1);
27178    unsafe {
27179        vmlaq_u32(
27180            a,
27181            b,
27182            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27183        )
27184    }
27185}
27186#[doc = "Vector multiply accumulate with scalar"]
27187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s32)"]
27188#[inline(always)]
27189#[target_feature(enable = "neon")]
27190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27191#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27192#[cfg_attr(
27193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27194    assert_instr(mla, LANE = 1)
27195)]
27196#[rustc_legacy_const_generics(3)]
27197#[cfg_attr(
27198    not(target_arch = "arm"),
27199    stable(feature = "neon_intrinsics", since = "1.59.0")
27200)]
27201#[cfg_attr(
27202    target_arch = "arm",
27203    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27204)]
27205pub fn vmlaq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
27206    static_assert_uimm_bits!(LANE, 2);
27207    unsafe {
27208        vmlaq_s32(
27209            a,
27210            b,
27211            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27212        )
27213    }
27214}
27215#[doc = "Vector multiply accumulate with scalar"]
27216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u32)"]
27217#[inline(always)]
27218#[target_feature(enable = "neon")]
27219#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27220#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
27221#[cfg_attr(
27222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27223    assert_instr(mla, LANE = 1)
27224)]
27225#[rustc_legacy_const_generics(3)]
27226#[cfg_attr(
27227    not(target_arch = "arm"),
27228    stable(feature = "neon_intrinsics", since = "1.59.0")
27229)]
27230#[cfg_attr(
27231    target_arch = "arm",
27232    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27233)]
27234pub fn vmlaq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
27235    static_assert_uimm_bits!(LANE, 2);
27236    unsafe {
27237        vmlaq_u32(
27238            a,
27239            b,
27240            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27241        )
27242    }
27243}
27244#[doc = "Vector multiply accumulate with scalar"]
27245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_f32)"]
27246#[inline(always)]
27247#[target_feature(enable = "neon")]
27248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27249#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
27250#[cfg_attr(
27251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27252    assert_instr(fmul)
27253)]
27254#[cfg_attr(
27255    not(target_arch = "arm"),
27256    stable(feature = "neon_intrinsics", since = "1.59.0")
27257)]
27258#[cfg_attr(
27259    target_arch = "arm",
27260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27261)]
27262pub fn vmla_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
27263    vmla_f32(a, b, vdup_n_f32(c))
27264}
27265#[doc = "Vector multiply accumulate with scalar"]
27266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_f32)"]
27267#[inline(always)]
27268#[target_feature(enable = "neon")]
27269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27270#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
27271#[cfg_attr(
27272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27273    assert_instr(fmul)
27274)]
27275#[cfg_attr(
27276    not(target_arch = "arm"),
27277    stable(feature = "neon_intrinsics", since = "1.59.0")
27278)]
27279#[cfg_attr(
27280    target_arch = "arm",
27281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27282)]
27283pub fn vmlaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
27284    vmlaq_f32(a, b, vdupq_n_f32(c))
27285}
27286#[doc = "Vector multiply accumulate with scalar"]
27287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s16)"]
27288#[inline(always)]
27289#[target_feature(enable = "neon")]
27290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27291#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27292#[cfg_attr(
27293    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27294    assert_instr(mla)
27295)]
27296#[cfg_attr(
27297    not(target_arch = "arm"),
27298    stable(feature = "neon_intrinsics", since = "1.59.0")
27299)]
27300#[cfg_attr(
27301    target_arch = "arm",
27302    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27303)]
27304pub fn vmla_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
27305    vmla_s16(a, b, vdup_n_s16(c))
27306}
27307#[doc = "Vector multiply accumulate with scalar"]
27308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_s16)"]
27309#[inline(always)]
27310#[target_feature(enable = "neon")]
27311#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27312#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27313#[cfg_attr(
27314    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27315    assert_instr(mla)
27316)]
27317#[cfg_attr(
27318    not(target_arch = "arm"),
27319    stable(feature = "neon_intrinsics", since = "1.59.0")
27320)]
27321#[cfg_attr(
27322    target_arch = "arm",
27323    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27324)]
27325pub fn vmlaq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
27326    vmlaq_s16(a, b, vdupq_n_s16(c))
27327}
27328#[doc = "Vector multiply accumulate with scalar"]
27329#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u16)"]
27330#[inline(always)]
27331#[target_feature(enable = "neon")]
27332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27333#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27334#[cfg_attr(
27335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27336    assert_instr(mla)
27337)]
27338#[cfg_attr(
27339    not(target_arch = "arm"),
27340    stable(feature = "neon_intrinsics", since = "1.59.0")
27341)]
27342#[cfg_attr(
27343    target_arch = "arm",
27344    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27345)]
27346pub fn vmla_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
27347    vmla_u16(a, b, vdup_n_u16(c))
27348}
27349#[doc = "Vector multiply accumulate with scalar"]
27350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u16)"]
27351#[inline(always)]
27352#[target_feature(enable = "neon")]
27353#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27354#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27355#[cfg_attr(
27356    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27357    assert_instr(mla)
27358)]
27359#[cfg_attr(
27360    not(target_arch = "arm"),
27361    stable(feature = "neon_intrinsics", since = "1.59.0")
27362)]
27363#[cfg_attr(
27364    target_arch = "arm",
27365    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27366)]
27367pub fn vmlaq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
27368    vmlaq_u16(a, b, vdupq_n_u16(c))
27369}
27370#[doc = "Vector multiply accumulate with scalar"]
27371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s32)"]
27372#[inline(always)]
27373#[target_feature(enable = "neon")]
27374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27375#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27376#[cfg_attr(
27377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27378    assert_instr(mla)
27379)]
27380#[cfg_attr(
27381    not(target_arch = "arm"),
27382    stable(feature = "neon_intrinsics", since = "1.59.0")
27383)]
27384#[cfg_attr(
27385    target_arch = "arm",
27386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27387)]
27388pub fn vmla_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
27389    vmla_s32(a, b, vdup_n_s32(c))
27390}
27391#[doc = "Vector multiply accumulate with scalar"]
27392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_s32)"]
27393#[inline(always)]
27394#[target_feature(enable = "neon")]
27395#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27396#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27397#[cfg_attr(
27398    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27399    assert_instr(mla)
27400)]
27401#[cfg_attr(
27402    not(target_arch = "arm"),
27403    stable(feature = "neon_intrinsics", since = "1.59.0")
27404)]
27405#[cfg_attr(
27406    target_arch = "arm",
27407    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27408)]
27409pub fn vmlaq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
27410    vmlaq_s32(a, b, vdupq_n_s32(c))
27411}
27412#[doc = "Vector multiply accumulate with scalar"]
27413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u32)"]
27414#[inline(always)]
27415#[target_feature(enable = "neon")]
27416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27417#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27418#[cfg_attr(
27419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27420    assert_instr(mla)
27421)]
27422#[cfg_attr(
27423    not(target_arch = "arm"),
27424    stable(feature = "neon_intrinsics", since = "1.59.0")
27425)]
27426#[cfg_attr(
27427    target_arch = "arm",
27428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27429)]
27430pub fn vmla_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
27431    vmla_u32(a, b, vdup_n_u32(c))
27432}
27433#[doc = "Vector multiply accumulate with scalar"]
27434#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u32)"]
27435#[inline(always)]
27436#[target_feature(enable = "neon")]
27437#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27438#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27439#[cfg_attr(
27440    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27441    assert_instr(mla)
27442)]
27443#[cfg_attr(
27444    not(target_arch = "arm"),
27445    stable(feature = "neon_intrinsics", since = "1.59.0")
27446)]
27447#[cfg_attr(
27448    target_arch = "arm",
27449    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27450)]
27451pub fn vmlaq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
27452    vmlaq_u32(a, b, vdupq_n_u32(c))
27453}
27454#[doc = "Multiply-add to accumulator"]
27455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s8)"]
27456#[inline(always)]
27457#[target_feature(enable = "neon")]
27458#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27459#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
27460#[cfg_attr(
27461    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27462    assert_instr(mla)
27463)]
27464#[cfg_attr(
27465    not(target_arch = "arm"),
27466    stable(feature = "neon_intrinsics", since = "1.59.0")
27467)]
27468#[cfg_attr(
27469    target_arch = "arm",
27470    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27471)]
27472pub fn vmla_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
27473    unsafe { simd_add(a, simd_mul(b, c)) }
27474}
27475#[doc = "Multiply-add to accumulator"]
27476#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s8)"]
27477#[inline(always)]
27478#[target_feature(enable = "neon")]
27479#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27480#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
27481#[cfg_attr(
27482    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27483    assert_instr(mla)
27484)]
27485#[cfg_attr(
27486    not(target_arch = "arm"),
27487    stable(feature = "neon_intrinsics", since = "1.59.0")
27488)]
27489#[cfg_attr(
27490    target_arch = "arm",
27491    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27492)]
27493pub fn vmlaq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
27494    unsafe { simd_add(a, simd_mul(b, c)) }
27495}
27496#[doc = "Multiply-add to accumulator"]
27497#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s16)"]
27498#[inline(always)]
27499#[target_feature(enable = "neon")]
27500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27501#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27502#[cfg_attr(
27503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27504    assert_instr(mla)
27505)]
27506#[cfg_attr(
27507    not(target_arch = "arm"),
27508    stable(feature = "neon_intrinsics", since = "1.59.0")
27509)]
27510#[cfg_attr(
27511    target_arch = "arm",
27512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27513)]
27514pub fn vmla_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
27515    unsafe { simd_add(a, simd_mul(b, c)) }
27516}
27517#[doc = "Multiply-add to accumulator"]
27518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s16)"]
27519#[inline(always)]
27520#[target_feature(enable = "neon")]
27521#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27522#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27523#[cfg_attr(
27524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27525    assert_instr(mla)
27526)]
27527#[cfg_attr(
27528    not(target_arch = "arm"),
27529    stable(feature = "neon_intrinsics", since = "1.59.0")
27530)]
27531#[cfg_attr(
27532    target_arch = "arm",
27533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27534)]
27535pub fn vmlaq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
27536    unsafe { simd_add(a, simd_mul(b, c)) }
27537}
27538#[doc = "Multiply-add to accumulator"]
27539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s32)"]
27540#[inline(always)]
27541#[target_feature(enable = "neon")]
27542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27543#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27544#[cfg_attr(
27545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27546    assert_instr(mla)
27547)]
27548#[cfg_attr(
27549    not(target_arch = "arm"),
27550    stable(feature = "neon_intrinsics", since = "1.59.0")
27551)]
27552#[cfg_attr(
27553    target_arch = "arm",
27554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27555)]
27556pub fn vmla_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
27557    unsafe { simd_add(a, simd_mul(b, c)) }
27558}
27559#[doc = "Multiply-add to accumulator"]
27560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s32)"]
27561#[inline(always)]
27562#[target_feature(enable = "neon")]
27563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27564#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27565#[cfg_attr(
27566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27567    assert_instr(mla)
27568)]
27569#[cfg_attr(
27570    not(target_arch = "arm"),
27571    stable(feature = "neon_intrinsics", since = "1.59.0")
27572)]
27573#[cfg_attr(
27574    target_arch = "arm",
27575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27576)]
27577pub fn vmlaq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
27578    unsafe { simd_add(a, simd_mul(b, c)) }
27579}
27580#[doc = "Multiply-add to accumulator"]
27581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u8)"]
27582#[inline(always)]
27583#[target_feature(enable = "neon")]
27584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27585#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
27586#[cfg_attr(
27587    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27588    assert_instr(mla)
27589)]
27590#[cfg_attr(
27591    not(target_arch = "arm"),
27592    stable(feature = "neon_intrinsics", since = "1.59.0")
27593)]
27594#[cfg_attr(
27595    target_arch = "arm",
27596    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27597)]
27598pub fn vmla_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
27599    unsafe { simd_add(a, simd_mul(b, c)) }
27600}
27601#[doc = "Multiply-add to accumulator"]
27602#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u8)"]
27603#[inline(always)]
27604#[target_feature(enable = "neon")]
27605#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27606#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
27607#[cfg_attr(
27608    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27609    assert_instr(mla)
27610)]
27611#[cfg_attr(
27612    not(target_arch = "arm"),
27613    stable(feature = "neon_intrinsics", since = "1.59.0")
27614)]
27615#[cfg_attr(
27616    target_arch = "arm",
27617    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27618)]
27619pub fn vmlaq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
27620    unsafe { simd_add(a, simd_mul(b, c)) }
27621}
27622#[doc = "Multiply-add to accumulator"]
27623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u16)"]
27624#[inline(always)]
27625#[target_feature(enable = "neon")]
27626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27627#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27628#[cfg_attr(
27629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27630    assert_instr(mla)
27631)]
27632#[cfg_attr(
27633    not(target_arch = "arm"),
27634    stable(feature = "neon_intrinsics", since = "1.59.0")
27635)]
27636#[cfg_attr(
27637    target_arch = "arm",
27638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27639)]
27640pub fn vmla_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
27641    unsafe { simd_add(a, simd_mul(b, c)) }
27642}
27643#[doc = "Multiply-add to accumulator"]
27644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u16)"]
27645#[inline(always)]
27646#[target_feature(enable = "neon")]
27647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27648#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
27649#[cfg_attr(
27650    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27651    assert_instr(mla)
27652)]
27653#[cfg_attr(
27654    not(target_arch = "arm"),
27655    stable(feature = "neon_intrinsics", since = "1.59.0")
27656)]
27657#[cfg_attr(
27658    target_arch = "arm",
27659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27660)]
27661pub fn vmlaq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
27662    unsafe { simd_add(a, simd_mul(b, c)) }
27663}
27664#[doc = "Multiply-add to accumulator"]
27665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u32)"]
27666#[inline(always)]
27667#[target_feature(enable = "neon")]
27668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27669#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27670#[cfg_attr(
27671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27672    assert_instr(mla)
27673)]
27674#[cfg_attr(
27675    not(target_arch = "arm"),
27676    stable(feature = "neon_intrinsics", since = "1.59.0")
27677)]
27678#[cfg_attr(
27679    target_arch = "arm",
27680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27681)]
27682pub fn vmla_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
27683    unsafe { simd_add(a, simd_mul(b, c)) }
27684}
27685#[doc = "Multiply-add to accumulator"]
27686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u32)"]
27687#[inline(always)]
27688#[target_feature(enable = "neon")]
27689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27690#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
27691#[cfg_attr(
27692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27693    assert_instr(mla)
27694)]
27695#[cfg_attr(
27696    not(target_arch = "arm"),
27697    stable(feature = "neon_intrinsics", since = "1.59.0")
27698)]
27699#[cfg_attr(
27700    target_arch = "arm",
27701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27702)]
27703pub fn vmlaq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
27704    unsafe { simd_add(a, simd_mul(b, c)) }
27705}
27706#[doc = "Vector widening multiply accumulate with scalar"]
27707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s16)"]
27708#[inline(always)]
27709#[target_feature(enable = "neon")]
27710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27711#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
27712#[cfg_attr(
27713    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27714    assert_instr(smlal, LANE = 1)
27715)]
27716#[rustc_legacy_const_generics(3)]
27717#[cfg_attr(
27718    not(target_arch = "arm"),
27719    stable(feature = "neon_intrinsics", since = "1.59.0")
27720)]
27721#[cfg_attr(
27722    target_arch = "arm",
27723    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27724)]
27725pub fn vmlal_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
27726    static_assert_uimm_bits!(LANE, 2);
27727    unsafe {
27728        vmlal_s16(
27729            a,
27730            b,
27731            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27732        )
27733    }
27734}
27735#[doc = "Vector widening multiply accumulate with scalar"]
27736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s16)"]
27737#[inline(always)]
27738#[target_feature(enable = "neon")]
27739#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27740#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
27741#[cfg_attr(
27742    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27743    assert_instr(smlal, LANE = 1)
27744)]
27745#[rustc_legacy_const_generics(3)]
27746#[cfg_attr(
27747    not(target_arch = "arm"),
27748    stable(feature = "neon_intrinsics", since = "1.59.0")
27749)]
27750#[cfg_attr(
27751    target_arch = "arm",
27752    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27753)]
27754pub fn vmlal_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
27755    static_assert_uimm_bits!(LANE, 3);
27756    unsafe {
27757        vmlal_s16(
27758            a,
27759            b,
27760            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27761        )
27762    }
27763}
27764#[doc = "Vector widening multiply accumulate with scalar"]
27765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s32)"]
27766#[inline(always)]
27767#[target_feature(enable = "neon")]
27768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27769#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
27770#[cfg_attr(
27771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27772    assert_instr(smlal, LANE = 1)
27773)]
27774#[rustc_legacy_const_generics(3)]
27775#[cfg_attr(
27776    not(target_arch = "arm"),
27777    stable(feature = "neon_intrinsics", since = "1.59.0")
27778)]
27779#[cfg_attr(
27780    target_arch = "arm",
27781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27782)]
27783pub fn vmlal_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
27784    static_assert_uimm_bits!(LANE, 1);
27785    unsafe { vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27786}
27787#[doc = "Vector widening multiply accumulate with scalar"]
27788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s32)"]
27789#[inline(always)]
27790#[target_feature(enable = "neon")]
27791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27792#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
27793#[cfg_attr(
27794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27795    assert_instr(smlal, LANE = 1)
27796)]
27797#[rustc_legacy_const_generics(3)]
27798#[cfg_attr(
27799    not(target_arch = "arm"),
27800    stable(feature = "neon_intrinsics", since = "1.59.0")
27801)]
27802#[cfg_attr(
27803    target_arch = "arm",
27804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27805)]
27806pub fn vmlal_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
27807    static_assert_uimm_bits!(LANE, 2);
27808    unsafe { vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27809}
27810#[doc = "Vector widening multiply accumulate with scalar"]
27811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u16)"]
27812#[inline(always)]
27813#[target_feature(enable = "neon")]
27814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27815#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
27816#[cfg_attr(
27817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27818    assert_instr(umlal, LANE = 1)
27819)]
27820#[rustc_legacy_const_generics(3)]
27821#[cfg_attr(
27822    not(target_arch = "arm"),
27823    stable(feature = "neon_intrinsics", since = "1.59.0")
27824)]
27825#[cfg_attr(
27826    target_arch = "arm",
27827    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27828)]
27829pub fn vmlal_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
27830    static_assert_uimm_bits!(LANE, 2);
27831    unsafe {
27832        vmlal_u16(
27833            a,
27834            b,
27835            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27836        )
27837    }
27838}
27839#[doc = "Vector widening multiply accumulate with scalar"]
27840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u16)"]
27841#[inline(always)]
27842#[target_feature(enable = "neon")]
27843#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27844#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
27845#[cfg_attr(
27846    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27847    assert_instr(umlal, LANE = 1)
27848)]
27849#[rustc_legacy_const_generics(3)]
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_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
27859    static_assert_uimm_bits!(LANE, 3);
27860    unsafe {
27861        vmlal_u16(
27862            a,
27863            b,
27864            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
27865        )
27866    }
27867}
27868#[doc = "Vector widening multiply accumulate with scalar"]
27869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u32)"]
27870#[inline(always)]
27871#[target_feature(enable = "neon")]
27872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27873#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
27874#[cfg_attr(
27875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27876    assert_instr(umlal, LANE = 1)
27877)]
27878#[rustc_legacy_const_generics(3)]
27879#[cfg_attr(
27880    not(target_arch = "arm"),
27881    stable(feature = "neon_intrinsics", since = "1.59.0")
27882)]
27883#[cfg_attr(
27884    target_arch = "arm",
27885    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27886)]
27887pub fn vmlal_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
27888    static_assert_uimm_bits!(LANE, 1);
27889    unsafe { vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27890}
27891#[doc = "Vector widening multiply accumulate with scalar"]
27892#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u32)"]
27893#[inline(always)]
27894#[target_feature(enable = "neon")]
27895#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27896#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
27897#[cfg_attr(
27898    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27899    assert_instr(umlal, LANE = 1)
27900)]
27901#[rustc_legacy_const_generics(3)]
27902#[cfg_attr(
27903    not(target_arch = "arm"),
27904    stable(feature = "neon_intrinsics", since = "1.59.0")
27905)]
27906#[cfg_attr(
27907    target_arch = "arm",
27908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27909)]
27910pub fn vmlal_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
27911    static_assert_uimm_bits!(LANE, 2);
27912    unsafe { vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
27913}
27914#[doc = "Vector widening multiply accumulate with scalar"]
27915#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s16)"]
27916#[inline(always)]
27917#[target_feature(enable = "neon")]
27918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27919#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
27920#[cfg_attr(
27921    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27922    assert_instr(smlal)
27923)]
27924#[cfg_attr(
27925    not(target_arch = "arm"),
27926    stable(feature = "neon_intrinsics", since = "1.59.0")
27927)]
27928#[cfg_attr(
27929    target_arch = "arm",
27930    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27931)]
27932pub fn vmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
27933    vmlal_s16(a, b, vdup_n_s16(c))
27934}
27935#[doc = "Vector widening multiply accumulate with scalar"]
27936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s32)"]
27937#[inline(always)]
27938#[target_feature(enable = "neon")]
27939#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27940#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
27941#[cfg_attr(
27942    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27943    assert_instr(smlal)
27944)]
27945#[cfg_attr(
27946    not(target_arch = "arm"),
27947    stable(feature = "neon_intrinsics", since = "1.59.0")
27948)]
27949#[cfg_attr(
27950    target_arch = "arm",
27951    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27952)]
27953pub fn vmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
27954    vmlal_s32(a, b, vdup_n_s32(c))
27955}
27956#[doc = "Vector widening multiply accumulate with scalar"]
27957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u16)"]
27958#[inline(always)]
27959#[target_feature(enable = "neon")]
27960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27961#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16"))]
27962#[cfg_attr(
27963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27964    assert_instr(umlal)
27965)]
27966#[cfg_attr(
27967    not(target_arch = "arm"),
27968    stable(feature = "neon_intrinsics", since = "1.59.0")
27969)]
27970#[cfg_attr(
27971    target_arch = "arm",
27972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27973)]
27974pub fn vmlal_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
27975    vmlal_u16(a, b, vdup_n_u16(c))
27976}
27977#[doc = "Vector widening multiply accumulate with scalar"]
27978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u32)"]
27979#[inline(always)]
27980#[target_feature(enable = "neon")]
27981#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27982#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32"))]
27983#[cfg_attr(
27984    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
27985    assert_instr(umlal)
27986)]
27987#[cfg_attr(
27988    not(target_arch = "arm"),
27989    stable(feature = "neon_intrinsics", since = "1.59.0")
27990)]
27991#[cfg_attr(
27992    target_arch = "arm",
27993    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
27994)]
27995pub fn vmlal_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
27996    vmlal_u32(a, b, vdup_n_u32(c))
27997}
27998#[doc = "Signed multiply-add long"]
27999#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s8)"]
28000#[inline(always)]
28001#[target_feature(enable = "neon")]
28002#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28003#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s8"))]
28004#[cfg_attr(
28005    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28006    assert_instr(smlal)
28007)]
28008#[cfg_attr(
28009    not(target_arch = "arm"),
28010    stable(feature = "neon_intrinsics", since = "1.59.0")
28011)]
28012#[cfg_attr(
28013    target_arch = "arm",
28014    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28015)]
28016pub fn vmlal_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
28017    unsafe { simd_add(a, vmull_s8(b, c)) }
28018}
28019#[doc = "Signed multiply-add long"]
28020#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s16)"]
28021#[inline(always)]
28022#[target_feature(enable = "neon")]
28023#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28024#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
28025#[cfg_attr(
28026    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28027    assert_instr(smlal)
28028)]
28029#[cfg_attr(
28030    not(target_arch = "arm"),
28031    stable(feature = "neon_intrinsics", since = "1.59.0")
28032)]
28033#[cfg_attr(
28034    target_arch = "arm",
28035    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28036)]
28037pub fn vmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
28038    unsafe { simd_add(a, vmull_s16(b, c)) }
28039}
28040#[doc = "Signed multiply-add long"]
28041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s32)"]
28042#[inline(always)]
28043#[target_feature(enable = "neon")]
28044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28045#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
28046#[cfg_attr(
28047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28048    assert_instr(smlal)
28049)]
28050#[cfg_attr(
28051    not(target_arch = "arm"),
28052    stable(feature = "neon_intrinsics", since = "1.59.0")
28053)]
28054#[cfg_attr(
28055    target_arch = "arm",
28056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28057)]
28058pub fn vmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
28059    unsafe { simd_add(a, vmull_s32(b, c)) }
28060}
28061#[doc = "Unsigned multiply-add long"]
28062#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u8)"]
28063#[inline(always)]
28064#[target_feature(enable = "neon")]
28065#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28066#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u8"))]
28067#[cfg_attr(
28068    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28069    assert_instr(umlal)
28070)]
28071#[cfg_attr(
28072    not(target_arch = "arm"),
28073    stable(feature = "neon_intrinsics", since = "1.59.0")
28074)]
28075#[cfg_attr(
28076    target_arch = "arm",
28077    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28078)]
28079pub fn vmlal_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
28080    unsafe { simd_add(a, vmull_u8(b, c)) }
28081}
28082#[doc = "Unsigned multiply-add long"]
28083#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u16)"]
28084#[inline(always)]
28085#[target_feature(enable = "neon")]
28086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28087#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16"))]
28088#[cfg_attr(
28089    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28090    assert_instr(umlal)
28091)]
28092#[cfg_attr(
28093    not(target_arch = "arm"),
28094    stable(feature = "neon_intrinsics", since = "1.59.0")
28095)]
28096#[cfg_attr(
28097    target_arch = "arm",
28098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28099)]
28100pub fn vmlal_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
28101    unsafe { simd_add(a, vmull_u16(b, c)) }
28102}
28103#[doc = "Unsigned multiply-add long"]
28104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u32)"]
28105#[inline(always)]
28106#[target_feature(enable = "neon")]
28107#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28108#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32"))]
28109#[cfg_attr(
28110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28111    assert_instr(umlal)
28112)]
28113#[cfg_attr(
28114    not(target_arch = "arm"),
28115    stable(feature = "neon_intrinsics", since = "1.59.0")
28116)]
28117#[cfg_attr(
28118    target_arch = "arm",
28119    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28120)]
28121pub fn vmlal_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
28122    unsafe { simd_add(a, vmull_u32(b, c)) }
28123}
28124#[doc = "Floating-point multiply-subtract from accumulator"]
28125#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_f32)"]
28126#[inline(always)]
28127#[target_feature(enable = "neon")]
28128#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28129#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
28130#[cfg_attr(
28131    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28132    assert_instr(fmul)
28133)]
28134#[cfg_attr(
28135    not(target_arch = "arm"),
28136    stable(feature = "neon_intrinsics", since = "1.59.0")
28137)]
28138#[cfg_attr(
28139    target_arch = "arm",
28140    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28141)]
28142pub fn vmls_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
28143    unsafe { simd_sub(a, simd_mul(b, c)) }
28144}
28145#[doc = "Floating-point multiply-subtract from accumulator"]
28146#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_f32)"]
28147#[inline(always)]
28148#[target_feature(enable = "neon")]
28149#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28150#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
28151#[cfg_attr(
28152    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28153    assert_instr(fmul)
28154)]
28155#[cfg_attr(
28156    not(target_arch = "arm"),
28157    stable(feature = "neon_intrinsics", since = "1.59.0")
28158)]
28159#[cfg_attr(
28160    target_arch = "arm",
28161    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28162)]
28163pub fn vmlsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
28164    unsafe { simd_sub(a, simd_mul(b, c)) }
28165}
28166#[doc = "Vector multiply subtract with scalar"]
28167#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_f32)"]
28168#[inline(always)]
28169#[target_feature(enable = "neon")]
28170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28171#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
28172#[cfg_attr(
28173    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28174    assert_instr(fmul, LANE = 1)
28175)]
28176#[rustc_legacy_const_generics(3)]
28177#[cfg_attr(
28178    not(target_arch = "arm"),
28179    stable(feature = "neon_intrinsics", since = "1.59.0")
28180)]
28181#[cfg_attr(
28182    target_arch = "arm",
28183    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28184)]
28185pub fn vmls_lane_f32<const LANE: i32>(
28186    a: float32x2_t,
28187    b: float32x2_t,
28188    c: float32x2_t,
28189) -> float32x2_t {
28190    static_assert_uimm_bits!(LANE, 1);
28191    unsafe { vmls_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28192}
28193#[doc = "Vector multiply subtract with scalar"]
28194#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_f32)"]
28195#[inline(always)]
28196#[target_feature(enable = "neon")]
28197#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28198#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
28199#[cfg_attr(
28200    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28201    assert_instr(fmul, LANE = 1)
28202)]
28203#[rustc_legacy_const_generics(3)]
28204#[cfg_attr(
28205    not(target_arch = "arm"),
28206    stable(feature = "neon_intrinsics", since = "1.59.0")
28207)]
28208#[cfg_attr(
28209    target_arch = "arm",
28210    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28211)]
28212pub fn vmls_laneq_f32<const LANE: i32>(
28213    a: float32x2_t,
28214    b: float32x2_t,
28215    c: float32x4_t,
28216) -> float32x2_t {
28217    static_assert_uimm_bits!(LANE, 2);
28218    unsafe { vmls_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28219}
28220#[doc = "Vector multiply subtract with scalar"]
28221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_f32)"]
28222#[inline(always)]
28223#[target_feature(enable = "neon")]
28224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28225#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
28226#[cfg_attr(
28227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28228    assert_instr(fmul, LANE = 1)
28229)]
28230#[rustc_legacy_const_generics(3)]
28231#[cfg_attr(
28232    not(target_arch = "arm"),
28233    stable(feature = "neon_intrinsics", since = "1.59.0")
28234)]
28235#[cfg_attr(
28236    target_arch = "arm",
28237    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28238)]
28239pub fn vmlsq_lane_f32<const LANE: i32>(
28240    a: float32x4_t,
28241    b: float32x4_t,
28242    c: float32x2_t,
28243) -> float32x4_t {
28244    static_assert_uimm_bits!(LANE, 1);
28245    unsafe {
28246        vmlsq_f32(
28247            a,
28248            b,
28249            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28250        )
28251    }
28252}
28253#[doc = "Vector multiply subtract with scalar"]
28254#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_f32)"]
28255#[inline(always)]
28256#[target_feature(enable = "neon")]
28257#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28258#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
28259#[cfg_attr(
28260    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28261    assert_instr(fmul, LANE = 1)
28262)]
28263#[rustc_legacy_const_generics(3)]
28264#[cfg_attr(
28265    not(target_arch = "arm"),
28266    stable(feature = "neon_intrinsics", since = "1.59.0")
28267)]
28268#[cfg_attr(
28269    target_arch = "arm",
28270    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28271)]
28272pub fn vmlsq_laneq_f32<const LANE: i32>(
28273    a: float32x4_t,
28274    b: float32x4_t,
28275    c: float32x4_t,
28276) -> float32x4_t {
28277    static_assert_uimm_bits!(LANE, 2);
28278    unsafe {
28279        vmlsq_f32(
28280            a,
28281            b,
28282            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28283        )
28284    }
28285}
28286#[doc = "Vector multiply subtract with scalar"]
28287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s16)"]
28288#[inline(always)]
28289#[target_feature(enable = "neon")]
28290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28291#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28292#[cfg_attr(
28293    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28294    assert_instr(mls, LANE = 1)
28295)]
28296#[rustc_legacy_const_generics(3)]
28297#[cfg_attr(
28298    not(target_arch = "arm"),
28299    stable(feature = "neon_intrinsics", since = "1.59.0")
28300)]
28301#[cfg_attr(
28302    target_arch = "arm",
28303    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28304)]
28305pub fn vmls_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
28306    static_assert_uimm_bits!(LANE, 2);
28307    unsafe {
28308        vmls_s16(
28309            a,
28310            b,
28311            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28312        )
28313    }
28314}
28315#[doc = "Vector multiply subtract with scalar"]
28316#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u16)"]
28317#[inline(always)]
28318#[target_feature(enable = "neon")]
28319#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28320#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28321#[cfg_attr(
28322    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28323    assert_instr(mls, LANE = 1)
28324)]
28325#[rustc_legacy_const_generics(3)]
28326#[cfg_attr(
28327    not(target_arch = "arm"),
28328    stable(feature = "neon_intrinsics", since = "1.59.0")
28329)]
28330#[cfg_attr(
28331    target_arch = "arm",
28332    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28333)]
28334pub fn vmls_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
28335    static_assert_uimm_bits!(LANE, 2);
28336    unsafe {
28337        vmls_u16(
28338            a,
28339            b,
28340            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28341        )
28342    }
28343}
28344#[doc = "Vector multiply subtract with scalar"]
28345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s16)"]
28346#[inline(always)]
28347#[target_feature(enable = "neon")]
28348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28349#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28350#[cfg_attr(
28351    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28352    assert_instr(mls, LANE = 1)
28353)]
28354#[rustc_legacy_const_generics(3)]
28355#[cfg_attr(
28356    not(target_arch = "arm"),
28357    stable(feature = "neon_intrinsics", since = "1.59.0")
28358)]
28359#[cfg_attr(
28360    target_arch = "arm",
28361    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28362)]
28363pub fn vmls_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
28364    static_assert_uimm_bits!(LANE, 3);
28365    unsafe {
28366        vmls_s16(
28367            a,
28368            b,
28369            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28370        )
28371    }
28372}
28373#[doc = "Vector multiply subtract with scalar"]
28374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u16)"]
28375#[inline(always)]
28376#[target_feature(enable = "neon")]
28377#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28378#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28379#[cfg_attr(
28380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28381    assert_instr(mls, LANE = 1)
28382)]
28383#[rustc_legacy_const_generics(3)]
28384#[cfg_attr(
28385    not(target_arch = "arm"),
28386    stable(feature = "neon_intrinsics", since = "1.59.0")
28387)]
28388#[cfg_attr(
28389    target_arch = "arm",
28390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28391)]
28392pub fn vmls_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
28393    static_assert_uimm_bits!(LANE, 3);
28394    unsafe {
28395        vmls_u16(
28396            a,
28397            b,
28398            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28399        )
28400    }
28401}
28402#[doc = "Vector multiply subtract with scalar"]
28403#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s16)"]
28404#[inline(always)]
28405#[target_feature(enable = "neon")]
28406#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28407#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28408#[cfg_attr(
28409    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28410    assert_instr(mls, LANE = 1)
28411)]
28412#[rustc_legacy_const_generics(3)]
28413#[cfg_attr(
28414    not(target_arch = "arm"),
28415    stable(feature = "neon_intrinsics", since = "1.59.0")
28416)]
28417#[cfg_attr(
28418    target_arch = "arm",
28419    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28420)]
28421pub fn vmlsq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
28422    static_assert_uimm_bits!(LANE, 2);
28423    unsafe {
28424        vmlsq_s16(
28425            a,
28426            b,
28427            simd_shuffle!(
28428                c,
28429                c,
28430                [
28431                    LANE as u32,
28432                    LANE as u32,
28433                    LANE as u32,
28434                    LANE as u32,
28435                    LANE as u32,
28436                    LANE as u32,
28437                    LANE as u32,
28438                    LANE as u32
28439                ]
28440            ),
28441        )
28442    }
28443}
28444#[doc = "Vector multiply subtract with scalar"]
28445#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u16)"]
28446#[inline(always)]
28447#[target_feature(enable = "neon")]
28448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28449#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28450#[cfg_attr(
28451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28452    assert_instr(mls, LANE = 1)
28453)]
28454#[rustc_legacy_const_generics(3)]
28455#[cfg_attr(
28456    not(target_arch = "arm"),
28457    stable(feature = "neon_intrinsics", since = "1.59.0")
28458)]
28459#[cfg_attr(
28460    target_arch = "arm",
28461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28462)]
28463pub fn vmlsq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
28464    static_assert_uimm_bits!(LANE, 2);
28465    unsafe {
28466        vmlsq_u16(
28467            a,
28468            b,
28469            simd_shuffle!(
28470                c,
28471                c,
28472                [
28473                    LANE as u32,
28474                    LANE as u32,
28475                    LANE as u32,
28476                    LANE as u32,
28477                    LANE as u32,
28478                    LANE as u32,
28479                    LANE as u32,
28480                    LANE as u32
28481                ]
28482            ),
28483        )
28484    }
28485}
28486#[doc = "Vector multiply subtract with scalar"]
28487#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s16)"]
28488#[inline(always)]
28489#[target_feature(enable = "neon")]
28490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28491#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28492#[cfg_attr(
28493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28494    assert_instr(mls, LANE = 1)
28495)]
28496#[rustc_legacy_const_generics(3)]
28497#[cfg_attr(
28498    not(target_arch = "arm"),
28499    stable(feature = "neon_intrinsics", since = "1.59.0")
28500)]
28501#[cfg_attr(
28502    target_arch = "arm",
28503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28504)]
28505pub fn vmlsq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
28506    static_assert_uimm_bits!(LANE, 3);
28507    unsafe {
28508        vmlsq_s16(
28509            a,
28510            b,
28511            simd_shuffle!(
28512                c,
28513                c,
28514                [
28515                    LANE as u32,
28516                    LANE as u32,
28517                    LANE as u32,
28518                    LANE as u32,
28519                    LANE as u32,
28520                    LANE as u32,
28521                    LANE as u32,
28522                    LANE as u32
28523                ]
28524            ),
28525        )
28526    }
28527}
28528#[doc = "Vector multiply subtract with scalar"]
28529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u16)"]
28530#[inline(always)]
28531#[target_feature(enable = "neon")]
28532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28533#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
28534#[cfg_attr(
28535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28536    assert_instr(mls, LANE = 1)
28537)]
28538#[rustc_legacy_const_generics(3)]
28539#[cfg_attr(
28540    not(target_arch = "arm"),
28541    stable(feature = "neon_intrinsics", since = "1.59.0")
28542)]
28543#[cfg_attr(
28544    target_arch = "arm",
28545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28546)]
28547pub fn vmlsq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
28548    static_assert_uimm_bits!(LANE, 3);
28549    unsafe {
28550        vmlsq_u16(
28551            a,
28552            b,
28553            simd_shuffle!(
28554                c,
28555                c,
28556                [
28557                    LANE as u32,
28558                    LANE as u32,
28559                    LANE as u32,
28560                    LANE as u32,
28561                    LANE as u32,
28562                    LANE as u32,
28563                    LANE as u32,
28564                    LANE as u32
28565                ]
28566            ),
28567        )
28568    }
28569}
28570#[doc = "Vector multiply subtract with scalar"]
28571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s32)"]
28572#[inline(always)]
28573#[target_feature(enable = "neon")]
28574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28575#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28576#[cfg_attr(
28577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28578    assert_instr(mls, LANE = 1)
28579)]
28580#[rustc_legacy_const_generics(3)]
28581#[cfg_attr(
28582    not(target_arch = "arm"),
28583    stable(feature = "neon_intrinsics", since = "1.59.0")
28584)]
28585#[cfg_attr(
28586    target_arch = "arm",
28587    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28588)]
28589pub fn vmls_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
28590    static_assert_uimm_bits!(LANE, 1);
28591    unsafe { vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28592}
28593#[doc = "Vector multiply subtract with scalar"]
28594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u32)"]
28595#[inline(always)]
28596#[target_feature(enable = "neon")]
28597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28598#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28599#[cfg_attr(
28600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28601    assert_instr(mls, LANE = 1)
28602)]
28603#[rustc_legacy_const_generics(3)]
28604#[cfg_attr(
28605    not(target_arch = "arm"),
28606    stable(feature = "neon_intrinsics", since = "1.59.0")
28607)]
28608#[cfg_attr(
28609    target_arch = "arm",
28610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28611)]
28612pub fn vmls_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
28613    static_assert_uimm_bits!(LANE, 1);
28614    unsafe { vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28615}
28616#[doc = "Vector multiply subtract with scalar"]
28617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s32)"]
28618#[inline(always)]
28619#[target_feature(enable = "neon")]
28620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28621#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28622#[cfg_attr(
28623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28624    assert_instr(mls, LANE = 1)
28625)]
28626#[rustc_legacy_const_generics(3)]
28627#[cfg_attr(
28628    not(target_arch = "arm"),
28629    stable(feature = "neon_intrinsics", since = "1.59.0")
28630)]
28631#[cfg_attr(
28632    target_arch = "arm",
28633    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28634)]
28635pub fn vmls_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
28636    static_assert_uimm_bits!(LANE, 2);
28637    unsafe { vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28638}
28639#[doc = "Vector multiply subtract with scalar"]
28640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u32)"]
28641#[inline(always)]
28642#[target_feature(enable = "neon")]
28643#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28644#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28645#[cfg_attr(
28646    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28647    assert_instr(mls, LANE = 1)
28648)]
28649#[rustc_legacy_const_generics(3)]
28650#[cfg_attr(
28651    not(target_arch = "arm"),
28652    stable(feature = "neon_intrinsics", since = "1.59.0")
28653)]
28654#[cfg_attr(
28655    target_arch = "arm",
28656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28657)]
28658pub fn vmls_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
28659    static_assert_uimm_bits!(LANE, 2);
28660    unsafe { vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
28661}
28662#[doc = "Vector multiply subtract with scalar"]
28663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s32)"]
28664#[inline(always)]
28665#[target_feature(enable = "neon")]
28666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28667#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28668#[cfg_attr(
28669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28670    assert_instr(mls, LANE = 1)
28671)]
28672#[rustc_legacy_const_generics(3)]
28673#[cfg_attr(
28674    not(target_arch = "arm"),
28675    stable(feature = "neon_intrinsics", since = "1.59.0")
28676)]
28677#[cfg_attr(
28678    target_arch = "arm",
28679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28680)]
28681pub fn vmlsq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
28682    static_assert_uimm_bits!(LANE, 1);
28683    unsafe {
28684        vmlsq_s32(
28685            a,
28686            b,
28687            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28688        )
28689    }
28690}
28691#[doc = "Vector multiply subtract with scalar"]
28692#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u32)"]
28693#[inline(always)]
28694#[target_feature(enable = "neon")]
28695#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28696#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28697#[cfg_attr(
28698    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28699    assert_instr(mls, LANE = 1)
28700)]
28701#[rustc_legacy_const_generics(3)]
28702#[cfg_attr(
28703    not(target_arch = "arm"),
28704    stable(feature = "neon_intrinsics", since = "1.59.0")
28705)]
28706#[cfg_attr(
28707    target_arch = "arm",
28708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28709)]
28710pub fn vmlsq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
28711    static_assert_uimm_bits!(LANE, 1);
28712    unsafe {
28713        vmlsq_u32(
28714            a,
28715            b,
28716            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28717        )
28718    }
28719}
28720#[doc = "Vector multiply subtract with scalar"]
28721#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s32)"]
28722#[inline(always)]
28723#[target_feature(enable = "neon")]
28724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28725#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28726#[cfg_attr(
28727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28728    assert_instr(mls, LANE = 1)
28729)]
28730#[rustc_legacy_const_generics(3)]
28731#[cfg_attr(
28732    not(target_arch = "arm"),
28733    stable(feature = "neon_intrinsics", since = "1.59.0")
28734)]
28735#[cfg_attr(
28736    target_arch = "arm",
28737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28738)]
28739pub fn vmlsq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
28740    static_assert_uimm_bits!(LANE, 2);
28741    unsafe {
28742        vmlsq_s32(
28743            a,
28744            b,
28745            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28746        )
28747    }
28748}
28749#[doc = "Vector multiply subtract with scalar"]
28750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u32)"]
28751#[inline(always)]
28752#[target_feature(enable = "neon")]
28753#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28754#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
28755#[cfg_attr(
28756    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28757    assert_instr(mls, LANE = 1)
28758)]
28759#[rustc_legacy_const_generics(3)]
28760#[cfg_attr(
28761    not(target_arch = "arm"),
28762    stable(feature = "neon_intrinsics", since = "1.59.0")
28763)]
28764#[cfg_attr(
28765    target_arch = "arm",
28766    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28767)]
28768pub fn vmlsq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
28769    static_assert_uimm_bits!(LANE, 2);
28770    unsafe {
28771        vmlsq_u32(
28772            a,
28773            b,
28774            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
28775        )
28776    }
28777}
28778#[doc = "Vector multiply subtract with scalar"]
28779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_f32)"]
28780#[inline(always)]
28781#[target_feature(enable = "neon")]
28782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28783#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
28784#[cfg_attr(
28785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28786    assert_instr(fmul)
28787)]
28788#[cfg_attr(
28789    not(target_arch = "arm"),
28790    stable(feature = "neon_intrinsics", since = "1.59.0")
28791)]
28792#[cfg_attr(
28793    target_arch = "arm",
28794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28795)]
28796pub fn vmls_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
28797    vmls_f32(a, b, vdup_n_f32(c))
28798}
28799#[doc = "Vector multiply subtract with scalar"]
28800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_f32)"]
28801#[inline(always)]
28802#[target_feature(enable = "neon")]
28803#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28804#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
28805#[cfg_attr(
28806    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28807    assert_instr(fmul)
28808)]
28809#[cfg_attr(
28810    not(target_arch = "arm"),
28811    stable(feature = "neon_intrinsics", since = "1.59.0")
28812)]
28813#[cfg_attr(
28814    target_arch = "arm",
28815    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28816)]
28817pub fn vmlsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
28818    vmlsq_f32(a, b, vdupq_n_f32(c))
28819}
28820#[doc = "Vector multiply subtract with scalar"]
28821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s16)"]
28822#[inline(always)]
28823#[target_feature(enable = "neon")]
28824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28825#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28826#[cfg_attr(
28827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28828    assert_instr(mls)
28829)]
28830#[cfg_attr(
28831    not(target_arch = "arm"),
28832    stable(feature = "neon_intrinsics", since = "1.59.0")
28833)]
28834#[cfg_attr(
28835    target_arch = "arm",
28836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28837)]
28838pub fn vmls_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
28839    vmls_s16(a, b, vdup_n_s16(c))
28840}
28841#[doc = "Vector multiply subtract with scalar"]
28842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_s16)"]
28843#[inline(always)]
28844#[target_feature(enable = "neon")]
28845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28846#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28847#[cfg_attr(
28848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28849    assert_instr(mls)
28850)]
28851#[cfg_attr(
28852    not(target_arch = "arm"),
28853    stable(feature = "neon_intrinsics", since = "1.59.0")
28854)]
28855#[cfg_attr(
28856    target_arch = "arm",
28857    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28858)]
28859pub fn vmlsq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
28860    vmlsq_s16(a, b, vdupq_n_s16(c))
28861}
28862#[doc = "Vector multiply subtract with scalar"]
28863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u16)"]
28864#[inline(always)]
28865#[target_feature(enable = "neon")]
28866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28867#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28868#[cfg_attr(
28869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28870    assert_instr(mls)
28871)]
28872#[cfg_attr(
28873    not(target_arch = "arm"),
28874    stable(feature = "neon_intrinsics", since = "1.59.0")
28875)]
28876#[cfg_attr(
28877    target_arch = "arm",
28878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28879)]
28880pub fn vmls_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
28881    vmls_u16(a, b, vdup_n_u16(c))
28882}
28883#[doc = "Vector multiply subtract with scalar"]
28884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u16)"]
28885#[inline(always)]
28886#[target_feature(enable = "neon")]
28887#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28888#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
28889#[cfg_attr(
28890    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28891    assert_instr(mls)
28892)]
28893#[cfg_attr(
28894    not(target_arch = "arm"),
28895    stable(feature = "neon_intrinsics", since = "1.59.0")
28896)]
28897#[cfg_attr(
28898    target_arch = "arm",
28899    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28900)]
28901pub fn vmlsq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
28902    vmlsq_u16(a, b, vdupq_n_u16(c))
28903}
28904#[doc = "Vector multiply subtract with scalar"]
28905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s32)"]
28906#[inline(always)]
28907#[target_feature(enable = "neon")]
28908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28909#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
28910#[cfg_attr(
28911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28912    assert_instr(mls)
28913)]
28914#[cfg_attr(
28915    not(target_arch = "arm"),
28916    stable(feature = "neon_intrinsics", since = "1.59.0")
28917)]
28918#[cfg_attr(
28919    target_arch = "arm",
28920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28921)]
28922pub fn vmls_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
28923    vmls_s32(a, b, vdup_n_s32(c))
28924}
28925#[doc = "Vector multiply subtract with scalar"]
28926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_s32)"]
28927#[inline(always)]
28928#[target_feature(enable = "neon")]
28929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28930#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
28931#[cfg_attr(
28932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28933    assert_instr(mls)
28934)]
28935#[cfg_attr(
28936    not(target_arch = "arm"),
28937    stable(feature = "neon_intrinsics", since = "1.59.0")
28938)]
28939#[cfg_attr(
28940    target_arch = "arm",
28941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28942)]
28943pub fn vmlsq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
28944    vmlsq_s32(a, b, vdupq_n_s32(c))
28945}
28946#[doc = "Vector multiply subtract with scalar"]
28947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u32)"]
28948#[inline(always)]
28949#[target_feature(enable = "neon")]
28950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28951#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
28952#[cfg_attr(
28953    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28954    assert_instr(mls)
28955)]
28956#[cfg_attr(
28957    not(target_arch = "arm"),
28958    stable(feature = "neon_intrinsics", since = "1.59.0")
28959)]
28960#[cfg_attr(
28961    target_arch = "arm",
28962    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28963)]
28964pub fn vmls_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
28965    vmls_u32(a, b, vdup_n_u32(c))
28966}
28967#[doc = "Vector multiply subtract with scalar"]
28968#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u32)"]
28969#[inline(always)]
28970#[target_feature(enable = "neon")]
28971#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28972#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
28973#[cfg_attr(
28974    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28975    assert_instr(mls)
28976)]
28977#[cfg_attr(
28978    not(target_arch = "arm"),
28979    stable(feature = "neon_intrinsics", since = "1.59.0")
28980)]
28981#[cfg_attr(
28982    target_arch = "arm",
28983    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
28984)]
28985pub fn vmlsq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
28986    vmlsq_u32(a, b, vdupq_n_u32(c))
28987}
28988#[doc = "Multiply-subtract from accumulator"]
28989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s8)"]
28990#[inline(always)]
28991#[target_feature(enable = "neon")]
28992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28993#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
28994#[cfg_attr(
28995    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
28996    assert_instr(mls)
28997)]
28998#[cfg_attr(
28999    not(target_arch = "arm"),
29000    stable(feature = "neon_intrinsics", since = "1.59.0")
29001)]
29002#[cfg_attr(
29003    target_arch = "arm",
29004    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29005)]
29006pub fn vmls_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
29007    unsafe { simd_sub(a, simd_mul(b, c)) }
29008}
29009#[doc = "Multiply-subtract from accumulator"]
29010#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s8)"]
29011#[inline(always)]
29012#[target_feature(enable = "neon")]
29013#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29014#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
29015#[cfg_attr(
29016    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29017    assert_instr(mls)
29018)]
29019#[cfg_attr(
29020    not(target_arch = "arm"),
29021    stable(feature = "neon_intrinsics", since = "1.59.0")
29022)]
29023#[cfg_attr(
29024    target_arch = "arm",
29025    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29026)]
29027pub fn vmlsq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
29028    unsafe { simd_sub(a, simd_mul(b, c)) }
29029}
29030#[doc = "Multiply-subtract from accumulator"]
29031#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s16)"]
29032#[inline(always)]
29033#[target_feature(enable = "neon")]
29034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29035#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
29036#[cfg_attr(
29037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29038    assert_instr(mls)
29039)]
29040#[cfg_attr(
29041    not(target_arch = "arm"),
29042    stable(feature = "neon_intrinsics", since = "1.59.0")
29043)]
29044#[cfg_attr(
29045    target_arch = "arm",
29046    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29047)]
29048pub fn vmls_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
29049    unsafe { simd_sub(a, simd_mul(b, c)) }
29050}
29051#[doc = "Multiply-subtract from accumulator"]
29052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s16)"]
29053#[inline(always)]
29054#[target_feature(enable = "neon")]
29055#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29056#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
29057#[cfg_attr(
29058    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29059    assert_instr(mls)
29060)]
29061#[cfg_attr(
29062    not(target_arch = "arm"),
29063    stable(feature = "neon_intrinsics", since = "1.59.0")
29064)]
29065#[cfg_attr(
29066    target_arch = "arm",
29067    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29068)]
29069pub fn vmlsq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
29070    unsafe { simd_sub(a, simd_mul(b, c)) }
29071}
29072#[doc = "Multiply-subtract from accumulator"]
29073#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s32)"]
29074#[inline(always)]
29075#[target_feature(enable = "neon")]
29076#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29077#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
29078#[cfg_attr(
29079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29080    assert_instr(mls)
29081)]
29082#[cfg_attr(
29083    not(target_arch = "arm"),
29084    stable(feature = "neon_intrinsics", since = "1.59.0")
29085)]
29086#[cfg_attr(
29087    target_arch = "arm",
29088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29089)]
29090pub fn vmls_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
29091    unsafe { simd_sub(a, simd_mul(b, c)) }
29092}
29093#[doc = "Multiply-subtract from accumulator"]
29094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s32)"]
29095#[inline(always)]
29096#[target_feature(enable = "neon")]
29097#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29098#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
29099#[cfg_attr(
29100    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29101    assert_instr(mls)
29102)]
29103#[cfg_attr(
29104    not(target_arch = "arm"),
29105    stable(feature = "neon_intrinsics", since = "1.59.0")
29106)]
29107#[cfg_attr(
29108    target_arch = "arm",
29109    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29110)]
29111pub fn vmlsq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
29112    unsafe { simd_sub(a, simd_mul(b, c)) }
29113}
29114#[doc = "Multiply-subtract from accumulator"]
29115#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u8)"]
29116#[inline(always)]
29117#[target_feature(enable = "neon")]
29118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29119#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
29120#[cfg_attr(
29121    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29122    assert_instr(mls)
29123)]
29124#[cfg_attr(
29125    not(target_arch = "arm"),
29126    stable(feature = "neon_intrinsics", since = "1.59.0")
29127)]
29128#[cfg_attr(
29129    target_arch = "arm",
29130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29131)]
29132pub fn vmls_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
29133    unsafe { simd_sub(a, simd_mul(b, c)) }
29134}
29135#[doc = "Multiply-subtract from accumulator"]
29136#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u8)"]
29137#[inline(always)]
29138#[target_feature(enable = "neon")]
29139#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29140#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
29141#[cfg_attr(
29142    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29143    assert_instr(mls)
29144)]
29145#[cfg_attr(
29146    not(target_arch = "arm"),
29147    stable(feature = "neon_intrinsics", since = "1.59.0")
29148)]
29149#[cfg_attr(
29150    target_arch = "arm",
29151    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29152)]
29153pub fn vmlsq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
29154    unsafe { simd_sub(a, simd_mul(b, c)) }
29155}
29156#[doc = "Multiply-subtract from accumulator"]
29157#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u16)"]
29158#[inline(always)]
29159#[target_feature(enable = "neon")]
29160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29161#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
29162#[cfg_attr(
29163    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29164    assert_instr(mls)
29165)]
29166#[cfg_attr(
29167    not(target_arch = "arm"),
29168    stable(feature = "neon_intrinsics", since = "1.59.0")
29169)]
29170#[cfg_attr(
29171    target_arch = "arm",
29172    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29173)]
29174pub fn vmls_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
29175    unsafe { simd_sub(a, simd_mul(b, c)) }
29176}
29177#[doc = "Multiply-subtract from accumulator"]
29178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u16)"]
29179#[inline(always)]
29180#[target_feature(enable = "neon")]
29181#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29182#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
29183#[cfg_attr(
29184    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29185    assert_instr(mls)
29186)]
29187#[cfg_attr(
29188    not(target_arch = "arm"),
29189    stable(feature = "neon_intrinsics", since = "1.59.0")
29190)]
29191#[cfg_attr(
29192    target_arch = "arm",
29193    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29194)]
29195pub fn vmlsq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
29196    unsafe { simd_sub(a, simd_mul(b, c)) }
29197}
29198#[doc = "Multiply-subtract from accumulator"]
29199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u32)"]
29200#[inline(always)]
29201#[target_feature(enable = "neon")]
29202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29203#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
29204#[cfg_attr(
29205    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29206    assert_instr(mls)
29207)]
29208#[cfg_attr(
29209    not(target_arch = "arm"),
29210    stable(feature = "neon_intrinsics", since = "1.59.0")
29211)]
29212#[cfg_attr(
29213    target_arch = "arm",
29214    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29215)]
29216pub fn vmls_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
29217    unsafe { simd_sub(a, simd_mul(b, c)) }
29218}
29219#[doc = "Multiply-subtract from accumulator"]
29220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u32)"]
29221#[inline(always)]
29222#[target_feature(enable = "neon")]
29223#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29224#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
29225#[cfg_attr(
29226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29227    assert_instr(mls)
29228)]
29229#[cfg_attr(
29230    not(target_arch = "arm"),
29231    stable(feature = "neon_intrinsics", since = "1.59.0")
29232)]
29233#[cfg_attr(
29234    target_arch = "arm",
29235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29236)]
29237pub fn vmlsq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
29238    unsafe { simd_sub(a, simd_mul(b, c)) }
29239}
29240#[doc = "Vector widening multiply subtract with scalar"]
29241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s16)"]
29242#[inline(always)]
29243#[target_feature(enable = "neon")]
29244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29245#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
29246#[cfg_attr(
29247    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29248    assert_instr(smlsl, LANE = 1)
29249)]
29250#[rustc_legacy_const_generics(3)]
29251#[cfg_attr(
29252    not(target_arch = "arm"),
29253    stable(feature = "neon_intrinsics", since = "1.59.0")
29254)]
29255#[cfg_attr(
29256    target_arch = "arm",
29257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29258)]
29259pub fn vmlsl_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
29260    static_assert_uimm_bits!(LANE, 2);
29261    unsafe {
29262        vmlsl_s16(
29263            a,
29264            b,
29265            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29266        )
29267    }
29268}
29269#[doc = "Vector widening multiply subtract with scalar"]
29270#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s16)"]
29271#[inline(always)]
29272#[target_feature(enable = "neon")]
29273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29274#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
29275#[cfg_attr(
29276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29277    assert_instr(smlsl, LANE = 1)
29278)]
29279#[rustc_legacy_const_generics(3)]
29280#[cfg_attr(
29281    not(target_arch = "arm"),
29282    stable(feature = "neon_intrinsics", since = "1.59.0")
29283)]
29284#[cfg_attr(
29285    target_arch = "arm",
29286    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29287)]
29288pub fn vmlsl_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
29289    static_assert_uimm_bits!(LANE, 3);
29290    unsafe {
29291        vmlsl_s16(
29292            a,
29293            b,
29294            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29295        )
29296    }
29297}
29298#[doc = "Vector widening multiply subtract with scalar"]
29299#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s32)"]
29300#[inline(always)]
29301#[target_feature(enable = "neon")]
29302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29303#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
29304#[cfg_attr(
29305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29306    assert_instr(smlsl, LANE = 1)
29307)]
29308#[rustc_legacy_const_generics(3)]
29309#[cfg_attr(
29310    not(target_arch = "arm"),
29311    stable(feature = "neon_intrinsics", since = "1.59.0")
29312)]
29313#[cfg_attr(
29314    target_arch = "arm",
29315    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29316)]
29317pub fn vmlsl_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
29318    static_assert_uimm_bits!(LANE, 1);
29319    unsafe { vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29320}
29321#[doc = "Vector widening multiply subtract with scalar"]
29322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s32)"]
29323#[inline(always)]
29324#[target_feature(enable = "neon")]
29325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29326#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
29327#[cfg_attr(
29328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29329    assert_instr(smlsl, LANE = 1)
29330)]
29331#[rustc_legacy_const_generics(3)]
29332#[cfg_attr(
29333    not(target_arch = "arm"),
29334    stable(feature = "neon_intrinsics", since = "1.59.0")
29335)]
29336#[cfg_attr(
29337    target_arch = "arm",
29338    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29339)]
29340pub fn vmlsl_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
29341    static_assert_uimm_bits!(LANE, 2);
29342    unsafe { vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29343}
29344#[doc = "Vector widening multiply subtract with scalar"]
29345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u16)"]
29346#[inline(always)]
29347#[target_feature(enable = "neon")]
29348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29349#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
29350#[cfg_attr(
29351    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29352    assert_instr(umlsl, LANE = 1)
29353)]
29354#[rustc_legacy_const_generics(3)]
29355#[cfg_attr(
29356    not(target_arch = "arm"),
29357    stable(feature = "neon_intrinsics", since = "1.59.0")
29358)]
29359#[cfg_attr(
29360    target_arch = "arm",
29361    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29362)]
29363pub fn vmlsl_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
29364    static_assert_uimm_bits!(LANE, 2);
29365    unsafe {
29366        vmlsl_u16(
29367            a,
29368            b,
29369            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29370        )
29371    }
29372}
29373#[doc = "Vector widening multiply subtract with scalar"]
29374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u16)"]
29375#[inline(always)]
29376#[target_feature(enable = "neon")]
29377#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29378#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
29379#[cfg_attr(
29380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29381    assert_instr(umlsl, LANE = 1)
29382)]
29383#[rustc_legacy_const_generics(3)]
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_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
29393    static_assert_uimm_bits!(LANE, 3);
29394    unsafe {
29395        vmlsl_u16(
29396            a,
29397            b,
29398            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
29399        )
29400    }
29401}
29402#[doc = "Vector widening multiply subtract with scalar"]
29403#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u32)"]
29404#[inline(always)]
29405#[target_feature(enable = "neon")]
29406#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29407#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
29408#[cfg_attr(
29409    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29410    assert_instr(umlsl, LANE = 1)
29411)]
29412#[rustc_legacy_const_generics(3)]
29413#[cfg_attr(
29414    not(target_arch = "arm"),
29415    stable(feature = "neon_intrinsics", since = "1.59.0")
29416)]
29417#[cfg_attr(
29418    target_arch = "arm",
29419    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29420)]
29421pub fn vmlsl_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
29422    static_assert_uimm_bits!(LANE, 1);
29423    unsafe { vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29424}
29425#[doc = "Vector widening multiply subtract with scalar"]
29426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u32)"]
29427#[inline(always)]
29428#[target_feature(enable = "neon")]
29429#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29430#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
29431#[cfg_attr(
29432    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29433    assert_instr(umlsl, LANE = 1)
29434)]
29435#[rustc_legacy_const_generics(3)]
29436#[cfg_attr(
29437    not(target_arch = "arm"),
29438    stable(feature = "neon_intrinsics", since = "1.59.0")
29439)]
29440#[cfg_attr(
29441    target_arch = "arm",
29442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29443)]
29444pub fn vmlsl_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
29445    static_assert_uimm_bits!(LANE, 2);
29446    unsafe { vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32])) }
29447}
29448#[doc = "Vector widening multiply subtract with scalar"]
29449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s16)"]
29450#[inline(always)]
29451#[target_feature(enable = "neon")]
29452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29453#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
29454#[cfg_attr(
29455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29456    assert_instr(smlsl)
29457)]
29458#[cfg_attr(
29459    not(target_arch = "arm"),
29460    stable(feature = "neon_intrinsics", since = "1.59.0")
29461)]
29462#[cfg_attr(
29463    target_arch = "arm",
29464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29465)]
29466pub fn vmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
29467    vmlsl_s16(a, b, vdup_n_s16(c))
29468}
29469#[doc = "Vector widening multiply subtract with scalar"]
29470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s32)"]
29471#[inline(always)]
29472#[target_feature(enable = "neon")]
29473#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29474#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
29475#[cfg_attr(
29476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29477    assert_instr(smlsl)
29478)]
29479#[cfg_attr(
29480    not(target_arch = "arm"),
29481    stable(feature = "neon_intrinsics", since = "1.59.0")
29482)]
29483#[cfg_attr(
29484    target_arch = "arm",
29485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29486)]
29487pub fn vmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
29488    vmlsl_s32(a, b, vdup_n_s32(c))
29489}
29490#[doc = "Vector widening multiply subtract with scalar"]
29491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u16)"]
29492#[inline(always)]
29493#[target_feature(enable = "neon")]
29494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29495#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
29496#[cfg_attr(
29497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29498    assert_instr(umlsl)
29499)]
29500#[cfg_attr(
29501    not(target_arch = "arm"),
29502    stable(feature = "neon_intrinsics", since = "1.59.0")
29503)]
29504#[cfg_attr(
29505    target_arch = "arm",
29506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29507)]
29508pub fn vmlsl_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
29509    vmlsl_u16(a, b, vdup_n_u16(c))
29510}
29511#[doc = "Vector widening multiply subtract with scalar"]
29512#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u32)"]
29513#[inline(always)]
29514#[target_feature(enable = "neon")]
29515#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29516#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32"))]
29517#[cfg_attr(
29518    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29519    assert_instr(umlsl)
29520)]
29521#[cfg_attr(
29522    not(target_arch = "arm"),
29523    stable(feature = "neon_intrinsics", since = "1.59.0")
29524)]
29525#[cfg_attr(
29526    target_arch = "arm",
29527    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29528)]
29529pub fn vmlsl_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
29530    vmlsl_u32(a, b, vdup_n_u32(c))
29531}
29532#[doc = "Signed multiply-subtract long"]
29533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s8)"]
29534#[inline(always)]
29535#[target_feature(enable = "neon")]
29536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29537#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s8"))]
29538#[cfg_attr(
29539    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29540    assert_instr(smlsl)
29541)]
29542#[cfg_attr(
29543    not(target_arch = "arm"),
29544    stable(feature = "neon_intrinsics", since = "1.59.0")
29545)]
29546#[cfg_attr(
29547    target_arch = "arm",
29548    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29549)]
29550pub fn vmlsl_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
29551    unsafe { simd_sub(a, vmull_s8(b, c)) }
29552}
29553#[doc = "Signed multiply-subtract long"]
29554#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s16)"]
29555#[inline(always)]
29556#[target_feature(enable = "neon")]
29557#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29558#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
29559#[cfg_attr(
29560    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29561    assert_instr(smlsl)
29562)]
29563#[cfg_attr(
29564    not(target_arch = "arm"),
29565    stable(feature = "neon_intrinsics", since = "1.59.0")
29566)]
29567#[cfg_attr(
29568    target_arch = "arm",
29569    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29570)]
29571pub fn vmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
29572    unsafe { simd_sub(a, vmull_s16(b, c)) }
29573}
29574#[doc = "Signed multiply-subtract long"]
29575#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s32)"]
29576#[inline(always)]
29577#[target_feature(enable = "neon")]
29578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29579#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
29580#[cfg_attr(
29581    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29582    assert_instr(smlsl)
29583)]
29584#[cfg_attr(
29585    not(target_arch = "arm"),
29586    stable(feature = "neon_intrinsics", since = "1.59.0")
29587)]
29588#[cfg_attr(
29589    target_arch = "arm",
29590    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29591)]
29592pub fn vmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
29593    unsafe { simd_sub(a, vmull_s32(b, c)) }
29594}
29595#[doc = "Unsigned multiply-subtract long"]
29596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u8)"]
29597#[inline(always)]
29598#[target_feature(enable = "neon")]
29599#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29600#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u8"))]
29601#[cfg_attr(
29602    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29603    assert_instr(umlsl)
29604)]
29605#[cfg_attr(
29606    not(target_arch = "arm"),
29607    stable(feature = "neon_intrinsics", since = "1.59.0")
29608)]
29609#[cfg_attr(
29610    target_arch = "arm",
29611    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29612)]
29613pub fn vmlsl_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
29614    unsafe { simd_sub(a, vmull_u8(b, c)) }
29615}
29616#[doc = "Unsigned multiply-subtract long"]
29617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u16)"]
29618#[inline(always)]
29619#[target_feature(enable = "neon")]
29620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29621#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
29622#[cfg_attr(
29623    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29624    assert_instr(umlsl)
29625)]
29626#[cfg_attr(
29627    not(target_arch = "arm"),
29628    stable(feature = "neon_intrinsics", since = "1.59.0")
29629)]
29630#[cfg_attr(
29631    target_arch = "arm",
29632    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29633)]
29634pub fn vmlsl_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
29635    unsafe { simd_sub(a, vmull_u16(b, c)) }
29636}
29637#[doc = "Unsigned multiply-subtract long"]
29638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u32)"]
29639#[inline(always)]
29640#[target_feature(enable = "neon")]
29641#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29642#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32"))]
29643#[cfg_attr(
29644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29645    assert_instr(umlsl)
29646)]
29647#[cfg_attr(
29648    not(target_arch = "arm"),
29649    stable(feature = "neon_intrinsics", since = "1.59.0")
29650)]
29651#[cfg_attr(
29652    target_arch = "arm",
29653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29654)]
29655pub fn vmlsl_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
29656    unsafe { simd_sub(a, vmull_u32(b, c)) }
29657}
29658#[doc = "8-bit integer matrix multiply-accumulate"]
29659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmmlaq_s32)"]
29660#[inline(always)]
29661#[target_feature(enable = "neon,i8mm")]
29662#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
29663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
29664#[cfg_attr(
29665    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29666    assert_instr(smmla)
29667)]
29668#[cfg_attr(
29669    not(target_arch = "arm"),
29670    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
29671)]
29672#[cfg_attr(
29673    target_arch = "arm",
29674    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29675)]
29676pub fn vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
29677    unsafe extern "unadjusted" {
29678        #[cfg_attr(
29679            any(target_arch = "aarch64", target_arch = "arm64ec"),
29680            link_name = "llvm.aarch64.neon.smmla.v4i32.v16i8"
29681        )]
29682        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.smmla.v4i32.v16i8")]
29683        fn _vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t;
29684    }
29685    unsafe { _vmmlaq_s32(a, b, c) }
29686}
29687#[doc = "8-bit integer matrix multiply-accumulate"]
29688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmmlaq_u32)"]
29689#[inline(always)]
29690#[target_feature(enable = "neon,i8mm")]
29691#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
29692#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
29693#[cfg_attr(
29694    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29695    assert_instr(ummla)
29696)]
29697#[cfg_attr(
29698    not(target_arch = "arm"),
29699    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
29700)]
29701#[cfg_attr(
29702    target_arch = "arm",
29703    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29704)]
29705pub fn vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
29706    unsafe extern "unadjusted" {
29707        #[cfg_attr(
29708            any(target_arch = "aarch64", target_arch = "arm64ec"),
29709            link_name = "llvm.aarch64.neon.ummla.v4i32.v16i8"
29710        )]
29711        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.ummla.v4i32.v16i8")]
29712        fn _vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t;
29713    }
29714    unsafe { _vmmlaq_u32(a, b, c) }
29715}
29716#[doc = "Duplicate element to vector"]
29717#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_f16)"]
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.16"))]
29722#[cfg_attr(
29723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29724    assert_instr(dup)
29725)]
29726#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
29727#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
29728#[cfg(not(target_arch = "arm64ec"))]
29729pub fn vmov_n_f16(a: f16) -> float16x4_t {
29730    vdup_n_f16(a)
29731}
29732#[doc = "Duplicate element to vector"]
29733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_f16)"]
29734#[inline(always)]
29735#[target_feature(enable = "neon")]
29736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29737#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29738#[cfg_attr(
29739    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29740    assert_instr(dup)
29741)]
29742#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
29743#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
29744#[cfg(not(target_arch = "arm64ec"))]
29745pub fn vmovq_n_f16(a: f16) -> float16x8_t {
29746    vdupq_n_f16(a)
29747}
29748#[doc = "Duplicate vector element to vector or scalar"]
29749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_f32)"]
29750#[inline(always)]
29751#[target_feature(enable = "neon")]
29752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29753#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
29754#[cfg_attr(
29755    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29756    assert_instr(dup)
29757)]
29758#[cfg_attr(
29759    not(target_arch = "arm"),
29760    stable(feature = "neon_intrinsics", since = "1.59.0")
29761)]
29762#[cfg_attr(
29763    target_arch = "arm",
29764    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29765)]
29766pub fn vmov_n_f32(value: f32) -> float32x2_t {
29767    vdup_n_f32(value)
29768}
29769#[doc = "Duplicate vector element to vector or scalar"]
29770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_p16)"]
29771#[inline(always)]
29772#[target_feature(enable = "neon")]
29773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29774#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29775#[cfg_attr(
29776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29777    assert_instr(dup)
29778)]
29779#[cfg_attr(
29780    not(target_arch = "arm"),
29781    stable(feature = "neon_intrinsics", since = "1.59.0")
29782)]
29783#[cfg_attr(
29784    target_arch = "arm",
29785    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29786)]
29787pub fn vmov_n_p16(value: p16) -> poly16x4_t {
29788    vdup_n_p16(value)
29789}
29790#[doc = "Duplicate vector element to vector or scalar"]
29791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_p8)"]
29792#[inline(always)]
29793#[target_feature(enable = "neon")]
29794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29795#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
29796#[cfg_attr(
29797    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29798    assert_instr(dup)
29799)]
29800#[cfg_attr(
29801    not(target_arch = "arm"),
29802    stable(feature = "neon_intrinsics", since = "1.59.0")
29803)]
29804#[cfg_attr(
29805    target_arch = "arm",
29806    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29807)]
29808pub fn vmov_n_p8(value: p8) -> poly8x8_t {
29809    vdup_n_p8(value)
29810}
29811#[doc = "Duplicate vector element to vector or scalar"]
29812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s16)"]
29813#[inline(always)]
29814#[target_feature(enable = "neon")]
29815#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29816#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29817#[cfg_attr(
29818    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29819    assert_instr(dup)
29820)]
29821#[cfg_attr(
29822    not(target_arch = "arm"),
29823    stable(feature = "neon_intrinsics", since = "1.59.0")
29824)]
29825#[cfg_attr(
29826    target_arch = "arm",
29827    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29828)]
29829pub fn vmov_n_s16(value: i16) -> int16x4_t {
29830    vdup_n_s16(value)
29831}
29832#[doc = "Duplicate vector element to vector or scalar"]
29833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s32)"]
29834#[inline(always)]
29835#[target_feature(enable = "neon")]
29836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29837#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
29838#[cfg_attr(
29839    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29840    assert_instr(dup)
29841)]
29842#[cfg_attr(
29843    not(target_arch = "arm"),
29844    stable(feature = "neon_intrinsics", since = "1.59.0")
29845)]
29846#[cfg_attr(
29847    target_arch = "arm",
29848    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29849)]
29850pub fn vmov_n_s32(value: i32) -> int32x2_t {
29851    vdup_n_s32(value)
29852}
29853#[doc = "Duplicate vector element to vector or scalar"]
29854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s64)"]
29855#[inline(always)]
29856#[target_feature(enable = "neon")]
29857#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29858#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
29859#[cfg_attr(
29860    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29861    assert_instr(fmov)
29862)]
29863#[cfg_attr(
29864    not(target_arch = "arm"),
29865    stable(feature = "neon_intrinsics", since = "1.59.0")
29866)]
29867#[cfg_attr(
29868    target_arch = "arm",
29869    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29870)]
29871pub fn vmov_n_s64(value: i64) -> int64x1_t {
29872    vdup_n_s64(value)
29873}
29874#[doc = "Duplicate vector element to vector or scalar"]
29875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_s8)"]
29876#[inline(always)]
29877#[target_feature(enable = "neon")]
29878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29879#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
29880#[cfg_attr(
29881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29882    assert_instr(dup)
29883)]
29884#[cfg_attr(
29885    not(target_arch = "arm"),
29886    stable(feature = "neon_intrinsics", since = "1.59.0")
29887)]
29888#[cfg_attr(
29889    target_arch = "arm",
29890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29891)]
29892pub fn vmov_n_s8(value: i8) -> int8x8_t {
29893    vdup_n_s8(value)
29894}
29895#[doc = "Duplicate vector element to vector or scalar"]
29896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u16)"]
29897#[inline(always)]
29898#[target_feature(enable = "neon")]
29899#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29900#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
29901#[cfg_attr(
29902    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29903    assert_instr(dup)
29904)]
29905#[cfg_attr(
29906    not(target_arch = "arm"),
29907    stable(feature = "neon_intrinsics", since = "1.59.0")
29908)]
29909#[cfg_attr(
29910    target_arch = "arm",
29911    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29912)]
29913pub fn vmov_n_u16(value: u16) -> uint16x4_t {
29914    vdup_n_u16(value)
29915}
29916#[doc = "Duplicate vector element to vector or scalar"]
29917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u32)"]
29918#[inline(always)]
29919#[target_feature(enable = "neon")]
29920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29921#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
29922#[cfg_attr(
29923    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29924    assert_instr(dup)
29925)]
29926#[cfg_attr(
29927    not(target_arch = "arm"),
29928    stable(feature = "neon_intrinsics", since = "1.59.0")
29929)]
29930#[cfg_attr(
29931    target_arch = "arm",
29932    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29933)]
29934pub fn vmov_n_u32(value: u32) -> uint32x2_t {
29935    vdup_n_u32(value)
29936}
29937#[doc = "Duplicate vector element to vector or scalar"]
29938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u64)"]
29939#[inline(always)]
29940#[target_feature(enable = "neon")]
29941#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29942#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
29943#[cfg_attr(
29944    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29945    assert_instr(fmov)
29946)]
29947#[cfg_attr(
29948    not(target_arch = "arm"),
29949    stable(feature = "neon_intrinsics", since = "1.59.0")
29950)]
29951#[cfg_attr(
29952    target_arch = "arm",
29953    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29954)]
29955pub fn vmov_n_u64(value: u64) -> uint64x1_t {
29956    vdup_n_u64(value)
29957}
29958#[doc = "Duplicate vector element to vector or scalar"]
29959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmov_n_u8)"]
29960#[inline(always)]
29961#[target_feature(enable = "neon")]
29962#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29963#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
29964#[cfg_attr(
29965    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29966    assert_instr(dup)
29967)]
29968#[cfg_attr(
29969    not(target_arch = "arm"),
29970    stable(feature = "neon_intrinsics", since = "1.59.0")
29971)]
29972#[cfg_attr(
29973    target_arch = "arm",
29974    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29975)]
29976pub fn vmov_n_u8(value: u8) -> uint8x8_t {
29977    vdup_n_u8(value)
29978}
29979#[doc = "Duplicate vector element to vector or scalar"]
29980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_f32)"]
29981#[inline(always)]
29982#[target_feature(enable = "neon")]
29983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29984#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
29985#[cfg_attr(
29986    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
29987    assert_instr(dup)
29988)]
29989#[cfg_attr(
29990    not(target_arch = "arm"),
29991    stable(feature = "neon_intrinsics", since = "1.59.0")
29992)]
29993#[cfg_attr(
29994    target_arch = "arm",
29995    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
29996)]
29997pub fn vmovq_n_f32(value: f32) -> float32x4_t {
29998    vdupq_n_f32(value)
29999}
30000#[doc = "Duplicate vector element to vector or scalar"]
30001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_p16)"]
30002#[inline(always)]
30003#[target_feature(enable = "neon")]
30004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30005#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
30006#[cfg_attr(
30007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30008    assert_instr(dup)
30009)]
30010#[cfg_attr(
30011    not(target_arch = "arm"),
30012    stable(feature = "neon_intrinsics", since = "1.59.0")
30013)]
30014#[cfg_attr(
30015    target_arch = "arm",
30016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30017)]
30018pub fn vmovq_n_p16(value: p16) -> poly16x8_t {
30019    vdupq_n_p16(value)
30020}
30021#[doc = "Duplicate vector element to vector or scalar"]
30022#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_p8)"]
30023#[inline(always)]
30024#[target_feature(enable = "neon")]
30025#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30026#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
30027#[cfg_attr(
30028    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30029    assert_instr(dup)
30030)]
30031#[cfg_attr(
30032    not(target_arch = "arm"),
30033    stable(feature = "neon_intrinsics", since = "1.59.0")
30034)]
30035#[cfg_attr(
30036    target_arch = "arm",
30037    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30038)]
30039pub fn vmovq_n_p8(value: p8) -> poly8x16_t {
30040    vdupq_n_p8(value)
30041}
30042#[doc = "Duplicate vector element to vector or scalar"]
30043#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s16)"]
30044#[inline(always)]
30045#[target_feature(enable = "neon")]
30046#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30047#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
30048#[cfg_attr(
30049    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30050    assert_instr(dup)
30051)]
30052#[cfg_attr(
30053    not(target_arch = "arm"),
30054    stable(feature = "neon_intrinsics", since = "1.59.0")
30055)]
30056#[cfg_attr(
30057    target_arch = "arm",
30058    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30059)]
30060pub fn vmovq_n_s16(value: i16) -> int16x8_t {
30061    vdupq_n_s16(value)
30062}
30063#[doc = "Duplicate vector element to vector or scalar"]
30064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s32)"]
30065#[inline(always)]
30066#[target_feature(enable = "neon")]
30067#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30068#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
30069#[cfg_attr(
30070    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30071    assert_instr(dup)
30072)]
30073#[cfg_attr(
30074    not(target_arch = "arm"),
30075    stable(feature = "neon_intrinsics", since = "1.59.0")
30076)]
30077#[cfg_attr(
30078    target_arch = "arm",
30079    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30080)]
30081pub fn vmovq_n_s32(value: i32) -> int32x4_t {
30082    vdupq_n_s32(value)
30083}
30084#[doc = "Duplicate vector element to vector or scalar"]
30085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s64)"]
30086#[inline(always)]
30087#[target_feature(enable = "neon")]
30088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30089#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
30090#[cfg_attr(
30091    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30092    assert_instr(dup)
30093)]
30094#[cfg_attr(
30095    not(target_arch = "arm"),
30096    stable(feature = "neon_intrinsics", since = "1.59.0")
30097)]
30098#[cfg_attr(
30099    target_arch = "arm",
30100    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30101)]
30102pub fn vmovq_n_s64(value: i64) -> int64x2_t {
30103    vdupq_n_s64(value)
30104}
30105#[doc = "Duplicate vector element to vector or scalar"]
30106#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_s8)"]
30107#[inline(always)]
30108#[target_feature(enable = "neon")]
30109#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30110#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
30111#[cfg_attr(
30112    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30113    assert_instr(dup)
30114)]
30115#[cfg_attr(
30116    not(target_arch = "arm"),
30117    stable(feature = "neon_intrinsics", since = "1.59.0")
30118)]
30119#[cfg_attr(
30120    target_arch = "arm",
30121    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30122)]
30123pub fn vmovq_n_s8(value: i8) -> int8x16_t {
30124    vdupq_n_s8(value)
30125}
30126#[doc = "Duplicate vector element to vector or scalar"]
30127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u16)"]
30128#[inline(always)]
30129#[target_feature(enable = "neon")]
30130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30131#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16"))]
30132#[cfg_attr(
30133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30134    assert_instr(dup)
30135)]
30136#[cfg_attr(
30137    not(target_arch = "arm"),
30138    stable(feature = "neon_intrinsics", since = "1.59.0")
30139)]
30140#[cfg_attr(
30141    target_arch = "arm",
30142    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30143)]
30144pub fn vmovq_n_u16(value: u16) -> uint16x8_t {
30145    vdupq_n_u16(value)
30146}
30147#[doc = "Duplicate vector element to vector or scalar"]
30148#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u32)"]
30149#[inline(always)]
30150#[target_feature(enable = "neon")]
30151#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30152#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32"))]
30153#[cfg_attr(
30154    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30155    assert_instr(dup)
30156)]
30157#[cfg_attr(
30158    not(target_arch = "arm"),
30159    stable(feature = "neon_intrinsics", since = "1.59.0")
30160)]
30161#[cfg_attr(
30162    target_arch = "arm",
30163    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30164)]
30165pub fn vmovq_n_u32(value: u32) -> uint32x4_t {
30166    vdupq_n_u32(value)
30167}
30168#[doc = "Duplicate vector element to vector or scalar"]
30169#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u64)"]
30170#[inline(always)]
30171#[target_feature(enable = "neon")]
30172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30173#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmov"))]
30174#[cfg_attr(
30175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30176    assert_instr(dup)
30177)]
30178#[cfg_attr(
30179    not(target_arch = "arm"),
30180    stable(feature = "neon_intrinsics", since = "1.59.0")
30181)]
30182#[cfg_attr(
30183    target_arch = "arm",
30184    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30185)]
30186pub fn vmovq_n_u64(value: u64) -> uint64x2_t {
30187    vdupq_n_u64(value)
30188}
30189#[doc = "Duplicate vector element to vector or scalar"]
30190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovq_n_u8)"]
30191#[inline(always)]
30192#[target_feature(enable = "neon")]
30193#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30194#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8"))]
30195#[cfg_attr(
30196    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30197    assert_instr(dup)
30198)]
30199#[cfg_attr(
30200    not(target_arch = "arm"),
30201    stable(feature = "neon_intrinsics", since = "1.59.0")
30202)]
30203#[cfg_attr(
30204    target_arch = "arm",
30205    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30206)]
30207pub fn vmovq_n_u8(value: u8) -> uint8x16_t {
30208    vdupq_n_u8(value)
30209}
30210#[doc = "Vector long move."]
30211#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s16)"]
30212#[inline(always)]
30213#[target_feature(enable = "neon")]
30214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30216#[cfg_attr(
30217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30218    assert_instr(sxtl)
30219)]
30220#[cfg_attr(
30221    not(target_arch = "arm"),
30222    stable(feature = "neon_intrinsics", since = "1.59.0")
30223)]
30224#[cfg_attr(
30225    target_arch = "arm",
30226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30227)]
30228pub fn vmovl_s16(a: int16x4_t) -> int32x4_t {
30229    unsafe { simd_cast(a) }
30230}
30231#[doc = "Vector long move."]
30232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s32)"]
30233#[inline(always)]
30234#[target_feature(enable = "neon")]
30235#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30236#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30237#[cfg_attr(
30238    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30239    assert_instr(sxtl)
30240)]
30241#[cfg_attr(
30242    not(target_arch = "arm"),
30243    stable(feature = "neon_intrinsics", since = "1.59.0")
30244)]
30245#[cfg_attr(
30246    target_arch = "arm",
30247    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30248)]
30249pub fn vmovl_s32(a: int32x2_t) -> int64x2_t {
30250    unsafe { simd_cast(a) }
30251}
30252#[doc = "Vector long move."]
30253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_s8)"]
30254#[inline(always)]
30255#[target_feature(enable = "neon")]
30256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30257#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30258#[cfg_attr(
30259    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30260    assert_instr(sxtl)
30261)]
30262#[cfg_attr(
30263    not(target_arch = "arm"),
30264    stable(feature = "neon_intrinsics", since = "1.59.0")
30265)]
30266#[cfg_attr(
30267    target_arch = "arm",
30268    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30269)]
30270pub fn vmovl_s8(a: int8x8_t) -> int16x8_t {
30271    unsafe { simd_cast(a) }
30272}
30273#[doc = "Vector long move."]
30274#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u16)"]
30275#[inline(always)]
30276#[target_feature(enable = "neon")]
30277#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30278#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30279#[cfg_attr(
30280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30281    assert_instr(uxtl)
30282)]
30283#[cfg_attr(
30284    not(target_arch = "arm"),
30285    stable(feature = "neon_intrinsics", since = "1.59.0")
30286)]
30287#[cfg_attr(
30288    target_arch = "arm",
30289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30290)]
30291pub fn vmovl_u16(a: uint16x4_t) -> uint32x4_t {
30292    unsafe { simd_cast(a) }
30293}
30294#[doc = "Vector long move."]
30295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u32)"]
30296#[inline(always)]
30297#[target_feature(enable = "neon")]
30298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30300#[cfg_attr(
30301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30302    assert_instr(uxtl)
30303)]
30304#[cfg_attr(
30305    not(target_arch = "arm"),
30306    stable(feature = "neon_intrinsics", since = "1.59.0")
30307)]
30308#[cfg_attr(
30309    target_arch = "arm",
30310    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30311)]
30312pub fn vmovl_u32(a: uint32x2_t) -> uint64x2_t {
30313    unsafe { simd_cast(a) }
30314}
30315#[doc = "Vector long move."]
30316#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovl_u8)"]
30317#[inline(always)]
30318#[target_feature(enable = "neon")]
30319#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30320#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovl))]
30321#[cfg_attr(
30322    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30323    assert_instr(uxtl)
30324)]
30325#[cfg_attr(
30326    not(target_arch = "arm"),
30327    stable(feature = "neon_intrinsics", since = "1.59.0")
30328)]
30329#[cfg_attr(
30330    target_arch = "arm",
30331    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30332)]
30333pub fn vmovl_u8(a: uint8x8_t) -> uint16x8_t {
30334    unsafe { simd_cast(a) }
30335}
30336#[doc = "Vector narrow integer."]
30337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s16)"]
30338#[inline(always)]
30339#[target_feature(enable = "neon")]
30340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30342#[cfg_attr(
30343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30344    assert_instr(xtn)
30345)]
30346#[cfg_attr(
30347    not(target_arch = "arm"),
30348    stable(feature = "neon_intrinsics", since = "1.59.0")
30349)]
30350#[cfg_attr(
30351    target_arch = "arm",
30352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30353)]
30354pub fn vmovn_s16(a: int16x8_t) -> int8x8_t {
30355    unsafe { simd_cast(a) }
30356}
30357#[doc = "Vector narrow integer."]
30358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s32)"]
30359#[inline(always)]
30360#[target_feature(enable = "neon")]
30361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30362#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30363#[cfg_attr(
30364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30365    assert_instr(xtn)
30366)]
30367#[cfg_attr(
30368    not(target_arch = "arm"),
30369    stable(feature = "neon_intrinsics", since = "1.59.0")
30370)]
30371#[cfg_attr(
30372    target_arch = "arm",
30373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30374)]
30375pub fn vmovn_s32(a: int32x4_t) -> int16x4_t {
30376    unsafe { simd_cast(a) }
30377}
30378#[doc = "Vector narrow integer."]
30379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_s64)"]
30380#[inline(always)]
30381#[target_feature(enable = "neon")]
30382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30383#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30384#[cfg_attr(
30385    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30386    assert_instr(xtn)
30387)]
30388#[cfg_attr(
30389    not(target_arch = "arm"),
30390    stable(feature = "neon_intrinsics", since = "1.59.0")
30391)]
30392#[cfg_attr(
30393    target_arch = "arm",
30394    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30395)]
30396pub fn vmovn_s64(a: int64x2_t) -> int32x2_t {
30397    unsafe { simd_cast(a) }
30398}
30399#[doc = "Vector narrow integer."]
30400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u16)"]
30401#[inline(always)]
30402#[target_feature(enable = "neon")]
30403#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30404#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30405#[cfg_attr(
30406    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30407    assert_instr(xtn)
30408)]
30409#[cfg_attr(
30410    not(target_arch = "arm"),
30411    stable(feature = "neon_intrinsics", since = "1.59.0")
30412)]
30413#[cfg_attr(
30414    target_arch = "arm",
30415    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30416)]
30417pub fn vmovn_u16(a: uint16x8_t) -> uint8x8_t {
30418    unsafe { simd_cast(a) }
30419}
30420#[doc = "Vector narrow integer."]
30421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u32)"]
30422#[inline(always)]
30423#[target_feature(enable = "neon")]
30424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30425#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30426#[cfg_attr(
30427    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30428    assert_instr(xtn)
30429)]
30430#[cfg_attr(
30431    not(target_arch = "arm"),
30432    stable(feature = "neon_intrinsics", since = "1.59.0")
30433)]
30434#[cfg_attr(
30435    target_arch = "arm",
30436    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30437)]
30438pub fn vmovn_u32(a: uint32x4_t) -> uint16x4_t {
30439    unsafe { simd_cast(a) }
30440}
30441#[doc = "Vector narrow integer."]
30442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmovn_u64)"]
30443#[inline(always)]
30444#[target_feature(enable = "neon")]
30445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmovn))]
30447#[cfg_attr(
30448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30449    assert_instr(xtn)
30450)]
30451#[cfg_attr(
30452    not(target_arch = "arm"),
30453    stable(feature = "neon_intrinsics", since = "1.59.0")
30454)]
30455#[cfg_attr(
30456    target_arch = "arm",
30457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30458)]
30459pub fn vmovn_u64(a: uint64x2_t) -> uint32x2_t {
30460    unsafe { simd_cast(a) }
30461}
30462#[doc = "Multiply"]
30463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_f16)"]
30464#[inline(always)]
30465#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
30466#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f16"))]
30467#[cfg_attr(
30468    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30469    assert_instr(fmul)
30470)]
30471#[target_feature(enable = "neon,fp16")]
30472#[cfg_attr(
30473    not(target_arch = "arm"),
30474    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
30475)]
30476#[cfg_attr(
30477    target_arch = "arm",
30478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30479)]
30480#[cfg(not(target_arch = "arm64ec"))]
30481pub fn vmul_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
30482    unsafe { simd_mul(a, b) }
30483}
30484#[doc = "Multiply"]
30485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_f16)"]
30486#[inline(always)]
30487#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
30488#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f16"))]
30489#[cfg_attr(
30490    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30491    assert_instr(fmul)
30492)]
30493#[target_feature(enable = "neon,fp16")]
30494#[cfg_attr(
30495    not(target_arch = "arm"),
30496    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
30497)]
30498#[cfg_attr(
30499    target_arch = "arm",
30500    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30501)]
30502#[cfg(not(target_arch = "arm64ec"))]
30503pub fn vmulq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
30504    unsafe { simd_mul(a, b) }
30505}
30506#[doc = "Multiply"]
30507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_f32)"]
30508#[inline(always)]
30509#[target_feature(enable = "neon")]
30510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30511#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
30512#[cfg_attr(
30513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30514    assert_instr(fmul)
30515)]
30516#[cfg_attr(
30517    not(target_arch = "arm"),
30518    stable(feature = "neon_intrinsics", since = "1.59.0")
30519)]
30520#[cfg_attr(
30521    target_arch = "arm",
30522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30523)]
30524pub fn vmul_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
30525    unsafe { simd_mul(a, b) }
30526}
30527#[doc = "Multiply"]
30528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_f32)"]
30529#[inline(always)]
30530#[target_feature(enable = "neon")]
30531#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30532#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
30533#[cfg_attr(
30534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30535    assert_instr(fmul)
30536)]
30537#[cfg_attr(
30538    not(target_arch = "arm"),
30539    stable(feature = "neon_intrinsics", since = "1.59.0")
30540)]
30541#[cfg_attr(
30542    target_arch = "arm",
30543    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30544)]
30545pub fn vmulq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
30546    unsafe { simd_mul(a, b) }
30547}
30548#[doc = "Multiply"]
30549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_f16)"]
30550#[inline(always)]
30551#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
30552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30553#[cfg_attr(
30554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30555    assert_instr(fmul, LANE = 1)
30556)]
30557#[rustc_legacy_const_generics(2)]
30558#[target_feature(enable = "neon,fp16")]
30559#[cfg_attr(
30560    not(target_arch = "arm"),
30561    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
30562)]
30563#[cfg_attr(
30564    target_arch = "arm",
30565    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30566)]
30567#[cfg(not(target_arch = "arm64ec"))]
30568pub fn vmul_lane_f16<const LANE: i32>(a: float16x4_t, v: float16x4_t) -> float16x4_t {
30569    static_assert_uimm_bits!(LANE, 2);
30570    unsafe {
30571        simd_mul(
30572            a,
30573            simd_shuffle!(v, v, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30574        )
30575    }
30576}
30577#[doc = "Multiply"]
30578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_f16)"]
30579#[inline(always)]
30580#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
30581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30582#[cfg_attr(
30583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30584    assert_instr(fmul, LANE = 1)
30585)]
30586#[rustc_legacy_const_generics(2)]
30587#[target_feature(enable = "neon,fp16")]
30588#[cfg_attr(
30589    not(target_arch = "arm"),
30590    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
30591)]
30592#[cfg_attr(
30593    target_arch = "arm",
30594    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30595)]
30596#[cfg(not(target_arch = "arm64ec"))]
30597pub fn vmulq_lane_f16<const LANE: i32>(a: float16x8_t, v: float16x4_t) -> float16x8_t {
30598    static_assert_uimm_bits!(LANE, 2);
30599    unsafe {
30600        simd_mul(
30601            a,
30602            simd_shuffle!(
30603                v,
30604                v,
30605                [
30606                    LANE as u32,
30607                    LANE as u32,
30608                    LANE as u32,
30609                    LANE as u32,
30610                    LANE as u32,
30611                    LANE as u32,
30612                    LANE as u32,
30613                    LANE as u32
30614                ]
30615            ),
30616        )
30617    }
30618}
30619#[doc = "Floating-point multiply"]
30620#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_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 vmul_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
30639    static_assert_uimm_bits!(LANE, 1);
30640    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
30641}
30642#[doc = "Floating-point multiply"]
30643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_f32)"]
30644#[inline(always)]
30645#[target_feature(enable = "neon")]
30646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30647#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
30648#[cfg_attr(
30649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30650    assert_instr(fmul, LANE = 0)
30651)]
30652#[rustc_legacy_const_generics(2)]
30653#[cfg_attr(
30654    not(target_arch = "arm"),
30655    stable(feature = "neon_intrinsics", since = "1.59.0")
30656)]
30657#[cfg_attr(
30658    target_arch = "arm",
30659    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30660)]
30661pub fn vmul_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x4_t) -> float32x2_t {
30662    static_assert_uimm_bits!(LANE, 2);
30663    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
30664}
30665#[doc = "Floating-point multiply"]
30666#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_f32)"]
30667#[inline(always)]
30668#[target_feature(enable = "neon")]
30669#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30670#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
30671#[cfg_attr(
30672    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30673    assert_instr(fmul, LANE = 0)
30674)]
30675#[rustc_legacy_const_generics(2)]
30676#[cfg_attr(
30677    not(target_arch = "arm"),
30678    stable(feature = "neon_intrinsics", since = "1.59.0")
30679)]
30680#[cfg_attr(
30681    target_arch = "arm",
30682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30683)]
30684pub fn vmulq_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x2_t) -> float32x4_t {
30685    static_assert_uimm_bits!(LANE, 1);
30686    unsafe {
30687        simd_mul(
30688            a,
30689            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30690        )
30691    }
30692}
30693#[doc = "Floating-point multiply"]
30694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_f32)"]
30695#[inline(always)]
30696#[target_feature(enable = "neon")]
30697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30698#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
30699#[cfg_attr(
30700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30701    assert_instr(fmul, LANE = 0)
30702)]
30703#[rustc_legacy_const_generics(2)]
30704#[cfg_attr(
30705    not(target_arch = "arm"),
30706    stable(feature = "neon_intrinsics", since = "1.59.0")
30707)]
30708#[cfg_attr(
30709    target_arch = "arm",
30710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30711)]
30712pub fn vmulq_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
30713    static_assert_uimm_bits!(LANE, 2);
30714    unsafe {
30715        simd_mul(
30716            a,
30717            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30718        )
30719    }
30720}
30721#[doc = "Multiply"]
30722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s16)"]
30723#[inline(always)]
30724#[target_feature(enable = "neon")]
30725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30726#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30727#[cfg_attr(
30728    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30729    assert_instr(mul, LANE = 1)
30730)]
30731#[rustc_legacy_const_generics(2)]
30732#[cfg_attr(
30733    not(target_arch = "arm"),
30734    stable(feature = "neon_intrinsics", since = "1.59.0")
30735)]
30736#[cfg_attr(
30737    target_arch = "arm",
30738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30739)]
30740pub fn vmul_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
30741    static_assert_uimm_bits!(LANE, 2);
30742    unsafe {
30743        simd_mul(
30744            a,
30745            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30746        )
30747    }
30748}
30749#[doc = "Multiply"]
30750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s16)"]
30751#[inline(always)]
30752#[target_feature(enable = "neon")]
30753#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30754#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30755#[cfg_attr(
30756    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30757    assert_instr(mul, LANE = 1)
30758)]
30759#[rustc_legacy_const_generics(2)]
30760#[cfg_attr(
30761    not(target_arch = "arm"),
30762    stable(feature = "neon_intrinsics", since = "1.59.0")
30763)]
30764#[cfg_attr(
30765    target_arch = "arm",
30766    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30767)]
30768pub fn vmulq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
30769    static_assert_uimm_bits!(LANE, 2);
30770    unsafe {
30771        simd_mul(
30772            a,
30773            simd_shuffle!(
30774                b,
30775                b,
30776                [
30777                    LANE as u32,
30778                    LANE as u32,
30779                    LANE as u32,
30780                    LANE as u32,
30781                    LANE as u32,
30782                    LANE as u32,
30783                    LANE as u32,
30784                    LANE as u32
30785                ]
30786            ),
30787        )
30788    }
30789}
30790#[doc = "Multiply"]
30791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s32)"]
30792#[inline(always)]
30793#[target_feature(enable = "neon")]
30794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30795#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30796#[cfg_attr(
30797    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30798    assert_instr(mul, LANE = 1)
30799)]
30800#[rustc_legacy_const_generics(2)]
30801#[cfg_attr(
30802    not(target_arch = "arm"),
30803    stable(feature = "neon_intrinsics", since = "1.59.0")
30804)]
30805#[cfg_attr(
30806    target_arch = "arm",
30807    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30808)]
30809pub fn vmul_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
30810    static_assert_uimm_bits!(LANE, 1);
30811    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
30812}
30813#[doc = "Multiply"]
30814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s32)"]
30815#[inline(always)]
30816#[target_feature(enable = "neon")]
30817#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30818#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30819#[cfg_attr(
30820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30821    assert_instr(mul, LANE = 1)
30822)]
30823#[rustc_legacy_const_generics(2)]
30824#[cfg_attr(
30825    not(target_arch = "arm"),
30826    stable(feature = "neon_intrinsics", since = "1.59.0")
30827)]
30828#[cfg_attr(
30829    target_arch = "arm",
30830    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30831)]
30832pub fn vmulq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
30833    static_assert_uimm_bits!(LANE, 1);
30834    unsafe {
30835        simd_mul(
30836            a,
30837            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30838        )
30839    }
30840}
30841#[doc = "Multiply"]
30842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u16)"]
30843#[inline(always)]
30844#[target_feature(enable = "neon")]
30845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30846#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30847#[cfg_attr(
30848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30849    assert_instr(mul, LANE = 1)
30850)]
30851#[rustc_legacy_const_generics(2)]
30852#[cfg_attr(
30853    not(target_arch = "arm"),
30854    stable(feature = "neon_intrinsics", since = "1.59.0")
30855)]
30856#[cfg_attr(
30857    target_arch = "arm",
30858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30859)]
30860pub fn vmul_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
30861    static_assert_uimm_bits!(LANE, 2);
30862    unsafe {
30863        simd_mul(
30864            a,
30865            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30866        )
30867    }
30868}
30869#[doc = "Multiply"]
30870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u16)"]
30871#[inline(always)]
30872#[target_feature(enable = "neon")]
30873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30874#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30875#[cfg_attr(
30876    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30877    assert_instr(mul, LANE = 1)
30878)]
30879#[rustc_legacy_const_generics(2)]
30880#[cfg_attr(
30881    not(target_arch = "arm"),
30882    stable(feature = "neon_intrinsics", since = "1.59.0")
30883)]
30884#[cfg_attr(
30885    target_arch = "arm",
30886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30887)]
30888pub fn vmulq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x4_t) -> uint16x8_t {
30889    static_assert_uimm_bits!(LANE, 2);
30890    unsafe {
30891        simd_mul(
30892            a,
30893            simd_shuffle!(
30894                b,
30895                b,
30896                [
30897                    LANE as u32,
30898                    LANE as u32,
30899                    LANE as u32,
30900                    LANE as u32,
30901                    LANE as u32,
30902                    LANE as u32,
30903                    LANE as u32,
30904                    LANE as u32
30905                ]
30906            ),
30907        )
30908    }
30909}
30910#[doc = "Multiply"]
30911#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u32)"]
30912#[inline(always)]
30913#[target_feature(enable = "neon")]
30914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30916#[cfg_attr(
30917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30918    assert_instr(mul, LANE = 1)
30919)]
30920#[rustc_legacy_const_generics(2)]
30921#[cfg_attr(
30922    not(target_arch = "arm"),
30923    stable(feature = "neon_intrinsics", since = "1.59.0")
30924)]
30925#[cfg_attr(
30926    target_arch = "arm",
30927    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30928)]
30929pub fn vmul_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
30930    static_assert_uimm_bits!(LANE, 1);
30931    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
30932}
30933#[doc = "Multiply"]
30934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u32)"]
30935#[inline(always)]
30936#[target_feature(enable = "neon")]
30937#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30938#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30939#[cfg_attr(
30940    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30941    assert_instr(mul, LANE = 1)
30942)]
30943#[rustc_legacy_const_generics(2)]
30944#[cfg_attr(
30945    not(target_arch = "arm"),
30946    stable(feature = "neon_intrinsics", since = "1.59.0")
30947)]
30948#[cfg_attr(
30949    target_arch = "arm",
30950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30951)]
30952pub fn vmulq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x2_t) -> uint32x4_t {
30953    static_assert_uimm_bits!(LANE, 1);
30954    unsafe {
30955        simd_mul(
30956            a,
30957            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30958        )
30959    }
30960}
30961#[doc = "Multiply"]
30962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s16)"]
30963#[inline(always)]
30964#[target_feature(enable = "neon")]
30965#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30966#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30967#[cfg_attr(
30968    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30969    assert_instr(mul, LANE = 1)
30970)]
30971#[rustc_legacy_const_generics(2)]
30972#[cfg_attr(
30973    not(target_arch = "arm"),
30974    stable(feature = "neon_intrinsics", since = "1.59.0")
30975)]
30976#[cfg_attr(
30977    target_arch = "arm",
30978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
30979)]
30980pub fn vmul_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
30981    static_assert_uimm_bits!(LANE, 3);
30982    unsafe {
30983        simd_mul(
30984            a,
30985            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
30986        )
30987    }
30988}
30989#[doc = "Multiply"]
30990#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s16)"]
30991#[inline(always)]
30992#[target_feature(enable = "neon")]
30993#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30994#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
30995#[cfg_attr(
30996    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
30997    assert_instr(mul, LANE = 1)
30998)]
30999#[rustc_legacy_const_generics(2)]
31000#[cfg_attr(
31001    not(target_arch = "arm"),
31002    stable(feature = "neon_intrinsics", since = "1.59.0")
31003)]
31004#[cfg_attr(
31005    target_arch = "arm",
31006    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31007)]
31008pub fn vmulq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
31009    static_assert_uimm_bits!(LANE, 3);
31010    unsafe {
31011        simd_mul(
31012            a,
31013            simd_shuffle!(
31014                b,
31015                b,
31016                [
31017                    LANE as u32,
31018                    LANE as u32,
31019                    LANE as u32,
31020                    LANE as u32,
31021                    LANE as u32,
31022                    LANE as u32,
31023                    LANE as u32,
31024                    LANE as u32
31025                ]
31026            ),
31027        )
31028    }
31029}
31030#[doc = "Multiply"]
31031#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s32)"]
31032#[inline(always)]
31033#[target_feature(enable = "neon")]
31034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31036#[cfg_attr(
31037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31038    assert_instr(mul, LANE = 1)
31039)]
31040#[rustc_legacy_const_generics(2)]
31041#[cfg_attr(
31042    not(target_arch = "arm"),
31043    stable(feature = "neon_intrinsics", since = "1.59.0")
31044)]
31045#[cfg_attr(
31046    target_arch = "arm",
31047    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31048)]
31049pub fn vmul_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
31050    static_assert_uimm_bits!(LANE, 2);
31051    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31052}
31053#[doc = "Multiply"]
31054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s32)"]
31055#[inline(always)]
31056#[target_feature(enable = "neon")]
31057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31058#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31059#[cfg_attr(
31060    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31061    assert_instr(mul, LANE = 1)
31062)]
31063#[rustc_legacy_const_generics(2)]
31064#[cfg_attr(
31065    not(target_arch = "arm"),
31066    stable(feature = "neon_intrinsics", since = "1.59.0")
31067)]
31068#[cfg_attr(
31069    target_arch = "arm",
31070    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31071)]
31072pub fn vmulq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
31073    static_assert_uimm_bits!(LANE, 2);
31074    unsafe {
31075        simd_mul(
31076            a,
31077            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31078        )
31079    }
31080}
31081#[doc = "Multiply"]
31082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u16)"]
31083#[inline(always)]
31084#[target_feature(enable = "neon")]
31085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31086#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31087#[cfg_attr(
31088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31089    assert_instr(mul, LANE = 1)
31090)]
31091#[rustc_legacy_const_generics(2)]
31092#[cfg_attr(
31093    not(target_arch = "arm"),
31094    stable(feature = "neon_intrinsics", since = "1.59.0")
31095)]
31096#[cfg_attr(
31097    target_arch = "arm",
31098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31099)]
31100pub fn vmul_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint16x4_t {
31101    static_assert_uimm_bits!(LANE, 3);
31102    unsafe {
31103        simd_mul(
31104            a,
31105            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31106        )
31107    }
31108}
31109#[doc = "Multiply"]
31110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u16)"]
31111#[inline(always)]
31112#[target_feature(enable = "neon")]
31113#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31114#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31115#[cfg_attr(
31116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31117    assert_instr(mul, LANE = 1)
31118)]
31119#[rustc_legacy_const_generics(2)]
31120#[cfg_attr(
31121    not(target_arch = "arm"),
31122    stable(feature = "neon_intrinsics", since = "1.59.0")
31123)]
31124#[cfg_attr(
31125    target_arch = "arm",
31126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31127)]
31128pub fn vmulq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
31129    static_assert_uimm_bits!(LANE, 3);
31130    unsafe {
31131        simd_mul(
31132            a,
31133            simd_shuffle!(
31134                b,
31135                b,
31136                [
31137                    LANE as u32,
31138                    LANE as u32,
31139                    LANE as u32,
31140                    LANE as u32,
31141                    LANE as u32,
31142                    LANE as u32,
31143                    LANE as u32,
31144                    LANE as u32
31145                ]
31146            ),
31147        )
31148    }
31149}
31150#[doc = "Multiply"]
31151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u32)"]
31152#[inline(always)]
31153#[target_feature(enable = "neon")]
31154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31155#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31156#[cfg_attr(
31157    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31158    assert_instr(mul, LANE = 1)
31159)]
31160#[rustc_legacy_const_generics(2)]
31161#[cfg_attr(
31162    not(target_arch = "arm"),
31163    stable(feature = "neon_intrinsics", since = "1.59.0")
31164)]
31165#[cfg_attr(
31166    target_arch = "arm",
31167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31168)]
31169pub fn vmul_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint32x2_t {
31170    static_assert_uimm_bits!(LANE, 2);
31171    unsafe { simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31172}
31173#[doc = "Multiply"]
31174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u32)"]
31175#[inline(always)]
31176#[target_feature(enable = "neon")]
31177#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31178#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
31179#[cfg_attr(
31180    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31181    assert_instr(mul, LANE = 1)
31182)]
31183#[rustc_legacy_const_generics(2)]
31184#[cfg_attr(
31185    not(target_arch = "arm"),
31186    stable(feature = "neon_intrinsics", since = "1.59.0")
31187)]
31188#[cfg_attr(
31189    target_arch = "arm",
31190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31191)]
31192pub fn vmulq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
31193    static_assert_uimm_bits!(LANE, 2);
31194    unsafe {
31195        simd_mul(
31196            a,
31197            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31198        )
31199    }
31200}
31201#[doc = "Vector multiply by scalar"]
31202#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_f16)"]
31203#[inline(always)]
31204#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
31205#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31206#[cfg_attr(
31207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31208    assert_instr(fmul)
31209)]
31210#[target_feature(enable = "neon,fp16")]
31211#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
31212#[cfg(not(target_arch = "arm64ec"))]
31213pub fn vmul_n_f16(a: float16x4_t, b: f16) -> float16x4_t {
31214    unsafe { simd_mul(a, vdup_n_f16(b)) }
31215}
31216#[doc = "Vector multiply by scalar"]
31217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_f16)"]
31218#[inline(always)]
31219#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
31220#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31221#[cfg_attr(
31222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31223    assert_instr(fmul)
31224)]
31225#[target_feature(enable = "neon,fp16")]
31226#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
31227#[cfg(not(target_arch = "arm64ec"))]
31228pub fn vmulq_n_f16(a: float16x8_t, b: f16) -> float16x8_t {
31229    unsafe { simd_mul(a, vdupq_n_f16(b)) }
31230}
31231#[doc = "Vector multiply by scalar"]
31232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_f32)"]
31233#[inline(always)]
31234#[target_feature(enable = "neon")]
31235#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31236#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31237#[cfg_attr(
31238    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31239    assert_instr(fmul)
31240)]
31241#[cfg_attr(
31242    not(target_arch = "arm"),
31243    stable(feature = "neon_intrinsics", since = "1.59.0")
31244)]
31245#[cfg_attr(
31246    target_arch = "arm",
31247    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31248)]
31249pub fn vmul_n_f32(a: float32x2_t, b: f32) -> float32x2_t {
31250    unsafe { simd_mul(a, vdup_n_f32(b)) }
31251}
31252#[doc = "Vector multiply by scalar"]
31253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_f32)"]
31254#[inline(always)]
31255#[target_feature(enable = "neon")]
31256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31257#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31258#[cfg_attr(
31259    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31260    assert_instr(fmul)
31261)]
31262#[cfg_attr(
31263    not(target_arch = "arm"),
31264    stable(feature = "neon_intrinsics", since = "1.59.0")
31265)]
31266#[cfg_attr(
31267    target_arch = "arm",
31268    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31269)]
31270pub fn vmulq_n_f32(a: float32x4_t, b: f32) -> float32x4_t {
31271    unsafe { simd_mul(a, vdupq_n_f32(b)) }
31272}
31273#[doc = "Vector multiply by scalar"]
31274#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s16)"]
31275#[inline(always)]
31276#[target_feature(enable = "neon")]
31277#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31278#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31279#[cfg_attr(
31280    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31281    assert_instr(mul)
31282)]
31283#[cfg_attr(
31284    not(target_arch = "arm"),
31285    stable(feature = "neon_intrinsics", since = "1.59.0")
31286)]
31287#[cfg_attr(
31288    target_arch = "arm",
31289    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31290)]
31291pub fn vmul_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
31292    unsafe { simd_mul(a, vdup_n_s16(b)) }
31293}
31294#[doc = "Vector multiply by scalar"]
31295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s16)"]
31296#[inline(always)]
31297#[target_feature(enable = "neon")]
31298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31300#[cfg_attr(
31301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31302    assert_instr(mul)
31303)]
31304#[cfg_attr(
31305    not(target_arch = "arm"),
31306    stable(feature = "neon_intrinsics", since = "1.59.0")
31307)]
31308#[cfg_attr(
31309    target_arch = "arm",
31310    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31311)]
31312pub fn vmulq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
31313    unsafe { simd_mul(a, vdupq_n_s16(b)) }
31314}
31315#[doc = "Vector multiply by scalar"]
31316#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s32)"]
31317#[inline(always)]
31318#[target_feature(enable = "neon")]
31319#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31320#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31321#[cfg_attr(
31322    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31323    assert_instr(mul)
31324)]
31325#[cfg_attr(
31326    not(target_arch = "arm"),
31327    stable(feature = "neon_intrinsics", since = "1.59.0")
31328)]
31329#[cfg_attr(
31330    target_arch = "arm",
31331    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31332)]
31333pub fn vmul_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
31334    unsafe { simd_mul(a, vdup_n_s32(b)) }
31335}
31336#[doc = "Vector multiply by scalar"]
31337#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s32)"]
31338#[inline(always)]
31339#[target_feature(enable = "neon")]
31340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31342#[cfg_attr(
31343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31344    assert_instr(mul)
31345)]
31346#[cfg_attr(
31347    not(target_arch = "arm"),
31348    stable(feature = "neon_intrinsics", since = "1.59.0")
31349)]
31350#[cfg_attr(
31351    target_arch = "arm",
31352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31353)]
31354pub fn vmulq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
31355    unsafe { simd_mul(a, vdupq_n_s32(b)) }
31356}
31357#[doc = "Vector multiply by scalar"]
31358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u16)"]
31359#[inline(always)]
31360#[target_feature(enable = "neon")]
31361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31362#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31363#[cfg_attr(
31364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31365    assert_instr(mul)
31366)]
31367#[cfg_attr(
31368    not(target_arch = "arm"),
31369    stable(feature = "neon_intrinsics", since = "1.59.0")
31370)]
31371#[cfg_attr(
31372    target_arch = "arm",
31373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31374)]
31375pub fn vmul_n_u16(a: uint16x4_t, b: u16) -> uint16x4_t {
31376    unsafe { simd_mul(a, vdup_n_u16(b)) }
31377}
31378#[doc = "Vector multiply by scalar"]
31379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u16)"]
31380#[inline(always)]
31381#[target_feature(enable = "neon")]
31382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31383#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31384#[cfg_attr(
31385    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31386    assert_instr(mul)
31387)]
31388#[cfg_attr(
31389    not(target_arch = "arm"),
31390    stable(feature = "neon_intrinsics", since = "1.59.0")
31391)]
31392#[cfg_attr(
31393    target_arch = "arm",
31394    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31395)]
31396pub fn vmulq_n_u16(a: uint16x8_t, b: u16) -> uint16x8_t {
31397    unsafe { simd_mul(a, vdupq_n_u16(b)) }
31398}
31399#[doc = "Vector multiply by scalar"]
31400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u32)"]
31401#[inline(always)]
31402#[target_feature(enable = "neon")]
31403#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31404#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31405#[cfg_attr(
31406    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31407    assert_instr(mul)
31408)]
31409#[cfg_attr(
31410    not(target_arch = "arm"),
31411    stable(feature = "neon_intrinsics", since = "1.59.0")
31412)]
31413#[cfg_attr(
31414    target_arch = "arm",
31415    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31416)]
31417pub fn vmul_n_u32(a: uint32x2_t, b: u32) -> uint32x2_t {
31418    unsafe { simd_mul(a, vdup_n_u32(b)) }
31419}
31420#[doc = "Vector multiply by scalar"]
31421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u32)"]
31422#[inline(always)]
31423#[target_feature(enable = "neon")]
31424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31425#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31426#[cfg_attr(
31427    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31428    assert_instr(mul)
31429)]
31430#[cfg_attr(
31431    not(target_arch = "arm"),
31432    stable(feature = "neon_intrinsics", since = "1.59.0")
31433)]
31434#[cfg_attr(
31435    target_arch = "arm",
31436    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31437)]
31438pub fn vmulq_n_u32(a: uint32x4_t, b: u32) -> uint32x4_t {
31439    unsafe { simd_mul(a, vdupq_n_u32(b)) }
31440}
31441#[doc = "Polynomial multiply"]
31442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_p8)"]
31443#[inline(always)]
31444#[target_feature(enable = "neon")]
31445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31447#[cfg_attr(
31448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31449    assert_instr(pmul)
31450)]
31451#[cfg_attr(
31452    not(target_arch = "arm"),
31453    stable(feature = "neon_intrinsics", since = "1.59.0")
31454)]
31455#[cfg_attr(
31456    target_arch = "arm",
31457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31458)]
31459pub fn vmul_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
31460    unsafe extern "unadjusted" {
31461        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v8i8")]
31462        #[cfg_attr(
31463            any(target_arch = "aarch64", target_arch = "arm64ec"),
31464            link_name = "llvm.aarch64.neon.pmul.v8i8"
31465        )]
31466        fn _vmul_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t;
31467    }
31468    unsafe { _vmul_p8(a, b) }
31469}
31470#[doc = "Polynomial multiply"]
31471#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_p8)"]
31472#[inline(always)]
31473#[target_feature(enable = "neon")]
31474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31475#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
31476#[cfg_attr(
31477    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31478    assert_instr(pmul)
31479)]
31480#[cfg_attr(
31481    not(target_arch = "arm"),
31482    stable(feature = "neon_intrinsics", since = "1.59.0")
31483)]
31484#[cfg_attr(
31485    target_arch = "arm",
31486    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31487)]
31488pub fn vmulq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
31489    unsafe extern "unadjusted" {
31490        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v16i8")]
31491        #[cfg_attr(
31492            any(target_arch = "aarch64", target_arch = "arm64ec"),
31493            link_name = "llvm.aarch64.neon.pmul.v16i8"
31494        )]
31495        fn _vmulq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t;
31496    }
31497    unsafe { _vmulq_p8(a, b) }
31498}
31499#[doc = "Multiply"]
31500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s16)"]
31501#[inline(always)]
31502#[target_feature(enable = "neon")]
31503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31504#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
31505#[cfg_attr(
31506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31507    assert_instr(mul)
31508)]
31509#[cfg_attr(
31510    not(target_arch = "arm"),
31511    stable(feature = "neon_intrinsics", since = "1.59.0")
31512)]
31513#[cfg_attr(
31514    target_arch = "arm",
31515    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31516)]
31517pub fn vmul_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
31518    unsafe { simd_mul(a, b) }
31519}
31520#[doc = "Multiply"]
31521#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s16)"]
31522#[inline(always)]
31523#[target_feature(enable = "neon")]
31524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31525#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
31526#[cfg_attr(
31527    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31528    assert_instr(mul)
31529)]
31530#[cfg_attr(
31531    not(target_arch = "arm"),
31532    stable(feature = "neon_intrinsics", since = "1.59.0")
31533)]
31534#[cfg_attr(
31535    target_arch = "arm",
31536    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31537)]
31538pub fn vmulq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
31539    unsafe { simd_mul(a, b) }
31540}
31541#[doc = "Multiply"]
31542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u16)"]
31543#[inline(always)]
31544#[target_feature(enable = "neon")]
31545#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31546#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
31547#[cfg_attr(
31548    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31549    assert_instr(mul)
31550)]
31551#[cfg_attr(
31552    not(target_arch = "arm"),
31553    stable(feature = "neon_intrinsics", since = "1.59.0")
31554)]
31555#[cfg_attr(
31556    target_arch = "arm",
31557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31558)]
31559pub fn vmul_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
31560    unsafe { simd_mul(a, b) }
31561}
31562#[doc = "Multiply"]
31563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u16)"]
31564#[inline(always)]
31565#[target_feature(enable = "neon")]
31566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
31568#[cfg_attr(
31569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31570    assert_instr(mul)
31571)]
31572#[cfg_attr(
31573    not(target_arch = "arm"),
31574    stable(feature = "neon_intrinsics", since = "1.59.0")
31575)]
31576#[cfg_attr(
31577    target_arch = "arm",
31578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31579)]
31580pub fn vmulq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
31581    unsafe { simd_mul(a, b) }
31582}
31583#[doc = "Multiply"]
31584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s32)"]
31585#[inline(always)]
31586#[target_feature(enable = "neon")]
31587#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31588#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
31589#[cfg_attr(
31590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31591    assert_instr(mul)
31592)]
31593#[cfg_attr(
31594    not(target_arch = "arm"),
31595    stable(feature = "neon_intrinsics", since = "1.59.0")
31596)]
31597#[cfg_attr(
31598    target_arch = "arm",
31599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31600)]
31601pub fn vmul_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
31602    unsafe { simd_mul(a, b) }
31603}
31604#[doc = "Multiply"]
31605#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s32)"]
31606#[inline(always)]
31607#[target_feature(enable = "neon")]
31608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31609#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
31610#[cfg_attr(
31611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31612    assert_instr(mul)
31613)]
31614#[cfg_attr(
31615    not(target_arch = "arm"),
31616    stable(feature = "neon_intrinsics", since = "1.59.0")
31617)]
31618#[cfg_attr(
31619    target_arch = "arm",
31620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31621)]
31622pub fn vmulq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
31623    unsafe { simd_mul(a, b) }
31624}
31625#[doc = "Multiply"]
31626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u32)"]
31627#[inline(always)]
31628#[target_feature(enable = "neon")]
31629#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31630#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
31631#[cfg_attr(
31632    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31633    assert_instr(mul)
31634)]
31635#[cfg_attr(
31636    not(target_arch = "arm"),
31637    stable(feature = "neon_intrinsics", since = "1.59.0")
31638)]
31639#[cfg_attr(
31640    target_arch = "arm",
31641    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31642)]
31643pub fn vmul_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
31644    unsafe { simd_mul(a, b) }
31645}
31646#[doc = "Multiply"]
31647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u32)"]
31648#[inline(always)]
31649#[target_feature(enable = "neon")]
31650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31651#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
31652#[cfg_attr(
31653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31654    assert_instr(mul)
31655)]
31656#[cfg_attr(
31657    not(target_arch = "arm"),
31658    stable(feature = "neon_intrinsics", since = "1.59.0")
31659)]
31660#[cfg_attr(
31661    target_arch = "arm",
31662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31663)]
31664pub fn vmulq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
31665    unsafe { simd_mul(a, b) }
31666}
31667#[doc = "Multiply"]
31668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s8)"]
31669#[inline(always)]
31670#[target_feature(enable = "neon")]
31671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31672#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
31673#[cfg_attr(
31674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31675    assert_instr(mul)
31676)]
31677#[cfg_attr(
31678    not(target_arch = "arm"),
31679    stable(feature = "neon_intrinsics", since = "1.59.0")
31680)]
31681#[cfg_attr(
31682    target_arch = "arm",
31683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31684)]
31685pub fn vmul_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
31686    unsafe { simd_mul(a, b) }
31687}
31688#[doc = "Multiply"]
31689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s8)"]
31690#[inline(always)]
31691#[target_feature(enable = "neon")]
31692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31693#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
31694#[cfg_attr(
31695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31696    assert_instr(mul)
31697)]
31698#[cfg_attr(
31699    not(target_arch = "arm"),
31700    stable(feature = "neon_intrinsics", since = "1.59.0")
31701)]
31702#[cfg_attr(
31703    target_arch = "arm",
31704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31705)]
31706pub fn vmulq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
31707    unsafe { simd_mul(a, b) }
31708}
31709#[doc = "Multiply"]
31710#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u8)"]
31711#[inline(always)]
31712#[target_feature(enable = "neon")]
31713#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31714#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
31715#[cfg_attr(
31716    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31717    assert_instr(mul)
31718)]
31719#[cfg_attr(
31720    not(target_arch = "arm"),
31721    stable(feature = "neon_intrinsics", since = "1.59.0")
31722)]
31723#[cfg_attr(
31724    target_arch = "arm",
31725    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31726)]
31727pub fn vmul_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
31728    unsafe { simd_mul(a, b) }
31729}
31730#[doc = "Multiply"]
31731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u8)"]
31732#[inline(always)]
31733#[target_feature(enable = "neon")]
31734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31735#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
31736#[cfg_attr(
31737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31738    assert_instr(mul)
31739)]
31740#[cfg_attr(
31741    not(target_arch = "arm"),
31742    stable(feature = "neon_intrinsics", since = "1.59.0")
31743)]
31744#[cfg_attr(
31745    target_arch = "arm",
31746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31747)]
31748pub fn vmulq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
31749    unsafe { simd_mul(a, b) }
31750}
31751#[doc = "Vector long multiply by scalar"]
31752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_s16)"]
31753#[inline(always)]
31754#[target_feature(enable = "neon")]
31755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31756#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31757#[cfg_attr(
31758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31759    assert_instr(smull, LANE = 1)
31760)]
31761#[rustc_legacy_const_generics(2)]
31762#[cfg_attr(
31763    not(target_arch = "arm"),
31764    stable(feature = "neon_intrinsics", since = "1.59.0")
31765)]
31766#[cfg_attr(
31767    target_arch = "arm",
31768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31769)]
31770pub fn vmull_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
31771    static_assert_uimm_bits!(LANE, 2);
31772    unsafe {
31773        vmull_s16(
31774            a,
31775            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31776        )
31777    }
31778}
31779#[doc = "Vector long multiply by scalar"]
31780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s16)"]
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(smull, 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_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int32x4_t {
31799    static_assert_uimm_bits!(LANE, 3);
31800    unsafe {
31801        vmull_s16(
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_lane_s32)"]
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(smull, 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_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
31827    static_assert_uimm_bits!(LANE, 1);
31828    unsafe { vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31829}
31830#[doc = "Vector long multiply by scalar"]
31831#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s32)"]
31832#[inline(always)]
31833#[target_feature(enable = "neon")]
31834#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31835#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31836#[cfg_attr(
31837    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31838    assert_instr(smull, LANE = 1)
31839)]
31840#[rustc_legacy_const_generics(2)]
31841#[cfg_attr(
31842    not(target_arch = "arm"),
31843    stable(feature = "neon_intrinsics", since = "1.59.0")
31844)]
31845#[cfg_attr(
31846    target_arch = "arm",
31847    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31848)]
31849pub fn vmull_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int64x2_t {
31850    static_assert_uimm_bits!(LANE, 2);
31851    unsafe { vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31852}
31853#[doc = "Vector long multiply by scalar"]
31854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u16)"]
31855#[inline(always)]
31856#[target_feature(enable = "neon")]
31857#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31858#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31859#[cfg_attr(
31860    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31861    assert_instr(umull, LANE = 1)
31862)]
31863#[rustc_legacy_const_generics(2)]
31864#[cfg_attr(
31865    not(target_arch = "arm"),
31866    stable(feature = "neon_intrinsics", since = "1.59.0")
31867)]
31868#[cfg_attr(
31869    target_arch = "arm",
31870    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31871)]
31872pub fn vmull_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
31873    static_assert_uimm_bits!(LANE, 2);
31874    unsafe {
31875        vmull_u16(
31876            a,
31877            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31878        )
31879    }
31880}
31881#[doc = "Vector long multiply by scalar"]
31882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u16)"]
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, LANE = 1))]
31887#[cfg_attr(
31888    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31889    assert_instr(umull, LANE = 1)
31890)]
31891#[rustc_legacy_const_generics(2)]
31892#[cfg_attr(
31893    not(target_arch = "arm"),
31894    stable(feature = "neon_intrinsics", since = "1.59.0")
31895)]
31896#[cfg_attr(
31897    target_arch = "arm",
31898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31899)]
31900pub fn vmull_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint32x4_t {
31901    static_assert_uimm_bits!(LANE, 3);
31902    unsafe {
31903        vmull_u16(
31904            a,
31905            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]),
31906        )
31907    }
31908}
31909#[doc = "Vector long multiply by scalar"]
31910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u32)"]
31911#[inline(always)]
31912#[target_feature(enable = "neon")]
31913#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31914#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31915#[cfg_attr(
31916    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31917    assert_instr(umull, LANE = 1)
31918)]
31919#[rustc_legacy_const_generics(2)]
31920#[cfg_attr(
31921    not(target_arch = "arm"),
31922    stable(feature = "neon_intrinsics", since = "1.59.0")
31923)]
31924#[cfg_attr(
31925    target_arch = "arm",
31926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31927)]
31928pub fn vmull_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
31929    static_assert_uimm_bits!(LANE, 1);
31930    unsafe { vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31931}
31932#[doc = "Vector long multiply by scalar"]
31933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u32)"]
31934#[inline(always)]
31935#[target_feature(enable = "neon")]
31936#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31937#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
31938#[cfg_attr(
31939    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31940    assert_instr(umull, LANE = 1)
31941)]
31942#[rustc_legacy_const_generics(2)]
31943#[cfg_attr(
31944    not(target_arch = "arm"),
31945    stable(feature = "neon_intrinsics", since = "1.59.0")
31946)]
31947#[cfg_attr(
31948    target_arch = "arm",
31949    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31950)]
31951pub fn vmull_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint64x2_t {
31952    static_assert_uimm_bits!(LANE, 2);
31953    unsafe { vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32])) }
31954}
31955#[doc = "Vector long multiply with scalar"]
31956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s16)"]
31957#[inline(always)]
31958#[target_feature(enable = "neon")]
31959#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31960#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
31961#[cfg_attr(
31962    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31963    assert_instr(smull)
31964)]
31965#[cfg_attr(
31966    not(target_arch = "arm"),
31967    stable(feature = "neon_intrinsics", since = "1.59.0")
31968)]
31969#[cfg_attr(
31970    target_arch = "arm",
31971    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31972)]
31973pub fn vmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
31974    vmull_s16(a, vdup_n_s16(b))
31975}
31976#[doc = "Vector long multiply with scalar"]
31977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s32)"]
31978#[inline(always)]
31979#[target_feature(enable = "neon")]
31980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31981#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
31982#[cfg_attr(
31983    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
31984    assert_instr(smull)
31985)]
31986#[cfg_attr(
31987    not(target_arch = "arm"),
31988    stable(feature = "neon_intrinsics", since = "1.59.0")
31989)]
31990#[cfg_attr(
31991    target_arch = "arm",
31992    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
31993)]
31994pub fn vmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
31995    vmull_s32(a, vdup_n_s32(b))
31996}
31997#[doc = "Vector long multiply with scalar"]
31998#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u16)"]
31999#[inline(always)]
32000#[target_feature(enable = "neon")]
32001#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32002#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
32003#[cfg_attr(
32004    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32005    assert_instr(umull)
32006)]
32007#[cfg_attr(
32008    not(target_arch = "arm"),
32009    stable(feature = "neon_intrinsics", since = "1.59.0")
32010)]
32011#[cfg_attr(
32012    target_arch = "arm",
32013    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32014)]
32015pub fn vmull_n_u16(a: uint16x4_t, b: u16) -> uint32x4_t {
32016    vmull_u16(a, vdup_n_u16(b))
32017}
32018#[doc = "Vector long multiply with scalar"]
32019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u32)"]
32020#[inline(always)]
32021#[target_feature(enable = "neon")]
32022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
32024#[cfg_attr(
32025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32026    assert_instr(umull)
32027)]
32028#[cfg_attr(
32029    not(target_arch = "arm"),
32030    stable(feature = "neon_intrinsics", since = "1.59.0")
32031)]
32032#[cfg_attr(
32033    target_arch = "arm",
32034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32035)]
32036pub fn vmull_n_u32(a: uint32x2_t, b: u32) -> uint64x2_t {
32037    vmull_u32(a, vdup_n_u32(b))
32038}
32039#[doc = "Polynomial multiply long"]
32040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_p8)"]
32041#[inline(always)]
32042#[target_feature(enable = "neon")]
32043#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32044#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.p8"))]
32045#[cfg_attr(
32046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32047    assert_instr(pmull)
32048)]
32049#[cfg_attr(
32050    not(target_arch = "arm"),
32051    stable(feature = "neon_intrinsics", since = "1.59.0")
32052)]
32053#[cfg_attr(
32054    target_arch = "arm",
32055    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32056)]
32057pub fn vmull_p8(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t {
32058    unsafe extern "unadjusted" {
32059        #[cfg_attr(
32060            any(target_arch = "aarch64", target_arch = "arm64ec"),
32061            link_name = "llvm.aarch64.neon.pmull.v8i16"
32062        )]
32063        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullp.v8i16")]
32064        fn _vmull_p8(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t;
32065    }
32066    unsafe { _vmull_p8(a, b) }
32067}
32068#[doc = "Signed multiply long"]
32069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s16)"]
32070#[inline(always)]
32071#[target_feature(enable = "neon")]
32072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32073#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s16"))]
32074#[cfg_attr(
32075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32076    assert_instr(smull)
32077)]
32078#[cfg_attr(
32079    not(target_arch = "arm"),
32080    stable(feature = "neon_intrinsics", since = "1.59.0")
32081)]
32082#[cfg_attr(
32083    target_arch = "arm",
32084    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32085)]
32086pub fn vmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
32087    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32088}
32089#[doc = "Signed multiply long"]
32090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s32)"]
32091#[inline(always)]
32092#[target_feature(enable = "neon")]
32093#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32094#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s32"))]
32095#[cfg_attr(
32096    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32097    assert_instr(smull)
32098)]
32099#[cfg_attr(
32100    not(target_arch = "arm"),
32101    stable(feature = "neon_intrinsics", since = "1.59.0")
32102)]
32103#[cfg_attr(
32104    target_arch = "arm",
32105    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32106)]
32107pub fn vmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
32108    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32109}
32110#[doc = "Signed multiply long"]
32111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s8)"]
32112#[inline(always)]
32113#[target_feature(enable = "neon")]
32114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32115#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s8"))]
32116#[cfg_attr(
32117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32118    assert_instr(smull)
32119)]
32120#[cfg_attr(
32121    not(target_arch = "arm"),
32122    stable(feature = "neon_intrinsics", since = "1.59.0")
32123)]
32124#[cfg_attr(
32125    target_arch = "arm",
32126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32127)]
32128pub fn vmull_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
32129    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32130}
32131#[doc = "Unsigned multiply long"]
32132#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u8)"]
32133#[inline(always)]
32134#[target_feature(enable = "neon")]
32135#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32136#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u8"))]
32137#[cfg_attr(
32138    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32139    assert_instr(umull)
32140)]
32141#[cfg_attr(
32142    not(target_arch = "arm"),
32143    stable(feature = "neon_intrinsics", since = "1.59.0")
32144)]
32145#[cfg_attr(
32146    target_arch = "arm",
32147    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32148)]
32149pub fn vmull_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
32150    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32151}
32152#[doc = "Unsigned multiply long"]
32153#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u16)"]
32154#[inline(always)]
32155#[target_feature(enable = "neon")]
32156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32157#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u16"))]
32158#[cfg_attr(
32159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32160    assert_instr(umull)
32161)]
32162#[cfg_attr(
32163    not(target_arch = "arm"),
32164    stable(feature = "neon_intrinsics", since = "1.59.0")
32165)]
32166#[cfg_attr(
32167    target_arch = "arm",
32168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32169)]
32170pub fn vmull_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
32171    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32172}
32173#[doc = "Unsigned multiply long"]
32174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u32)"]
32175#[inline(always)]
32176#[target_feature(enable = "neon")]
32177#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32178#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u32"))]
32179#[cfg_attr(
32180    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32181    assert_instr(umull)
32182)]
32183#[cfg_attr(
32184    not(target_arch = "arm"),
32185    stable(feature = "neon_intrinsics", since = "1.59.0")
32186)]
32187#[cfg_attr(
32188    target_arch = "arm",
32189    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32190)]
32191pub fn vmull_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
32192    unsafe { simd_mul(simd_cast(a), simd_cast(b)) }
32193}
32194#[doc = "Vector bitwise not."]
32195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_p8)"]
32196#[inline(always)]
32197#[target_feature(enable = "neon")]
32198#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32199#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32200#[cfg_attr(
32201    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32202    assert_instr(mvn)
32203)]
32204#[cfg_attr(
32205    not(target_arch = "arm"),
32206    stable(feature = "neon_intrinsics", since = "1.59.0")
32207)]
32208#[cfg_attr(
32209    target_arch = "arm",
32210    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32211)]
32212pub fn vmvn_p8(a: poly8x8_t) -> poly8x8_t {
32213    let b = poly8x8_t::splat(255);
32214    unsafe { simd_xor(a, b) }
32215}
32216#[doc = "Vector bitwise not."]
32217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s16)"]
32218#[inline(always)]
32219#[target_feature(enable = "neon")]
32220#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32221#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32222#[cfg_attr(
32223    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32224    assert_instr(mvn)
32225)]
32226#[cfg_attr(
32227    not(target_arch = "arm"),
32228    stable(feature = "neon_intrinsics", since = "1.59.0")
32229)]
32230#[cfg_attr(
32231    target_arch = "arm",
32232    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32233)]
32234pub fn vmvn_s16(a: int16x4_t) -> int16x4_t {
32235    let b = int16x4_t::splat(-1);
32236    unsafe { simd_xor(a, b) }
32237}
32238#[doc = "Vector bitwise not."]
32239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s32)"]
32240#[inline(always)]
32241#[target_feature(enable = "neon")]
32242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32244#[cfg_attr(
32245    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32246    assert_instr(mvn)
32247)]
32248#[cfg_attr(
32249    not(target_arch = "arm"),
32250    stable(feature = "neon_intrinsics", since = "1.59.0")
32251)]
32252#[cfg_attr(
32253    target_arch = "arm",
32254    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32255)]
32256pub fn vmvn_s32(a: int32x2_t) -> int32x2_t {
32257    let b = int32x2_t::splat(-1);
32258    unsafe { simd_xor(a, b) }
32259}
32260#[doc = "Vector bitwise not."]
32261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_s8)"]
32262#[inline(always)]
32263#[target_feature(enable = "neon")]
32264#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32265#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32266#[cfg_attr(
32267    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32268    assert_instr(mvn)
32269)]
32270#[cfg_attr(
32271    not(target_arch = "arm"),
32272    stable(feature = "neon_intrinsics", since = "1.59.0")
32273)]
32274#[cfg_attr(
32275    target_arch = "arm",
32276    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32277)]
32278pub fn vmvn_s8(a: int8x8_t) -> int8x8_t {
32279    let b = int8x8_t::splat(-1);
32280    unsafe { simd_xor(a, b) }
32281}
32282#[doc = "Vector bitwise not."]
32283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u16)"]
32284#[inline(always)]
32285#[target_feature(enable = "neon")]
32286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32287#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32288#[cfg_attr(
32289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32290    assert_instr(mvn)
32291)]
32292#[cfg_attr(
32293    not(target_arch = "arm"),
32294    stable(feature = "neon_intrinsics", since = "1.59.0")
32295)]
32296#[cfg_attr(
32297    target_arch = "arm",
32298    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32299)]
32300pub fn vmvn_u16(a: uint16x4_t) -> uint16x4_t {
32301    let b = uint16x4_t::splat(65_535);
32302    unsafe { simd_xor(a, b) }
32303}
32304#[doc = "Vector bitwise not."]
32305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u32)"]
32306#[inline(always)]
32307#[target_feature(enable = "neon")]
32308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32310#[cfg_attr(
32311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32312    assert_instr(mvn)
32313)]
32314#[cfg_attr(
32315    not(target_arch = "arm"),
32316    stable(feature = "neon_intrinsics", since = "1.59.0")
32317)]
32318#[cfg_attr(
32319    target_arch = "arm",
32320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32321)]
32322pub fn vmvn_u32(a: uint32x2_t) -> uint32x2_t {
32323    let b = uint32x2_t::splat(4_294_967_295);
32324    unsafe { simd_xor(a, b) }
32325}
32326#[doc = "Vector bitwise not."]
32327#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvn_u8)"]
32328#[inline(always)]
32329#[target_feature(enable = "neon")]
32330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32332#[cfg_attr(
32333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32334    assert_instr(mvn)
32335)]
32336#[cfg_attr(
32337    not(target_arch = "arm"),
32338    stable(feature = "neon_intrinsics", since = "1.59.0")
32339)]
32340#[cfg_attr(
32341    target_arch = "arm",
32342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32343)]
32344pub fn vmvn_u8(a: uint8x8_t) -> uint8x8_t {
32345    let b = uint8x8_t::splat(255);
32346    unsafe { simd_xor(a, b) }
32347}
32348#[doc = "Vector bitwise not."]
32349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_p8)"]
32350#[inline(always)]
32351#[target_feature(enable = "neon")]
32352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32354#[cfg_attr(
32355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32356    assert_instr(mvn)
32357)]
32358#[cfg_attr(
32359    not(target_arch = "arm"),
32360    stable(feature = "neon_intrinsics", since = "1.59.0")
32361)]
32362#[cfg_attr(
32363    target_arch = "arm",
32364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32365)]
32366pub fn vmvnq_p8(a: poly8x16_t) -> poly8x16_t {
32367    let b = poly8x16_t::splat(255);
32368    unsafe { simd_xor(a, b) }
32369}
32370#[doc = "Vector bitwise not."]
32371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s16)"]
32372#[inline(always)]
32373#[target_feature(enable = "neon")]
32374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32376#[cfg_attr(
32377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32378    assert_instr(mvn)
32379)]
32380#[cfg_attr(
32381    not(target_arch = "arm"),
32382    stable(feature = "neon_intrinsics", since = "1.59.0")
32383)]
32384#[cfg_attr(
32385    target_arch = "arm",
32386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32387)]
32388pub fn vmvnq_s16(a: int16x8_t) -> int16x8_t {
32389    let b = int16x8_t::splat(-1);
32390    unsafe { simd_xor(a, b) }
32391}
32392#[doc = "Vector bitwise not."]
32393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s32)"]
32394#[inline(always)]
32395#[target_feature(enable = "neon")]
32396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32398#[cfg_attr(
32399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32400    assert_instr(mvn)
32401)]
32402#[cfg_attr(
32403    not(target_arch = "arm"),
32404    stable(feature = "neon_intrinsics", since = "1.59.0")
32405)]
32406#[cfg_attr(
32407    target_arch = "arm",
32408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32409)]
32410pub fn vmvnq_s32(a: int32x4_t) -> int32x4_t {
32411    let b = int32x4_t::splat(-1);
32412    unsafe { simd_xor(a, b) }
32413}
32414#[doc = "Vector bitwise not."]
32415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_s8)"]
32416#[inline(always)]
32417#[target_feature(enable = "neon")]
32418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32419#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32420#[cfg_attr(
32421    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32422    assert_instr(mvn)
32423)]
32424#[cfg_attr(
32425    not(target_arch = "arm"),
32426    stable(feature = "neon_intrinsics", since = "1.59.0")
32427)]
32428#[cfg_attr(
32429    target_arch = "arm",
32430    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32431)]
32432pub fn vmvnq_s8(a: int8x16_t) -> int8x16_t {
32433    let b = int8x16_t::splat(-1);
32434    unsafe { simd_xor(a, b) }
32435}
32436#[doc = "Vector bitwise not."]
32437#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u16)"]
32438#[inline(always)]
32439#[target_feature(enable = "neon")]
32440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32442#[cfg_attr(
32443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32444    assert_instr(mvn)
32445)]
32446#[cfg_attr(
32447    not(target_arch = "arm"),
32448    stable(feature = "neon_intrinsics", since = "1.59.0")
32449)]
32450#[cfg_attr(
32451    target_arch = "arm",
32452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32453)]
32454pub fn vmvnq_u16(a: uint16x8_t) -> uint16x8_t {
32455    let b = uint16x8_t::splat(65_535);
32456    unsafe { simd_xor(a, b) }
32457}
32458#[doc = "Vector bitwise not."]
32459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u32)"]
32460#[inline(always)]
32461#[target_feature(enable = "neon")]
32462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32464#[cfg_attr(
32465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32466    assert_instr(mvn)
32467)]
32468#[cfg_attr(
32469    not(target_arch = "arm"),
32470    stable(feature = "neon_intrinsics", since = "1.59.0")
32471)]
32472#[cfg_attr(
32473    target_arch = "arm",
32474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32475)]
32476pub fn vmvnq_u32(a: uint32x4_t) -> uint32x4_t {
32477    let b = uint32x4_t::splat(4_294_967_295);
32478    unsafe { simd_xor(a, b) }
32479}
32480#[doc = "Vector bitwise not."]
32481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmvnq_u8)"]
32482#[inline(always)]
32483#[target_feature(enable = "neon")]
32484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmvn))]
32486#[cfg_attr(
32487    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32488    assert_instr(mvn)
32489)]
32490#[cfg_attr(
32491    not(target_arch = "arm"),
32492    stable(feature = "neon_intrinsics", since = "1.59.0")
32493)]
32494#[cfg_attr(
32495    target_arch = "arm",
32496    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32497)]
32498pub fn vmvnq_u8(a: uint8x16_t) -> uint8x16_t {
32499    let b = uint8x16_t::splat(255);
32500    unsafe { simd_xor(a, b) }
32501}
32502#[doc = "Negate"]
32503#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_f16)"]
32504#[inline(always)]
32505#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32506#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f16"))]
32507#[cfg_attr(
32508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32509    assert_instr(fneg)
32510)]
32511#[target_feature(enable = "neon,fp16")]
32512#[cfg_attr(
32513    not(target_arch = "arm"),
32514    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
32515)]
32516#[cfg_attr(
32517    target_arch = "arm",
32518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32519)]
32520#[cfg(not(target_arch = "arm64ec"))]
32521pub fn vneg_f16(a: float16x4_t) -> float16x4_t {
32522    unsafe { simd_neg(a) }
32523}
32524#[doc = "Negate"]
32525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_f16)"]
32526#[inline(always)]
32527#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
32528#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f16"))]
32529#[cfg_attr(
32530    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32531    assert_instr(fneg)
32532)]
32533#[target_feature(enable = "neon,fp16")]
32534#[cfg_attr(
32535    not(target_arch = "arm"),
32536    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
32537)]
32538#[cfg_attr(
32539    target_arch = "arm",
32540    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32541)]
32542#[cfg(not(target_arch = "arm64ec"))]
32543pub fn vnegq_f16(a: float16x8_t) -> float16x8_t {
32544    unsafe { simd_neg(a) }
32545}
32546#[doc = "Negate"]
32547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_f32)"]
32548#[inline(always)]
32549#[target_feature(enable = "neon")]
32550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32551#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
32552#[cfg_attr(
32553    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32554    assert_instr(fneg)
32555)]
32556#[cfg_attr(
32557    not(target_arch = "arm"),
32558    stable(feature = "neon_intrinsics", since = "1.59.0")
32559)]
32560#[cfg_attr(
32561    target_arch = "arm",
32562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32563)]
32564pub fn vneg_f32(a: float32x2_t) -> float32x2_t {
32565    unsafe { simd_neg(a) }
32566}
32567#[doc = "Negate"]
32568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_f32)"]
32569#[inline(always)]
32570#[target_feature(enable = "neon")]
32571#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32572#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
32573#[cfg_attr(
32574    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32575    assert_instr(fneg)
32576)]
32577#[cfg_attr(
32578    not(target_arch = "arm"),
32579    stable(feature = "neon_intrinsics", since = "1.59.0")
32580)]
32581#[cfg_attr(
32582    target_arch = "arm",
32583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32584)]
32585pub fn vnegq_f32(a: float32x4_t) -> float32x4_t {
32586    unsafe { simd_neg(a) }
32587}
32588#[doc = "Negate"]
32589#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s8)"]
32590#[inline(always)]
32591#[target_feature(enable = "neon")]
32592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32593#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
32594#[cfg_attr(
32595    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32596    assert_instr(neg)
32597)]
32598#[cfg_attr(
32599    not(target_arch = "arm"),
32600    stable(feature = "neon_intrinsics", since = "1.59.0")
32601)]
32602#[cfg_attr(
32603    target_arch = "arm",
32604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32605)]
32606pub fn vneg_s8(a: int8x8_t) -> int8x8_t {
32607    unsafe { simd_neg(a) }
32608}
32609#[doc = "Negate"]
32610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s8)"]
32611#[inline(always)]
32612#[target_feature(enable = "neon")]
32613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32614#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
32615#[cfg_attr(
32616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32617    assert_instr(neg)
32618)]
32619#[cfg_attr(
32620    not(target_arch = "arm"),
32621    stable(feature = "neon_intrinsics", since = "1.59.0")
32622)]
32623#[cfg_attr(
32624    target_arch = "arm",
32625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32626)]
32627pub fn vnegq_s8(a: int8x16_t) -> int8x16_t {
32628    unsafe { simd_neg(a) }
32629}
32630#[doc = "Negate"]
32631#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s16)"]
32632#[inline(always)]
32633#[target_feature(enable = "neon")]
32634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32635#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
32636#[cfg_attr(
32637    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32638    assert_instr(neg)
32639)]
32640#[cfg_attr(
32641    not(target_arch = "arm"),
32642    stable(feature = "neon_intrinsics", since = "1.59.0")
32643)]
32644#[cfg_attr(
32645    target_arch = "arm",
32646    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32647)]
32648pub fn vneg_s16(a: int16x4_t) -> int16x4_t {
32649    unsafe { simd_neg(a) }
32650}
32651#[doc = "Negate"]
32652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s16)"]
32653#[inline(always)]
32654#[target_feature(enable = "neon")]
32655#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32656#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
32657#[cfg_attr(
32658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32659    assert_instr(neg)
32660)]
32661#[cfg_attr(
32662    not(target_arch = "arm"),
32663    stable(feature = "neon_intrinsics", since = "1.59.0")
32664)]
32665#[cfg_attr(
32666    target_arch = "arm",
32667    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32668)]
32669pub fn vnegq_s16(a: int16x8_t) -> int16x8_t {
32670    unsafe { simd_neg(a) }
32671}
32672#[doc = "Negate"]
32673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s32)"]
32674#[inline(always)]
32675#[target_feature(enable = "neon")]
32676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32677#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
32678#[cfg_attr(
32679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32680    assert_instr(neg)
32681)]
32682#[cfg_attr(
32683    not(target_arch = "arm"),
32684    stable(feature = "neon_intrinsics", since = "1.59.0")
32685)]
32686#[cfg_attr(
32687    target_arch = "arm",
32688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32689)]
32690pub fn vneg_s32(a: int32x2_t) -> int32x2_t {
32691    unsafe { simd_neg(a) }
32692}
32693#[doc = "Negate"]
32694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s32)"]
32695#[inline(always)]
32696#[target_feature(enable = "neon")]
32697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32698#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
32699#[cfg_attr(
32700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32701    assert_instr(neg)
32702)]
32703#[cfg_attr(
32704    not(target_arch = "arm"),
32705    stable(feature = "neon_intrinsics", since = "1.59.0")
32706)]
32707#[cfg_attr(
32708    target_arch = "arm",
32709    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32710)]
32711pub fn vnegq_s32(a: int32x4_t) -> int32x4_t {
32712    unsafe { simd_neg(a) }
32713}
32714#[doc = "Vector bitwise inclusive OR NOT"]
32715#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s16)"]
32716#[inline(always)]
32717#[target_feature(enable = "neon")]
32718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32720#[cfg_attr(
32721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32722    assert_instr(orn)
32723)]
32724#[cfg_attr(
32725    not(target_arch = "arm"),
32726    stable(feature = "neon_intrinsics", since = "1.59.0")
32727)]
32728#[cfg_attr(
32729    target_arch = "arm",
32730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32731)]
32732pub fn vorn_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
32733    let c = int16x4_t::splat(-1);
32734    unsafe { simd_or(simd_xor(b, c), a) }
32735}
32736#[doc = "Vector bitwise inclusive OR NOT"]
32737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s32)"]
32738#[inline(always)]
32739#[target_feature(enable = "neon")]
32740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32741#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32742#[cfg_attr(
32743    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32744    assert_instr(orn)
32745)]
32746#[cfg_attr(
32747    not(target_arch = "arm"),
32748    stable(feature = "neon_intrinsics", since = "1.59.0")
32749)]
32750#[cfg_attr(
32751    target_arch = "arm",
32752    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32753)]
32754pub fn vorn_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
32755    let c = int32x2_t::splat(-1);
32756    unsafe { simd_or(simd_xor(b, c), a) }
32757}
32758#[doc = "Vector bitwise inclusive OR NOT"]
32759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s64)"]
32760#[inline(always)]
32761#[target_feature(enable = "neon")]
32762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32763#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32764#[cfg_attr(
32765    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32766    assert_instr(orn)
32767)]
32768#[cfg_attr(
32769    not(target_arch = "arm"),
32770    stable(feature = "neon_intrinsics", since = "1.59.0")
32771)]
32772#[cfg_attr(
32773    target_arch = "arm",
32774    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32775)]
32776pub fn vorn_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
32777    let c = int64x1_t::splat(-1);
32778    unsafe { simd_or(simd_xor(b, c), a) }
32779}
32780#[doc = "Vector bitwise inclusive OR NOT"]
32781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_s8)"]
32782#[inline(always)]
32783#[target_feature(enable = "neon")]
32784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32785#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32786#[cfg_attr(
32787    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32788    assert_instr(orn)
32789)]
32790#[cfg_attr(
32791    not(target_arch = "arm"),
32792    stable(feature = "neon_intrinsics", since = "1.59.0")
32793)]
32794#[cfg_attr(
32795    target_arch = "arm",
32796    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32797)]
32798pub fn vorn_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
32799    let c = int8x8_t::splat(-1);
32800    unsafe { simd_or(simd_xor(b, c), a) }
32801}
32802#[doc = "Vector bitwise inclusive OR NOT"]
32803#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s16)"]
32804#[inline(always)]
32805#[target_feature(enable = "neon")]
32806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32807#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32808#[cfg_attr(
32809    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32810    assert_instr(orn)
32811)]
32812#[cfg_attr(
32813    not(target_arch = "arm"),
32814    stable(feature = "neon_intrinsics", since = "1.59.0")
32815)]
32816#[cfg_attr(
32817    target_arch = "arm",
32818    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32819)]
32820pub fn vornq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
32821    let c = int16x8_t::splat(-1);
32822    unsafe { simd_or(simd_xor(b, c), a) }
32823}
32824#[doc = "Vector bitwise inclusive OR NOT"]
32825#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s32)"]
32826#[inline(always)]
32827#[target_feature(enable = "neon")]
32828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32829#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32830#[cfg_attr(
32831    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32832    assert_instr(orn)
32833)]
32834#[cfg_attr(
32835    not(target_arch = "arm"),
32836    stable(feature = "neon_intrinsics", since = "1.59.0")
32837)]
32838#[cfg_attr(
32839    target_arch = "arm",
32840    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32841)]
32842pub fn vornq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
32843    let c = int32x4_t::splat(-1);
32844    unsafe { simd_or(simd_xor(b, c), a) }
32845}
32846#[doc = "Vector bitwise inclusive OR NOT"]
32847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s64)"]
32848#[inline(always)]
32849#[target_feature(enable = "neon")]
32850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32852#[cfg_attr(
32853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32854    assert_instr(orn)
32855)]
32856#[cfg_attr(
32857    not(target_arch = "arm"),
32858    stable(feature = "neon_intrinsics", since = "1.59.0")
32859)]
32860#[cfg_attr(
32861    target_arch = "arm",
32862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32863)]
32864pub fn vornq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
32865    let c = int64x2_t::splat(-1);
32866    unsafe { simd_or(simd_xor(b, c), a) }
32867}
32868#[doc = "Vector bitwise inclusive OR NOT"]
32869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_s8)"]
32870#[inline(always)]
32871#[target_feature(enable = "neon")]
32872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32874#[cfg_attr(
32875    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32876    assert_instr(orn)
32877)]
32878#[cfg_attr(
32879    not(target_arch = "arm"),
32880    stable(feature = "neon_intrinsics", since = "1.59.0")
32881)]
32882#[cfg_attr(
32883    target_arch = "arm",
32884    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32885)]
32886pub fn vornq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
32887    let c = int8x16_t::splat(-1);
32888    unsafe { simd_or(simd_xor(b, c), a) }
32889}
32890#[doc = "Vector bitwise inclusive OR NOT"]
32891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u16)"]
32892#[inline(always)]
32893#[target_feature(enable = "neon")]
32894#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32895#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32896#[cfg_attr(
32897    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32898    assert_instr(orn)
32899)]
32900#[cfg_attr(
32901    not(target_arch = "arm"),
32902    stable(feature = "neon_intrinsics", since = "1.59.0")
32903)]
32904#[cfg_attr(
32905    target_arch = "arm",
32906    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32907)]
32908pub fn vorn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
32909    let c = int16x4_t::splat(-1);
32910    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32911}
32912#[doc = "Vector bitwise inclusive OR NOT"]
32913#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u32)"]
32914#[inline(always)]
32915#[target_feature(enable = "neon")]
32916#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32917#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32918#[cfg_attr(
32919    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32920    assert_instr(orn)
32921)]
32922#[cfg_attr(
32923    not(target_arch = "arm"),
32924    stable(feature = "neon_intrinsics", since = "1.59.0")
32925)]
32926#[cfg_attr(
32927    target_arch = "arm",
32928    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32929)]
32930pub fn vorn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
32931    let c = int32x2_t::splat(-1);
32932    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32933}
32934#[doc = "Vector bitwise inclusive OR NOT"]
32935#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u64)"]
32936#[inline(always)]
32937#[target_feature(enable = "neon")]
32938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32940#[cfg_attr(
32941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32942    assert_instr(orn)
32943)]
32944#[cfg_attr(
32945    not(target_arch = "arm"),
32946    stable(feature = "neon_intrinsics", since = "1.59.0")
32947)]
32948#[cfg_attr(
32949    target_arch = "arm",
32950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32951)]
32952pub fn vorn_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
32953    let c = int64x1_t::splat(-1);
32954    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32955}
32956#[doc = "Vector bitwise inclusive OR NOT"]
32957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorn_u8)"]
32958#[inline(always)]
32959#[target_feature(enable = "neon")]
32960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32962#[cfg_attr(
32963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32964    assert_instr(orn)
32965)]
32966#[cfg_attr(
32967    not(target_arch = "arm"),
32968    stable(feature = "neon_intrinsics", since = "1.59.0")
32969)]
32970#[cfg_attr(
32971    target_arch = "arm",
32972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32973)]
32974pub fn vorn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
32975    let c = int8x8_t::splat(-1);
32976    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32977}
32978#[doc = "Vector bitwise inclusive OR NOT"]
32979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u16)"]
32980#[inline(always)]
32981#[target_feature(enable = "neon")]
32982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32983#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
32984#[cfg_attr(
32985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
32986    assert_instr(orn)
32987)]
32988#[cfg_attr(
32989    not(target_arch = "arm"),
32990    stable(feature = "neon_intrinsics", since = "1.59.0")
32991)]
32992#[cfg_attr(
32993    target_arch = "arm",
32994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
32995)]
32996pub fn vornq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
32997    let c = int16x8_t::splat(-1);
32998    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
32999}
33000#[doc = "Vector bitwise inclusive OR NOT"]
33001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u32)"]
33002#[inline(always)]
33003#[target_feature(enable = "neon")]
33004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33005#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
33006#[cfg_attr(
33007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33008    assert_instr(orn)
33009)]
33010#[cfg_attr(
33011    not(target_arch = "arm"),
33012    stable(feature = "neon_intrinsics", since = "1.59.0")
33013)]
33014#[cfg_attr(
33015    target_arch = "arm",
33016    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33017)]
33018pub fn vornq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
33019    let c = int32x4_t::splat(-1);
33020    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
33021}
33022#[doc = "Vector bitwise inclusive OR NOT"]
33023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u64)"]
33024#[inline(always)]
33025#[target_feature(enable = "neon")]
33026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
33028#[cfg_attr(
33029    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33030    assert_instr(orn)
33031)]
33032#[cfg_attr(
33033    not(target_arch = "arm"),
33034    stable(feature = "neon_intrinsics", since = "1.59.0")
33035)]
33036#[cfg_attr(
33037    target_arch = "arm",
33038    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33039)]
33040pub fn vornq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
33041    let c = int64x2_t::splat(-1);
33042    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
33043}
33044#[doc = "Vector bitwise inclusive OR NOT"]
33045#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vornq_u8)"]
33046#[inline(always)]
33047#[target_feature(enable = "neon")]
33048#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33049#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorn))]
33050#[cfg_attr(
33051    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33052    assert_instr(orn)
33053)]
33054#[cfg_attr(
33055    not(target_arch = "arm"),
33056    stable(feature = "neon_intrinsics", since = "1.59.0")
33057)]
33058#[cfg_attr(
33059    target_arch = "arm",
33060    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33061)]
33062pub fn vornq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
33063    let c = int8x16_t::splat(-1);
33064    unsafe { simd_or(simd_xor(b, transmute(c)), a) }
33065}
33066#[doc = "Vector bitwise or (immediate, inclusive)"]
33067#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s8)"]
33068#[inline(always)]
33069#[target_feature(enable = "neon")]
33070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33071#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33072#[cfg_attr(
33073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33074    assert_instr(orr)
33075)]
33076#[cfg_attr(
33077    not(target_arch = "arm"),
33078    stable(feature = "neon_intrinsics", since = "1.59.0")
33079)]
33080#[cfg_attr(
33081    target_arch = "arm",
33082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33083)]
33084pub fn vorr_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
33085    unsafe { simd_or(a, b) }
33086}
33087#[doc = "Vector bitwise or (immediate, inclusive)"]
33088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s8)"]
33089#[inline(always)]
33090#[target_feature(enable = "neon")]
33091#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33092#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33093#[cfg_attr(
33094    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33095    assert_instr(orr)
33096)]
33097#[cfg_attr(
33098    not(target_arch = "arm"),
33099    stable(feature = "neon_intrinsics", since = "1.59.0")
33100)]
33101#[cfg_attr(
33102    target_arch = "arm",
33103    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33104)]
33105pub fn vorrq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
33106    unsafe { simd_or(a, b) }
33107}
33108#[doc = "Vector bitwise or (immediate, inclusive)"]
33109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s16)"]
33110#[inline(always)]
33111#[target_feature(enable = "neon")]
33112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33114#[cfg_attr(
33115    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33116    assert_instr(orr)
33117)]
33118#[cfg_attr(
33119    not(target_arch = "arm"),
33120    stable(feature = "neon_intrinsics", since = "1.59.0")
33121)]
33122#[cfg_attr(
33123    target_arch = "arm",
33124    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33125)]
33126pub fn vorr_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
33127    unsafe { simd_or(a, b) }
33128}
33129#[doc = "Vector bitwise or (immediate, inclusive)"]
33130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s16)"]
33131#[inline(always)]
33132#[target_feature(enable = "neon")]
33133#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33134#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33135#[cfg_attr(
33136    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33137    assert_instr(orr)
33138)]
33139#[cfg_attr(
33140    not(target_arch = "arm"),
33141    stable(feature = "neon_intrinsics", since = "1.59.0")
33142)]
33143#[cfg_attr(
33144    target_arch = "arm",
33145    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33146)]
33147pub fn vorrq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
33148    unsafe { simd_or(a, b) }
33149}
33150#[doc = "Vector bitwise or (immediate, inclusive)"]
33151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s32)"]
33152#[inline(always)]
33153#[target_feature(enable = "neon")]
33154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33155#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33156#[cfg_attr(
33157    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33158    assert_instr(orr)
33159)]
33160#[cfg_attr(
33161    not(target_arch = "arm"),
33162    stable(feature = "neon_intrinsics", since = "1.59.0")
33163)]
33164#[cfg_attr(
33165    target_arch = "arm",
33166    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33167)]
33168pub fn vorr_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
33169    unsafe { simd_or(a, b) }
33170}
33171#[doc = "Vector bitwise or (immediate, inclusive)"]
33172#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s32)"]
33173#[inline(always)]
33174#[target_feature(enable = "neon")]
33175#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33176#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33177#[cfg_attr(
33178    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33179    assert_instr(orr)
33180)]
33181#[cfg_attr(
33182    not(target_arch = "arm"),
33183    stable(feature = "neon_intrinsics", since = "1.59.0")
33184)]
33185#[cfg_attr(
33186    target_arch = "arm",
33187    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33188)]
33189pub fn vorrq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
33190    unsafe { simd_or(a, b) }
33191}
33192#[doc = "Vector bitwise or (immediate, inclusive)"]
33193#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s64)"]
33194#[inline(always)]
33195#[target_feature(enable = "neon")]
33196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33198#[cfg_attr(
33199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33200    assert_instr(orr)
33201)]
33202#[cfg_attr(
33203    not(target_arch = "arm"),
33204    stable(feature = "neon_intrinsics", since = "1.59.0")
33205)]
33206#[cfg_attr(
33207    target_arch = "arm",
33208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33209)]
33210pub fn vorr_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
33211    unsafe { simd_or(a, b) }
33212}
33213#[doc = "Vector bitwise or (immediate, inclusive)"]
33214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s64)"]
33215#[inline(always)]
33216#[target_feature(enable = "neon")]
33217#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33218#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33219#[cfg_attr(
33220    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33221    assert_instr(orr)
33222)]
33223#[cfg_attr(
33224    not(target_arch = "arm"),
33225    stable(feature = "neon_intrinsics", since = "1.59.0")
33226)]
33227#[cfg_attr(
33228    target_arch = "arm",
33229    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33230)]
33231pub fn vorrq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
33232    unsafe { simd_or(a, b) }
33233}
33234#[doc = "Vector bitwise or (immediate, inclusive)"]
33235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u8)"]
33236#[inline(always)]
33237#[target_feature(enable = "neon")]
33238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33239#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33240#[cfg_attr(
33241    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33242    assert_instr(orr)
33243)]
33244#[cfg_attr(
33245    not(target_arch = "arm"),
33246    stable(feature = "neon_intrinsics", since = "1.59.0")
33247)]
33248#[cfg_attr(
33249    target_arch = "arm",
33250    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33251)]
33252pub fn vorr_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
33253    unsafe { simd_or(a, b) }
33254}
33255#[doc = "Vector bitwise or (immediate, inclusive)"]
33256#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u8)"]
33257#[inline(always)]
33258#[target_feature(enable = "neon")]
33259#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33260#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33261#[cfg_attr(
33262    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33263    assert_instr(orr)
33264)]
33265#[cfg_attr(
33266    not(target_arch = "arm"),
33267    stable(feature = "neon_intrinsics", since = "1.59.0")
33268)]
33269#[cfg_attr(
33270    target_arch = "arm",
33271    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33272)]
33273pub fn vorrq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
33274    unsafe { simd_or(a, b) }
33275}
33276#[doc = "Vector bitwise or (immediate, inclusive)"]
33277#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u16)"]
33278#[inline(always)]
33279#[target_feature(enable = "neon")]
33280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33281#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33282#[cfg_attr(
33283    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33284    assert_instr(orr)
33285)]
33286#[cfg_attr(
33287    not(target_arch = "arm"),
33288    stable(feature = "neon_intrinsics", since = "1.59.0")
33289)]
33290#[cfg_attr(
33291    target_arch = "arm",
33292    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33293)]
33294pub fn vorr_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
33295    unsafe { simd_or(a, b) }
33296}
33297#[doc = "Vector bitwise or (immediate, inclusive)"]
33298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u16)"]
33299#[inline(always)]
33300#[target_feature(enable = "neon")]
33301#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33302#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33303#[cfg_attr(
33304    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33305    assert_instr(orr)
33306)]
33307#[cfg_attr(
33308    not(target_arch = "arm"),
33309    stable(feature = "neon_intrinsics", since = "1.59.0")
33310)]
33311#[cfg_attr(
33312    target_arch = "arm",
33313    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33314)]
33315pub fn vorrq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
33316    unsafe { simd_or(a, b) }
33317}
33318#[doc = "Vector bitwise or (immediate, inclusive)"]
33319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u32)"]
33320#[inline(always)]
33321#[target_feature(enable = "neon")]
33322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33323#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33324#[cfg_attr(
33325    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33326    assert_instr(orr)
33327)]
33328#[cfg_attr(
33329    not(target_arch = "arm"),
33330    stable(feature = "neon_intrinsics", since = "1.59.0")
33331)]
33332#[cfg_attr(
33333    target_arch = "arm",
33334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33335)]
33336pub fn vorr_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
33337    unsafe { simd_or(a, b) }
33338}
33339#[doc = "Vector bitwise or (immediate, inclusive)"]
33340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u32)"]
33341#[inline(always)]
33342#[target_feature(enable = "neon")]
33343#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33344#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33345#[cfg_attr(
33346    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33347    assert_instr(orr)
33348)]
33349#[cfg_attr(
33350    not(target_arch = "arm"),
33351    stable(feature = "neon_intrinsics", since = "1.59.0")
33352)]
33353#[cfg_attr(
33354    target_arch = "arm",
33355    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33356)]
33357pub fn vorrq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
33358    unsafe { simd_or(a, b) }
33359}
33360#[doc = "Vector bitwise or (immediate, inclusive)"]
33361#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u64)"]
33362#[inline(always)]
33363#[target_feature(enable = "neon")]
33364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33366#[cfg_attr(
33367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33368    assert_instr(orr)
33369)]
33370#[cfg_attr(
33371    not(target_arch = "arm"),
33372    stable(feature = "neon_intrinsics", since = "1.59.0")
33373)]
33374#[cfg_attr(
33375    target_arch = "arm",
33376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33377)]
33378pub fn vorr_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
33379    unsafe { simd_or(a, b) }
33380}
33381#[doc = "Vector bitwise or (immediate, inclusive)"]
33382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u64)"]
33383#[inline(always)]
33384#[target_feature(enable = "neon")]
33385#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33386#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
33387#[cfg_attr(
33388    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33389    assert_instr(orr)
33390)]
33391#[cfg_attr(
33392    not(target_arch = "arm"),
33393    stable(feature = "neon_intrinsics", since = "1.59.0")
33394)]
33395#[cfg_attr(
33396    target_arch = "arm",
33397    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33398)]
33399pub fn vorrq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
33400    unsafe { simd_or(a, b) }
33401}
33402#[doc = "Signed Add and Accumulate Long Pairwise."]
33403#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s8)"]
33404#[inline(always)]
33405#[target_feature(enable = "neon")]
33406#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33407#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s8"))]
33408#[cfg_attr(
33409    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33410    assert_instr(sadalp)
33411)]
33412#[cfg_attr(
33413    not(target_arch = "arm"),
33414    stable(feature = "neon_intrinsics", since = "1.59.0")
33415)]
33416#[cfg_attr(
33417    target_arch = "arm",
33418    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33419)]
33420pub fn vpadal_s8(a: int16x4_t, b: int8x8_t) -> int16x4_t {
33421    let x: int16x4_t;
33422    #[cfg(target_arch = "arm")]
33423    {
33424        x = priv_vpadal_s8(a, b);
33425    }
33426    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33427    unsafe {
33428        x = simd_add(vpaddl_s8(b), a);
33429    };
33430    x
33431}
33432#[doc = "Signed Add and Accumulate Long Pairwise."]
33433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s8)"]
33434#[inline(always)]
33435#[target_feature(enable = "neon")]
33436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33437#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s8"))]
33438#[cfg_attr(
33439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33440    assert_instr(sadalp)
33441)]
33442#[cfg_attr(
33443    not(target_arch = "arm"),
33444    stable(feature = "neon_intrinsics", since = "1.59.0")
33445)]
33446#[cfg_attr(
33447    target_arch = "arm",
33448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33449)]
33450pub fn vpadalq_s8(a: int16x8_t, b: int8x16_t) -> int16x8_t {
33451    let x: int16x8_t;
33452    #[cfg(target_arch = "arm")]
33453    {
33454        x = priv_vpadalq_s8(a, b);
33455    }
33456    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33457    unsafe {
33458        x = simd_add(vpaddlq_s8(b), a);
33459    };
33460    x
33461}
33462#[doc = "Signed Add and Accumulate Long Pairwise."]
33463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s16)"]
33464#[inline(always)]
33465#[target_feature(enable = "neon")]
33466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33467#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s16"))]
33468#[cfg_attr(
33469    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33470    assert_instr(sadalp)
33471)]
33472#[cfg_attr(
33473    not(target_arch = "arm"),
33474    stable(feature = "neon_intrinsics", since = "1.59.0")
33475)]
33476#[cfg_attr(
33477    target_arch = "arm",
33478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33479)]
33480pub fn vpadal_s16(a: int32x2_t, b: int16x4_t) -> int32x2_t {
33481    let x: int32x2_t;
33482    #[cfg(target_arch = "arm")]
33483    {
33484        x = priv_vpadal_s16(a, b);
33485    }
33486    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33487    unsafe {
33488        x = simd_add(vpaddl_s16(b), a);
33489    };
33490    x
33491}
33492#[doc = "Signed Add and Accumulate Long Pairwise."]
33493#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s16)"]
33494#[inline(always)]
33495#[target_feature(enable = "neon")]
33496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33497#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s16"))]
33498#[cfg_attr(
33499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33500    assert_instr(sadalp)
33501)]
33502#[cfg_attr(
33503    not(target_arch = "arm"),
33504    stable(feature = "neon_intrinsics", since = "1.59.0")
33505)]
33506#[cfg_attr(
33507    target_arch = "arm",
33508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33509)]
33510pub fn vpadalq_s16(a: int32x4_t, b: int16x8_t) -> int32x4_t {
33511    let x: int32x4_t;
33512    #[cfg(target_arch = "arm")]
33513    {
33514        x = priv_vpadalq_s16(a, b);
33515    }
33516    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33517    unsafe {
33518        x = simd_add(vpaddlq_s16(b), a);
33519    };
33520    x
33521}
33522#[doc = "Signed Add and Accumulate Long Pairwise."]
33523#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_s32)"]
33524#[inline(always)]
33525#[target_feature(enable = "neon")]
33526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33527#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
33528#[cfg_attr(
33529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33530    assert_instr(sadalp)
33531)]
33532#[cfg_attr(
33533    not(target_arch = "arm"),
33534    stable(feature = "neon_intrinsics", since = "1.59.0")
33535)]
33536#[cfg_attr(
33537    target_arch = "arm",
33538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33539)]
33540pub fn vpadal_s32(a: int64x1_t, b: int32x2_t) -> int64x1_t {
33541    let x: int64x1_t;
33542    #[cfg(target_arch = "arm")]
33543    {
33544        x = priv_vpadal_s32(a, b);
33545    }
33546    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33547    unsafe {
33548        x = simd_add(vpaddl_s32(b), a);
33549    };
33550    x
33551}
33552#[doc = "Signed Add and Accumulate Long Pairwise."]
33553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_s32)"]
33554#[inline(always)]
33555#[target_feature(enable = "neon")]
33556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33557#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.s32"))]
33558#[cfg_attr(
33559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33560    assert_instr(sadalp)
33561)]
33562#[cfg_attr(
33563    not(target_arch = "arm"),
33564    stable(feature = "neon_intrinsics", since = "1.59.0")
33565)]
33566#[cfg_attr(
33567    target_arch = "arm",
33568    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33569)]
33570pub fn vpadalq_s32(a: int64x2_t, b: int32x4_t) -> int64x2_t {
33571    let x: int64x2_t;
33572    #[cfg(target_arch = "arm")]
33573    {
33574        x = priv_vpadalq_s32(a, b);
33575    }
33576    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33577    unsafe {
33578        x = simd_add(vpaddlq_s32(b), a);
33579    };
33580    x
33581}
33582#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u8)"]
33584#[inline(always)]
33585#[target_feature(enable = "neon")]
33586#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33587#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u8"))]
33588#[cfg_attr(
33589    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33590    assert_instr(uadalp)
33591)]
33592#[cfg_attr(
33593    not(target_arch = "arm"),
33594    stable(feature = "neon_intrinsics", since = "1.59.0")
33595)]
33596#[cfg_attr(
33597    target_arch = "arm",
33598    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33599)]
33600pub fn vpadal_u8(a: uint16x4_t, b: uint8x8_t) -> uint16x4_t {
33601    let x: uint16x4_t;
33602    #[cfg(target_arch = "arm")]
33603    {
33604        x = priv_vpadal_u8(a, b);
33605    }
33606    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33607    unsafe {
33608        x = simd_add(vpaddl_u8(b), a);
33609    };
33610    x
33611}
33612#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33613#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u8)"]
33614#[inline(always)]
33615#[target_feature(enable = "neon")]
33616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33617#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u8"))]
33618#[cfg_attr(
33619    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33620    assert_instr(uadalp)
33621)]
33622#[cfg_attr(
33623    not(target_arch = "arm"),
33624    stable(feature = "neon_intrinsics", since = "1.59.0")
33625)]
33626#[cfg_attr(
33627    target_arch = "arm",
33628    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33629)]
33630pub fn vpadalq_u8(a: uint16x8_t, b: uint8x16_t) -> uint16x8_t {
33631    let x: uint16x8_t;
33632    #[cfg(target_arch = "arm")]
33633    {
33634        x = priv_vpadalq_u8(a, b);
33635    }
33636    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33637    unsafe {
33638        x = simd_add(vpaddlq_u8(b), a);
33639    };
33640    x
33641}
33642#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u16)"]
33644#[inline(always)]
33645#[target_feature(enable = "neon")]
33646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33647#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
33648#[cfg_attr(
33649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33650    assert_instr(uadalp)
33651)]
33652#[cfg_attr(
33653    not(target_arch = "arm"),
33654    stable(feature = "neon_intrinsics", since = "1.59.0")
33655)]
33656#[cfg_attr(
33657    target_arch = "arm",
33658    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33659)]
33660pub fn vpadal_u16(a: uint32x2_t, b: uint16x4_t) -> uint32x2_t {
33661    let x: uint32x2_t;
33662    #[cfg(target_arch = "arm")]
33663    {
33664        x = priv_vpadal_u16(a, b);
33665    }
33666    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33667    unsafe {
33668        x = simd_add(vpaddl_u16(b), a);
33669    };
33670    x
33671}
33672#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u16)"]
33674#[inline(always)]
33675#[target_feature(enable = "neon")]
33676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33677#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u16"))]
33678#[cfg_attr(
33679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33680    assert_instr(uadalp)
33681)]
33682#[cfg_attr(
33683    not(target_arch = "arm"),
33684    stable(feature = "neon_intrinsics", since = "1.59.0")
33685)]
33686#[cfg_attr(
33687    target_arch = "arm",
33688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33689)]
33690pub fn vpadalq_u16(a: uint32x4_t, b: uint16x8_t) -> uint32x4_t {
33691    let x: uint32x4_t;
33692    #[cfg(target_arch = "arm")]
33693    {
33694        x = priv_vpadalq_u16(a, b);
33695    }
33696    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33697    unsafe {
33698        x = simd_add(vpaddlq_u16(b), a);
33699    };
33700    x
33701}
33702#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33703#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadal_u32)"]
33704#[inline(always)]
33705#[target_feature(enable = "neon")]
33706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33707#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
33708#[cfg_attr(
33709    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33710    assert_instr(uadalp)
33711)]
33712#[cfg_attr(
33713    not(target_arch = "arm"),
33714    stable(feature = "neon_intrinsics", since = "1.59.0")
33715)]
33716#[cfg_attr(
33717    target_arch = "arm",
33718    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33719)]
33720pub fn vpadal_u32(a: uint64x1_t, b: uint32x2_t) -> uint64x1_t {
33721    let x: uint64x1_t;
33722    #[cfg(target_arch = "arm")]
33723    {
33724        x = priv_vpadal_u32(a, b);
33725    }
33726    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33727    unsafe {
33728        x = simd_add(vpaddl_u32(b), a);
33729    };
33730    x
33731}
33732#[doc = "Unsigned Add and Accumulate Long Pairwise."]
33733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadalq_u32)"]
33734#[inline(always)]
33735#[target_feature(enable = "neon")]
33736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33737#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpadal.u32"))]
33738#[cfg_attr(
33739    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33740    assert_instr(uadalp)
33741)]
33742#[cfg_attr(
33743    not(target_arch = "arm"),
33744    stable(feature = "neon_intrinsics", since = "1.59.0")
33745)]
33746#[cfg_attr(
33747    target_arch = "arm",
33748    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33749)]
33750pub fn vpadalq_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t {
33751    let x: uint64x2_t;
33752    #[cfg(target_arch = "arm")]
33753    {
33754        x = priv_vpadalq_u32(a, b);
33755    }
33756    #[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
33757    unsafe {
33758        x = simd_add(vpaddlq_u32(b), a);
33759    };
33760    x
33761}
33762#[doc = "Floating-point add pairwise"]
33763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_f16)"]
33764#[inline(always)]
33765#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
33766#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33767#[cfg_attr(
33768    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33769    assert_instr(faddp)
33770)]
33771#[target_feature(enable = "neon,fp16")]
33772#[cfg_attr(
33773    not(target_arch = "arm"),
33774    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
33775)]
33776#[cfg_attr(
33777    target_arch = "arm",
33778    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33779)]
33780#[cfg(not(target_arch = "arm64ec"))]
33781pub fn vpadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
33782    unsafe extern "unadjusted" {
33783        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v4f16")]
33784        #[cfg_attr(
33785            any(target_arch = "aarch64", target_arch = "arm64ec"),
33786            link_name = "llvm.aarch64.neon.faddp.v4f16"
33787        )]
33788        fn _vpadd_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
33789    }
33790    unsafe { _vpadd_f16(a, b) }
33791}
33792#[doc = "Floating-point add pairwise"]
33793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_f32)"]
33794#[inline(always)]
33795#[target_feature(enable = "neon")]
33796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33798#[cfg_attr(
33799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33800    assert_instr(faddp)
33801)]
33802#[cfg_attr(
33803    not(target_arch = "arm"),
33804    stable(feature = "neon_intrinsics", since = "1.59.0")
33805)]
33806#[cfg_attr(
33807    target_arch = "arm",
33808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33809)]
33810pub fn vpadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
33811    unsafe extern "unadjusted" {
33812        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v2f32")]
33813        #[cfg_attr(
33814            any(target_arch = "aarch64", target_arch = "arm64ec"),
33815            link_name = "llvm.aarch64.neon.faddp.v2f32"
33816        )]
33817        fn _vpadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
33818    }
33819    unsafe { _vpadd_f32(a, b) }
33820}
33821#[doc = "Add pairwise."]
33822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s8)"]
33823#[inline(always)]
33824#[target_feature(enable = "neon")]
33825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33827#[cfg_attr(
33828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33829    assert_instr(addp)
33830)]
33831#[cfg_attr(
33832    not(target_arch = "arm"),
33833    stable(feature = "neon_intrinsics", since = "1.59.0")
33834)]
33835#[cfg_attr(
33836    target_arch = "arm",
33837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33838)]
33839pub fn vpadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
33840    unsafe extern "unadjusted" {
33841        #[cfg_attr(
33842            any(target_arch = "aarch64", target_arch = "arm64ec"),
33843            link_name = "llvm.aarch64.neon.addp.v8i8"
33844        )]
33845        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v8i8")]
33846        fn _vpadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
33847    }
33848    unsafe { _vpadd_s8(a, b) }
33849}
33850#[doc = "Add pairwise."]
33851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s16)"]
33852#[inline(always)]
33853#[target_feature(enable = "neon")]
33854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33856#[cfg_attr(
33857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33858    assert_instr(addp)
33859)]
33860#[cfg_attr(
33861    not(target_arch = "arm"),
33862    stable(feature = "neon_intrinsics", since = "1.59.0")
33863)]
33864#[cfg_attr(
33865    target_arch = "arm",
33866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33867)]
33868pub fn vpadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
33869    unsafe extern "unadjusted" {
33870        #[cfg_attr(
33871            any(target_arch = "aarch64", target_arch = "arm64ec"),
33872            link_name = "llvm.aarch64.neon.addp.v4i16"
33873        )]
33874        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v4i16")]
33875        fn _vpadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
33876    }
33877    unsafe { _vpadd_s16(a, b) }
33878}
33879#[doc = "Add pairwise."]
33880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_s32)"]
33881#[inline(always)]
33882#[target_feature(enable = "neon")]
33883#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33884#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33885#[cfg_attr(
33886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33887    assert_instr(addp)
33888)]
33889#[cfg_attr(
33890    not(target_arch = "arm"),
33891    stable(feature = "neon_intrinsics", since = "1.59.0")
33892)]
33893#[cfg_attr(
33894    target_arch = "arm",
33895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33896)]
33897pub fn vpadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
33898    unsafe extern "unadjusted" {
33899        #[cfg_attr(
33900            any(target_arch = "aarch64", target_arch = "arm64ec"),
33901            link_name = "llvm.aarch64.neon.addp.v2i32"
33902        )]
33903        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v2i32")]
33904        fn _vpadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
33905    }
33906    unsafe { _vpadd_s32(a, b) }
33907}
33908#[doc = "Add pairwise."]
33909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u8)"]
33910#[inline(always)]
33911#[cfg(target_endian = "little")]
33912#[target_feature(enable = "neon")]
33913#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33914#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33915#[cfg_attr(
33916    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33917    assert_instr(addp)
33918)]
33919#[cfg_attr(
33920    not(target_arch = "arm"),
33921    stable(feature = "neon_intrinsics", since = "1.59.0")
33922)]
33923#[cfg_attr(
33924    target_arch = "arm",
33925    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33926)]
33927pub fn vpadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
33928    unsafe { transmute(vpadd_s8(transmute(a), transmute(b))) }
33929}
33930#[doc = "Add pairwise."]
33931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u8)"]
33932#[inline(always)]
33933#[cfg(target_endian = "big")]
33934#[target_feature(enable = "neon")]
33935#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33936#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33937#[cfg_attr(
33938    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33939    assert_instr(addp)
33940)]
33941#[cfg_attr(
33942    not(target_arch = "arm"),
33943    stable(feature = "neon_intrinsics", since = "1.59.0")
33944)]
33945#[cfg_attr(
33946    target_arch = "arm",
33947    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33948)]
33949pub fn vpadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
33950    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
33951    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
33952    unsafe {
33953        let ret_val: uint8x8_t = transmute(vpadd_s8(transmute(a), transmute(b)));
33954        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
33955    }
33956}
33957#[doc = "Add pairwise."]
33958#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u16)"]
33959#[inline(always)]
33960#[cfg(target_endian = "little")]
33961#[target_feature(enable = "neon")]
33962#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33963#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33964#[cfg_attr(
33965    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33966    assert_instr(addp)
33967)]
33968#[cfg_attr(
33969    not(target_arch = "arm"),
33970    stable(feature = "neon_intrinsics", since = "1.59.0")
33971)]
33972#[cfg_attr(
33973    target_arch = "arm",
33974    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33975)]
33976pub fn vpadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
33977    unsafe { transmute(vpadd_s16(transmute(a), transmute(b))) }
33978}
33979#[doc = "Add pairwise."]
33980#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u16)"]
33981#[inline(always)]
33982#[cfg(target_endian = "big")]
33983#[target_feature(enable = "neon")]
33984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
33985#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
33986#[cfg_attr(
33987    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
33988    assert_instr(addp)
33989)]
33990#[cfg_attr(
33991    not(target_arch = "arm"),
33992    stable(feature = "neon_intrinsics", since = "1.59.0")
33993)]
33994#[cfg_attr(
33995    target_arch = "arm",
33996    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
33997)]
33998pub fn vpadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
33999    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
34000    let b: uint16x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
34001    unsafe {
34002        let ret_val: uint16x4_t = transmute(vpadd_s16(transmute(a), transmute(b)));
34003        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
34004    }
34005}
34006#[doc = "Add pairwise."]
34007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u32)"]
34008#[inline(always)]
34009#[cfg(target_endian = "little")]
34010#[target_feature(enable = "neon")]
34011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34012#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
34013#[cfg_attr(
34014    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34015    assert_instr(addp)
34016)]
34017#[cfg_attr(
34018    not(target_arch = "arm"),
34019    stable(feature = "neon_intrinsics", since = "1.59.0")
34020)]
34021#[cfg_attr(
34022    target_arch = "arm",
34023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34024)]
34025pub fn vpadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
34026    unsafe { transmute(vpadd_s32(transmute(a), transmute(b))) }
34027}
34028#[doc = "Add pairwise."]
34029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_u32)"]
34030#[inline(always)]
34031#[cfg(target_endian = "big")]
34032#[target_feature(enable = "neon")]
34033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34034#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
34035#[cfg_attr(
34036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34037    assert_instr(addp)
34038)]
34039#[cfg_attr(
34040    not(target_arch = "arm"),
34041    stable(feature = "neon_intrinsics", since = "1.59.0")
34042)]
34043#[cfg_attr(
34044    target_arch = "arm",
34045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34046)]
34047pub fn vpadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
34048    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
34049    let b: uint32x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
34050    unsafe {
34051        let ret_val: uint32x2_t = transmute(vpadd_s32(transmute(a), transmute(b)));
34052        simd_shuffle!(ret_val, ret_val, [1, 0])
34053    }
34054}
34055#[doc = "Signed Add and Accumulate Long Pairwise."]
34056#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s8)"]
34057#[inline(always)]
34058#[target_feature(enable = "neon")]
34059#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34060#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s8"))]
34061#[cfg_attr(
34062    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34063    assert_instr(saddlp)
34064)]
34065#[cfg_attr(
34066    not(target_arch = "arm"),
34067    stable(feature = "neon_intrinsics", since = "1.59.0")
34068)]
34069#[cfg_attr(
34070    target_arch = "arm",
34071    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34072)]
34073pub fn vpaddl_s8(a: int8x8_t) -> int16x4_t {
34074    unsafe extern "unadjusted" {
34075        #[cfg_attr(
34076            any(target_arch = "aarch64", target_arch = "arm64ec"),
34077            link_name = "llvm.aarch64.neon.saddlp.v4i16.v8i8"
34078        )]
34079        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v4i16.v8i8")]
34080        fn _vpaddl_s8(a: int8x8_t) -> int16x4_t;
34081    }
34082    unsafe { _vpaddl_s8(a) }
34083}
34084#[doc = "Signed Add and Accumulate Long Pairwise."]
34085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s8)"]
34086#[inline(always)]
34087#[target_feature(enable = "neon")]
34088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34089#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s8"))]
34090#[cfg_attr(
34091    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34092    assert_instr(saddlp)
34093)]
34094#[cfg_attr(
34095    not(target_arch = "arm"),
34096    stable(feature = "neon_intrinsics", since = "1.59.0")
34097)]
34098#[cfg_attr(
34099    target_arch = "arm",
34100    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34101)]
34102pub fn vpaddlq_s8(a: int8x16_t) -> int16x8_t {
34103    unsafe extern "unadjusted" {
34104        #[cfg_attr(
34105            any(target_arch = "aarch64", target_arch = "arm64ec"),
34106            link_name = "llvm.aarch64.neon.saddlp.v8i16.v16i8"
34107        )]
34108        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v8i16.v16i8")]
34109        fn _vpaddlq_s8(a: int8x16_t) -> int16x8_t;
34110    }
34111    unsafe { _vpaddlq_s8(a) }
34112}
34113#[doc = "Signed Add and Accumulate Long Pairwise."]
34114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s16)"]
34115#[inline(always)]
34116#[target_feature(enable = "neon")]
34117#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34118#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s16"))]
34119#[cfg_attr(
34120    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34121    assert_instr(saddlp)
34122)]
34123#[cfg_attr(
34124    not(target_arch = "arm"),
34125    stable(feature = "neon_intrinsics", since = "1.59.0")
34126)]
34127#[cfg_attr(
34128    target_arch = "arm",
34129    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34130)]
34131pub fn vpaddl_s16(a: int16x4_t) -> int32x2_t {
34132    unsafe extern "unadjusted" {
34133        #[cfg_attr(
34134            any(target_arch = "aarch64", target_arch = "arm64ec"),
34135            link_name = "llvm.aarch64.neon.saddlp.v2i32.v4i16"
34136        )]
34137        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v2i32.v4i16")]
34138        fn _vpaddl_s16(a: int16x4_t) -> int32x2_t;
34139    }
34140    unsafe { _vpaddl_s16(a) }
34141}
34142#[doc = "Signed Add and Accumulate Long Pairwise."]
34143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s16)"]
34144#[inline(always)]
34145#[target_feature(enable = "neon")]
34146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34147#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s16"))]
34148#[cfg_attr(
34149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34150    assert_instr(saddlp)
34151)]
34152#[cfg_attr(
34153    not(target_arch = "arm"),
34154    stable(feature = "neon_intrinsics", since = "1.59.0")
34155)]
34156#[cfg_attr(
34157    target_arch = "arm",
34158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34159)]
34160pub fn vpaddlq_s16(a: int16x8_t) -> int32x4_t {
34161    unsafe extern "unadjusted" {
34162        #[cfg_attr(
34163            any(target_arch = "aarch64", target_arch = "arm64ec"),
34164            link_name = "llvm.aarch64.neon.saddlp.v4i32.v8i16"
34165        )]
34166        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v4i32.v8i16")]
34167        fn _vpaddlq_s16(a: int16x8_t) -> int32x4_t;
34168    }
34169    unsafe { _vpaddlq_s16(a) }
34170}
34171#[doc = "Signed Add and Accumulate Long Pairwise."]
34172#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_s32)"]
34173#[inline(always)]
34174#[target_feature(enable = "neon")]
34175#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34176#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s32"))]
34177#[cfg_attr(
34178    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34179    assert_instr(saddlp)
34180)]
34181#[cfg_attr(
34182    not(target_arch = "arm"),
34183    stable(feature = "neon_intrinsics", since = "1.59.0")
34184)]
34185#[cfg_attr(
34186    target_arch = "arm",
34187    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34188)]
34189pub fn vpaddl_s32(a: int32x2_t) -> int64x1_t {
34190    unsafe extern "unadjusted" {
34191        #[cfg_attr(
34192            any(target_arch = "aarch64", target_arch = "arm64ec"),
34193            link_name = "llvm.aarch64.neon.saddlp.v1i64.v2i32"
34194        )]
34195        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v1i64.v2i32")]
34196        fn _vpaddl_s32(a: int32x2_t) -> int64x1_t;
34197    }
34198    unsafe { _vpaddl_s32(a) }
34199}
34200#[doc = "Signed Add and Accumulate Long Pairwise."]
34201#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_s32)"]
34202#[inline(always)]
34203#[target_feature(enable = "neon")]
34204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34205#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.s32"))]
34206#[cfg_attr(
34207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34208    assert_instr(saddlp)
34209)]
34210#[cfg_attr(
34211    not(target_arch = "arm"),
34212    stable(feature = "neon_intrinsics", since = "1.59.0")
34213)]
34214#[cfg_attr(
34215    target_arch = "arm",
34216    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34217)]
34218pub fn vpaddlq_s32(a: int32x4_t) -> int64x2_t {
34219    unsafe extern "unadjusted" {
34220        #[cfg_attr(
34221            any(target_arch = "aarch64", target_arch = "arm64ec"),
34222            link_name = "llvm.aarch64.neon.saddlp.v2i64.v4i32"
34223        )]
34224        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddls.v2i64.v4i32")]
34225        fn _vpaddlq_s32(a: int32x4_t) -> int64x2_t;
34226    }
34227    unsafe { _vpaddlq_s32(a) }
34228}
34229#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u8)"]
34231#[inline(always)]
34232#[target_feature(enable = "neon")]
34233#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34234#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u8"))]
34235#[cfg_attr(
34236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34237    assert_instr(uaddlp)
34238)]
34239#[cfg_attr(
34240    not(target_arch = "arm"),
34241    stable(feature = "neon_intrinsics", since = "1.59.0")
34242)]
34243#[cfg_attr(
34244    target_arch = "arm",
34245    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34246)]
34247pub fn vpaddl_u8(a: uint8x8_t) -> uint16x4_t {
34248    unsafe extern "unadjusted" {
34249        #[cfg_attr(
34250            any(target_arch = "aarch64", target_arch = "arm64ec"),
34251            link_name = "llvm.aarch64.neon.uaddlp.v4i16.v8i8"
34252        )]
34253        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v4i16.v8i8")]
34254        fn _vpaddl_u8(a: uint8x8_t) -> uint16x4_t;
34255    }
34256    unsafe { _vpaddl_u8(a) }
34257}
34258#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u8)"]
34260#[inline(always)]
34261#[target_feature(enable = "neon")]
34262#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34263#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u8"))]
34264#[cfg_attr(
34265    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34266    assert_instr(uaddlp)
34267)]
34268#[cfg_attr(
34269    not(target_arch = "arm"),
34270    stable(feature = "neon_intrinsics", since = "1.59.0")
34271)]
34272#[cfg_attr(
34273    target_arch = "arm",
34274    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34275)]
34276pub fn vpaddlq_u8(a: uint8x16_t) -> uint16x8_t {
34277    unsafe extern "unadjusted" {
34278        #[cfg_attr(
34279            any(target_arch = "aarch64", target_arch = "arm64ec"),
34280            link_name = "llvm.aarch64.neon.uaddlp.v8i16.v16i8"
34281        )]
34282        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v8i16.v16i8")]
34283        fn _vpaddlq_u8(a: uint8x16_t) -> uint16x8_t;
34284    }
34285    unsafe { _vpaddlq_u8(a) }
34286}
34287#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u16)"]
34289#[inline(always)]
34290#[target_feature(enable = "neon")]
34291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34292#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u16"))]
34293#[cfg_attr(
34294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34295    assert_instr(uaddlp)
34296)]
34297#[cfg_attr(
34298    not(target_arch = "arm"),
34299    stable(feature = "neon_intrinsics", since = "1.59.0")
34300)]
34301#[cfg_attr(
34302    target_arch = "arm",
34303    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34304)]
34305pub fn vpaddl_u16(a: uint16x4_t) -> uint32x2_t {
34306    unsafe extern "unadjusted" {
34307        #[cfg_attr(
34308            any(target_arch = "aarch64", target_arch = "arm64ec"),
34309            link_name = "llvm.aarch64.neon.uaddlp.v2i32.v4i16"
34310        )]
34311        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v2i32.v4i16")]
34312        fn _vpaddl_u16(a: uint16x4_t) -> uint32x2_t;
34313    }
34314    unsafe { _vpaddl_u16(a) }
34315}
34316#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u16)"]
34318#[inline(always)]
34319#[target_feature(enable = "neon")]
34320#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34321#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u16"))]
34322#[cfg_attr(
34323    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34324    assert_instr(uaddlp)
34325)]
34326#[cfg_attr(
34327    not(target_arch = "arm"),
34328    stable(feature = "neon_intrinsics", since = "1.59.0")
34329)]
34330#[cfg_attr(
34331    target_arch = "arm",
34332    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34333)]
34334pub fn vpaddlq_u16(a: uint16x8_t) -> uint32x4_t {
34335    unsafe extern "unadjusted" {
34336        #[cfg_attr(
34337            any(target_arch = "aarch64", target_arch = "arm64ec"),
34338            link_name = "llvm.aarch64.neon.uaddlp.v4i32.v8i16"
34339        )]
34340        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v4i32.v8i16")]
34341        fn _vpaddlq_u16(a: uint16x8_t) -> uint32x4_t;
34342    }
34343    unsafe { _vpaddlq_u16(a) }
34344}
34345#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddl_u32)"]
34347#[inline(always)]
34348#[target_feature(enable = "neon")]
34349#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34350#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u32"))]
34351#[cfg_attr(
34352    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34353    assert_instr(uaddlp)
34354)]
34355#[cfg_attr(
34356    not(target_arch = "arm"),
34357    stable(feature = "neon_intrinsics", since = "1.59.0")
34358)]
34359#[cfg_attr(
34360    target_arch = "arm",
34361    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34362)]
34363pub fn vpaddl_u32(a: uint32x2_t) -> uint64x1_t {
34364    unsafe extern "unadjusted" {
34365        #[cfg_attr(
34366            any(target_arch = "aarch64", target_arch = "arm64ec"),
34367            link_name = "llvm.aarch64.neon.uaddlp.v1i64.v2i32"
34368        )]
34369        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v1i64.v2i32")]
34370        fn _vpaddl_u32(a: uint32x2_t) -> uint64x1_t;
34371    }
34372    unsafe { _vpaddl_u32(a) }
34373}
34374#[doc = "Unsigned Add and Accumulate Long Pairwise."]
34375#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpaddlq_u32)"]
34376#[inline(always)]
34377#[target_feature(enable = "neon")]
34378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34379#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vpaddl.u32"))]
34380#[cfg_attr(
34381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34382    assert_instr(uaddlp)
34383)]
34384#[cfg_attr(
34385    not(target_arch = "arm"),
34386    stable(feature = "neon_intrinsics", since = "1.59.0")
34387)]
34388#[cfg_attr(
34389    target_arch = "arm",
34390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34391)]
34392pub fn vpaddlq_u32(a: uint32x4_t) -> uint64x2_t {
34393    unsafe extern "unadjusted" {
34394        #[cfg_attr(
34395            any(target_arch = "aarch64", target_arch = "arm64ec"),
34396            link_name = "llvm.aarch64.neon.uaddlp.v2i64.v4i32"
34397        )]
34398        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpaddlu.v2i64.v4i32")]
34399        fn _vpaddlq_u32(a: uint32x4_t) -> uint64x2_t;
34400    }
34401    unsafe { _vpaddlq_u32(a) }
34402}
34403#[doc = "Folding maximum of adjacent pairs"]
34404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_f32)"]
34405#[inline(always)]
34406#[target_feature(enable = "neon")]
34407#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34408#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34409#[cfg_attr(
34410    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34411    assert_instr(fmaxp)
34412)]
34413#[cfg_attr(
34414    not(target_arch = "arm"),
34415    stable(feature = "neon_intrinsics", since = "1.59.0")
34416)]
34417#[cfg_attr(
34418    target_arch = "arm",
34419    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34420)]
34421pub fn vpmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
34422    unsafe extern "unadjusted" {
34423        #[cfg_attr(
34424            any(target_arch = "aarch64", target_arch = "arm64ec"),
34425            link_name = "llvm.aarch64.neon.fmaxp.v2f32"
34426        )]
34427        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v2f32")]
34428        fn _vpmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
34429    }
34430    unsafe { _vpmax_f32(a, b) }
34431}
34432#[doc = "Folding maximum of adjacent pairs"]
34433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s8)"]
34434#[inline(always)]
34435#[target_feature(enable = "neon")]
34436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34438#[cfg_attr(
34439    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34440    assert_instr(smaxp)
34441)]
34442#[cfg_attr(
34443    not(target_arch = "arm"),
34444    stable(feature = "neon_intrinsics", since = "1.59.0")
34445)]
34446#[cfg_attr(
34447    target_arch = "arm",
34448    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34449)]
34450pub fn vpmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
34451    unsafe extern "unadjusted" {
34452        #[cfg_attr(
34453            any(target_arch = "aarch64", target_arch = "arm64ec"),
34454            link_name = "llvm.aarch64.neon.smaxp.v8i8"
34455        )]
34456        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v8i8")]
34457        fn _vpmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
34458    }
34459    unsafe { _vpmax_s8(a, b) }
34460}
34461#[doc = "Folding maximum of adjacent pairs"]
34462#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s16)"]
34463#[inline(always)]
34464#[target_feature(enable = "neon")]
34465#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34466#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34467#[cfg_attr(
34468    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34469    assert_instr(smaxp)
34470)]
34471#[cfg_attr(
34472    not(target_arch = "arm"),
34473    stable(feature = "neon_intrinsics", since = "1.59.0")
34474)]
34475#[cfg_attr(
34476    target_arch = "arm",
34477    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34478)]
34479pub fn vpmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
34480    unsafe extern "unadjusted" {
34481        #[cfg_attr(
34482            any(target_arch = "aarch64", target_arch = "arm64ec"),
34483            link_name = "llvm.aarch64.neon.smaxp.v4i16"
34484        )]
34485        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v4i16")]
34486        fn _vpmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
34487    }
34488    unsafe { _vpmax_s16(a, b) }
34489}
34490#[doc = "Folding maximum of adjacent pairs"]
34491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_s32)"]
34492#[inline(always)]
34493#[target_feature(enable = "neon")]
34494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34495#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34496#[cfg_attr(
34497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34498    assert_instr(smaxp)
34499)]
34500#[cfg_attr(
34501    not(target_arch = "arm"),
34502    stable(feature = "neon_intrinsics", since = "1.59.0")
34503)]
34504#[cfg_attr(
34505    target_arch = "arm",
34506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34507)]
34508pub fn vpmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
34509    unsafe extern "unadjusted" {
34510        #[cfg_attr(
34511            any(target_arch = "aarch64", target_arch = "arm64ec"),
34512            link_name = "llvm.aarch64.neon.smaxp.v2i32"
34513        )]
34514        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxs.v2i32")]
34515        fn _vpmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
34516    }
34517    unsafe { _vpmax_s32(a, b) }
34518}
34519#[doc = "Folding maximum of adjacent pairs"]
34520#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u8)"]
34521#[inline(always)]
34522#[target_feature(enable = "neon")]
34523#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34524#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34525#[cfg_attr(
34526    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34527    assert_instr(umaxp)
34528)]
34529#[cfg_attr(
34530    not(target_arch = "arm"),
34531    stable(feature = "neon_intrinsics", since = "1.59.0")
34532)]
34533#[cfg_attr(
34534    target_arch = "arm",
34535    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34536)]
34537pub fn vpmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
34538    unsafe extern "unadjusted" {
34539        #[cfg_attr(
34540            any(target_arch = "aarch64", target_arch = "arm64ec"),
34541            link_name = "llvm.aarch64.neon.umaxp.v8i8"
34542        )]
34543        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v8i8")]
34544        fn _vpmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
34545    }
34546    unsafe { _vpmax_u8(a, b) }
34547}
34548#[doc = "Folding maximum of adjacent pairs"]
34549#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u16)"]
34550#[inline(always)]
34551#[target_feature(enable = "neon")]
34552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34554#[cfg_attr(
34555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34556    assert_instr(umaxp)
34557)]
34558#[cfg_attr(
34559    not(target_arch = "arm"),
34560    stable(feature = "neon_intrinsics", since = "1.59.0")
34561)]
34562#[cfg_attr(
34563    target_arch = "arm",
34564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34565)]
34566pub fn vpmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
34567    unsafe extern "unadjusted" {
34568        #[cfg_attr(
34569            any(target_arch = "aarch64", target_arch = "arm64ec"),
34570            link_name = "llvm.aarch64.neon.umaxp.v4i16"
34571        )]
34572        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v4i16")]
34573        fn _vpmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
34574    }
34575    unsafe { _vpmax_u16(a, b) }
34576}
34577#[doc = "Folding maximum of adjacent pairs"]
34578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmax_u32)"]
34579#[inline(always)]
34580#[target_feature(enable = "neon")]
34581#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34582#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmax))]
34583#[cfg_attr(
34584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34585    assert_instr(umaxp)
34586)]
34587#[cfg_attr(
34588    not(target_arch = "arm"),
34589    stable(feature = "neon_intrinsics", since = "1.59.0")
34590)]
34591#[cfg_attr(
34592    target_arch = "arm",
34593    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34594)]
34595pub fn vpmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
34596    unsafe extern "unadjusted" {
34597        #[cfg_attr(
34598            any(target_arch = "aarch64", target_arch = "arm64ec"),
34599            link_name = "llvm.aarch64.neon.umaxp.v2i32"
34600        )]
34601        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmaxu.v2i32")]
34602        fn _vpmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
34603    }
34604    unsafe { _vpmax_u32(a, b) }
34605}
34606#[doc = "Folding minimum of adjacent pairs"]
34607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_f32)"]
34608#[inline(always)]
34609#[target_feature(enable = "neon")]
34610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34611#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34612#[cfg_attr(
34613    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34614    assert_instr(fminp)
34615)]
34616#[cfg_attr(
34617    not(target_arch = "arm"),
34618    stable(feature = "neon_intrinsics", since = "1.59.0")
34619)]
34620#[cfg_attr(
34621    target_arch = "arm",
34622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34623)]
34624pub fn vpmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
34625    unsafe extern "unadjusted" {
34626        #[cfg_attr(
34627            any(target_arch = "aarch64", target_arch = "arm64ec"),
34628            link_name = "llvm.aarch64.neon.fminp.v2f32"
34629        )]
34630        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v2f32")]
34631        fn _vpmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
34632    }
34633    unsafe { _vpmin_f32(a, b) }
34634}
34635#[doc = "Folding minimum of adjacent pairs"]
34636#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s8)"]
34637#[inline(always)]
34638#[target_feature(enable = "neon")]
34639#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34640#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34641#[cfg_attr(
34642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34643    assert_instr(sminp)
34644)]
34645#[cfg_attr(
34646    not(target_arch = "arm"),
34647    stable(feature = "neon_intrinsics", since = "1.59.0")
34648)]
34649#[cfg_attr(
34650    target_arch = "arm",
34651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34652)]
34653pub fn vpmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
34654    unsafe extern "unadjusted" {
34655        #[cfg_attr(
34656            any(target_arch = "aarch64", target_arch = "arm64ec"),
34657            link_name = "llvm.aarch64.neon.sminp.v8i8"
34658        )]
34659        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v8i8")]
34660        fn _vpmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
34661    }
34662    unsafe { _vpmin_s8(a, b) }
34663}
34664#[doc = "Folding minimum of adjacent pairs"]
34665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s16)"]
34666#[inline(always)]
34667#[target_feature(enable = "neon")]
34668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34670#[cfg_attr(
34671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34672    assert_instr(sminp)
34673)]
34674#[cfg_attr(
34675    not(target_arch = "arm"),
34676    stable(feature = "neon_intrinsics", since = "1.59.0")
34677)]
34678#[cfg_attr(
34679    target_arch = "arm",
34680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34681)]
34682pub fn vpmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
34683    unsafe extern "unadjusted" {
34684        #[cfg_attr(
34685            any(target_arch = "aarch64", target_arch = "arm64ec"),
34686            link_name = "llvm.aarch64.neon.sminp.v4i16"
34687        )]
34688        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v4i16")]
34689        fn _vpmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
34690    }
34691    unsafe { _vpmin_s16(a, b) }
34692}
34693#[doc = "Folding minimum of adjacent pairs"]
34694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_s32)"]
34695#[inline(always)]
34696#[target_feature(enable = "neon")]
34697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34698#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34699#[cfg_attr(
34700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34701    assert_instr(sminp)
34702)]
34703#[cfg_attr(
34704    not(target_arch = "arm"),
34705    stable(feature = "neon_intrinsics", since = "1.59.0")
34706)]
34707#[cfg_attr(
34708    target_arch = "arm",
34709    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34710)]
34711pub fn vpmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
34712    unsafe extern "unadjusted" {
34713        #[cfg_attr(
34714            any(target_arch = "aarch64", target_arch = "arm64ec"),
34715            link_name = "llvm.aarch64.neon.sminp.v2i32"
34716        )]
34717        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpmins.v2i32")]
34718        fn _vpmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
34719    }
34720    unsafe { _vpmin_s32(a, b) }
34721}
34722#[doc = "Folding minimum of adjacent pairs"]
34723#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u8)"]
34724#[inline(always)]
34725#[target_feature(enable = "neon")]
34726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34727#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34728#[cfg_attr(
34729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34730    assert_instr(uminp)
34731)]
34732#[cfg_attr(
34733    not(target_arch = "arm"),
34734    stable(feature = "neon_intrinsics", since = "1.59.0")
34735)]
34736#[cfg_attr(
34737    target_arch = "arm",
34738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34739)]
34740pub fn vpmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
34741    unsafe extern "unadjusted" {
34742        #[cfg_attr(
34743            any(target_arch = "aarch64", target_arch = "arm64ec"),
34744            link_name = "llvm.aarch64.neon.uminp.v8i8"
34745        )]
34746        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v8i8")]
34747        fn _vpmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
34748    }
34749    unsafe { _vpmin_u8(a, b) }
34750}
34751#[doc = "Folding minimum of adjacent pairs"]
34752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u16)"]
34753#[inline(always)]
34754#[target_feature(enable = "neon")]
34755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34756#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34757#[cfg_attr(
34758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34759    assert_instr(uminp)
34760)]
34761#[cfg_attr(
34762    not(target_arch = "arm"),
34763    stable(feature = "neon_intrinsics", since = "1.59.0")
34764)]
34765#[cfg_attr(
34766    target_arch = "arm",
34767    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34768)]
34769pub fn vpmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
34770    unsafe extern "unadjusted" {
34771        #[cfg_attr(
34772            any(target_arch = "aarch64", target_arch = "arm64ec"),
34773            link_name = "llvm.aarch64.neon.uminp.v4i16"
34774        )]
34775        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v4i16")]
34776        fn _vpmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
34777    }
34778    unsafe { _vpmin_u16(a, b) }
34779}
34780#[doc = "Folding minimum of adjacent pairs"]
34781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpmin_u32)"]
34782#[inline(always)]
34783#[target_feature(enable = "neon")]
34784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34785#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpmin))]
34786#[cfg_attr(
34787    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34788    assert_instr(uminp)
34789)]
34790#[cfg_attr(
34791    not(target_arch = "arm"),
34792    stable(feature = "neon_intrinsics", since = "1.59.0")
34793)]
34794#[cfg_attr(
34795    target_arch = "arm",
34796    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34797)]
34798pub fn vpmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
34799    unsafe extern "unadjusted" {
34800        #[cfg_attr(
34801            any(target_arch = "aarch64", target_arch = "arm64ec"),
34802            link_name = "llvm.aarch64.neon.uminp.v2i32"
34803        )]
34804        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpminu.v2i32")]
34805        fn _vpmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
34806    }
34807    unsafe { _vpmin_u32(a, b) }
34808}
34809#[doc = "Signed saturating Absolute value"]
34810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s8)"]
34811#[inline(always)]
34812#[target_feature(enable = "neon")]
34813#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34814#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s8"))]
34815#[cfg_attr(
34816    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34817    assert_instr(sqabs)
34818)]
34819#[cfg_attr(
34820    not(target_arch = "arm"),
34821    stable(feature = "neon_intrinsics", since = "1.59.0")
34822)]
34823#[cfg_attr(
34824    target_arch = "arm",
34825    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34826)]
34827pub fn vqabs_s8(a: int8x8_t) -> int8x8_t {
34828    unsafe extern "unadjusted" {
34829        #[cfg_attr(
34830            any(target_arch = "aarch64", target_arch = "arm64ec"),
34831            link_name = "llvm.aarch64.neon.sqabs.v8i8"
34832        )]
34833        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i8")]
34834        fn _vqabs_s8(a: int8x8_t) -> int8x8_t;
34835    }
34836    unsafe { _vqabs_s8(a) }
34837}
34838#[doc = "Signed saturating Absolute value"]
34839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s8)"]
34840#[inline(always)]
34841#[target_feature(enable = "neon")]
34842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34843#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s8"))]
34844#[cfg_attr(
34845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34846    assert_instr(sqabs)
34847)]
34848#[cfg_attr(
34849    not(target_arch = "arm"),
34850    stable(feature = "neon_intrinsics", since = "1.59.0")
34851)]
34852#[cfg_attr(
34853    target_arch = "arm",
34854    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34855)]
34856pub fn vqabsq_s8(a: int8x16_t) -> int8x16_t {
34857    unsafe extern "unadjusted" {
34858        #[cfg_attr(
34859            any(target_arch = "aarch64", target_arch = "arm64ec"),
34860            link_name = "llvm.aarch64.neon.sqabs.v16i8"
34861        )]
34862        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v16i8")]
34863        fn _vqabsq_s8(a: int8x16_t) -> int8x16_t;
34864    }
34865    unsafe { _vqabsq_s8(a) }
34866}
34867#[doc = "Signed saturating Absolute value"]
34868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s16)"]
34869#[inline(always)]
34870#[target_feature(enable = "neon")]
34871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34872#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
34873#[cfg_attr(
34874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34875    assert_instr(sqabs)
34876)]
34877#[cfg_attr(
34878    not(target_arch = "arm"),
34879    stable(feature = "neon_intrinsics", since = "1.59.0")
34880)]
34881#[cfg_attr(
34882    target_arch = "arm",
34883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34884)]
34885pub fn vqabs_s16(a: int16x4_t) -> int16x4_t {
34886    unsafe extern "unadjusted" {
34887        #[cfg_attr(
34888            any(target_arch = "aarch64", target_arch = "arm64ec"),
34889            link_name = "llvm.aarch64.neon.sqabs.v4i16"
34890        )]
34891        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i16")]
34892        fn _vqabs_s16(a: int16x4_t) -> int16x4_t;
34893    }
34894    unsafe { _vqabs_s16(a) }
34895}
34896#[doc = "Signed saturating Absolute value"]
34897#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s16)"]
34898#[inline(always)]
34899#[target_feature(enable = "neon")]
34900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34901#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
34902#[cfg_attr(
34903    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34904    assert_instr(sqabs)
34905)]
34906#[cfg_attr(
34907    not(target_arch = "arm"),
34908    stable(feature = "neon_intrinsics", since = "1.59.0")
34909)]
34910#[cfg_attr(
34911    target_arch = "arm",
34912    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34913)]
34914pub fn vqabsq_s16(a: int16x8_t) -> int16x8_t {
34915    unsafe extern "unadjusted" {
34916        #[cfg_attr(
34917            any(target_arch = "aarch64", target_arch = "arm64ec"),
34918            link_name = "llvm.aarch64.neon.sqabs.v8i16"
34919        )]
34920        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i16")]
34921        fn _vqabsq_s16(a: int16x8_t) -> int16x8_t;
34922    }
34923    unsafe { _vqabsq_s16(a) }
34924}
34925#[doc = "Signed saturating Absolute value"]
34926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s32)"]
34927#[inline(always)]
34928#[target_feature(enable = "neon")]
34929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34930#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
34931#[cfg_attr(
34932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34933    assert_instr(sqabs)
34934)]
34935#[cfg_attr(
34936    not(target_arch = "arm"),
34937    stable(feature = "neon_intrinsics", since = "1.59.0")
34938)]
34939#[cfg_attr(
34940    target_arch = "arm",
34941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34942)]
34943pub fn vqabs_s32(a: int32x2_t) -> int32x2_t {
34944    unsafe extern "unadjusted" {
34945        #[cfg_attr(
34946            any(target_arch = "aarch64", target_arch = "arm64ec"),
34947            link_name = "llvm.aarch64.neon.sqabs.v2i32"
34948        )]
34949        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v2i32")]
34950        fn _vqabs_s32(a: int32x2_t) -> int32x2_t;
34951    }
34952    unsafe { _vqabs_s32(a) }
34953}
34954#[doc = "Signed saturating Absolute value"]
34955#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s32)"]
34956#[inline(always)]
34957#[target_feature(enable = "neon")]
34958#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34959#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
34960#[cfg_attr(
34961    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34962    assert_instr(sqabs)
34963)]
34964#[cfg_attr(
34965    not(target_arch = "arm"),
34966    stable(feature = "neon_intrinsics", since = "1.59.0")
34967)]
34968#[cfg_attr(
34969    target_arch = "arm",
34970    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
34971)]
34972pub fn vqabsq_s32(a: int32x4_t) -> int32x4_t {
34973    unsafe extern "unadjusted" {
34974        #[cfg_attr(
34975            any(target_arch = "aarch64", target_arch = "arm64ec"),
34976            link_name = "llvm.aarch64.neon.sqabs.v4i32"
34977        )]
34978        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i32")]
34979        fn _vqabsq_s32(a: int32x4_t) -> int32x4_t;
34980    }
34981    unsafe { _vqabsq_s32(a) }
34982}
34983#[doc = "Saturating add"]
34984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s8)"]
34985#[inline(always)]
34986#[target_feature(enable = "neon")]
34987#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
34988#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
34989#[cfg_attr(
34990    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
34991    assert_instr(sqadd)
34992)]
34993#[cfg_attr(
34994    not(target_arch = "arm"),
34995    stable(feature = "neon_intrinsics", since = "1.59.0")
34996)]
34997#[cfg_attr(
34998    target_arch = "arm",
34999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35000)]
35001pub fn vqadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
35002    unsafe { simd_saturating_add(a, b) }
35003}
35004#[doc = "Saturating add"]
35005#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s8)"]
35006#[inline(always)]
35007#[target_feature(enable = "neon")]
35008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35009#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
35010#[cfg_attr(
35011    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35012    assert_instr(sqadd)
35013)]
35014#[cfg_attr(
35015    not(target_arch = "arm"),
35016    stable(feature = "neon_intrinsics", since = "1.59.0")
35017)]
35018#[cfg_attr(
35019    target_arch = "arm",
35020    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35021)]
35022pub fn vqaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
35023    unsafe { simd_saturating_add(a, b) }
35024}
35025#[doc = "Saturating add"]
35026#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s16)"]
35027#[inline(always)]
35028#[target_feature(enable = "neon")]
35029#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35030#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s16"))]
35031#[cfg_attr(
35032    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35033    assert_instr(sqadd)
35034)]
35035#[cfg_attr(
35036    not(target_arch = "arm"),
35037    stable(feature = "neon_intrinsics", since = "1.59.0")
35038)]
35039#[cfg_attr(
35040    target_arch = "arm",
35041    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35042)]
35043pub fn vqadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
35044    unsafe { simd_saturating_add(a, b) }
35045}
35046#[doc = "Saturating add"]
35047#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s16)"]
35048#[inline(always)]
35049#[target_feature(enable = "neon")]
35050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35051#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s16"))]
35052#[cfg_attr(
35053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35054    assert_instr(sqadd)
35055)]
35056#[cfg_attr(
35057    not(target_arch = "arm"),
35058    stable(feature = "neon_intrinsics", since = "1.59.0")
35059)]
35060#[cfg_attr(
35061    target_arch = "arm",
35062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35063)]
35064pub fn vqaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
35065    unsafe { simd_saturating_add(a, b) }
35066}
35067#[doc = "Saturating add"]
35068#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s32)"]
35069#[inline(always)]
35070#[target_feature(enable = "neon")]
35071#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35072#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s32"))]
35073#[cfg_attr(
35074    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35075    assert_instr(sqadd)
35076)]
35077#[cfg_attr(
35078    not(target_arch = "arm"),
35079    stable(feature = "neon_intrinsics", since = "1.59.0")
35080)]
35081#[cfg_attr(
35082    target_arch = "arm",
35083    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35084)]
35085pub fn vqadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
35086    unsafe { simd_saturating_add(a, b) }
35087}
35088#[doc = "Saturating add"]
35089#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s32)"]
35090#[inline(always)]
35091#[target_feature(enable = "neon")]
35092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35093#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s32"))]
35094#[cfg_attr(
35095    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35096    assert_instr(sqadd)
35097)]
35098#[cfg_attr(
35099    not(target_arch = "arm"),
35100    stable(feature = "neon_intrinsics", since = "1.59.0")
35101)]
35102#[cfg_attr(
35103    target_arch = "arm",
35104    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35105)]
35106pub fn vqaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
35107    unsafe { simd_saturating_add(a, b) }
35108}
35109#[doc = "Saturating add"]
35110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s64)"]
35111#[inline(always)]
35112#[target_feature(enable = "neon")]
35113#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35114#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s64"))]
35115#[cfg_attr(
35116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35117    assert_instr(sqadd)
35118)]
35119#[cfg_attr(
35120    not(target_arch = "arm"),
35121    stable(feature = "neon_intrinsics", since = "1.59.0")
35122)]
35123#[cfg_attr(
35124    target_arch = "arm",
35125    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35126)]
35127pub fn vqadd_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
35128    unsafe { simd_saturating_add(a, b) }
35129}
35130#[doc = "Saturating add"]
35131#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s64)"]
35132#[inline(always)]
35133#[target_feature(enable = "neon")]
35134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35135#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s64"))]
35136#[cfg_attr(
35137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35138    assert_instr(sqadd)
35139)]
35140#[cfg_attr(
35141    not(target_arch = "arm"),
35142    stable(feature = "neon_intrinsics", since = "1.59.0")
35143)]
35144#[cfg_attr(
35145    target_arch = "arm",
35146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35147)]
35148pub fn vqaddq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
35149    unsafe { simd_saturating_add(a, b) }
35150}
35151#[doc = "Saturating add"]
35152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u8)"]
35153#[inline(always)]
35154#[target_feature(enable = "neon")]
35155#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35156#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u8"))]
35157#[cfg_attr(
35158    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35159    assert_instr(uqadd)
35160)]
35161#[cfg_attr(
35162    not(target_arch = "arm"),
35163    stable(feature = "neon_intrinsics", since = "1.59.0")
35164)]
35165#[cfg_attr(
35166    target_arch = "arm",
35167    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35168)]
35169pub fn vqadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
35170    unsafe { simd_saturating_add(a, b) }
35171}
35172#[doc = "Saturating add"]
35173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u8)"]
35174#[inline(always)]
35175#[target_feature(enable = "neon")]
35176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35177#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u8"))]
35178#[cfg_attr(
35179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35180    assert_instr(uqadd)
35181)]
35182#[cfg_attr(
35183    not(target_arch = "arm"),
35184    stable(feature = "neon_intrinsics", since = "1.59.0")
35185)]
35186#[cfg_attr(
35187    target_arch = "arm",
35188    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35189)]
35190pub fn vqaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
35191    unsafe { simd_saturating_add(a, b) }
35192}
35193#[doc = "Saturating add"]
35194#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u16)"]
35195#[inline(always)]
35196#[target_feature(enable = "neon")]
35197#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35198#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u16"))]
35199#[cfg_attr(
35200    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35201    assert_instr(uqadd)
35202)]
35203#[cfg_attr(
35204    not(target_arch = "arm"),
35205    stable(feature = "neon_intrinsics", since = "1.59.0")
35206)]
35207#[cfg_attr(
35208    target_arch = "arm",
35209    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35210)]
35211pub fn vqadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
35212    unsafe { simd_saturating_add(a, b) }
35213}
35214#[doc = "Saturating add"]
35215#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u16)"]
35216#[inline(always)]
35217#[target_feature(enable = "neon")]
35218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35219#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u16"))]
35220#[cfg_attr(
35221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35222    assert_instr(uqadd)
35223)]
35224#[cfg_attr(
35225    not(target_arch = "arm"),
35226    stable(feature = "neon_intrinsics", since = "1.59.0")
35227)]
35228#[cfg_attr(
35229    target_arch = "arm",
35230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35231)]
35232pub fn vqaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
35233    unsafe { simd_saturating_add(a, b) }
35234}
35235#[doc = "Saturating add"]
35236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u32)"]
35237#[inline(always)]
35238#[target_feature(enable = "neon")]
35239#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35240#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u32"))]
35241#[cfg_attr(
35242    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35243    assert_instr(uqadd)
35244)]
35245#[cfg_attr(
35246    not(target_arch = "arm"),
35247    stable(feature = "neon_intrinsics", since = "1.59.0")
35248)]
35249#[cfg_attr(
35250    target_arch = "arm",
35251    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35252)]
35253pub fn vqadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
35254    unsafe { simd_saturating_add(a, b) }
35255}
35256#[doc = "Saturating add"]
35257#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u32)"]
35258#[inline(always)]
35259#[target_feature(enable = "neon")]
35260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35261#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u32"))]
35262#[cfg_attr(
35263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35264    assert_instr(uqadd)
35265)]
35266#[cfg_attr(
35267    not(target_arch = "arm"),
35268    stable(feature = "neon_intrinsics", since = "1.59.0")
35269)]
35270#[cfg_attr(
35271    target_arch = "arm",
35272    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35273)]
35274pub fn vqaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
35275    unsafe { simd_saturating_add(a, b) }
35276}
35277#[doc = "Saturating add"]
35278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u64)"]
35279#[inline(always)]
35280#[target_feature(enable = "neon")]
35281#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35282#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
35283#[cfg_attr(
35284    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35285    assert_instr(uqadd)
35286)]
35287#[cfg_attr(
35288    not(target_arch = "arm"),
35289    stable(feature = "neon_intrinsics", since = "1.59.0")
35290)]
35291#[cfg_attr(
35292    target_arch = "arm",
35293    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35294)]
35295pub fn vqadd_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
35296    unsafe { simd_saturating_add(a, b) }
35297}
35298#[doc = "Saturating add"]
35299#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u64)"]
35300#[inline(always)]
35301#[target_feature(enable = "neon")]
35302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35303#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
35304#[cfg_attr(
35305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35306    assert_instr(uqadd)
35307)]
35308#[cfg_attr(
35309    not(target_arch = "arm"),
35310    stable(feature = "neon_intrinsics", since = "1.59.0")
35311)]
35312#[cfg_attr(
35313    target_arch = "arm",
35314    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35315)]
35316pub fn vqaddq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
35317    unsafe { simd_saturating_add(a, b) }
35318}
35319#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
35320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s16)"]
35321#[inline(always)]
35322#[target_feature(enable = "neon")]
35323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35324#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 2))]
35325#[cfg_attr(
35326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35327    assert_instr(sqdmlal, N = 2)
35328)]
35329#[rustc_legacy_const_generics(3)]
35330#[cfg_attr(
35331    not(target_arch = "arm"),
35332    stable(feature = "neon_intrinsics", since = "1.59.0")
35333)]
35334#[cfg_attr(
35335    target_arch = "arm",
35336    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35337)]
35338pub fn vqdmlal_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
35339    static_assert_uimm_bits!(N, 2);
35340    vqaddq_s32(a, vqdmull_lane_s16::<N>(b, c))
35341}
35342#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
35343#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s32)"]
35344#[inline(always)]
35345#[target_feature(enable = "neon")]
35346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 1))]
35348#[cfg_attr(
35349    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35350    assert_instr(sqdmlal, N = 1)
35351)]
35352#[rustc_legacy_const_generics(3)]
35353#[cfg_attr(
35354    not(target_arch = "arm"),
35355    stable(feature = "neon_intrinsics", since = "1.59.0")
35356)]
35357#[cfg_attr(
35358    target_arch = "arm",
35359    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35360)]
35361pub fn vqdmlal_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
35362    static_assert_uimm_bits!(N, 1);
35363    vqaddq_s64(a, vqdmull_lane_s32::<N>(b, c))
35364}
35365#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
35366#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s16)"]
35367#[inline(always)]
35368#[target_feature(enable = "neon")]
35369#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35370#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
35371#[cfg_attr(
35372    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35373    assert_instr(sqdmlal)
35374)]
35375#[cfg_attr(
35376    not(target_arch = "arm"),
35377    stable(feature = "neon_intrinsics", since = "1.59.0")
35378)]
35379#[cfg_attr(
35380    target_arch = "arm",
35381    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35382)]
35383pub fn vqdmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
35384    vqaddq_s32(a, vqdmull_n_s16(b, c))
35385}
35386#[doc = "Vector widening saturating doubling multiply accumulate with scalar"]
35387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s32)"]
35388#[inline(always)]
35389#[target_feature(enable = "neon")]
35390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
35392#[cfg_attr(
35393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35394    assert_instr(sqdmlal)
35395)]
35396#[cfg_attr(
35397    not(target_arch = "arm"),
35398    stable(feature = "neon_intrinsics", since = "1.59.0")
35399)]
35400#[cfg_attr(
35401    target_arch = "arm",
35402    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35403)]
35404pub fn vqdmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
35405    vqaddq_s64(a, vqdmull_n_s32(b, c))
35406}
35407#[doc = "Signed saturating doubling multiply-add long"]
35408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s16)"]
35409#[inline(always)]
35410#[target_feature(enable = "neon")]
35411#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35412#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
35413#[cfg_attr(
35414    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35415    assert_instr(sqdmlal)
35416)]
35417#[cfg_attr(
35418    not(target_arch = "arm"),
35419    stable(feature = "neon_intrinsics", since = "1.59.0")
35420)]
35421#[cfg_attr(
35422    target_arch = "arm",
35423    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35424)]
35425pub fn vqdmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
35426    vqaddq_s32(a, vqdmull_s16(b, c))
35427}
35428#[doc = "Signed saturating doubling multiply-add long"]
35429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s32)"]
35430#[inline(always)]
35431#[target_feature(enable = "neon")]
35432#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35433#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
35434#[cfg_attr(
35435    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35436    assert_instr(sqdmlal)
35437)]
35438#[cfg_attr(
35439    not(target_arch = "arm"),
35440    stable(feature = "neon_intrinsics", since = "1.59.0")
35441)]
35442#[cfg_attr(
35443    target_arch = "arm",
35444    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35445)]
35446pub fn vqdmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
35447    vqaddq_s64(a, vqdmull_s32(b, c))
35448}
35449#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
35450#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s16)"]
35451#[inline(always)]
35452#[target_feature(enable = "neon")]
35453#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35454#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 2))]
35455#[cfg_attr(
35456    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35457    assert_instr(sqdmlsl, N = 2)
35458)]
35459#[rustc_legacy_const_generics(3)]
35460#[cfg_attr(
35461    not(target_arch = "arm"),
35462    stable(feature = "neon_intrinsics", since = "1.59.0")
35463)]
35464#[cfg_attr(
35465    target_arch = "arm",
35466    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35467)]
35468pub fn vqdmlsl_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
35469    static_assert_uimm_bits!(N, 2);
35470    vqsubq_s32(a, vqdmull_lane_s16::<N>(b, c))
35471}
35472#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
35473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s32)"]
35474#[inline(always)]
35475#[target_feature(enable = "neon")]
35476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35477#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 1))]
35478#[cfg_attr(
35479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35480    assert_instr(sqdmlsl, N = 1)
35481)]
35482#[rustc_legacy_const_generics(3)]
35483#[cfg_attr(
35484    not(target_arch = "arm"),
35485    stable(feature = "neon_intrinsics", since = "1.59.0")
35486)]
35487#[cfg_attr(
35488    target_arch = "arm",
35489    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35490)]
35491pub fn vqdmlsl_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
35492    static_assert_uimm_bits!(N, 1);
35493    vqsubq_s64(a, vqdmull_lane_s32::<N>(b, c))
35494}
35495#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
35496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s16)"]
35497#[inline(always)]
35498#[target_feature(enable = "neon")]
35499#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35500#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
35501#[cfg_attr(
35502    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35503    assert_instr(sqdmlsl)
35504)]
35505#[cfg_attr(
35506    not(target_arch = "arm"),
35507    stable(feature = "neon_intrinsics", since = "1.59.0")
35508)]
35509#[cfg_attr(
35510    target_arch = "arm",
35511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35512)]
35513pub fn vqdmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
35514    vqsubq_s32(a, vqdmull_n_s16(b, c))
35515}
35516#[doc = "Vector widening saturating doubling multiply subtract with scalar"]
35517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s32)"]
35518#[inline(always)]
35519#[target_feature(enable = "neon")]
35520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
35522#[cfg_attr(
35523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35524    assert_instr(sqdmlsl)
35525)]
35526#[cfg_attr(
35527    not(target_arch = "arm"),
35528    stable(feature = "neon_intrinsics", since = "1.59.0")
35529)]
35530#[cfg_attr(
35531    target_arch = "arm",
35532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35533)]
35534pub fn vqdmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
35535    vqsubq_s64(a, vqdmull_n_s32(b, c))
35536}
35537#[doc = "Signed saturating doubling multiply-subtract long"]
35538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s16)"]
35539#[inline(always)]
35540#[target_feature(enable = "neon")]
35541#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35542#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
35543#[cfg_attr(
35544    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35545    assert_instr(sqdmlsl)
35546)]
35547#[cfg_attr(
35548    not(target_arch = "arm"),
35549    stable(feature = "neon_intrinsics", since = "1.59.0")
35550)]
35551#[cfg_attr(
35552    target_arch = "arm",
35553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35554)]
35555pub fn vqdmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
35556    vqsubq_s32(a, vqdmull_s16(b, c))
35557}
35558#[doc = "Signed saturating doubling multiply-subtract long"]
35559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s32)"]
35560#[inline(always)]
35561#[target_feature(enable = "neon")]
35562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35563#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
35564#[cfg_attr(
35565    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35566    assert_instr(sqdmlsl)
35567)]
35568#[cfg_attr(
35569    not(target_arch = "arm"),
35570    stable(feature = "neon_intrinsics", since = "1.59.0")
35571)]
35572#[cfg_attr(
35573    target_arch = "arm",
35574    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35575)]
35576pub fn vqdmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
35577    vqsubq_s64(a, vqdmull_s32(b, c))
35578}
35579#[doc = "Vector saturating doubling multiply high by scalar"]
35580#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s16)"]
35581#[inline(always)]
35582#[target_feature(enable = "neon")]
35583#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35584#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
35585#[cfg_attr(
35586    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35587    assert_instr(sqdmulh, LANE = 0)
35588)]
35589#[rustc_legacy_const_generics(2)]
35590#[cfg_attr(
35591    not(target_arch = "arm"),
35592    stable(feature = "neon_intrinsics", since = "1.59.0")
35593)]
35594#[cfg_attr(
35595    target_arch = "arm",
35596    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35597)]
35598pub fn vqdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
35599    static_assert_uimm_bits!(LANE, 3);
35600    unsafe { vqdmulh_s16(a, vdup_n_s16(simd_extract!(b, LANE as u32))) }
35601}
35602#[doc = "Vector saturating doubling multiply high by scalar"]
35603#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s16)"]
35604#[inline(always)]
35605#[target_feature(enable = "neon")]
35606#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35607#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
35608#[cfg_attr(
35609    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35610    assert_instr(sqdmulh, LANE = 0)
35611)]
35612#[rustc_legacy_const_generics(2)]
35613#[cfg_attr(
35614    not(target_arch = "arm"),
35615    stable(feature = "neon_intrinsics", since = "1.59.0")
35616)]
35617#[cfg_attr(
35618    target_arch = "arm",
35619    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35620)]
35621pub fn vqdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
35622    static_assert_uimm_bits!(LANE, 3);
35623    unsafe { vqdmulhq_s16(a, vdupq_n_s16(simd_extract!(b, LANE as u32))) }
35624}
35625#[doc = "Vector saturating doubling multiply high by scalar"]
35626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s32)"]
35627#[inline(always)]
35628#[target_feature(enable = "neon")]
35629#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35630#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
35631#[cfg_attr(
35632    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35633    assert_instr(sqdmulh, LANE = 0)
35634)]
35635#[rustc_legacy_const_generics(2)]
35636#[cfg_attr(
35637    not(target_arch = "arm"),
35638    stable(feature = "neon_intrinsics", since = "1.59.0")
35639)]
35640#[cfg_attr(
35641    target_arch = "arm",
35642    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35643)]
35644pub fn vqdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
35645    static_assert_uimm_bits!(LANE, 2);
35646    unsafe { vqdmulh_s32(a, vdup_n_s32(simd_extract!(b, LANE as u32))) }
35647}
35648#[doc = "Vector saturating doubling multiply high by scalar"]
35649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s32)"]
35650#[inline(always)]
35651#[target_feature(enable = "neon")]
35652#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
35654#[cfg_attr(
35655    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35656    assert_instr(sqdmulh, LANE = 0)
35657)]
35658#[rustc_legacy_const_generics(2)]
35659#[cfg_attr(
35660    not(target_arch = "arm"),
35661    stable(feature = "neon_intrinsics", since = "1.59.0")
35662)]
35663#[cfg_attr(
35664    target_arch = "arm",
35665    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35666)]
35667pub fn vqdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
35668    static_assert_uimm_bits!(LANE, 2);
35669    unsafe { vqdmulhq_s32(a, vdupq_n_s32(simd_extract!(b, LANE as u32))) }
35670}
35671#[doc = "Vector saturating doubling multiply high with scalar"]
35672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s16)"]
35673#[inline(always)]
35674#[target_feature(enable = "neon")]
35675#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35676#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35677#[cfg_attr(
35678    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35679    assert_instr(sqdmulh)
35680)]
35681#[cfg_attr(
35682    not(target_arch = "arm"),
35683    stable(feature = "neon_intrinsics", since = "1.59.0")
35684)]
35685#[cfg_attr(
35686    target_arch = "arm",
35687    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35688)]
35689pub fn vqdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
35690    let b: int16x4_t = vdup_n_s16(b);
35691    vqdmulh_s16(a, b)
35692}
35693#[doc = "Vector saturating doubling multiply high with scalar"]
35694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s16)"]
35695#[inline(always)]
35696#[target_feature(enable = "neon")]
35697#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35698#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35699#[cfg_attr(
35700    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35701    assert_instr(sqdmulh)
35702)]
35703#[cfg_attr(
35704    not(target_arch = "arm"),
35705    stable(feature = "neon_intrinsics", since = "1.59.0")
35706)]
35707#[cfg_attr(
35708    target_arch = "arm",
35709    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35710)]
35711pub fn vqdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
35712    let b: int16x8_t = vdupq_n_s16(b);
35713    vqdmulhq_s16(a, b)
35714}
35715#[doc = "Vector saturating doubling multiply high with scalar"]
35716#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s32)"]
35717#[inline(always)]
35718#[target_feature(enable = "neon")]
35719#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35720#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35721#[cfg_attr(
35722    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35723    assert_instr(sqdmulh)
35724)]
35725#[cfg_attr(
35726    not(target_arch = "arm"),
35727    stable(feature = "neon_intrinsics", since = "1.59.0")
35728)]
35729#[cfg_attr(
35730    target_arch = "arm",
35731    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35732)]
35733pub fn vqdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
35734    let b: int32x2_t = vdup_n_s32(b);
35735    vqdmulh_s32(a, b)
35736}
35737#[doc = "Vector saturating doubling multiply high with scalar"]
35738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s32)"]
35739#[inline(always)]
35740#[target_feature(enable = "neon")]
35741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35742#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35743#[cfg_attr(
35744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35745    assert_instr(sqdmulh)
35746)]
35747#[cfg_attr(
35748    not(target_arch = "arm"),
35749    stable(feature = "neon_intrinsics", since = "1.59.0")
35750)]
35751#[cfg_attr(
35752    target_arch = "arm",
35753    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35754)]
35755pub fn vqdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
35756    let b: int32x4_t = vdupq_n_s32(b);
35757    vqdmulhq_s32(a, b)
35758}
35759#[doc = "Signed saturating doubling multiply returning high half"]
35760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s16)"]
35761#[inline(always)]
35762#[target_feature(enable = "neon")]
35763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35765#[cfg_attr(
35766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35767    assert_instr(sqdmulh)
35768)]
35769#[cfg_attr(
35770    not(target_arch = "arm"),
35771    stable(feature = "neon_intrinsics", since = "1.59.0")
35772)]
35773#[cfg_attr(
35774    target_arch = "arm",
35775    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35776)]
35777pub fn vqdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
35778    unsafe extern "unadjusted" {
35779        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i16")]
35780        #[cfg_attr(
35781            any(target_arch = "aarch64", target_arch = "arm64ec"),
35782            link_name = "llvm.aarch64.neon.sqdmulh.v4i16"
35783        )]
35784        fn _vqdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
35785    }
35786    unsafe { _vqdmulh_s16(a, b) }
35787}
35788#[doc = "Signed saturating doubling multiply returning high half"]
35789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s16)"]
35790#[inline(always)]
35791#[target_feature(enable = "neon")]
35792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35794#[cfg_attr(
35795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35796    assert_instr(sqdmulh)
35797)]
35798#[cfg_attr(
35799    not(target_arch = "arm"),
35800    stable(feature = "neon_intrinsics", since = "1.59.0")
35801)]
35802#[cfg_attr(
35803    target_arch = "arm",
35804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35805)]
35806pub fn vqdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
35807    unsafe extern "unadjusted" {
35808        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v8i16")]
35809        #[cfg_attr(
35810            any(target_arch = "aarch64", target_arch = "arm64ec"),
35811            link_name = "llvm.aarch64.neon.sqdmulh.v8i16"
35812        )]
35813        fn _vqdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
35814    }
35815    unsafe { _vqdmulhq_s16(a, b) }
35816}
35817#[doc = "Signed saturating doubling multiply returning high half"]
35818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s32)"]
35819#[inline(always)]
35820#[target_feature(enable = "neon")]
35821#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35822#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35823#[cfg_attr(
35824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35825    assert_instr(sqdmulh)
35826)]
35827#[cfg_attr(
35828    not(target_arch = "arm"),
35829    stable(feature = "neon_intrinsics", since = "1.59.0")
35830)]
35831#[cfg_attr(
35832    target_arch = "arm",
35833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35834)]
35835pub fn vqdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
35836    unsafe extern "unadjusted" {
35837        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v2i32")]
35838        #[cfg_attr(
35839            any(target_arch = "aarch64", target_arch = "arm64ec"),
35840            link_name = "llvm.aarch64.neon.sqdmulh.v2i32"
35841        )]
35842        fn _vqdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
35843    }
35844    unsafe { _vqdmulh_s32(a, b) }
35845}
35846#[doc = "Signed saturating doubling multiply returning high half"]
35847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s32)"]
35848#[inline(always)]
35849#[target_feature(enable = "neon")]
35850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
35852#[cfg_attr(
35853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35854    assert_instr(sqdmulh)
35855)]
35856#[cfg_attr(
35857    not(target_arch = "arm"),
35858    stable(feature = "neon_intrinsics", since = "1.59.0")
35859)]
35860#[cfg_attr(
35861    target_arch = "arm",
35862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35863)]
35864pub fn vqdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
35865    unsafe extern "unadjusted" {
35866        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i32")]
35867        #[cfg_attr(
35868            any(target_arch = "aarch64", target_arch = "arm64ec"),
35869            link_name = "llvm.aarch64.neon.sqdmulh.v4i32"
35870        )]
35871        fn _vqdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
35872    }
35873    unsafe { _vqdmulhq_s32(a, b) }
35874}
35875#[doc = "Vector saturating doubling long multiply by scalar"]
35876#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s16)"]
35877#[inline(always)]
35878#[target_feature(enable = "neon")]
35879#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35880#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 2))]
35881#[cfg_attr(
35882    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35883    assert_instr(sqdmull, N = 2)
35884)]
35885#[rustc_legacy_const_generics(2)]
35886#[cfg_attr(
35887    not(target_arch = "arm"),
35888    stable(feature = "neon_intrinsics", since = "1.59.0")
35889)]
35890#[cfg_attr(
35891    target_arch = "arm",
35892    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35893)]
35894pub fn vqdmull_lane_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
35895    static_assert_uimm_bits!(N, 2);
35896    unsafe {
35897        let b: int16x4_t = simd_shuffle!(b, b, [N as u32, N as u32, N as u32, N as u32]);
35898        vqdmull_s16(a, b)
35899    }
35900}
35901#[doc = "Vector saturating doubling long multiply by scalar"]
35902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s32)"]
35903#[inline(always)]
35904#[target_feature(enable = "neon")]
35905#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35906#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 1))]
35907#[cfg_attr(
35908    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35909    assert_instr(sqdmull, N = 1)
35910)]
35911#[rustc_legacy_const_generics(2)]
35912#[cfg_attr(
35913    not(target_arch = "arm"),
35914    stable(feature = "neon_intrinsics", since = "1.59.0")
35915)]
35916#[cfg_attr(
35917    target_arch = "arm",
35918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35919)]
35920pub fn vqdmull_lane_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
35921    static_assert_uimm_bits!(N, 1);
35922    unsafe {
35923        let b: int32x2_t = simd_shuffle!(b, b, [N as u32, N as u32]);
35924        vqdmull_s32(a, b)
35925    }
35926}
35927#[doc = "Vector saturating doubling long multiply with scalar"]
35928#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s16)"]
35929#[inline(always)]
35930#[target_feature(enable = "neon")]
35931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
35933#[cfg_attr(
35934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35935    assert_instr(sqdmull)
35936)]
35937#[cfg_attr(
35938    not(target_arch = "arm"),
35939    stable(feature = "neon_intrinsics", since = "1.59.0")
35940)]
35941#[cfg_attr(
35942    target_arch = "arm",
35943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35944)]
35945pub fn vqdmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
35946    vqdmull_s16(a, vdup_n_s16(b))
35947}
35948#[doc = "Vector saturating doubling long multiply with scalar"]
35949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s32)"]
35950#[inline(always)]
35951#[target_feature(enable = "neon")]
35952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
35954#[cfg_attr(
35955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35956    assert_instr(sqdmull)
35957)]
35958#[cfg_attr(
35959    not(target_arch = "arm"),
35960    stable(feature = "neon_intrinsics", since = "1.59.0")
35961)]
35962#[cfg_attr(
35963    target_arch = "arm",
35964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35965)]
35966pub fn vqdmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
35967    vqdmull_s32(a, vdup_n_s32(b))
35968}
35969#[doc = "Signed saturating doubling multiply long"]
35970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s16)"]
35971#[inline(always)]
35972#[target_feature(enable = "neon")]
35973#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
35974#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
35975#[cfg_attr(
35976    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
35977    assert_instr(sqdmull)
35978)]
35979#[cfg_attr(
35980    not(target_arch = "arm"),
35981    stable(feature = "neon_intrinsics", since = "1.59.0")
35982)]
35983#[cfg_attr(
35984    target_arch = "arm",
35985    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
35986)]
35987pub fn vqdmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
35988    unsafe extern "unadjusted" {
35989        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v4i32")]
35990        #[cfg_attr(
35991            any(target_arch = "aarch64", target_arch = "arm64ec"),
35992            link_name = "llvm.aarch64.neon.sqdmull.v4i32"
35993        )]
35994        fn _vqdmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t;
35995    }
35996    unsafe { _vqdmull_s16(a, b) }
35997}
35998#[doc = "Signed saturating doubling multiply long"]
35999#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s32)"]
36000#[inline(always)]
36001#[target_feature(enable = "neon")]
36002#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36003#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
36004#[cfg_attr(
36005    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36006    assert_instr(sqdmull)
36007)]
36008#[cfg_attr(
36009    not(target_arch = "arm"),
36010    stable(feature = "neon_intrinsics", since = "1.59.0")
36011)]
36012#[cfg_attr(
36013    target_arch = "arm",
36014    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36015)]
36016pub fn vqdmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
36017    unsafe extern "unadjusted" {
36018        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v2i64")]
36019        #[cfg_attr(
36020            any(target_arch = "aarch64", target_arch = "arm64ec"),
36021            link_name = "llvm.aarch64.neon.sqdmull.v2i64"
36022        )]
36023        fn _vqdmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t;
36024    }
36025    unsafe { _vqdmull_s32(a, b) }
36026}
36027#[doc = "Signed saturating extract narrow"]
36028#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s16)"]
36029#[inline(always)]
36030#[target_feature(enable = "neon")]
36031#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36032#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
36033#[cfg_attr(
36034    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36035    assert_instr(sqxtn)
36036)]
36037#[cfg_attr(
36038    not(target_arch = "arm"),
36039    stable(feature = "neon_intrinsics", since = "1.59.0")
36040)]
36041#[cfg_attr(
36042    target_arch = "arm",
36043    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36044)]
36045pub fn vqmovn_s16(a: int16x8_t) -> int8x8_t {
36046    unsafe extern "unadjusted" {
36047        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v8i8")]
36048        #[cfg_attr(
36049            any(target_arch = "aarch64", target_arch = "arm64ec"),
36050            link_name = "llvm.aarch64.neon.sqxtn.v8i8"
36051        )]
36052        fn _vqmovn_s16(a: int16x8_t) -> int8x8_t;
36053    }
36054    unsafe { _vqmovn_s16(a) }
36055}
36056#[doc = "Signed saturating extract narrow"]
36057#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s32)"]
36058#[inline(always)]
36059#[target_feature(enable = "neon")]
36060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36061#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
36062#[cfg_attr(
36063    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36064    assert_instr(sqxtn)
36065)]
36066#[cfg_attr(
36067    not(target_arch = "arm"),
36068    stable(feature = "neon_intrinsics", since = "1.59.0")
36069)]
36070#[cfg_attr(
36071    target_arch = "arm",
36072    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36073)]
36074pub fn vqmovn_s32(a: int32x4_t) -> int16x4_t {
36075    unsafe extern "unadjusted" {
36076        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v4i16")]
36077        #[cfg_attr(
36078            any(target_arch = "aarch64", target_arch = "arm64ec"),
36079            link_name = "llvm.aarch64.neon.sqxtn.v4i16"
36080        )]
36081        fn _vqmovn_s32(a: int32x4_t) -> int16x4_t;
36082    }
36083    unsafe { _vqmovn_s32(a) }
36084}
36085#[doc = "Signed saturating extract narrow"]
36086#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s64)"]
36087#[inline(always)]
36088#[target_feature(enable = "neon")]
36089#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36090#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
36091#[cfg_attr(
36092    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36093    assert_instr(sqxtn)
36094)]
36095#[cfg_attr(
36096    not(target_arch = "arm"),
36097    stable(feature = "neon_intrinsics", since = "1.59.0")
36098)]
36099#[cfg_attr(
36100    target_arch = "arm",
36101    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36102)]
36103pub fn vqmovn_s64(a: int64x2_t) -> int32x2_t {
36104    unsafe extern "unadjusted" {
36105        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v2i32")]
36106        #[cfg_attr(
36107            any(target_arch = "aarch64", target_arch = "arm64ec"),
36108            link_name = "llvm.aarch64.neon.sqxtn.v2i32"
36109        )]
36110        fn _vqmovn_s64(a: int64x2_t) -> int32x2_t;
36111    }
36112    unsafe { _vqmovn_s64(a) }
36113}
36114#[doc = "Unsigned saturating extract narrow"]
36115#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u16)"]
36116#[inline(always)]
36117#[target_feature(enable = "neon")]
36118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36119#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
36120#[cfg_attr(
36121    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36122    assert_instr(uqxtn)
36123)]
36124#[cfg_attr(
36125    not(target_arch = "arm"),
36126    stable(feature = "neon_intrinsics", since = "1.59.0")
36127)]
36128#[cfg_attr(
36129    target_arch = "arm",
36130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36131)]
36132pub fn vqmovn_u16(a: uint16x8_t) -> uint8x8_t {
36133    unsafe extern "unadjusted" {
36134        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v8i8")]
36135        #[cfg_attr(
36136            any(target_arch = "aarch64", target_arch = "arm64ec"),
36137            link_name = "llvm.aarch64.neon.uqxtn.v8i8"
36138        )]
36139        fn _vqmovn_u16(a: uint16x8_t) -> uint8x8_t;
36140    }
36141    unsafe { _vqmovn_u16(a) }
36142}
36143#[doc = "Unsigned saturating extract narrow"]
36144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u32)"]
36145#[inline(always)]
36146#[target_feature(enable = "neon")]
36147#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36148#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
36149#[cfg_attr(
36150    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36151    assert_instr(uqxtn)
36152)]
36153#[cfg_attr(
36154    not(target_arch = "arm"),
36155    stable(feature = "neon_intrinsics", since = "1.59.0")
36156)]
36157#[cfg_attr(
36158    target_arch = "arm",
36159    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36160)]
36161pub fn vqmovn_u32(a: uint32x4_t) -> uint16x4_t {
36162    unsafe extern "unadjusted" {
36163        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v4i16")]
36164        #[cfg_attr(
36165            any(target_arch = "aarch64", target_arch = "arm64ec"),
36166            link_name = "llvm.aarch64.neon.uqxtn.v4i16"
36167        )]
36168        fn _vqmovn_u32(a: uint32x4_t) -> uint16x4_t;
36169    }
36170    unsafe { _vqmovn_u32(a) }
36171}
36172#[doc = "Unsigned saturating extract narrow"]
36173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u64)"]
36174#[inline(always)]
36175#[target_feature(enable = "neon")]
36176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36177#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
36178#[cfg_attr(
36179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36180    assert_instr(uqxtn)
36181)]
36182#[cfg_attr(
36183    not(target_arch = "arm"),
36184    stable(feature = "neon_intrinsics", since = "1.59.0")
36185)]
36186#[cfg_attr(
36187    target_arch = "arm",
36188    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36189)]
36190pub fn vqmovn_u64(a: uint64x2_t) -> uint32x2_t {
36191    unsafe extern "unadjusted" {
36192        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v2i32")]
36193        #[cfg_attr(
36194            any(target_arch = "aarch64", target_arch = "arm64ec"),
36195            link_name = "llvm.aarch64.neon.uqxtn.v2i32"
36196        )]
36197        fn _vqmovn_u64(a: uint64x2_t) -> uint32x2_t;
36198    }
36199    unsafe { _vqmovn_u64(a) }
36200}
36201#[doc = "Signed saturating extract unsigned narrow"]
36202#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s16)"]
36203#[inline(always)]
36204#[target_feature(enable = "neon")]
36205#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36206#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
36207#[cfg_attr(
36208    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36209    assert_instr(sqxtun)
36210)]
36211#[cfg_attr(
36212    not(target_arch = "arm"),
36213    stable(feature = "neon_intrinsics", since = "1.59.0")
36214)]
36215#[cfg_attr(
36216    target_arch = "arm",
36217    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36218)]
36219pub fn vqmovun_s16(a: int16x8_t) -> uint8x8_t {
36220    unsafe extern "unadjusted" {
36221        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v8i8")]
36222        #[cfg_attr(
36223            any(target_arch = "aarch64", target_arch = "arm64ec"),
36224            link_name = "llvm.aarch64.neon.sqxtun.v8i8"
36225        )]
36226        fn _vqmovun_s16(a: int16x8_t) -> uint8x8_t;
36227    }
36228    unsafe { _vqmovun_s16(a) }
36229}
36230#[doc = "Signed saturating extract unsigned narrow"]
36231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s32)"]
36232#[inline(always)]
36233#[target_feature(enable = "neon")]
36234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36235#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
36236#[cfg_attr(
36237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36238    assert_instr(sqxtun)
36239)]
36240#[cfg_attr(
36241    not(target_arch = "arm"),
36242    stable(feature = "neon_intrinsics", since = "1.59.0")
36243)]
36244#[cfg_attr(
36245    target_arch = "arm",
36246    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36247)]
36248pub fn vqmovun_s32(a: int32x4_t) -> uint16x4_t {
36249    unsafe extern "unadjusted" {
36250        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v4i16")]
36251        #[cfg_attr(
36252            any(target_arch = "aarch64", target_arch = "arm64ec"),
36253            link_name = "llvm.aarch64.neon.sqxtun.v4i16"
36254        )]
36255        fn _vqmovun_s32(a: int32x4_t) -> uint16x4_t;
36256    }
36257    unsafe { _vqmovun_s32(a) }
36258}
36259#[doc = "Signed saturating extract unsigned narrow"]
36260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s64)"]
36261#[inline(always)]
36262#[target_feature(enable = "neon")]
36263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
36265#[cfg_attr(
36266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36267    assert_instr(sqxtun)
36268)]
36269#[cfg_attr(
36270    not(target_arch = "arm"),
36271    stable(feature = "neon_intrinsics", since = "1.59.0")
36272)]
36273#[cfg_attr(
36274    target_arch = "arm",
36275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36276)]
36277pub fn vqmovun_s64(a: int64x2_t) -> uint32x2_t {
36278    unsafe extern "unadjusted" {
36279        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v2i32")]
36280        #[cfg_attr(
36281            any(target_arch = "aarch64", target_arch = "arm64ec"),
36282            link_name = "llvm.aarch64.neon.sqxtun.v2i32"
36283        )]
36284        fn _vqmovun_s64(a: int64x2_t) -> uint32x2_t;
36285    }
36286    unsafe { _vqmovun_s64(a) }
36287}
36288#[doc = "Signed saturating negate"]
36289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s8)"]
36290#[inline(always)]
36291#[target_feature(enable = "neon")]
36292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36293#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
36294#[cfg_attr(
36295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36296    assert_instr(sqneg)
36297)]
36298#[cfg_attr(
36299    not(target_arch = "arm"),
36300    stable(feature = "neon_intrinsics", since = "1.59.0")
36301)]
36302#[cfg_attr(
36303    target_arch = "arm",
36304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36305)]
36306pub fn vqneg_s8(a: int8x8_t) -> int8x8_t {
36307    unsafe extern "unadjusted" {
36308        #[cfg_attr(
36309            any(target_arch = "aarch64", target_arch = "arm64ec"),
36310            link_name = "llvm.aarch64.neon.sqneg.v8i8"
36311        )]
36312        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i8")]
36313        fn _vqneg_s8(a: int8x8_t) -> int8x8_t;
36314    }
36315    unsafe { _vqneg_s8(a) }
36316}
36317#[doc = "Signed saturating negate"]
36318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s8)"]
36319#[inline(always)]
36320#[target_feature(enable = "neon")]
36321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36322#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
36323#[cfg_attr(
36324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36325    assert_instr(sqneg)
36326)]
36327#[cfg_attr(
36328    not(target_arch = "arm"),
36329    stable(feature = "neon_intrinsics", since = "1.59.0")
36330)]
36331#[cfg_attr(
36332    target_arch = "arm",
36333    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36334)]
36335pub fn vqnegq_s8(a: int8x16_t) -> int8x16_t {
36336    unsafe extern "unadjusted" {
36337        #[cfg_attr(
36338            any(target_arch = "aarch64", target_arch = "arm64ec"),
36339            link_name = "llvm.aarch64.neon.sqneg.v16i8"
36340        )]
36341        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v16i8")]
36342        fn _vqnegq_s8(a: int8x16_t) -> int8x16_t;
36343    }
36344    unsafe { _vqnegq_s8(a) }
36345}
36346#[doc = "Signed saturating negate"]
36347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s16)"]
36348#[inline(always)]
36349#[target_feature(enable = "neon")]
36350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36351#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
36352#[cfg_attr(
36353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36354    assert_instr(sqneg)
36355)]
36356#[cfg_attr(
36357    not(target_arch = "arm"),
36358    stable(feature = "neon_intrinsics", since = "1.59.0")
36359)]
36360#[cfg_attr(
36361    target_arch = "arm",
36362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36363)]
36364pub fn vqneg_s16(a: int16x4_t) -> int16x4_t {
36365    unsafe extern "unadjusted" {
36366        #[cfg_attr(
36367            any(target_arch = "aarch64", target_arch = "arm64ec"),
36368            link_name = "llvm.aarch64.neon.sqneg.v4i16"
36369        )]
36370        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i16")]
36371        fn _vqneg_s16(a: int16x4_t) -> int16x4_t;
36372    }
36373    unsafe { _vqneg_s16(a) }
36374}
36375#[doc = "Signed saturating negate"]
36376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s16)"]
36377#[inline(always)]
36378#[target_feature(enable = "neon")]
36379#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36380#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
36381#[cfg_attr(
36382    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36383    assert_instr(sqneg)
36384)]
36385#[cfg_attr(
36386    not(target_arch = "arm"),
36387    stable(feature = "neon_intrinsics", since = "1.59.0")
36388)]
36389#[cfg_attr(
36390    target_arch = "arm",
36391    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36392)]
36393pub fn vqnegq_s16(a: int16x8_t) -> int16x8_t {
36394    unsafe extern "unadjusted" {
36395        #[cfg_attr(
36396            any(target_arch = "aarch64", target_arch = "arm64ec"),
36397            link_name = "llvm.aarch64.neon.sqneg.v8i16"
36398        )]
36399        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i16")]
36400        fn _vqnegq_s16(a: int16x8_t) -> int16x8_t;
36401    }
36402    unsafe { _vqnegq_s16(a) }
36403}
36404#[doc = "Signed saturating negate"]
36405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s32)"]
36406#[inline(always)]
36407#[target_feature(enable = "neon")]
36408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36409#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
36410#[cfg_attr(
36411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36412    assert_instr(sqneg)
36413)]
36414#[cfg_attr(
36415    not(target_arch = "arm"),
36416    stable(feature = "neon_intrinsics", since = "1.59.0")
36417)]
36418#[cfg_attr(
36419    target_arch = "arm",
36420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36421)]
36422pub fn vqneg_s32(a: int32x2_t) -> int32x2_t {
36423    unsafe extern "unadjusted" {
36424        #[cfg_attr(
36425            any(target_arch = "aarch64", target_arch = "arm64ec"),
36426            link_name = "llvm.aarch64.neon.sqneg.v2i32"
36427        )]
36428        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v2i32")]
36429        fn _vqneg_s32(a: int32x2_t) -> int32x2_t;
36430    }
36431    unsafe { _vqneg_s32(a) }
36432}
36433#[doc = "Signed saturating negate"]
36434#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s32)"]
36435#[inline(always)]
36436#[target_feature(enable = "neon")]
36437#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36438#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
36439#[cfg_attr(
36440    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36441    assert_instr(sqneg)
36442)]
36443#[cfg_attr(
36444    not(target_arch = "arm"),
36445    stable(feature = "neon_intrinsics", since = "1.59.0")
36446)]
36447#[cfg_attr(
36448    target_arch = "arm",
36449    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36450)]
36451pub fn vqnegq_s32(a: int32x4_t) -> int32x4_t {
36452    unsafe extern "unadjusted" {
36453        #[cfg_attr(
36454            any(target_arch = "aarch64", target_arch = "arm64ec"),
36455            link_name = "llvm.aarch64.neon.sqneg.v4i32"
36456        )]
36457        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i32")]
36458        fn _vqnegq_s32(a: int32x4_t) -> int32x4_t;
36459    }
36460    unsafe { _vqnegq_s32(a) }
36461}
36462#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36463#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s16)"]
36464#[inline(always)]
36465#[target_feature(enable = "neon")]
36466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36467#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36468#[cfg_attr(
36469    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36470    assert_instr(sqrdmulh, LANE = 1)
36471)]
36472#[rustc_legacy_const_generics(2)]
36473#[cfg_attr(
36474    not(target_arch = "arm"),
36475    stable(feature = "neon_intrinsics", since = "1.59.0")
36476)]
36477#[cfg_attr(
36478    target_arch = "arm",
36479    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36480)]
36481pub fn vqrdmulh_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36482    static_assert_uimm_bits!(LANE, 2);
36483    unsafe {
36484        let b: int16x4_t =
36485            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
36486        vqrdmulh_s16(a, b)
36487    }
36488}
36489#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s32)"]
36491#[inline(always)]
36492#[target_feature(enable = "neon")]
36493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36495#[cfg_attr(
36496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36497    assert_instr(sqrdmulh, LANE = 1)
36498)]
36499#[rustc_legacy_const_generics(2)]
36500#[cfg_attr(
36501    not(target_arch = "arm"),
36502    stable(feature = "neon_intrinsics", since = "1.59.0")
36503)]
36504#[cfg_attr(
36505    target_arch = "arm",
36506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36507)]
36508pub fn vqrdmulh_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
36509    static_assert_uimm_bits!(LANE, 1);
36510    unsafe {
36511        let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
36512        vqrdmulh_s32(a, b)
36513    }
36514}
36515#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36516#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s16)"]
36517#[inline(always)]
36518#[target_feature(enable = "neon")]
36519#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36520#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36521#[cfg_attr(
36522    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36523    assert_instr(sqrdmulh, LANE = 1)
36524)]
36525#[rustc_legacy_const_generics(2)]
36526#[cfg_attr(
36527    not(target_arch = "arm"),
36528    stable(feature = "neon_intrinsics", since = "1.59.0")
36529)]
36530#[cfg_attr(
36531    target_arch = "arm",
36532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36533)]
36534pub fn vqrdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
36535    static_assert_uimm_bits!(LANE, 3);
36536    unsafe {
36537        let b: int16x4_t =
36538            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
36539        vqrdmulh_s16(a, b)
36540    }
36541}
36542#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s32)"]
36544#[inline(always)]
36545#[target_feature(enable = "neon")]
36546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36548#[cfg_attr(
36549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36550    assert_instr(sqrdmulh, LANE = 1)
36551)]
36552#[rustc_legacy_const_generics(2)]
36553#[cfg_attr(
36554    not(target_arch = "arm"),
36555    stable(feature = "neon_intrinsics", since = "1.59.0")
36556)]
36557#[cfg_attr(
36558    target_arch = "arm",
36559    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36560)]
36561pub fn vqrdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
36562    static_assert_uimm_bits!(LANE, 2);
36563    unsafe {
36564        let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
36565        vqrdmulh_s32(a, b)
36566    }
36567}
36568#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s16)"]
36570#[inline(always)]
36571#[target_feature(enable = "neon")]
36572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36573#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36574#[cfg_attr(
36575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36576    assert_instr(sqrdmulh, LANE = 1)
36577)]
36578#[rustc_legacy_const_generics(2)]
36579#[cfg_attr(
36580    not(target_arch = "arm"),
36581    stable(feature = "neon_intrinsics", since = "1.59.0")
36582)]
36583#[cfg_attr(
36584    target_arch = "arm",
36585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36586)]
36587pub fn vqrdmulhq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
36588    static_assert_uimm_bits!(LANE, 2);
36589    unsafe {
36590        let b: int16x8_t = simd_shuffle!(
36591            b,
36592            b,
36593            [
36594                LANE as u32,
36595                LANE as u32,
36596                LANE as u32,
36597                LANE as u32,
36598                LANE as u32,
36599                LANE as u32,
36600                LANE as u32,
36601                LANE as u32
36602            ]
36603        );
36604        vqrdmulhq_s16(a, b)
36605    }
36606}
36607#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s32)"]
36609#[inline(always)]
36610#[target_feature(enable = "neon")]
36611#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36612#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36613#[cfg_attr(
36614    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36615    assert_instr(sqrdmulh, LANE = 1)
36616)]
36617#[rustc_legacy_const_generics(2)]
36618#[cfg_attr(
36619    not(target_arch = "arm"),
36620    stable(feature = "neon_intrinsics", since = "1.59.0")
36621)]
36622#[cfg_attr(
36623    target_arch = "arm",
36624    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36625)]
36626pub fn vqrdmulhq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
36627    static_assert_uimm_bits!(LANE, 1);
36628    unsafe {
36629        let b: int32x4_t =
36630            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
36631        vqrdmulhq_s32(a, b)
36632    }
36633}
36634#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s16)"]
36636#[inline(always)]
36637#[target_feature(enable = "neon")]
36638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36640#[cfg_attr(
36641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36642    assert_instr(sqrdmulh, LANE = 1)
36643)]
36644#[rustc_legacy_const_generics(2)]
36645#[cfg_attr(
36646    not(target_arch = "arm"),
36647    stable(feature = "neon_intrinsics", since = "1.59.0")
36648)]
36649#[cfg_attr(
36650    target_arch = "arm",
36651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36652)]
36653pub fn vqrdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
36654    static_assert_uimm_bits!(LANE, 3);
36655    unsafe {
36656        let b: int16x8_t = simd_shuffle!(
36657            b,
36658            b,
36659            [
36660                LANE as u32,
36661                LANE as u32,
36662                LANE as u32,
36663                LANE as u32,
36664                LANE as u32,
36665                LANE as u32,
36666                LANE as u32,
36667                LANE as u32
36668            ]
36669        );
36670        vqrdmulhq_s16(a, b)
36671    }
36672}
36673#[doc = "Vector rounding saturating doubling multiply high by scalar"]
36674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s32)"]
36675#[inline(always)]
36676#[target_feature(enable = "neon")]
36677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36678#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
36679#[cfg_attr(
36680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36681    assert_instr(sqrdmulh, LANE = 1)
36682)]
36683#[rustc_legacy_const_generics(2)]
36684#[cfg_attr(
36685    not(target_arch = "arm"),
36686    stable(feature = "neon_intrinsics", since = "1.59.0")
36687)]
36688#[cfg_attr(
36689    target_arch = "arm",
36690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36691)]
36692pub fn vqrdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
36693    static_assert_uimm_bits!(LANE, 2);
36694    unsafe {
36695        let b: int32x4_t =
36696            simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
36697        vqrdmulhq_s32(a, b)
36698    }
36699}
36700#[doc = "Vector saturating rounding doubling multiply high with scalar"]
36701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s16)"]
36702#[inline(always)]
36703#[target_feature(enable = "neon")]
36704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36706#[cfg_attr(
36707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36708    assert_instr(sqrdmulh)
36709)]
36710#[cfg_attr(
36711    not(target_arch = "arm"),
36712    stable(feature = "neon_intrinsics", since = "1.59.0")
36713)]
36714#[cfg_attr(
36715    target_arch = "arm",
36716    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36717)]
36718pub fn vqrdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
36719    vqrdmulh_s16(a, vdup_n_s16(b))
36720}
36721#[doc = "Vector saturating rounding doubling multiply high with scalar"]
36722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s16)"]
36723#[inline(always)]
36724#[target_feature(enable = "neon")]
36725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36726#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36727#[cfg_attr(
36728    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36729    assert_instr(sqrdmulh)
36730)]
36731#[cfg_attr(
36732    not(target_arch = "arm"),
36733    stable(feature = "neon_intrinsics", since = "1.59.0")
36734)]
36735#[cfg_attr(
36736    target_arch = "arm",
36737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36738)]
36739pub fn vqrdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
36740    vqrdmulhq_s16(a, vdupq_n_s16(b))
36741}
36742#[doc = "Vector saturating rounding doubling multiply high with scalar"]
36743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s32)"]
36744#[inline(always)]
36745#[target_feature(enable = "neon")]
36746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36748#[cfg_attr(
36749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36750    assert_instr(sqrdmulh)
36751)]
36752#[cfg_attr(
36753    not(target_arch = "arm"),
36754    stable(feature = "neon_intrinsics", since = "1.59.0")
36755)]
36756#[cfg_attr(
36757    target_arch = "arm",
36758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36759)]
36760pub fn vqrdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
36761    vqrdmulh_s32(a, vdup_n_s32(b))
36762}
36763#[doc = "Vector saturating rounding doubling multiply high with scalar"]
36764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s32)"]
36765#[inline(always)]
36766#[target_feature(enable = "neon")]
36767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36768#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36769#[cfg_attr(
36770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36771    assert_instr(sqrdmulh)
36772)]
36773#[cfg_attr(
36774    not(target_arch = "arm"),
36775    stable(feature = "neon_intrinsics", since = "1.59.0")
36776)]
36777#[cfg_attr(
36778    target_arch = "arm",
36779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36780)]
36781pub fn vqrdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
36782    vqrdmulhq_s32(a, vdupq_n_s32(b))
36783}
36784#[doc = "Signed saturating rounding doubling multiply returning high half"]
36785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s16)"]
36786#[inline(always)]
36787#[target_feature(enable = "neon")]
36788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36790#[cfg_attr(
36791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36792    assert_instr(sqrdmulh)
36793)]
36794#[cfg_attr(
36795    not(target_arch = "arm"),
36796    stable(feature = "neon_intrinsics", since = "1.59.0")
36797)]
36798#[cfg_attr(
36799    target_arch = "arm",
36800    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36801)]
36802pub fn vqrdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36803    unsafe extern "unadjusted" {
36804        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i16")]
36805        #[cfg_attr(
36806            any(target_arch = "aarch64", target_arch = "arm64ec"),
36807            link_name = "llvm.aarch64.neon.sqrdmulh.v4i16"
36808        )]
36809        fn _vqrdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
36810    }
36811    unsafe { _vqrdmulh_s16(a, b) }
36812}
36813#[doc = "Signed saturating rounding doubling multiply returning high half"]
36814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s16)"]
36815#[inline(always)]
36816#[target_feature(enable = "neon")]
36817#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36818#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36819#[cfg_attr(
36820    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36821    assert_instr(sqrdmulh)
36822)]
36823#[cfg_attr(
36824    not(target_arch = "arm"),
36825    stable(feature = "neon_intrinsics", since = "1.59.0")
36826)]
36827#[cfg_attr(
36828    target_arch = "arm",
36829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36830)]
36831pub fn vqrdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
36832    unsafe extern "unadjusted" {
36833        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v8i16")]
36834        #[cfg_attr(
36835            any(target_arch = "aarch64", target_arch = "arm64ec"),
36836            link_name = "llvm.aarch64.neon.sqrdmulh.v8i16"
36837        )]
36838        fn _vqrdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
36839    }
36840    unsafe { _vqrdmulhq_s16(a, b) }
36841}
36842#[doc = "Signed saturating rounding doubling multiply returning high half"]
36843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s32)"]
36844#[inline(always)]
36845#[target_feature(enable = "neon")]
36846#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36847#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36848#[cfg_attr(
36849    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36850    assert_instr(sqrdmulh)
36851)]
36852#[cfg_attr(
36853    not(target_arch = "arm"),
36854    stable(feature = "neon_intrinsics", since = "1.59.0")
36855)]
36856#[cfg_attr(
36857    target_arch = "arm",
36858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36859)]
36860pub fn vqrdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
36861    unsafe extern "unadjusted" {
36862        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v2i32")]
36863        #[cfg_attr(
36864            any(target_arch = "aarch64", target_arch = "arm64ec"),
36865            link_name = "llvm.aarch64.neon.sqrdmulh.v2i32"
36866        )]
36867        fn _vqrdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
36868    }
36869    unsafe { _vqrdmulh_s32(a, b) }
36870}
36871#[doc = "Signed saturating rounding doubling multiply returning high half"]
36872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s32)"]
36873#[inline(always)]
36874#[target_feature(enable = "neon")]
36875#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36876#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
36877#[cfg_attr(
36878    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36879    assert_instr(sqrdmulh)
36880)]
36881#[cfg_attr(
36882    not(target_arch = "arm"),
36883    stable(feature = "neon_intrinsics", since = "1.59.0")
36884)]
36885#[cfg_attr(
36886    target_arch = "arm",
36887    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36888)]
36889pub fn vqrdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
36890    unsafe extern "unadjusted" {
36891        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i32")]
36892        #[cfg_attr(
36893            any(target_arch = "aarch64", target_arch = "arm64ec"),
36894            link_name = "llvm.aarch64.neon.sqrdmulh.v4i32"
36895        )]
36896        fn _vqrdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
36897    }
36898    unsafe { _vqrdmulhq_s32(a, b) }
36899}
36900#[doc = "Signed saturating rounding shift left"]
36901#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s8)"]
36902#[inline(always)]
36903#[target_feature(enable = "neon")]
36904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36905#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36906#[cfg_attr(
36907    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36908    assert_instr(sqrshl)
36909)]
36910#[cfg_attr(
36911    not(target_arch = "arm"),
36912    stable(feature = "neon_intrinsics", since = "1.59.0")
36913)]
36914#[cfg_attr(
36915    target_arch = "arm",
36916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36917)]
36918pub fn vqrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
36919    unsafe extern "unadjusted" {
36920        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i8")]
36921        #[cfg_attr(
36922            any(target_arch = "aarch64", target_arch = "arm64ec"),
36923            link_name = "llvm.aarch64.neon.sqrshl.v8i8"
36924        )]
36925        fn _vqrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
36926    }
36927    unsafe { _vqrshl_s8(a, b) }
36928}
36929#[doc = "Signed saturating rounding shift left"]
36930#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s8)"]
36931#[inline(always)]
36932#[target_feature(enable = "neon")]
36933#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36934#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36935#[cfg_attr(
36936    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36937    assert_instr(sqrshl)
36938)]
36939#[cfg_attr(
36940    not(target_arch = "arm"),
36941    stable(feature = "neon_intrinsics", since = "1.59.0")
36942)]
36943#[cfg_attr(
36944    target_arch = "arm",
36945    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36946)]
36947pub fn vqrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
36948    unsafe extern "unadjusted" {
36949        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v16i8")]
36950        #[cfg_attr(
36951            any(target_arch = "aarch64", target_arch = "arm64ec"),
36952            link_name = "llvm.aarch64.neon.sqrshl.v16i8"
36953        )]
36954        fn _vqrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
36955    }
36956    unsafe { _vqrshlq_s8(a, b) }
36957}
36958#[doc = "Signed saturating rounding shift left"]
36959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s16)"]
36960#[inline(always)]
36961#[target_feature(enable = "neon")]
36962#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36963#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36964#[cfg_attr(
36965    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36966    assert_instr(sqrshl)
36967)]
36968#[cfg_attr(
36969    not(target_arch = "arm"),
36970    stable(feature = "neon_intrinsics", since = "1.59.0")
36971)]
36972#[cfg_attr(
36973    target_arch = "arm",
36974    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
36975)]
36976pub fn vqrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
36977    unsafe extern "unadjusted" {
36978        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i16")]
36979        #[cfg_attr(
36980            any(target_arch = "aarch64", target_arch = "arm64ec"),
36981            link_name = "llvm.aarch64.neon.sqrshl.v4i16"
36982        )]
36983        fn _vqrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
36984    }
36985    unsafe { _vqrshl_s16(a, b) }
36986}
36987#[doc = "Signed saturating rounding shift left"]
36988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s16)"]
36989#[inline(always)]
36990#[target_feature(enable = "neon")]
36991#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
36992#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
36993#[cfg_attr(
36994    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
36995    assert_instr(sqrshl)
36996)]
36997#[cfg_attr(
36998    not(target_arch = "arm"),
36999    stable(feature = "neon_intrinsics", since = "1.59.0")
37000)]
37001#[cfg_attr(
37002    target_arch = "arm",
37003    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37004)]
37005pub fn vqrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
37006    unsafe extern "unadjusted" {
37007        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i16")]
37008        #[cfg_attr(
37009            any(target_arch = "aarch64", target_arch = "arm64ec"),
37010            link_name = "llvm.aarch64.neon.sqrshl.v8i16"
37011        )]
37012        fn _vqrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
37013    }
37014    unsafe { _vqrshlq_s16(a, b) }
37015}
37016#[doc = "Signed saturating rounding shift left"]
37017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s32)"]
37018#[inline(always)]
37019#[target_feature(enable = "neon")]
37020#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37022#[cfg_attr(
37023    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37024    assert_instr(sqrshl)
37025)]
37026#[cfg_attr(
37027    not(target_arch = "arm"),
37028    stable(feature = "neon_intrinsics", since = "1.59.0")
37029)]
37030#[cfg_attr(
37031    target_arch = "arm",
37032    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37033)]
37034pub fn vqrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
37035    unsafe extern "unadjusted" {
37036        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i32")]
37037        #[cfg_attr(
37038            any(target_arch = "aarch64", target_arch = "arm64ec"),
37039            link_name = "llvm.aarch64.neon.sqrshl.v2i32"
37040        )]
37041        fn _vqrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
37042    }
37043    unsafe { _vqrshl_s32(a, b) }
37044}
37045#[doc = "Signed saturating rounding shift left"]
37046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s32)"]
37047#[inline(always)]
37048#[target_feature(enable = "neon")]
37049#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37050#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37051#[cfg_attr(
37052    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37053    assert_instr(sqrshl)
37054)]
37055#[cfg_attr(
37056    not(target_arch = "arm"),
37057    stable(feature = "neon_intrinsics", since = "1.59.0")
37058)]
37059#[cfg_attr(
37060    target_arch = "arm",
37061    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37062)]
37063pub fn vqrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
37064    unsafe extern "unadjusted" {
37065        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i32")]
37066        #[cfg_attr(
37067            any(target_arch = "aarch64", target_arch = "arm64ec"),
37068            link_name = "llvm.aarch64.neon.sqrshl.v4i32"
37069        )]
37070        fn _vqrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
37071    }
37072    unsafe { _vqrshlq_s32(a, b) }
37073}
37074#[doc = "Signed saturating rounding shift left"]
37075#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s64)"]
37076#[inline(always)]
37077#[target_feature(enable = "neon")]
37078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37080#[cfg_attr(
37081    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37082    assert_instr(sqrshl)
37083)]
37084#[cfg_attr(
37085    not(target_arch = "arm"),
37086    stable(feature = "neon_intrinsics", since = "1.59.0")
37087)]
37088#[cfg_attr(
37089    target_arch = "arm",
37090    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37091)]
37092pub fn vqrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
37093    unsafe extern "unadjusted" {
37094        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v1i64")]
37095        #[cfg_attr(
37096            any(target_arch = "aarch64", target_arch = "arm64ec"),
37097            link_name = "llvm.aarch64.neon.sqrshl.v1i64"
37098        )]
37099        fn _vqrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
37100    }
37101    unsafe { _vqrshl_s64(a, b) }
37102}
37103#[doc = "Signed saturating rounding shift left"]
37104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s64)"]
37105#[inline(always)]
37106#[target_feature(enable = "neon")]
37107#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37108#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37109#[cfg_attr(
37110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37111    assert_instr(sqrshl)
37112)]
37113#[cfg_attr(
37114    not(target_arch = "arm"),
37115    stable(feature = "neon_intrinsics", since = "1.59.0")
37116)]
37117#[cfg_attr(
37118    target_arch = "arm",
37119    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37120)]
37121pub fn vqrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
37122    unsafe extern "unadjusted" {
37123        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i64")]
37124        #[cfg_attr(
37125            any(target_arch = "aarch64", target_arch = "arm64ec"),
37126            link_name = "llvm.aarch64.neon.sqrshl.v2i64"
37127        )]
37128        fn _vqrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
37129    }
37130    unsafe { _vqrshlq_s64(a, b) }
37131}
37132#[doc = "Unsigned signed saturating rounding shift left"]
37133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u8)"]
37134#[inline(always)]
37135#[target_feature(enable = "neon")]
37136#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37137#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37138#[cfg_attr(
37139    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37140    assert_instr(uqrshl)
37141)]
37142#[cfg_attr(
37143    not(target_arch = "arm"),
37144    stable(feature = "neon_intrinsics", since = "1.59.0")
37145)]
37146#[cfg_attr(
37147    target_arch = "arm",
37148    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37149)]
37150pub fn vqrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
37151    unsafe extern "unadjusted" {
37152        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i8")]
37153        #[cfg_attr(
37154            any(target_arch = "aarch64", target_arch = "arm64ec"),
37155            link_name = "llvm.aarch64.neon.uqrshl.v8i8"
37156        )]
37157        fn _vqrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
37158    }
37159    unsafe { _vqrshl_u8(a, b) }
37160}
37161#[doc = "Unsigned signed saturating rounding shift left"]
37162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u8)"]
37163#[inline(always)]
37164#[target_feature(enable = "neon")]
37165#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37166#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37167#[cfg_attr(
37168    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37169    assert_instr(uqrshl)
37170)]
37171#[cfg_attr(
37172    not(target_arch = "arm"),
37173    stable(feature = "neon_intrinsics", since = "1.59.0")
37174)]
37175#[cfg_attr(
37176    target_arch = "arm",
37177    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37178)]
37179pub fn vqrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
37180    unsafe extern "unadjusted" {
37181        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v16i8")]
37182        #[cfg_attr(
37183            any(target_arch = "aarch64", target_arch = "arm64ec"),
37184            link_name = "llvm.aarch64.neon.uqrshl.v16i8"
37185        )]
37186        fn _vqrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
37187    }
37188    unsafe { _vqrshlq_u8(a, b) }
37189}
37190#[doc = "Unsigned signed saturating rounding shift left"]
37191#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u16)"]
37192#[inline(always)]
37193#[target_feature(enable = "neon")]
37194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37196#[cfg_attr(
37197    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37198    assert_instr(uqrshl)
37199)]
37200#[cfg_attr(
37201    not(target_arch = "arm"),
37202    stable(feature = "neon_intrinsics", since = "1.59.0")
37203)]
37204#[cfg_attr(
37205    target_arch = "arm",
37206    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37207)]
37208pub fn vqrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
37209    unsafe extern "unadjusted" {
37210        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i16")]
37211        #[cfg_attr(
37212            any(target_arch = "aarch64", target_arch = "arm64ec"),
37213            link_name = "llvm.aarch64.neon.uqrshl.v4i16"
37214        )]
37215        fn _vqrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
37216    }
37217    unsafe { _vqrshl_u16(a, b) }
37218}
37219#[doc = "Unsigned signed saturating rounding shift left"]
37220#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u16)"]
37221#[inline(always)]
37222#[target_feature(enable = "neon")]
37223#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37224#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37225#[cfg_attr(
37226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37227    assert_instr(uqrshl)
37228)]
37229#[cfg_attr(
37230    not(target_arch = "arm"),
37231    stable(feature = "neon_intrinsics", since = "1.59.0")
37232)]
37233#[cfg_attr(
37234    target_arch = "arm",
37235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37236)]
37237pub fn vqrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
37238    unsafe extern "unadjusted" {
37239        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i16")]
37240        #[cfg_attr(
37241            any(target_arch = "aarch64", target_arch = "arm64ec"),
37242            link_name = "llvm.aarch64.neon.uqrshl.v8i16"
37243        )]
37244        fn _vqrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
37245    }
37246    unsafe { _vqrshlq_u16(a, b) }
37247}
37248#[doc = "Unsigned signed saturating rounding shift left"]
37249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u32)"]
37250#[inline(always)]
37251#[target_feature(enable = "neon")]
37252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37253#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37254#[cfg_attr(
37255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37256    assert_instr(uqrshl)
37257)]
37258#[cfg_attr(
37259    not(target_arch = "arm"),
37260    stable(feature = "neon_intrinsics", since = "1.59.0")
37261)]
37262#[cfg_attr(
37263    target_arch = "arm",
37264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37265)]
37266pub fn vqrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
37267    unsafe extern "unadjusted" {
37268        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i32")]
37269        #[cfg_attr(
37270            any(target_arch = "aarch64", target_arch = "arm64ec"),
37271            link_name = "llvm.aarch64.neon.uqrshl.v2i32"
37272        )]
37273        fn _vqrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
37274    }
37275    unsafe { _vqrshl_u32(a, b) }
37276}
37277#[doc = "Unsigned signed saturating rounding shift left"]
37278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u32)"]
37279#[inline(always)]
37280#[target_feature(enable = "neon")]
37281#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37282#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37283#[cfg_attr(
37284    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37285    assert_instr(uqrshl)
37286)]
37287#[cfg_attr(
37288    not(target_arch = "arm"),
37289    stable(feature = "neon_intrinsics", since = "1.59.0")
37290)]
37291#[cfg_attr(
37292    target_arch = "arm",
37293    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37294)]
37295pub fn vqrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
37296    unsafe extern "unadjusted" {
37297        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i32")]
37298        #[cfg_attr(
37299            any(target_arch = "aarch64", target_arch = "arm64ec"),
37300            link_name = "llvm.aarch64.neon.uqrshl.v4i32"
37301        )]
37302        fn _vqrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
37303    }
37304    unsafe { _vqrshlq_u32(a, b) }
37305}
37306#[doc = "Unsigned signed saturating rounding shift left"]
37307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u64)"]
37308#[inline(always)]
37309#[target_feature(enable = "neon")]
37310#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37311#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37312#[cfg_attr(
37313    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37314    assert_instr(uqrshl)
37315)]
37316#[cfg_attr(
37317    not(target_arch = "arm"),
37318    stable(feature = "neon_intrinsics", since = "1.59.0")
37319)]
37320#[cfg_attr(
37321    target_arch = "arm",
37322    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37323)]
37324pub fn vqrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
37325    unsafe extern "unadjusted" {
37326        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v1i64")]
37327        #[cfg_attr(
37328            any(target_arch = "aarch64", target_arch = "arm64ec"),
37329            link_name = "llvm.aarch64.neon.uqrshl.v1i64"
37330        )]
37331        fn _vqrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
37332    }
37333    unsafe { _vqrshl_u64(a, b) }
37334}
37335#[doc = "Unsigned signed saturating rounding shift left"]
37336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u64)"]
37337#[inline(always)]
37338#[target_feature(enable = "neon")]
37339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37340#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
37341#[cfg_attr(
37342    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37343    assert_instr(uqrshl)
37344)]
37345#[cfg_attr(
37346    not(target_arch = "arm"),
37347    stable(feature = "neon_intrinsics", since = "1.59.0")
37348)]
37349#[cfg_attr(
37350    target_arch = "arm",
37351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37352)]
37353pub fn vqrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
37354    unsafe extern "unadjusted" {
37355        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i64")]
37356        #[cfg_attr(
37357            any(target_arch = "aarch64", target_arch = "arm64ec"),
37358            link_name = "llvm.aarch64.neon.uqrshl.v2i64"
37359        )]
37360        fn _vqrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
37361    }
37362    unsafe { _vqrshlq_u64(a, b) }
37363}
37364#[doc = "Signed saturating rounded shift right narrow"]
37365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"]
37366#[inline(always)]
37367#[cfg(target_arch = "arm")]
37368#[target_feature(enable = "neon,v7")]
37369#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37370#[rustc_legacy_const_generics(1)]
37371#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37372pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
37373    static_assert!(N >= 1 && N <= 8);
37374    unsafe extern "unadjusted" {
37375        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v8i8")]
37376        fn _vqrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
37377    }
37378    unsafe { _vqrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
37379}
37380#[doc = "Signed saturating rounded shift right narrow"]
37381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"]
37382#[inline(always)]
37383#[cfg(target_arch = "arm")]
37384#[target_feature(enable = "neon,v7")]
37385#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37386#[rustc_legacy_const_generics(1)]
37387#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37388pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
37389    static_assert!(N >= 1 && N <= 16);
37390    unsafe extern "unadjusted" {
37391        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v4i16")]
37392        fn _vqrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
37393    }
37394    unsafe { _vqrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
37395}
37396#[doc = "Signed saturating rounded shift right narrow"]
37397#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"]
37398#[inline(always)]
37399#[cfg(target_arch = "arm")]
37400#[target_feature(enable = "neon,v7")]
37401#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37402#[rustc_legacy_const_generics(1)]
37403#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37404pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
37405    static_assert!(N >= 1 && N <= 32);
37406    unsafe extern "unadjusted" {
37407        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v2i32")]
37408        fn _vqrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
37409    }
37410    unsafe { _vqrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
37411}
37412#[doc = "Signed saturating rounded shift right narrow"]
37413#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)"]
37414#[inline(always)]
37415#[target_feature(enable = "neon")]
37416#[cfg(not(target_arch = "arm"))]
37417#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
37418#[rustc_legacy_const_generics(1)]
37419#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37420pub fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
37421    static_assert!(N >= 1 && N <= 8);
37422    unsafe extern "unadjusted" {
37423        #[cfg_attr(
37424            any(target_arch = "aarch64", target_arch = "arm64ec"),
37425            link_name = "llvm.aarch64.neon.sqrshrn.v8i8"
37426        )]
37427        fn _vqrshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
37428    }
37429    unsafe { _vqrshrn_n_s16(a, N) }
37430}
37431#[doc = "Signed saturating rounded shift right narrow"]
37432#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)"]
37433#[inline(always)]
37434#[target_feature(enable = "neon")]
37435#[cfg(not(target_arch = "arm"))]
37436#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
37437#[rustc_legacy_const_generics(1)]
37438#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37439pub fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
37440    static_assert!(N >= 1 && N <= 16);
37441    unsafe extern "unadjusted" {
37442        #[cfg_attr(
37443            any(target_arch = "aarch64", target_arch = "arm64ec"),
37444            link_name = "llvm.aarch64.neon.sqrshrn.v4i16"
37445        )]
37446        fn _vqrshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
37447    }
37448    unsafe { _vqrshrn_n_s32(a, N) }
37449}
37450#[doc = "Signed saturating rounded shift right narrow"]
37451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)"]
37452#[inline(always)]
37453#[target_feature(enable = "neon")]
37454#[cfg(not(target_arch = "arm"))]
37455#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
37456#[rustc_legacy_const_generics(1)]
37457#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37458pub fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
37459    static_assert!(N >= 1 && N <= 32);
37460    unsafe extern "unadjusted" {
37461        #[cfg_attr(
37462            any(target_arch = "aarch64", target_arch = "arm64ec"),
37463            link_name = "llvm.aarch64.neon.sqrshrn.v2i32"
37464        )]
37465        fn _vqrshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
37466    }
37467    unsafe { _vqrshrn_n_s64(a, N) }
37468}
37469#[doc = "Unsigned signed saturating rounded shift right narrow"]
37470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)"]
37471#[inline(always)]
37472#[cfg(target_arch = "arm")]
37473#[target_feature(enable = "neon,v7")]
37474#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37475#[rustc_legacy_const_generics(1)]
37476#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37477pub fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
37478    static_assert!(N >= 1 && N <= 8);
37479    unsafe extern "unadjusted" {
37480        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v8i8")]
37481        fn _vqrshrn_n_u16(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
37482    }
37483    unsafe {
37484        _vqrshrn_n_u16(
37485            a,
37486            const {
37487                uint16x8_t([
37488                    -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16,
37489                    -N as u16,
37490                ])
37491            },
37492        )
37493    }
37494}
37495#[doc = "Unsigned signed saturating rounded shift right narrow"]
37496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)"]
37497#[inline(always)]
37498#[cfg(target_arch = "arm")]
37499#[target_feature(enable = "neon,v7")]
37500#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37501#[rustc_legacy_const_generics(1)]
37502#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37503pub fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
37504    static_assert!(N >= 1 && N <= 16);
37505    unsafe extern "unadjusted" {
37506        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v4i16")]
37507        fn _vqrshrn_n_u32(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
37508    }
37509    unsafe {
37510        _vqrshrn_n_u32(
37511            a,
37512            const { uint32x4_t([-N as u32, -N as u32, -N as u32, -N as u32]) },
37513        )
37514    }
37515}
37516#[doc = "Unsigned signed saturating rounded shift right narrow"]
37517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)"]
37518#[inline(always)]
37519#[cfg(target_arch = "arm")]
37520#[target_feature(enable = "neon,v7")]
37521#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
37522#[rustc_legacy_const_generics(1)]
37523#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37524pub fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
37525    static_assert!(N >= 1 && N <= 32);
37526    unsafe extern "unadjusted" {
37527        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v2i32")]
37528        fn _vqrshrn_n_u64(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
37529    }
37530    unsafe { _vqrshrn_n_u64(a, const { uint64x2_t([-N as u64, -N as u64]) }) }
37531}
37532#[doc = "Unsigned signed saturating rounded shift right narrow"]
37533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)"]
37534#[inline(always)]
37535#[target_feature(enable = "neon")]
37536#[cfg(not(target_arch = "arm"))]
37537#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
37538#[rustc_legacy_const_generics(1)]
37539#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37540pub fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
37541    static_assert!(N >= 1 && N <= 8);
37542    unsafe extern "unadjusted" {
37543        #[cfg_attr(
37544            any(target_arch = "aarch64", target_arch = "arm64ec"),
37545            link_name = "llvm.aarch64.neon.uqrshrn.v8i8"
37546        )]
37547        fn _vqrshrn_n_u16(a: uint16x8_t, n: i32) -> uint8x8_t;
37548    }
37549    unsafe { _vqrshrn_n_u16(a, N) }
37550}
37551#[doc = "Unsigned signed saturating rounded shift right narrow"]
37552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)"]
37553#[inline(always)]
37554#[target_feature(enable = "neon")]
37555#[cfg(not(target_arch = "arm"))]
37556#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
37557#[rustc_legacy_const_generics(1)]
37558#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37559pub fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
37560    static_assert!(N >= 1 && N <= 16);
37561    unsafe extern "unadjusted" {
37562        #[cfg_attr(
37563            any(target_arch = "aarch64", target_arch = "arm64ec"),
37564            link_name = "llvm.aarch64.neon.uqrshrn.v4i16"
37565        )]
37566        fn _vqrshrn_n_u32(a: uint32x4_t, n: i32) -> uint16x4_t;
37567    }
37568    unsafe { _vqrshrn_n_u32(a, N) }
37569}
37570#[doc = "Unsigned signed saturating rounded shift right narrow"]
37571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)"]
37572#[inline(always)]
37573#[target_feature(enable = "neon")]
37574#[cfg(not(target_arch = "arm"))]
37575#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
37576#[rustc_legacy_const_generics(1)]
37577#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37578pub fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
37579    static_assert!(N >= 1 && N <= 32);
37580    unsafe extern "unadjusted" {
37581        #[cfg_attr(
37582            any(target_arch = "aarch64", target_arch = "arm64ec"),
37583            link_name = "llvm.aarch64.neon.uqrshrn.v2i32"
37584        )]
37585        fn _vqrshrn_n_u64(a: uint64x2_t, n: i32) -> uint32x2_t;
37586    }
37587    unsafe { _vqrshrn_n_u64(a, N) }
37588}
37589#[doc = "Signed saturating rounded shift right unsigned narrow"]
37590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"]
37591#[inline(always)]
37592#[cfg(target_arch = "arm")]
37593#[target_feature(enable = "neon,v7")]
37594#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
37595#[rustc_legacy_const_generics(1)]
37596#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37597pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
37598    static_assert!(N >= 1 && N <= 8);
37599    unsafe extern "unadjusted" {
37600        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v8i8")]
37601        fn _vqrshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
37602    }
37603    unsafe { _vqrshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
37604}
37605#[doc = "Signed saturating rounded shift right unsigned narrow"]
37606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"]
37607#[inline(always)]
37608#[cfg(target_arch = "arm")]
37609#[target_feature(enable = "neon,v7")]
37610#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
37611#[rustc_legacy_const_generics(1)]
37612#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37613pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
37614    static_assert!(N >= 1 && N <= 16);
37615    unsafe extern "unadjusted" {
37616        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v4i16")]
37617        fn _vqrshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
37618    }
37619    unsafe { _vqrshrun_n_s32(a, const { int32x4_t([-N; 4]) }) }
37620}
37621#[doc = "Signed saturating rounded shift right unsigned narrow"]
37622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"]
37623#[inline(always)]
37624#[cfg(target_arch = "arm")]
37625#[target_feature(enable = "neon,v7")]
37626#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
37627#[rustc_legacy_const_generics(1)]
37628#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
37629pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
37630    static_assert!(N >= 1 && N <= 32);
37631    unsafe extern "unadjusted" {
37632        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v2i32")]
37633        fn _vqrshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
37634    }
37635    unsafe { _vqrshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
37636}
37637#[doc = "Signed saturating rounded shift right unsigned narrow"]
37638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)"]
37639#[inline(always)]
37640#[target_feature(enable = "neon")]
37641#[cfg(not(target_arch = "arm"))]
37642#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
37643#[rustc_legacy_const_generics(1)]
37644#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37645pub fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
37646    static_assert!(N >= 1 && N <= 8);
37647    unsafe extern "unadjusted" {
37648        #[cfg_attr(
37649            any(target_arch = "aarch64", target_arch = "arm64ec"),
37650            link_name = "llvm.aarch64.neon.sqrshrun.v8i8"
37651        )]
37652        fn _vqrshrun_n_s16(a: int16x8_t, n: i32) -> uint8x8_t;
37653    }
37654    unsafe { _vqrshrun_n_s16(a, N) }
37655}
37656#[doc = "Signed saturating rounded shift right unsigned narrow"]
37657#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)"]
37658#[inline(always)]
37659#[target_feature(enable = "neon")]
37660#[cfg(not(target_arch = "arm"))]
37661#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
37662#[rustc_legacy_const_generics(1)]
37663#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37664pub fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
37665    static_assert!(N >= 1 && N <= 16);
37666    unsafe extern "unadjusted" {
37667        #[cfg_attr(
37668            any(target_arch = "aarch64", target_arch = "arm64ec"),
37669            link_name = "llvm.aarch64.neon.sqrshrun.v4i16"
37670        )]
37671        fn _vqrshrun_n_s32(a: int32x4_t, n: i32) -> uint16x4_t;
37672    }
37673    unsafe { _vqrshrun_n_s32(a, N) }
37674}
37675#[doc = "Signed saturating rounded shift right unsigned narrow"]
37676#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)"]
37677#[inline(always)]
37678#[target_feature(enable = "neon")]
37679#[cfg(not(target_arch = "arm"))]
37680#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
37681#[rustc_legacy_const_generics(1)]
37682#[stable(feature = "neon_intrinsics", since = "1.59.0")]
37683pub fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
37684    static_assert!(N >= 1 && N <= 32);
37685    unsafe extern "unadjusted" {
37686        #[cfg_attr(
37687            any(target_arch = "aarch64", target_arch = "arm64ec"),
37688            link_name = "llvm.aarch64.neon.sqrshrun.v2i32"
37689        )]
37690        fn _vqrshrun_n_s64(a: int64x2_t, n: i32) -> uint32x2_t;
37691    }
37692    unsafe { _vqrshrun_n_s64(a, N) }
37693}
37694#[doc = "Signed saturating shift left"]
37695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s8)"]
37696#[inline(always)]
37697#[target_feature(enable = "neon")]
37698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37700#[cfg_attr(
37701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37702    assert_instr(sqshl, N = 2)
37703)]
37704#[rustc_legacy_const_generics(1)]
37705#[cfg_attr(
37706    not(target_arch = "arm"),
37707    stable(feature = "neon_intrinsics", since = "1.59.0")
37708)]
37709#[cfg_attr(
37710    target_arch = "arm",
37711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37712)]
37713pub fn vqshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
37714    static_assert_uimm_bits!(N, 3);
37715    vqshl_s8(a, vdup_n_s8(N as _))
37716}
37717#[doc = "Signed saturating shift left"]
37718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s8)"]
37719#[inline(always)]
37720#[target_feature(enable = "neon")]
37721#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37722#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37723#[cfg_attr(
37724    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37725    assert_instr(sqshl, N = 2)
37726)]
37727#[rustc_legacy_const_generics(1)]
37728#[cfg_attr(
37729    not(target_arch = "arm"),
37730    stable(feature = "neon_intrinsics", since = "1.59.0")
37731)]
37732#[cfg_attr(
37733    target_arch = "arm",
37734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37735)]
37736pub fn vqshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
37737    static_assert_uimm_bits!(N, 3);
37738    vqshlq_s8(a, vdupq_n_s8(N as _))
37739}
37740#[doc = "Signed saturating shift left"]
37741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s16)"]
37742#[inline(always)]
37743#[target_feature(enable = "neon")]
37744#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37745#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37746#[cfg_attr(
37747    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37748    assert_instr(sqshl, N = 2)
37749)]
37750#[rustc_legacy_const_generics(1)]
37751#[cfg_attr(
37752    not(target_arch = "arm"),
37753    stable(feature = "neon_intrinsics", since = "1.59.0")
37754)]
37755#[cfg_attr(
37756    target_arch = "arm",
37757    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37758)]
37759pub fn vqshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
37760    static_assert_uimm_bits!(N, 4);
37761    vqshl_s16(a, vdup_n_s16(N as _))
37762}
37763#[doc = "Signed saturating shift left"]
37764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s16)"]
37765#[inline(always)]
37766#[target_feature(enable = "neon")]
37767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37768#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37769#[cfg_attr(
37770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37771    assert_instr(sqshl, N = 2)
37772)]
37773#[rustc_legacy_const_generics(1)]
37774#[cfg_attr(
37775    not(target_arch = "arm"),
37776    stable(feature = "neon_intrinsics", since = "1.59.0")
37777)]
37778#[cfg_attr(
37779    target_arch = "arm",
37780    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37781)]
37782pub fn vqshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
37783    static_assert_uimm_bits!(N, 4);
37784    vqshlq_s16(a, vdupq_n_s16(N as _))
37785}
37786#[doc = "Signed saturating shift left"]
37787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s32)"]
37788#[inline(always)]
37789#[target_feature(enable = "neon")]
37790#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37791#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37792#[cfg_attr(
37793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37794    assert_instr(sqshl, N = 2)
37795)]
37796#[rustc_legacy_const_generics(1)]
37797#[cfg_attr(
37798    not(target_arch = "arm"),
37799    stable(feature = "neon_intrinsics", since = "1.59.0")
37800)]
37801#[cfg_attr(
37802    target_arch = "arm",
37803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37804)]
37805pub fn vqshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
37806    static_assert_uimm_bits!(N, 5);
37807    vqshl_s32(a, vdup_n_s32(N as _))
37808}
37809#[doc = "Signed saturating shift left"]
37810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s32)"]
37811#[inline(always)]
37812#[target_feature(enable = "neon")]
37813#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37814#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37815#[cfg_attr(
37816    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37817    assert_instr(sqshl, N = 2)
37818)]
37819#[rustc_legacy_const_generics(1)]
37820#[cfg_attr(
37821    not(target_arch = "arm"),
37822    stable(feature = "neon_intrinsics", since = "1.59.0")
37823)]
37824#[cfg_attr(
37825    target_arch = "arm",
37826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37827)]
37828pub fn vqshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
37829    static_assert_uimm_bits!(N, 5);
37830    vqshlq_s32(a, vdupq_n_s32(N as _))
37831}
37832#[doc = "Signed saturating shift left"]
37833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s64)"]
37834#[inline(always)]
37835#[target_feature(enable = "neon")]
37836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37837#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37838#[cfg_attr(
37839    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37840    assert_instr(sqshl, N = 2)
37841)]
37842#[rustc_legacy_const_generics(1)]
37843#[cfg_attr(
37844    not(target_arch = "arm"),
37845    stable(feature = "neon_intrinsics", since = "1.59.0")
37846)]
37847#[cfg_attr(
37848    target_arch = "arm",
37849    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37850)]
37851pub fn vqshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
37852    static_assert_uimm_bits!(N, 6);
37853    vqshl_s64(a, vdup_n_s64(N as _))
37854}
37855#[doc = "Signed saturating shift left"]
37856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s64)"]
37857#[inline(always)]
37858#[target_feature(enable = "neon")]
37859#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37860#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37861#[cfg_attr(
37862    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37863    assert_instr(sqshl, N = 2)
37864)]
37865#[rustc_legacy_const_generics(1)]
37866#[cfg_attr(
37867    not(target_arch = "arm"),
37868    stable(feature = "neon_intrinsics", since = "1.59.0")
37869)]
37870#[cfg_attr(
37871    target_arch = "arm",
37872    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37873)]
37874pub fn vqshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
37875    static_assert_uimm_bits!(N, 6);
37876    vqshlq_s64(a, vdupq_n_s64(N as _))
37877}
37878#[doc = "Unsigned saturating shift left"]
37879#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u8)"]
37880#[inline(always)]
37881#[target_feature(enable = "neon")]
37882#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37884#[cfg_attr(
37885    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37886    assert_instr(uqshl, N = 2)
37887)]
37888#[rustc_legacy_const_generics(1)]
37889#[cfg_attr(
37890    not(target_arch = "arm"),
37891    stable(feature = "neon_intrinsics", since = "1.59.0")
37892)]
37893#[cfg_attr(
37894    target_arch = "arm",
37895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37896)]
37897pub fn vqshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
37898    static_assert_uimm_bits!(N, 3);
37899    vqshl_u8(a, vdup_n_s8(N as _))
37900}
37901#[doc = "Unsigned saturating shift left"]
37902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u8)"]
37903#[inline(always)]
37904#[target_feature(enable = "neon")]
37905#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37906#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37907#[cfg_attr(
37908    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37909    assert_instr(uqshl, N = 2)
37910)]
37911#[rustc_legacy_const_generics(1)]
37912#[cfg_attr(
37913    not(target_arch = "arm"),
37914    stable(feature = "neon_intrinsics", since = "1.59.0")
37915)]
37916#[cfg_attr(
37917    target_arch = "arm",
37918    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37919)]
37920pub fn vqshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
37921    static_assert_uimm_bits!(N, 3);
37922    vqshlq_u8(a, vdupq_n_s8(N as _))
37923}
37924#[doc = "Unsigned saturating shift left"]
37925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u16)"]
37926#[inline(always)]
37927#[target_feature(enable = "neon")]
37928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37929#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37930#[cfg_attr(
37931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37932    assert_instr(uqshl, N = 2)
37933)]
37934#[rustc_legacy_const_generics(1)]
37935#[cfg_attr(
37936    not(target_arch = "arm"),
37937    stable(feature = "neon_intrinsics", since = "1.59.0")
37938)]
37939#[cfg_attr(
37940    target_arch = "arm",
37941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37942)]
37943pub fn vqshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
37944    static_assert_uimm_bits!(N, 4);
37945    vqshl_u16(a, vdup_n_s16(N as _))
37946}
37947#[doc = "Unsigned saturating shift left"]
37948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u16)"]
37949#[inline(always)]
37950#[target_feature(enable = "neon")]
37951#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37952#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37953#[cfg_attr(
37954    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37955    assert_instr(uqshl, N = 2)
37956)]
37957#[rustc_legacy_const_generics(1)]
37958#[cfg_attr(
37959    not(target_arch = "arm"),
37960    stable(feature = "neon_intrinsics", since = "1.59.0")
37961)]
37962#[cfg_attr(
37963    target_arch = "arm",
37964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37965)]
37966pub fn vqshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
37967    static_assert_uimm_bits!(N, 4);
37968    vqshlq_u16(a, vdupq_n_s16(N as _))
37969}
37970#[doc = "Unsigned saturating shift left"]
37971#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u32)"]
37972#[inline(always)]
37973#[target_feature(enable = "neon")]
37974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37975#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37976#[cfg_attr(
37977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
37978    assert_instr(uqshl, N = 2)
37979)]
37980#[rustc_legacy_const_generics(1)]
37981#[cfg_attr(
37982    not(target_arch = "arm"),
37983    stable(feature = "neon_intrinsics", since = "1.59.0")
37984)]
37985#[cfg_attr(
37986    target_arch = "arm",
37987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
37988)]
37989pub fn vqshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
37990    static_assert_uimm_bits!(N, 5);
37991    vqshl_u32(a, vdup_n_s32(N as _))
37992}
37993#[doc = "Unsigned saturating shift left"]
37994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u32)"]
37995#[inline(always)]
37996#[target_feature(enable = "neon")]
37997#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
37998#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
37999#[cfg_attr(
38000    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38001    assert_instr(uqshl, N = 2)
38002)]
38003#[rustc_legacy_const_generics(1)]
38004#[cfg_attr(
38005    not(target_arch = "arm"),
38006    stable(feature = "neon_intrinsics", since = "1.59.0")
38007)]
38008#[cfg_attr(
38009    target_arch = "arm",
38010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38011)]
38012pub fn vqshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
38013    static_assert_uimm_bits!(N, 5);
38014    vqshlq_u32(a, vdupq_n_s32(N as _))
38015}
38016#[doc = "Unsigned saturating shift left"]
38017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u64)"]
38018#[inline(always)]
38019#[target_feature(enable = "neon")]
38020#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
38022#[cfg_attr(
38023    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38024    assert_instr(uqshl, N = 2)
38025)]
38026#[rustc_legacy_const_generics(1)]
38027#[cfg_attr(
38028    not(target_arch = "arm"),
38029    stable(feature = "neon_intrinsics", since = "1.59.0")
38030)]
38031#[cfg_attr(
38032    target_arch = "arm",
38033    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38034)]
38035pub fn vqshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
38036    static_assert_uimm_bits!(N, 6);
38037    vqshl_u64(a, vdup_n_s64(N as _))
38038}
38039#[doc = "Unsigned saturating shift left"]
38040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u64)"]
38041#[inline(always)]
38042#[target_feature(enable = "neon")]
38043#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38044#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
38045#[cfg_attr(
38046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38047    assert_instr(uqshl, N = 2)
38048)]
38049#[rustc_legacy_const_generics(1)]
38050#[cfg_attr(
38051    not(target_arch = "arm"),
38052    stable(feature = "neon_intrinsics", since = "1.59.0")
38053)]
38054#[cfg_attr(
38055    target_arch = "arm",
38056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38057)]
38058pub fn vqshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
38059    static_assert_uimm_bits!(N, 6);
38060    vqshlq_u64(a, vdupq_n_s64(N as _))
38061}
38062#[doc = "Signed saturating shift left"]
38063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s8)"]
38064#[inline(always)]
38065#[target_feature(enable = "neon")]
38066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38068#[cfg_attr(
38069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38070    assert_instr(sqshl)
38071)]
38072#[cfg_attr(
38073    not(target_arch = "arm"),
38074    stable(feature = "neon_intrinsics", since = "1.59.0")
38075)]
38076#[cfg_attr(
38077    target_arch = "arm",
38078    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38079)]
38080pub fn vqshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
38081    unsafe extern "unadjusted" {
38082        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i8")]
38083        #[cfg_attr(
38084            any(target_arch = "aarch64", target_arch = "arm64ec"),
38085            link_name = "llvm.aarch64.neon.sqshl.v8i8"
38086        )]
38087        fn _vqshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
38088    }
38089    unsafe { _vqshl_s8(a, b) }
38090}
38091#[doc = "Signed saturating shift left"]
38092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s8)"]
38093#[inline(always)]
38094#[target_feature(enable = "neon")]
38095#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38096#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38097#[cfg_attr(
38098    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38099    assert_instr(sqshl)
38100)]
38101#[cfg_attr(
38102    not(target_arch = "arm"),
38103    stable(feature = "neon_intrinsics", since = "1.59.0")
38104)]
38105#[cfg_attr(
38106    target_arch = "arm",
38107    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38108)]
38109pub fn vqshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
38110    unsafe extern "unadjusted" {
38111        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v16i8")]
38112        #[cfg_attr(
38113            any(target_arch = "aarch64", target_arch = "arm64ec"),
38114            link_name = "llvm.aarch64.neon.sqshl.v16i8"
38115        )]
38116        fn _vqshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
38117    }
38118    unsafe { _vqshlq_s8(a, b) }
38119}
38120#[doc = "Signed saturating shift left"]
38121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s16)"]
38122#[inline(always)]
38123#[target_feature(enable = "neon")]
38124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38125#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38126#[cfg_attr(
38127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38128    assert_instr(sqshl)
38129)]
38130#[cfg_attr(
38131    not(target_arch = "arm"),
38132    stable(feature = "neon_intrinsics", since = "1.59.0")
38133)]
38134#[cfg_attr(
38135    target_arch = "arm",
38136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38137)]
38138pub fn vqshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
38139    unsafe extern "unadjusted" {
38140        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i16")]
38141        #[cfg_attr(
38142            any(target_arch = "aarch64", target_arch = "arm64ec"),
38143            link_name = "llvm.aarch64.neon.sqshl.v4i16"
38144        )]
38145        fn _vqshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
38146    }
38147    unsafe { _vqshl_s16(a, b) }
38148}
38149#[doc = "Signed saturating shift left"]
38150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s16)"]
38151#[inline(always)]
38152#[target_feature(enable = "neon")]
38153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38154#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38155#[cfg_attr(
38156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38157    assert_instr(sqshl)
38158)]
38159#[cfg_attr(
38160    not(target_arch = "arm"),
38161    stable(feature = "neon_intrinsics", since = "1.59.0")
38162)]
38163#[cfg_attr(
38164    target_arch = "arm",
38165    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38166)]
38167pub fn vqshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
38168    unsafe extern "unadjusted" {
38169        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i16")]
38170        #[cfg_attr(
38171            any(target_arch = "aarch64", target_arch = "arm64ec"),
38172            link_name = "llvm.aarch64.neon.sqshl.v8i16"
38173        )]
38174        fn _vqshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
38175    }
38176    unsafe { _vqshlq_s16(a, b) }
38177}
38178#[doc = "Signed saturating shift left"]
38179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s32)"]
38180#[inline(always)]
38181#[target_feature(enable = "neon")]
38182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38184#[cfg_attr(
38185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38186    assert_instr(sqshl)
38187)]
38188#[cfg_attr(
38189    not(target_arch = "arm"),
38190    stable(feature = "neon_intrinsics", since = "1.59.0")
38191)]
38192#[cfg_attr(
38193    target_arch = "arm",
38194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38195)]
38196pub fn vqshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
38197    unsafe extern "unadjusted" {
38198        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i32")]
38199        #[cfg_attr(
38200            any(target_arch = "aarch64", target_arch = "arm64ec"),
38201            link_name = "llvm.aarch64.neon.sqshl.v2i32"
38202        )]
38203        fn _vqshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
38204    }
38205    unsafe { _vqshl_s32(a, b) }
38206}
38207#[doc = "Signed saturating shift left"]
38208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s32)"]
38209#[inline(always)]
38210#[target_feature(enable = "neon")]
38211#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38212#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38213#[cfg_attr(
38214    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38215    assert_instr(sqshl)
38216)]
38217#[cfg_attr(
38218    not(target_arch = "arm"),
38219    stable(feature = "neon_intrinsics", since = "1.59.0")
38220)]
38221#[cfg_attr(
38222    target_arch = "arm",
38223    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38224)]
38225pub fn vqshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
38226    unsafe extern "unadjusted" {
38227        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i32")]
38228        #[cfg_attr(
38229            any(target_arch = "aarch64", target_arch = "arm64ec"),
38230            link_name = "llvm.aarch64.neon.sqshl.v4i32"
38231        )]
38232        fn _vqshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
38233    }
38234    unsafe { _vqshlq_s32(a, b) }
38235}
38236#[doc = "Signed saturating shift left"]
38237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s64)"]
38238#[inline(always)]
38239#[target_feature(enable = "neon")]
38240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38242#[cfg_attr(
38243    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38244    assert_instr(sqshl)
38245)]
38246#[cfg_attr(
38247    not(target_arch = "arm"),
38248    stable(feature = "neon_intrinsics", since = "1.59.0")
38249)]
38250#[cfg_attr(
38251    target_arch = "arm",
38252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38253)]
38254pub fn vqshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
38255    unsafe extern "unadjusted" {
38256        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v1i64")]
38257        #[cfg_attr(
38258            any(target_arch = "aarch64", target_arch = "arm64ec"),
38259            link_name = "llvm.aarch64.neon.sqshl.v1i64"
38260        )]
38261        fn _vqshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
38262    }
38263    unsafe { _vqshl_s64(a, b) }
38264}
38265#[doc = "Signed saturating shift left"]
38266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s64)"]
38267#[inline(always)]
38268#[target_feature(enable = "neon")]
38269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38270#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38271#[cfg_attr(
38272    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38273    assert_instr(sqshl)
38274)]
38275#[cfg_attr(
38276    not(target_arch = "arm"),
38277    stable(feature = "neon_intrinsics", since = "1.59.0")
38278)]
38279#[cfg_attr(
38280    target_arch = "arm",
38281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38282)]
38283pub fn vqshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
38284    unsafe extern "unadjusted" {
38285        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i64")]
38286        #[cfg_attr(
38287            any(target_arch = "aarch64", target_arch = "arm64ec"),
38288            link_name = "llvm.aarch64.neon.sqshl.v2i64"
38289        )]
38290        fn _vqshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
38291    }
38292    unsafe { _vqshlq_s64(a, b) }
38293}
38294#[doc = "Unsigned saturating shift left"]
38295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u8)"]
38296#[inline(always)]
38297#[target_feature(enable = "neon")]
38298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38300#[cfg_attr(
38301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38302    assert_instr(uqshl)
38303)]
38304#[cfg_attr(
38305    not(target_arch = "arm"),
38306    stable(feature = "neon_intrinsics", since = "1.59.0")
38307)]
38308#[cfg_attr(
38309    target_arch = "arm",
38310    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38311)]
38312pub fn vqshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
38313    unsafe extern "unadjusted" {
38314        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i8")]
38315        #[cfg_attr(
38316            any(target_arch = "aarch64", target_arch = "arm64ec"),
38317            link_name = "llvm.aarch64.neon.uqshl.v8i8"
38318        )]
38319        fn _vqshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
38320    }
38321    unsafe { _vqshl_u8(a, b) }
38322}
38323#[doc = "Unsigned saturating shift left"]
38324#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u8)"]
38325#[inline(always)]
38326#[target_feature(enable = "neon")]
38327#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38328#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38329#[cfg_attr(
38330    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38331    assert_instr(uqshl)
38332)]
38333#[cfg_attr(
38334    not(target_arch = "arm"),
38335    stable(feature = "neon_intrinsics", since = "1.59.0")
38336)]
38337#[cfg_attr(
38338    target_arch = "arm",
38339    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38340)]
38341pub fn vqshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
38342    unsafe extern "unadjusted" {
38343        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v16i8")]
38344        #[cfg_attr(
38345            any(target_arch = "aarch64", target_arch = "arm64ec"),
38346            link_name = "llvm.aarch64.neon.uqshl.v16i8"
38347        )]
38348        fn _vqshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
38349    }
38350    unsafe { _vqshlq_u8(a, b) }
38351}
38352#[doc = "Unsigned saturating shift left"]
38353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u16)"]
38354#[inline(always)]
38355#[target_feature(enable = "neon")]
38356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38357#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38358#[cfg_attr(
38359    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38360    assert_instr(uqshl)
38361)]
38362#[cfg_attr(
38363    not(target_arch = "arm"),
38364    stable(feature = "neon_intrinsics", since = "1.59.0")
38365)]
38366#[cfg_attr(
38367    target_arch = "arm",
38368    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38369)]
38370pub fn vqshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
38371    unsafe extern "unadjusted" {
38372        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i16")]
38373        #[cfg_attr(
38374            any(target_arch = "aarch64", target_arch = "arm64ec"),
38375            link_name = "llvm.aarch64.neon.uqshl.v4i16"
38376        )]
38377        fn _vqshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
38378    }
38379    unsafe { _vqshl_u16(a, b) }
38380}
38381#[doc = "Unsigned saturating shift left"]
38382#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u16)"]
38383#[inline(always)]
38384#[target_feature(enable = "neon")]
38385#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38386#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38387#[cfg_attr(
38388    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38389    assert_instr(uqshl)
38390)]
38391#[cfg_attr(
38392    not(target_arch = "arm"),
38393    stable(feature = "neon_intrinsics", since = "1.59.0")
38394)]
38395#[cfg_attr(
38396    target_arch = "arm",
38397    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38398)]
38399pub fn vqshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
38400    unsafe extern "unadjusted" {
38401        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i16")]
38402        #[cfg_attr(
38403            any(target_arch = "aarch64", target_arch = "arm64ec"),
38404            link_name = "llvm.aarch64.neon.uqshl.v8i16"
38405        )]
38406        fn _vqshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
38407    }
38408    unsafe { _vqshlq_u16(a, b) }
38409}
38410#[doc = "Unsigned saturating shift left"]
38411#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u32)"]
38412#[inline(always)]
38413#[target_feature(enable = "neon")]
38414#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38415#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38416#[cfg_attr(
38417    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38418    assert_instr(uqshl)
38419)]
38420#[cfg_attr(
38421    not(target_arch = "arm"),
38422    stable(feature = "neon_intrinsics", since = "1.59.0")
38423)]
38424#[cfg_attr(
38425    target_arch = "arm",
38426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38427)]
38428pub fn vqshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
38429    unsafe extern "unadjusted" {
38430        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i32")]
38431        #[cfg_attr(
38432            any(target_arch = "aarch64", target_arch = "arm64ec"),
38433            link_name = "llvm.aarch64.neon.uqshl.v2i32"
38434        )]
38435        fn _vqshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
38436    }
38437    unsafe { _vqshl_u32(a, b) }
38438}
38439#[doc = "Unsigned saturating shift left"]
38440#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u32)"]
38441#[inline(always)]
38442#[target_feature(enable = "neon")]
38443#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38444#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38445#[cfg_attr(
38446    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38447    assert_instr(uqshl)
38448)]
38449#[cfg_attr(
38450    not(target_arch = "arm"),
38451    stable(feature = "neon_intrinsics", since = "1.59.0")
38452)]
38453#[cfg_attr(
38454    target_arch = "arm",
38455    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38456)]
38457pub fn vqshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
38458    unsafe extern "unadjusted" {
38459        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i32")]
38460        #[cfg_attr(
38461            any(target_arch = "aarch64", target_arch = "arm64ec"),
38462            link_name = "llvm.aarch64.neon.uqshl.v4i32"
38463        )]
38464        fn _vqshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
38465    }
38466    unsafe { _vqshlq_u32(a, b) }
38467}
38468#[doc = "Unsigned saturating shift left"]
38469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u64)"]
38470#[inline(always)]
38471#[target_feature(enable = "neon")]
38472#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38473#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38474#[cfg_attr(
38475    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38476    assert_instr(uqshl)
38477)]
38478#[cfg_attr(
38479    not(target_arch = "arm"),
38480    stable(feature = "neon_intrinsics", since = "1.59.0")
38481)]
38482#[cfg_attr(
38483    target_arch = "arm",
38484    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38485)]
38486pub fn vqshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
38487    unsafe extern "unadjusted" {
38488        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v1i64")]
38489        #[cfg_attr(
38490            any(target_arch = "aarch64", target_arch = "arm64ec"),
38491            link_name = "llvm.aarch64.neon.uqshl.v1i64"
38492        )]
38493        fn _vqshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
38494    }
38495    unsafe { _vqshl_u64(a, b) }
38496}
38497#[doc = "Unsigned saturating shift left"]
38498#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u64)"]
38499#[inline(always)]
38500#[target_feature(enable = "neon")]
38501#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
38502#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
38503#[cfg_attr(
38504    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
38505    assert_instr(uqshl)
38506)]
38507#[cfg_attr(
38508    not(target_arch = "arm"),
38509    stable(feature = "neon_intrinsics", since = "1.59.0")
38510)]
38511#[cfg_attr(
38512    target_arch = "arm",
38513    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
38514)]
38515pub fn vqshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
38516    unsafe extern "unadjusted" {
38517        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i64")]
38518        #[cfg_attr(
38519            any(target_arch = "aarch64", target_arch = "arm64ec"),
38520            link_name = "llvm.aarch64.neon.uqshl.v2i64"
38521        )]
38522        fn _vqshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
38523    }
38524    unsafe { _vqshlq_u64(a, b) }
38525}
38526#[doc = "Signed saturating shift left unsigned"]
38527#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)"]
38528#[inline(always)]
38529#[cfg(target_arch = "arm")]
38530#[target_feature(enable = "neon,v7")]
38531#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38532#[rustc_legacy_const_generics(1)]
38533#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38534pub fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
38535    static_assert_uimm_bits!(N, 3);
38536    unsafe extern "unadjusted" {
38537        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i8")]
38538        fn _vqshlu_n_s8(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
38539    }
38540    unsafe { _vqshlu_n_s8(a, const { int8x8_t([N as i8; 8]) }) }
38541}
38542#[doc = "Signed saturating shift left unsigned"]
38543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)"]
38544#[inline(always)]
38545#[cfg(target_arch = "arm")]
38546#[target_feature(enable = "neon,v7")]
38547#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38548#[rustc_legacy_const_generics(1)]
38549#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38550pub fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
38551    static_assert_uimm_bits!(N, 3);
38552    unsafe extern "unadjusted" {
38553        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v16i8")]
38554        fn _vqshluq_n_s8(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
38555    }
38556    unsafe { _vqshluq_n_s8(a, const { int8x16_t([N as i8; 16]) }) }
38557}
38558#[doc = "Signed saturating shift left unsigned"]
38559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)"]
38560#[inline(always)]
38561#[cfg(target_arch = "arm")]
38562#[target_feature(enable = "neon,v7")]
38563#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38564#[rustc_legacy_const_generics(1)]
38565#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38566pub fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
38567    static_assert_uimm_bits!(N, 4);
38568    unsafe extern "unadjusted" {
38569        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i16")]
38570        fn _vqshlu_n_s16(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
38571    }
38572    unsafe { _vqshlu_n_s16(a, const { int16x4_t([N as i16; 4]) }) }
38573}
38574#[doc = "Signed saturating shift left unsigned"]
38575#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)"]
38576#[inline(always)]
38577#[cfg(target_arch = "arm")]
38578#[target_feature(enable = "neon,v7")]
38579#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38580#[rustc_legacy_const_generics(1)]
38581#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38582pub fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
38583    static_assert_uimm_bits!(N, 4);
38584    unsafe extern "unadjusted" {
38585        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i16")]
38586        fn _vqshluq_n_s16(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
38587    }
38588    unsafe { _vqshluq_n_s16(a, const { int16x8_t([N as i16; 8]) }) }
38589}
38590#[doc = "Signed saturating shift left unsigned"]
38591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)"]
38592#[inline(always)]
38593#[cfg(target_arch = "arm")]
38594#[target_feature(enable = "neon,v7")]
38595#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38596#[rustc_legacy_const_generics(1)]
38597#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38598pub fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
38599    static_assert_uimm_bits!(N, 5);
38600    unsafe extern "unadjusted" {
38601        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i32")]
38602        fn _vqshlu_n_s32(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
38603    }
38604    unsafe { _vqshlu_n_s32(a, const { int32x2_t([N; 2]) }) }
38605}
38606#[doc = "Signed saturating shift left unsigned"]
38607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)"]
38608#[inline(always)]
38609#[cfg(target_arch = "arm")]
38610#[target_feature(enable = "neon,v7")]
38611#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38612#[rustc_legacy_const_generics(1)]
38613#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38614pub fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
38615    static_assert_uimm_bits!(N, 5);
38616    unsafe extern "unadjusted" {
38617        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i32")]
38618        fn _vqshluq_n_s32(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
38619    }
38620    unsafe { _vqshluq_n_s32(a, const { int32x4_t([N; 4]) }) }
38621}
38622#[doc = "Signed saturating shift left unsigned"]
38623#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)"]
38624#[inline(always)]
38625#[cfg(target_arch = "arm")]
38626#[target_feature(enable = "neon,v7")]
38627#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38628#[rustc_legacy_const_generics(1)]
38629#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38630pub fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
38631    static_assert_uimm_bits!(N, 6);
38632    unsafe extern "unadjusted" {
38633        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v1i64")]
38634        fn _vqshlu_n_s64(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
38635    }
38636    unsafe { _vqshlu_n_s64(a, const { int64x1_t([N as i64]) }) }
38637}
38638#[doc = "Signed saturating shift left unsigned"]
38639#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)"]
38640#[inline(always)]
38641#[cfg(target_arch = "arm")]
38642#[target_feature(enable = "neon,v7")]
38643#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
38644#[rustc_legacy_const_generics(1)]
38645#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38646pub fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
38647    static_assert_uimm_bits!(N, 6);
38648    unsafe extern "unadjusted" {
38649        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i64")]
38650        fn _vqshluq_n_s64(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
38651    }
38652    unsafe { _vqshluq_n_s64(a, const { int64x2_t([N as i64; 2]) }) }
38653}
38654#[doc = "Signed saturating shift left unsigned"]
38655#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)"]
38656#[inline(always)]
38657#[target_feature(enable = "neon")]
38658#[cfg(not(target_arch = "arm"))]
38659#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38660#[rustc_legacy_const_generics(1)]
38661#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38662pub fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
38663    static_assert_uimm_bits!(N, 3);
38664    unsafe extern "unadjusted" {
38665        #[cfg_attr(
38666            any(target_arch = "aarch64", target_arch = "arm64ec"),
38667            link_name = "llvm.aarch64.neon.sqshlu.v8i8"
38668        )]
38669        fn _vqshlu_n_s8(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
38670    }
38671    unsafe { _vqshlu_n_s8(a, const { int8x8_t([N as i8; 8]) }) }
38672}
38673#[doc = "Signed saturating shift left unsigned"]
38674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)"]
38675#[inline(always)]
38676#[target_feature(enable = "neon")]
38677#[cfg(not(target_arch = "arm"))]
38678#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38679#[rustc_legacy_const_generics(1)]
38680#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38681pub fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
38682    static_assert_uimm_bits!(N, 3);
38683    unsafe extern "unadjusted" {
38684        #[cfg_attr(
38685            any(target_arch = "aarch64", target_arch = "arm64ec"),
38686            link_name = "llvm.aarch64.neon.sqshlu.v16i8"
38687        )]
38688        fn _vqshluq_n_s8(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
38689    }
38690    unsafe { _vqshluq_n_s8(a, const { int8x16_t([N as i8; 16]) }) }
38691}
38692#[doc = "Signed saturating shift left unsigned"]
38693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)"]
38694#[inline(always)]
38695#[target_feature(enable = "neon")]
38696#[cfg(not(target_arch = "arm"))]
38697#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38698#[rustc_legacy_const_generics(1)]
38699#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38700pub fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
38701    static_assert_uimm_bits!(N, 4);
38702    unsafe extern "unadjusted" {
38703        #[cfg_attr(
38704            any(target_arch = "aarch64", target_arch = "arm64ec"),
38705            link_name = "llvm.aarch64.neon.sqshlu.v4i16"
38706        )]
38707        fn _vqshlu_n_s16(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
38708    }
38709    unsafe { _vqshlu_n_s16(a, const { int16x4_t([N as i16; 4]) }) }
38710}
38711#[doc = "Signed saturating shift left unsigned"]
38712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)"]
38713#[inline(always)]
38714#[target_feature(enable = "neon")]
38715#[cfg(not(target_arch = "arm"))]
38716#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38717#[rustc_legacy_const_generics(1)]
38718#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38719pub fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
38720    static_assert_uimm_bits!(N, 4);
38721    unsafe extern "unadjusted" {
38722        #[cfg_attr(
38723            any(target_arch = "aarch64", target_arch = "arm64ec"),
38724            link_name = "llvm.aarch64.neon.sqshlu.v8i16"
38725        )]
38726        fn _vqshluq_n_s16(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
38727    }
38728    unsafe { _vqshluq_n_s16(a, const { int16x8_t([N as i16; 8]) }) }
38729}
38730#[doc = "Signed saturating shift left unsigned"]
38731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)"]
38732#[inline(always)]
38733#[target_feature(enable = "neon")]
38734#[cfg(not(target_arch = "arm"))]
38735#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38736#[rustc_legacy_const_generics(1)]
38737#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38738pub fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
38739    static_assert_uimm_bits!(N, 5);
38740    unsafe extern "unadjusted" {
38741        #[cfg_attr(
38742            any(target_arch = "aarch64", target_arch = "arm64ec"),
38743            link_name = "llvm.aarch64.neon.sqshlu.v2i32"
38744        )]
38745        fn _vqshlu_n_s32(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
38746    }
38747    unsafe { _vqshlu_n_s32(a, const { int32x2_t([N; 2]) }) }
38748}
38749#[doc = "Signed saturating shift left unsigned"]
38750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)"]
38751#[inline(always)]
38752#[target_feature(enable = "neon")]
38753#[cfg(not(target_arch = "arm"))]
38754#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38755#[rustc_legacy_const_generics(1)]
38756#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38757pub fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
38758    static_assert_uimm_bits!(N, 5);
38759    unsafe extern "unadjusted" {
38760        #[cfg_attr(
38761            any(target_arch = "aarch64", target_arch = "arm64ec"),
38762            link_name = "llvm.aarch64.neon.sqshlu.v4i32"
38763        )]
38764        fn _vqshluq_n_s32(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
38765    }
38766    unsafe { _vqshluq_n_s32(a, const { int32x4_t([N; 4]) }) }
38767}
38768#[doc = "Signed saturating shift left unsigned"]
38769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)"]
38770#[inline(always)]
38771#[target_feature(enable = "neon")]
38772#[cfg(not(target_arch = "arm"))]
38773#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38774#[rustc_legacy_const_generics(1)]
38775#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38776pub fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
38777    static_assert_uimm_bits!(N, 6);
38778    unsafe extern "unadjusted" {
38779        #[cfg_attr(
38780            any(target_arch = "aarch64", target_arch = "arm64ec"),
38781            link_name = "llvm.aarch64.neon.sqshlu.v1i64"
38782        )]
38783        fn _vqshlu_n_s64(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
38784    }
38785    unsafe { _vqshlu_n_s64(a, const { int64x1_t([N as i64]) }) }
38786}
38787#[doc = "Signed saturating shift left unsigned"]
38788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)"]
38789#[inline(always)]
38790#[target_feature(enable = "neon")]
38791#[cfg(not(target_arch = "arm"))]
38792#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
38793#[rustc_legacy_const_generics(1)]
38794#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38795pub fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
38796    static_assert_uimm_bits!(N, 6);
38797    unsafe extern "unadjusted" {
38798        #[cfg_attr(
38799            any(target_arch = "aarch64", target_arch = "arm64ec"),
38800            link_name = "llvm.aarch64.neon.sqshlu.v2i64"
38801        )]
38802        fn _vqshluq_n_s64(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
38803    }
38804    unsafe { _vqshluq_n_s64(a, const { int64x2_t([N as i64; 2]) }) }
38805}
38806#[doc = "Signed saturating shift right narrow"]
38807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"]
38808#[inline(always)]
38809#[cfg(target_arch = "arm")]
38810#[target_feature(enable = "neon,v7")]
38811#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38812#[rustc_legacy_const_generics(1)]
38813#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38814pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
38815    static_assert!(N >= 1 && N <= 8);
38816    unsafe extern "unadjusted" {
38817        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v8i8")]
38818        fn _vqshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
38819    }
38820    unsafe { _vqshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
38821}
38822#[doc = "Signed saturating shift right narrow"]
38823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"]
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_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
38831    static_assert!(N >= 1 && N <= 16);
38832    unsafe extern "unadjusted" {
38833        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v4i16")]
38834        fn _vqshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
38835    }
38836    unsafe { _vqshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
38837}
38838#[doc = "Signed saturating shift right narrow"]
38839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"]
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_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
38847    static_assert!(N >= 1 && N <= 32);
38848    unsafe extern "unadjusted" {
38849        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v2i32")]
38850        fn _vqshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
38851    }
38852    unsafe { _vqshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
38853}
38854#[doc = "Signed saturating shift right narrow"]
38855#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)"]
38856#[inline(always)]
38857#[target_feature(enable = "neon")]
38858#[cfg(not(target_arch = "arm"))]
38859#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
38860#[rustc_legacy_const_generics(1)]
38861#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38862pub fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
38863    static_assert!(N >= 1 && N <= 8);
38864    unsafe extern "unadjusted" {
38865        #[cfg_attr(
38866            any(target_arch = "aarch64", target_arch = "arm64ec"),
38867            link_name = "llvm.aarch64.neon.sqshrn.v8i8"
38868        )]
38869        fn _vqshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
38870    }
38871    unsafe { _vqshrn_n_s16(a, N) }
38872}
38873#[doc = "Signed saturating shift right narrow"]
38874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)"]
38875#[inline(always)]
38876#[target_feature(enable = "neon")]
38877#[cfg(not(target_arch = "arm"))]
38878#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
38879#[rustc_legacy_const_generics(1)]
38880#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38881pub fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
38882    static_assert!(N >= 1 && N <= 16);
38883    unsafe extern "unadjusted" {
38884        #[cfg_attr(
38885            any(target_arch = "aarch64", target_arch = "arm64ec"),
38886            link_name = "llvm.aarch64.neon.sqshrn.v4i16"
38887        )]
38888        fn _vqshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
38889    }
38890    unsafe { _vqshrn_n_s32(a, N) }
38891}
38892#[doc = "Signed saturating shift right narrow"]
38893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)"]
38894#[inline(always)]
38895#[target_feature(enable = "neon")]
38896#[cfg(not(target_arch = "arm"))]
38897#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
38898#[rustc_legacy_const_generics(1)]
38899#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38900pub fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
38901    static_assert!(N >= 1 && N <= 32);
38902    unsafe extern "unadjusted" {
38903        #[cfg_attr(
38904            any(target_arch = "aarch64", target_arch = "arm64ec"),
38905            link_name = "llvm.aarch64.neon.sqshrn.v2i32"
38906        )]
38907        fn _vqshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
38908    }
38909    unsafe { _vqshrn_n_s64(a, N) }
38910}
38911#[doc = "Unsigned saturating shift right narrow"]
38912#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)"]
38913#[inline(always)]
38914#[cfg(target_arch = "arm")]
38915#[target_feature(enable = "neon,v7")]
38916#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38917#[rustc_legacy_const_generics(1)]
38918#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38919pub fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
38920    static_assert!(N >= 1 && N <= 8);
38921    unsafe extern "unadjusted" {
38922        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v8i8")]
38923        fn _vqshrn_n_u16(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
38924    }
38925    unsafe {
38926        _vqshrn_n_u16(
38927            a,
38928            const {
38929                uint16x8_t([
38930                    -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16,
38931                    -N as u16,
38932                ])
38933            },
38934        )
38935    }
38936}
38937#[doc = "Unsigned saturating shift right narrow"]
38938#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)"]
38939#[inline(always)]
38940#[cfg(target_arch = "arm")]
38941#[target_feature(enable = "neon,v7")]
38942#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38943#[rustc_legacy_const_generics(1)]
38944#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38945pub fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
38946    static_assert!(N >= 1 && N <= 16);
38947    unsafe extern "unadjusted" {
38948        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v4i16")]
38949        fn _vqshrn_n_u32(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
38950    }
38951    unsafe {
38952        _vqshrn_n_u32(
38953            a,
38954            const { uint32x4_t([-N as u32, -N as u32, -N as u32, -N as u32]) },
38955        )
38956    }
38957}
38958#[doc = "Unsigned saturating shift right narrow"]
38959#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)"]
38960#[inline(always)]
38961#[cfg(target_arch = "arm")]
38962#[target_feature(enable = "neon,v7")]
38963#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
38964#[rustc_legacy_const_generics(1)]
38965#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
38966pub fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
38967    static_assert!(N >= 1 && N <= 32);
38968    unsafe extern "unadjusted" {
38969        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v2i32")]
38970        fn _vqshrn_n_u64(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
38971    }
38972    unsafe { _vqshrn_n_u64(a, const { uint64x2_t([-N as u64, -N as u64]) }) }
38973}
38974#[doc = "Unsigned saturating shift right narrow"]
38975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)"]
38976#[inline(always)]
38977#[target_feature(enable = "neon")]
38978#[cfg(not(target_arch = "arm"))]
38979#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
38980#[rustc_legacy_const_generics(1)]
38981#[stable(feature = "neon_intrinsics", since = "1.59.0")]
38982pub fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
38983    static_assert!(N >= 1 && N <= 8);
38984    unsafe extern "unadjusted" {
38985        #[cfg_attr(
38986            any(target_arch = "aarch64", target_arch = "arm64ec"),
38987            link_name = "llvm.aarch64.neon.uqshrn.v8i8"
38988        )]
38989        fn _vqshrn_n_u16(a: uint16x8_t, n: i32) -> uint8x8_t;
38990    }
38991    unsafe { _vqshrn_n_u16(a, N) }
38992}
38993#[doc = "Unsigned saturating shift right narrow"]
38994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)"]
38995#[inline(always)]
38996#[target_feature(enable = "neon")]
38997#[cfg(not(target_arch = "arm"))]
38998#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
38999#[rustc_legacy_const_generics(1)]
39000#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39001pub fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
39002    static_assert!(N >= 1 && N <= 16);
39003    unsafe extern "unadjusted" {
39004        #[cfg_attr(
39005            any(target_arch = "aarch64", target_arch = "arm64ec"),
39006            link_name = "llvm.aarch64.neon.uqshrn.v4i16"
39007        )]
39008        fn _vqshrn_n_u32(a: uint32x4_t, n: i32) -> uint16x4_t;
39009    }
39010    unsafe { _vqshrn_n_u32(a, N) }
39011}
39012#[doc = "Unsigned saturating shift right narrow"]
39013#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)"]
39014#[inline(always)]
39015#[target_feature(enable = "neon")]
39016#[cfg(not(target_arch = "arm"))]
39017#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
39018#[rustc_legacy_const_generics(1)]
39019#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39020pub fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
39021    static_assert!(N >= 1 && N <= 32);
39022    unsafe extern "unadjusted" {
39023        #[cfg_attr(
39024            any(target_arch = "aarch64", target_arch = "arm64ec"),
39025            link_name = "llvm.aarch64.neon.uqshrn.v2i32"
39026        )]
39027        fn _vqshrn_n_u64(a: uint64x2_t, n: i32) -> uint32x2_t;
39028    }
39029    unsafe { _vqshrn_n_u64(a, N) }
39030}
39031#[doc = "Signed saturating shift right unsigned narrow"]
39032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"]
39033#[inline(always)]
39034#[cfg(target_arch = "arm")]
39035#[target_feature(enable = "neon,v7")]
39036#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
39037#[rustc_legacy_const_generics(1)]
39038#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39039pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
39040    static_assert!(N >= 1 && N <= 8);
39041    unsafe extern "unadjusted" {
39042        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v8i8")]
39043        fn _vqshrun_n_s16(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
39044    }
39045    unsafe { _vqshrun_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
39046}
39047#[doc = "Signed saturating shift right unsigned narrow"]
39048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"]
39049#[inline(always)]
39050#[cfg(target_arch = "arm")]
39051#[target_feature(enable = "neon,v7")]
39052#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
39053#[rustc_legacy_const_generics(1)]
39054#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39055pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
39056    static_assert!(N >= 1 && N <= 16);
39057    unsafe extern "unadjusted" {
39058        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v4i16")]
39059        fn _vqshrun_n_s32(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
39060    }
39061    unsafe { _vqshrun_n_s32(a, const { int32x4_t([-N; 4]) }) }
39062}
39063#[doc = "Signed saturating shift right unsigned narrow"]
39064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"]
39065#[inline(always)]
39066#[cfg(target_arch = "arm")]
39067#[target_feature(enable = "neon,v7")]
39068#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
39069#[rustc_legacy_const_generics(1)]
39070#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
39071pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
39072    static_assert!(N >= 1 && N <= 32);
39073    unsafe extern "unadjusted" {
39074        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v2i32")]
39075        fn _vqshrun_n_s64(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
39076    }
39077    unsafe { _vqshrun_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
39078}
39079#[doc = "Signed saturating shift right unsigned narrow"]
39080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)"]
39081#[inline(always)]
39082#[target_feature(enable = "neon")]
39083#[cfg(not(target_arch = "arm"))]
39084#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
39085#[rustc_legacy_const_generics(1)]
39086#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39087pub fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
39088    static_assert!(N >= 1 && N <= 8);
39089    unsafe extern "unadjusted" {
39090        #[cfg_attr(
39091            any(target_arch = "aarch64", target_arch = "arm64ec"),
39092            link_name = "llvm.aarch64.neon.sqshrun.v8i8"
39093        )]
39094        fn _vqshrun_n_s16(a: int16x8_t, n: i32) -> uint8x8_t;
39095    }
39096    unsafe { _vqshrun_n_s16(a, N) }
39097}
39098#[doc = "Signed saturating shift right unsigned narrow"]
39099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)"]
39100#[inline(always)]
39101#[target_feature(enable = "neon")]
39102#[cfg(not(target_arch = "arm"))]
39103#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
39104#[rustc_legacy_const_generics(1)]
39105#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39106pub fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
39107    static_assert!(N >= 1 && N <= 16);
39108    unsafe extern "unadjusted" {
39109        #[cfg_attr(
39110            any(target_arch = "aarch64", target_arch = "arm64ec"),
39111            link_name = "llvm.aarch64.neon.sqshrun.v4i16"
39112        )]
39113        fn _vqshrun_n_s32(a: int32x4_t, n: i32) -> uint16x4_t;
39114    }
39115    unsafe { _vqshrun_n_s32(a, N) }
39116}
39117#[doc = "Signed saturating shift right unsigned narrow"]
39118#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)"]
39119#[inline(always)]
39120#[target_feature(enable = "neon")]
39121#[cfg(not(target_arch = "arm"))]
39122#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
39123#[rustc_legacy_const_generics(1)]
39124#[stable(feature = "neon_intrinsics", since = "1.59.0")]
39125pub fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
39126    static_assert!(N >= 1 && N <= 32);
39127    unsafe extern "unadjusted" {
39128        #[cfg_attr(
39129            any(target_arch = "aarch64", target_arch = "arm64ec"),
39130            link_name = "llvm.aarch64.neon.sqshrun.v2i32"
39131        )]
39132        fn _vqshrun_n_s64(a: int64x2_t, n: i32) -> uint32x2_t;
39133    }
39134    unsafe { _vqshrun_n_s64(a, N) }
39135}
39136#[doc = "Saturating subtract"]
39137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s8)"]
39138#[inline(always)]
39139#[target_feature(enable = "neon")]
39140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39141#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
39142#[cfg_attr(
39143    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39144    assert_instr(sqsub)
39145)]
39146#[cfg_attr(
39147    not(target_arch = "arm"),
39148    stable(feature = "neon_intrinsics", since = "1.59.0")
39149)]
39150#[cfg_attr(
39151    target_arch = "arm",
39152    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39153)]
39154pub fn vqsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
39155    unsafe { simd_saturating_sub(a, b) }
39156}
39157#[doc = "Saturating subtract"]
39158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s8)"]
39159#[inline(always)]
39160#[target_feature(enable = "neon")]
39161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39162#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
39163#[cfg_attr(
39164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39165    assert_instr(sqsub)
39166)]
39167#[cfg_attr(
39168    not(target_arch = "arm"),
39169    stable(feature = "neon_intrinsics", since = "1.59.0")
39170)]
39171#[cfg_attr(
39172    target_arch = "arm",
39173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39174)]
39175pub fn vqsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
39176    unsafe { simd_saturating_sub(a, b) }
39177}
39178#[doc = "Saturating subtract"]
39179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s16)"]
39180#[inline(always)]
39181#[target_feature(enable = "neon")]
39182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39183#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
39184#[cfg_attr(
39185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39186    assert_instr(sqsub)
39187)]
39188#[cfg_attr(
39189    not(target_arch = "arm"),
39190    stable(feature = "neon_intrinsics", since = "1.59.0")
39191)]
39192#[cfg_attr(
39193    target_arch = "arm",
39194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39195)]
39196pub fn vqsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
39197    unsafe { simd_saturating_sub(a, b) }
39198}
39199#[doc = "Saturating subtract"]
39200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s16)"]
39201#[inline(always)]
39202#[target_feature(enable = "neon")]
39203#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39204#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
39205#[cfg_attr(
39206    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39207    assert_instr(sqsub)
39208)]
39209#[cfg_attr(
39210    not(target_arch = "arm"),
39211    stable(feature = "neon_intrinsics", since = "1.59.0")
39212)]
39213#[cfg_attr(
39214    target_arch = "arm",
39215    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39216)]
39217pub fn vqsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
39218    unsafe { simd_saturating_sub(a, b) }
39219}
39220#[doc = "Saturating subtract"]
39221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s32)"]
39222#[inline(always)]
39223#[target_feature(enable = "neon")]
39224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39225#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
39226#[cfg_attr(
39227    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39228    assert_instr(sqsub)
39229)]
39230#[cfg_attr(
39231    not(target_arch = "arm"),
39232    stable(feature = "neon_intrinsics", since = "1.59.0")
39233)]
39234#[cfg_attr(
39235    target_arch = "arm",
39236    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39237)]
39238pub fn vqsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
39239    unsafe { simd_saturating_sub(a, b) }
39240}
39241#[doc = "Saturating subtract"]
39242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s32)"]
39243#[inline(always)]
39244#[target_feature(enable = "neon")]
39245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39246#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
39247#[cfg_attr(
39248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39249    assert_instr(sqsub)
39250)]
39251#[cfg_attr(
39252    not(target_arch = "arm"),
39253    stable(feature = "neon_intrinsics", since = "1.59.0")
39254)]
39255#[cfg_attr(
39256    target_arch = "arm",
39257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39258)]
39259pub fn vqsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
39260    unsafe { simd_saturating_sub(a, b) }
39261}
39262#[doc = "Saturating subtract"]
39263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s64)"]
39264#[inline(always)]
39265#[target_feature(enable = "neon")]
39266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39267#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
39268#[cfg_attr(
39269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39270    assert_instr(sqsub)
39271)]
39272#[cfg_attr(
39273    not(target_arch = "arm"),
39274    stable(feature = "neon_intrinsics", since = "1.59.0")
39275)]
39276#[cfg_attr(
39277    target_arch = "arm",
39278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39279)]
39280pub fn vqsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
39281    unsafe { simd_saturating_sub(a, b) }
39282}
39283#[doc = "Saturating subtract"]
39284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s64)"]
39285#[inline(always)]
39286#[target_feature(enable = "neon")]
39287#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39288#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
39289#[cfg_attr(
39290    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39291    assert_instr(sqsub)
39292)]
39293#[cfg_attr(
39294    not(target_arch = "arm"),
39295    stable(feature = "neon_intrinsics", since = "1.59.0")
39296)]
39297#[cfg_attr(
39298    target_arch = "arm",
39299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39300)]
39301pub fn vqsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
39302    unsafe { simd_saturating_sub(a, b) }
39303}
39304#[doc = "Saturating subtract"]
39305#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u8)"]
39306#[inline(always)]
39307#[target_feature(enable = "neon")]
39308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39309#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
39310#[cfg_attr(
39311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39312    assert_instr(uqsub)
39313)]
39314#[cfg_attr(
39315    not(target_arch = "arm"),
39316    stable(feature = "neon_intrinsics", since = "1.59.0")
39317)]
39318#[cfg_attr(
39319    target_arch = "arm",
39320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39321)]
39322pub fn vqsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
39323    unsafe { simd_saturating_sub(a, b) }
39324}
39325#[doc = "Saturating subtract"]
39326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u8)"]
39327#[inline(always)]
39328#[target_feature(enable = "neon")]
39329#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39330#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
39331#[cfg_attr(
39332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39333    assert_instr(uqsub)
39334)]
39335#[cfg_attr(
39336    not(target_arch = "arm"),
39337    stable(feature = "neon_intrinsics", since = "1.59.0")
39338)]
39339#[cfg_attr(
39340    target_arch = "arm",
39341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39342)]
39343pub fn vqsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
39344    unsafe { simd_saturating_sub(a, b) }
39345}
39346#[doc = "Saturating subtract"]
39347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u16)"]
39348#[inline(always)]
39349#[target_feature(enable = "neon")]
39350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39351#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
39352#[cfg_attr(
39353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39354    assert_instr(uqsub)
39355)]
39356#[cfg_attr(
39357    not(target_arch = "arm"),
39358    stable(feature = "neon_intrinsics", since = "1.59.0")
39359)]
39360#[cfg_attr(
39361    target_arch = "arm",
39362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39363)]
39364pub fn vqsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
39365    unsafe { simd_saturating_sub(a, b) }
39366}
39367#[doc = "Saturating subtract"]
39368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u16)"]
39369#[inline(always)]
39370#[target_feature(enable = "neon")]
39371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39372#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
39373#[cfg_attr(
39374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39375    assert_instr(uqsub)
39376)]
39377#[cfg_attr(
39378    not(target_arch = "arm"),
39379    stable(feature = "neon_intrinsics", since = "1.59.0")
39380)]
39381#[cfg_attr(
39382    target_arch = "arm",
39383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39384)]
39385pub fn vqsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
39386    unsafe { simd_saturating_sub(a, b) }
39387}
39388#[doc = "Saturating subtract"]
39389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u32)"]
39390#[inline(always)]
39391#[target_feature(enable = "neon")]
39392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39393#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
39394#[cfg_attr(
39395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39396    assert_instr(uqsub)
39397)]
39398#[cfg_attr(
39399    not(target_arch = "arm"),
39400    stable(feature = "neon_intrinsics", since = "1.59.0")
39401)]
39402#[cfg_attr(
39403    target_arch = "arm",
39404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39405)]
39406pub fn vqsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
39407    unsafe { simd_saturating_sub(a, b) }
39408}
39409#[doc = "Saturating subtract"]
39410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u32)"]
39411#[inline(always)]
39412#[target_feature(enable = "neon")]
39413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39414#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
39415#[cfg_attr(
39416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39417    assert_instr(uqsub)
39418)]
39419#[cfg_attr(
39420    not(target_arch = "arm"),
39421    stable(feature = "neon_intrinsics", since = "1.59.0")
39422)]
39423#[cfg_attr(
39424    target_arch = "arm",
39425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39426)]
39427pub fn vqsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
39428    unsafe { simd_saturating_sub(a, b) }
39429}
39430#[doc = "Saturating subtract"]
39431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u64)"]
39432#[inline(always)]
39433#[target_feature(enable = "neon")]
39434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39435#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u64"))]
39436#[cfg_attr(
39437    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39438    assert_instr(uqsub)
39439)]
39440#[cfg_attr(
39441    not(target_arch = "arm"),
39442    stable(feature = "neon_intrinsics", since = "1.59.0")
39443)]
39444#[cfg_attr(
39445    target_arch = "arm",
39446    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39447)]
39448pub fn vqsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
39449    unsafe { simd_saturating_sub(a, b) }
39450}
39451#[doc = "Saturating subtract"]
39452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u64)"]
39453#[inline(always)]
39454#[target_feature(enable = "neon")]
39455#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39456#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u64"))]
39457#[cfg_attr(
39458    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39459    assert_instr(uqsub)
39460)]
39461#[cfg_attr(
39462    not(target_arch = "arm"),
39463    stable(feature = "neon_intrinsics", since = "1.59.0")
39464)]
39465#[cfg_attr(
39466    target_arch = "arm",
39467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39468)]
39469pub fn vqsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
39470    unsafe { simd_saturating_sub(a, b) }
39471}
39472#[doc = "Rounding Add returning High Narrow (high half)."]
39473#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s16)"]
39474#[inline(always)]
39475#[target_feature(enable = "neon")]
39476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39477#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
39478#[cfg_attr(
39479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39480    assert_instr(raddhn2)
39481)]
39482#[cfg_attr(
39483    not(target_arch = "arm"),
39484    stable(feature = "neon_intrinsics", since = "1.59.0")
39485)]
39486#[cfg_attr(
39487    target_arch = "arm",
39488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39489)]
39490pub fn vraddhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
39491    let x = vraddhn_s16(b, c);
39492    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
39493}
39494#[doc = "Rounding Add returning High Narrow (high half)."]
39495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s32)"]
39496#[inline(always)]
39497#[target_feature(enable = "neon")]
39498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39499#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39500#[cfg_attr(
39501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39502    assert_instr(raddhn2)
39503)]
39504#[cfg_attr(
39505    not(target_arch = "arm"),
39506    stable(feature = "neon_intrinsics", since = "1.59.0")
39507)]
39508#[cfg_attr(
39509    target_arch = "arm",
39510    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39511)]
39512pub fn vraddhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
39513    let x = vraddhn_s32(b, c);
39514    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7]) }
39515}
39516#[doc = "Rounding Add returning High Narrow (high half)."]
39517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_s64)"]
39518#[inline(always)]
39519#[target_feature(enable = "neon")]
39520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39521#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39522#[cfg_attr(
39523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39524    assert_instr(raddhn2)
39525)]
39526#[cfg_attr(
39527    not(target_arch = "arm"),
39528    stable(feature = "neon_intrinsics", since = "1.59.0")
39529)]
39530#[cfg_attr(
39531    target_arch = "arm",
39532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39533)]
39534pub fn vraddhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
39535    let x = vraddhn_s64(b, c);
39536    unsafe { simd_shuffle!(a, x, [0, 1, 2, 3]) }
39537}
39538#[doc = "Rounding Add returning High Narrow (high half)."]
39539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u16)"]
39540#[inline(always)]
39541#[target_feature(enable = "neon")]
39542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39543#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
39544#[cfg_attr(
39545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39546    assert_instr(raddhn2)
39547)]
39548#[cfg_attr(
39549    not(target_arch = "arm"),
39550    stable(feature = "neon_intrinsics", since = "1.59.0")
39551)]
39552#[cfg_attr(
39553    target_arch = "arm",
39554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39555)]
39556pub fn vraddhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
39557    unsafe {
39558        let x: uint8x8_t = transmute(vraddhn_s16(transmute(b), transmute(c)));
39559        simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
39560    }
39561}
39562#[doc = "Rounding Add returning High Narrow (high half)."]
39563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u32)"]
39564#[inline(always)]
39565#[target_feature(enable = "neon")]
39566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39568#[cfg_attr(
39569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39570    assert_instr(raddhn2)
39571)]
39572#[cfg_attr(
39573    not(target_arch = "arm"),
39574    stable(feature = "neon_intrinsics", since = "1.59.0")
39575)]
39576#[cfg_attr(
39577    target_arch = "arm",
39578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39579)]
39580pub fn vraddhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
39581    unsafe {
39582        let x: uint16x4_t = transmute(vraddhn_s32(transmute(b), transmute(c)));
39583        simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7])
39584    }
39585}
39586#[doc = "Rounding Add returning High Narrow (high half)."]
39587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_high_u64)"]
39588#[inline(always)]
39589#[target_feature(enable = "neon")]
39590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39591#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39592#[cfg_attr(
39593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39594    assert_instr(raddhn2)
39595)]
39596#[cfg_attr(
39597    not(target_arch = "arm"),
39598    stable(feature = "neon_intrinsics", since = "1.59.0")
39599)]
39600#[cfg_attr(
39601    target_arch = "arm",
39602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39603)]
39604pub fn vraddhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
39605    unsafe {
39606        let x: uint32x2_t = transmute(vraddhn_s64(transmute(b), transmute(c)));
39607        simd_shuffle!(a, x, [0, 1, 2, 3])
39608    }
39609}
39610#[doc = "Rounding Add returning High Narrow."]
39611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s16)"]
39612#[inline(always)]
39613#[target_feature(enable = "neon")]
39614#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39615#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
39616#[cfg_attr(
39617    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39618    assert_instr(raddhn)
39619)]
39620#[cfg_attr(
39621    not(target_arch = "arm"),
39622    stable(feature = "neon_intrinsics", since = "1.59.0")
39623)]
39624#[cfg_attr(
39625    target_arch = "arm",
39626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39627)]
39628pub fn vraddhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
39629    unsafe extern "unadjusted" {
39630        #[cfg_attr(
39631            any(target_arch = "aarch64", target_arch = "arm64ec"),
39632            link_name = "llvm.aarch64.neon.raddhn.v8i8"
39633        )]
39634        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v8i8")]
39635        fn _vraddhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t;
39636    }
39637    unsafe { _vraddhn_s16(a, b) }
39638}
39639#[doc = "Rounding Add returning High Narrow."]
39640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s32)"]
39641#[inline(always)]
39642#[target_feature(enable = "neon")]
39643#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39644#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39645#[cfg_attr(
39646    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39647    assert_instr(raddhn)
39648)]
39649#[cfg_attr(
39650    not(target_arch = "arm"),
39651    stable(feature = "neon_intrinsics", since = "1.59.0")
39652)]
39653#[cfg_attr(
39654    target_arch = "arm",
39655    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39656)]
39657pub fn vraddhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
39658    unsafe extern "unadjusted" {
39659        #[cfg_attr(
39660            any(target_arch = "aarch64", target_arch = "arm64ec"),
39661            link_name = "llvm.aarch64.neon.raddhn.v4i16"
39662        )]
39663        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v4i16")]
39664        fn _vraddhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t;
39665    }
39666    unsafe { _vraddhn_s32(a, b) }
39667}
39668#[doc = "Rounding Add returning High Narrow."]
39669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_s64)"]
39670#[inline(always)]
39671#[target_feature(enable = "neon")]
39672#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39673#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39674#[cfg_attr(
39675    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39676    assert_instr(raddhn)
39677)]
39678#[cfg_attr(
39679    not(target_arch = "arm"),
39680    stable(feature = "neon_intrinsics", since = "1.59.0")
39681)]
39682#[cfg_attr(
39683    target_arch = "arm",
39684    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39685)]
39686pub fn vraddhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
39687    unsafe extern "unadjusted" {
39688        #[cfg_attr(
39689            any(target_arch = "aarch64", target_arch = "arm64ec"),
39690            link_name = "llvm.aarch64.neon.raddhn.v2i32"
39691        )]
39692        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vraddhn.v2i32")]
39693        fn _vraddhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t;
39694    }
39695    unsafe { _vraddhn_s64(a, b) }
39696}
39697#[doc = "Rounding Add returning High Narrow."]
39698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u16)"]
39699#[inline(always)]
39700#[cfg(target_endian = "little")]
39701#[target_feature(enable = "neon")]
39702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39703#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
39704#[cfg_attr(
39705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39706    assert_instr(raddhn)
39707)]
39708#[cfg_attr(
39709    not(target_arch = "arm"),
39710    stable(feature = "neon_intrinsics", since = "1.59.0")
39711)]
39712#[cfg_attr(
39713    target_arch = "arm",
39714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39715)]
39716pub fn vraddhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
39717    unsafe { transmute(vraddhn_s16(transmute(a), transmute(b))) }
39718}
39719#[doc = "Rounding Add returning High Narrow."]
39720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u16)"]
39721#[inline(always)]
39722#[cfg(target_endian = "big")]
39723#[target_feature(enable = "neon")]
39724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39725#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i16"))]
39726#[cfg_attr(
39727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39728    assert_instr(raddhn)
39729)]
39730#[cfg_attr(
39731    not(target_arch = "arm"),
39732    stable(feature = "neon_intrinsics", since = "1.59.0")
39733)]
39734#[cfg_attr(
39735    target_arch = "arm",
39736    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39737)]
39738pub fn vraddhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
39739    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
39740    let b: uint16x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
39741    unsafe {
39742        let ret_val: uint8x8_t = transmute(vraddhn_s16(transmute(a), transmute(b)));
39743        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
39744    }
39745}
39746#[doc = "Rounding Add returning High Narrow."]
39747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u32)"]
39748#[inline(always)]
39749#[cfg(target_endian = "little")]
39750#[target_feature(enable = "neon")]
39751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39752#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39753#[cfg_attr(
39754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39755    assert_instr(raddhn)
39756)]
39757#[cfg_attr(
39758    not(target_arch = "arm"),
39759    stable(feature = "neon_intrinsics", since = "1.59.0")
39760)]
39761#[cfg_attr(
39762    target_arch = "arm",
39763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39764)]
39765pub fn vraddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
39766    unsafe { transmute(vraddhn_s32(transmute(a), transmute(b))) }
39767}
39768#[doc = "Rounding Add returning High Narrow."]
39769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u32)"]
39770#[inline(always)]
39771#[cfg(target_endian = "big")]
39772#[target_feature(enable = "neon")]
39773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39774#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i32"))]
39775#[cfg_attr(
39776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39777    assert_instr(raddhn)
39778)]
39779#[cfg_attr(
39780    not(target_arch = "arm"),
39781    stable(feature = "neon_intrinsics", since = "1.59.0")
39782)]
39783#[cfg_attr(
39784    target_arch = "arm",
39785    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39786)]
39787pub fn vraddhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
39788    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
39789    let b: uint32x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
39790    unsafe {
39791        let ret_val: uint16x4_t = transmute(vraddhn_s32(transmute(a), transmute(b)));
39792        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
39793    }
39794}
39795#[doc = "Rounding Add returning High Narrow."]
39796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u64)"]
39797#[inline(always)]
39798#[cfg(target_endian = "little")]
39799#[target_feature(enable = "neon")]
39800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39801#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39802#[cfg_attr(
39803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39804    assert_instr(raddhn)
39805)]
39806#[cfg_attr(
39807    not(target_arch = "arm"),
39808    stable(feature = "neon_intrinsics", since = "1.59.0")
39809)]
39810#[cfg_attr(
39811    target_arch = "arm",
39812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39813)]
39814pub fn vraddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
39815    unsafe { transmute(vraddhn_s64(transmute(a), transmute(b))) }
39816}
39817#[doc = "Rounding Add returning High Narrow."]
39818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vraddhn_u64)"]
39819#[inline(always)]
39820#[cfg(target_endian = "big")]
39821#[target_feature(enable = "neon")]
39822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39823#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vraddhn.i64"))]
39824#[cfg_attr(
39825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39826    assert_instr(raddhn)
39827)]
39828#[cfg_attr(
39829    not(target_arch = "arm"),
39830    stable(feature = "neon_intrinsics", since = "1.59.0")
39831)]
39832#[cfg_attr(
39833    target_arch = "arm",
39834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39835)]
39836pub fn vraddhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
39837    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
39838    let b: uint64x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
39839    unsafe {
39840        let ret_val: uint32x2_t = transmute(vraddhn_s64(transmute(a), transmute(b)));
39841        simd_shuffle!(ret_val, ret_val, [1, 0])
39842    }
39843}
39844#[doc = "Reciprocal estimate."]
39845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_f16)"]
39846#[inline(always)]
39847#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
39848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39849#[cfg_attr(
39850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39851    assert_instr(frecpe)
39852)]
39853#[target_feature(enable = "neon,fp16")]
39854#[cfg_attr(
39855    not(target_arch = "arm"),
39856    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
39857)]
39858#[cfg_attr(
39859    target_arch = "arm",
39860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39861)]
39862#[cfg(not(target_arch = "arm64ec"))]
39863pub fn vrecpe_f16(a: float16x4_t) -> float16x4_t {
39864    unsafe extern "unadjusted" {
39865        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4f16")]
39866        #[cfg_attr(
39867            any(target_arch = "aarch64", target_arch = "arm64ec"),
39868            link_name = "llvm.aarch64.neon.frecpe.v4f16"
39869        )]
39870        fn _vrecpe_f16(a: float16x4_t) -> float16x4_t;
39871    }
39872    unsafe { _vrecpe_f16(a) }
39873}
39874#[doc = "Reciprocal estimate."]
39875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_f16)"]
39876#[inline(always)]
39877#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
39878#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39879#[cfg_attr(
39880    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39881    assert_instr(frecpe)
39882)]
39883#[target_feature(enable = "neon,fp16")]
39884#[cfg_attr(
39885    not(target_arch = "arm"),
39886    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
39887)]
39888#[cfg_attr(
39889    target_arch = "arm",
39890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39891)]
39892#[cfg(not(target_arch = "arm64ec"))]
39893pub fn vrecpeq_f16(a: float16x8_t) -> float16x8_t {
39894    unsafe extern "unadjusted" {
39895        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v8f16")]
39896        #[cfg_attr(
39897            any(target_arch = "aarch64", target_arch = "arm64ec"),
39898            link_name = "llvm.aarch64.neon.frecpe.v8f16"
39899        )]
39900        fn _vrecpeq_f16(a: float16x8_t) -> float16x8_t;
39901    }
39902    unsafe { _vrecpeq_f16(a) }
39903}
39904#[doc = "Reciprocal estimate."]
39905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_f32)"]
39906#[inline(always)]
39907#[target_feature(enable = "neon")]
39908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39909#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39910#[cfg_attr(
39911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39912    assert_instr(frecpe)
39913)]
39914#[cfg_attr(
39915    not(target_arch = "arm"),
39916    stable(feature = "neon_intrinsics", since = "1.59.0")
39917)]
39918#[cfg_attr(
39919    target_arch = "arm",
39920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39921)]
39922pub fn vrecpe_f32(a: float32x2_t) -> float32x2_t {
39923    unsafe extern "unadjusted" {
39924        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2f32")]
39925        #[cfg_attr(
39926            any(target_arch = "aarch64", target_arch = "arm64ec"),
39927            link_name = "llvm.aarch64.neon.frecpe.v2f32"
39928        )]
39929        fn _vrecpe_f32(a: float32x2_t) -> float32x2_t;
39930    }
39931    unsafe { _vrecpe_f32(a) }
39932}
39933#[doc = "Reciprocal estimate."]
39934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_f32)"]
39935#[inline(always)]
39936#[target_feature(enable = "neon")]
39937#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39938#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39939#[cfg_attr(
39940    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39941    assert_instr(frecpe)
39942)]
39943#[cfg_attr(
39944    not(target_arch = "arm"),
39945    stable(feature = "neon_intrinsics", since = "1.59.0")
39946)]
39947#[cfg_attr(
39948    target_arch = "arm",
39949    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39950)]
39951pub fn vrecpeq_f32(a: float32x4_t) -> float32x4_t {
39952    unsafe extern "unadjusted" {
39953        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4f32")]
39954        #[cfg_attr(
39955            any(target_arch = "aarch64", target_arch = "arm64ec"),
39956            link_name = "llvm.aarch64.neon.frecpe.v4f32"
39957        )]
39958        fn _vrecpeq_f32(a: float32x4_t) -> float32x4_t;
39959    }
39960    unsafe { _vrecpeq_f32(a) }
39961}
39962#[doc = "Unsigned reciprocal estimate"]
39963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_u32)"]
39964#[inline(always)]
39965#[target_feature(enable = "neon")]
39966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39968#[cfg_attr(
39969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39970    assert_instr(urecpe)
39971)]
39972#[cfg_attr(
39973    not(target_arch = "arm"),
39974    stable(feature = "neon_intrinsics", since = "1.59.0")
39975)]
39976#[cfg_attr(
39977    target_arch = "arm",
39978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
39979)]
39980pub fn vrecpe_u32(a: uint32x2_t) -> uint32x2_t {
39981    unsafe extern "unadjusted" {
39982        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2i32")]
39983        #[cfg_attr(
39984            any(target_arch = "aarch64", target_arch = "arm64ec"),
39985            link_name = "llvm.aarch64.neon.urecpe.v2i32"
39986        )]
39987        fn _vrecpe_u32(a: uint32x2_t) -> uint32x2_t;
39988    }
39989    unsafe { _vrecpe_u32(a) }
39990}
39991#[doc = "Unsigned reciprocal estimate"]
39992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_u32)"]
39993#[inline(always)]
39994#[target_feature(enable = "neon")]
39995#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
39996#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
39997#[cfg_attr(
39998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
39999    assert_instr(urecpe)
40000)]
40001#[cfg_attr(
40002    not(target_arch = "arm"),
40003    stable(feature = "neon_intrinsics", since = "1.59.0")
40004)]
40005#[cfg_attr(
40006    target_arch = "arm",
40007    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40008)]
40009pub fn vrecpeq_u32(a: uint32x4_t) -> uint32x4_t {
40010    unsafe extern "unadjusted" {
40011        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4i32")]
40012        #[cfg_attr(
40013            any(target_arch = "aarch64", target_arch = "arm64ec"),
40014            link_name = "llvm.aarch64.neon.urecpe.v4i32"
40015        )]
40016        fn _vrecpeq_u32(a: uint32x4_t) -> uint32x4_t;
40017    }
40018    unsafe { _vrecpeq_u32(a) }
40019}
40020#[doc = "Floating-point reciprocal step"]
40021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecps_f16)"]
40022#[inline(always)]
40023#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
40024#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
40025#[cfg_attr(
40026    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40027    assert_instr(frecps)
40028)]
40029#[target_feature(enable = "neon,fp16")]
40030#[cfg_attr(
40031    not(target_arch = "arm"),
40032    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40033)]
40034#[cfg_attr(
40035    target_arch = "arm",
40036    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40037)]
40038#[cfg(not(target_arch = "arm64ec"))]
40039pub fn vrecps_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
40040    unsafe extern "unadjusted" {
40041        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v4f16")]
40042        #[cfg_attr(
40043            any(target_arch = "aarch64", target_arch = "arm64ec"),
40044            link_name = "llvm.aarch64.neon.frecps.v4f16"
40045        )]
40046        fn _vrecps_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
40047    }
40048    unsafe { _vrecps_f16(a, b) }
40049}
40050#[doc = "Floating-point reciprocal step"]
40051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpsq_f16)"]
40052#[inline(always)]
40053#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
40054#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
40055#[cfg_attr(
40056    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40057    assert_instr(frecps)
40058)]
40059#[target_feature(enable = "neon,fp16")]
40060#[cfg_attr(
40061    not(target_arch = "arm"),
40062    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40063)]
40064#[cfg_attr(
40065    target_arch = "arm",
40066    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40067)]
40068#[cfg(not(target_arch = "arm64ec"))]
40069pub fn vrecpsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
40070    unsafe extern "unadjusted" {
40071        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v8f16")]
40072        #[cfg_attr(
40073            any(target_arch = "aarch64", target_arch = "arm64ec"),
40074            link_name = "llvm.aarch64.neon.frecps.v8f16"
40075        )]
40076        fn _vrecpsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
40077    }
40078    unsafe { _vrecpsq_f16(a, b) }
40079}
40080#[doc = "Floating-point reciprocal step"]
40081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecps_f32)"]
40082#[inline(always)]
40083#[target_feature(enable = "neon")]
40084#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40085#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
40086#[cfg_attr(
40087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40088    assert_instr(frecps)
40089)]
40090#[cfg_attr(
40091    not(target_arch = "arm"),
40092    stable(feature = "neon_intrinsics", since = "1.59.0")
40093)]
40094#[cfg_attr(
40095    target_arch = "arm",
40096    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40097)]
40098pub fn vrecps_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
40099    unsafe extern "unadjusted" {
40100        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v2f32")]
40101        #[cfg_attr(
40102            any(target_arch = "aarch64", target_arch = "arm64ec"),
40103            link_name = "llvm.aarch64.neon.frecps.v2f32"
40104        )]
40105        fn _vrecps_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
40106    }
40107    unsafe { _vrecps_f32(a, b) }
40108}
40109#[doc = "Floating-point reciprocal step"]
40110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpsq_f32)"]
40111#[inline(always)]
40112#[target_feature(enable = "neon")]
40113#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40114#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
40115#[cfg_attr(
40116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40117    assert_instr(frecps)
40118)]
40119#[cfg_attr(
40120    not(target_arch = "arm"),
40121    stable(feature = "neon_intrinsics", since = "1.59.0")
40122)]
40123#[cfg_attr(
40124    target_arch = "arm",
40125    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40126)]
40127pub fn vrecpsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
40128    unsafe extern "unadjusted" {
40129        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v4f32")]
40130        #[cfg_attr(
40131            any(target_arch = "aarch64", target_arch = "arm64ec"),
40132            link_name = "llvm.aarch64.neon.frecps.v4f32"
40133        )]
40134        fn _vrecpsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
40135    }
40136    unsafe { _vrecpsq_f32(a, b) }
40137}
40138#[doc = "Vector reinterpret cast operation"]
40139#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_f16)"]
40140#[inline(always)]
40141#[cfg(target_endian = "little")]
40142#[target_feature(enable = "neon")]
40143#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40144#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40145#[cfg_attr(
40146    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40147    assert_instr(nop)
40148)]
40149#[cfg_attr(
40150    not(target_arch = "arm"),
40151    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40152)]
40153#[cfg_attr(
40154    target_arch = "arm",
40155    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40156)]
40157#[cfg(not(target_arch = "arm64ec"))]
40158pub fn vreinterpret_f32_f16(a: float16x4_t) -> float32x2_t {
40159    unsafe { transmute(a) }
40160}
40161#[doc = "Vector reinterpret cast operation"]
40162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_f16)"]
40163#[inline(always)]
40164#[cfg(target_endian = "big")]
40165#[target_feature(enable = "neon")]
40166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40167#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40168#[cfg_attr(
40169    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40170    assert_instr(nop)
40171)]
40172#[cfg_attr(
40173    not(target_arch = "arm"),
40174    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40175)]
40176#[cfg_attr(
40177    target_arch = "arm",
40178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40179)]
40180#[cfg(not(target_arch = "arm64ec"))]
40181pub fn vreinterpret_f32_f16(a: float16x4_t) -> float32x2_t {
40182    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40183    unsafe {
40184        let ret_val: float32x2_t = transmute(a);
40185        simd_shuffle!(ret_val, ret_val, [1, 0])
40186    }
40187}
40188#[doc = "Vector reinterpret cast operation"]
40189#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f16)"]
40190#[inline(always)]
40191#[cfg(target_endian = "little")]
40192#[target_feature(enable = "neon")]
40193#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40194#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40195#[cfg_attr(
40196    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40197    assert_instr(nop)
40198)]
40199#[cfg_attr(
40200    not(target_arch = "arm"),
40201    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40202)]
40203#[cfg_attr(
40204    target_arch = "arm",
40205    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40206)]
40207#[cfg(not(target_arch = "arm64ec"))]
40208pub fn vreinterpret_s8_f16(a: float16x4_t) -> int8x8_t {
40209    unsafe { transmute(a) }
40210}
40211#[doc = "Vector reinterpret cast operation"]
40212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f16)"]
40213#[inline(always)]
40214#[cfg(target_endian = "big")]
40215#[target_feature(enable = "neon")]
40216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40217#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40218#[cfg_attr(
40219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40220    assert_instr(nop)
40221)]
40222#[cfg_attr(
40223    not(target_arch = "arm"),
40224    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40225)]
40226#[cfg_attr(
40227    target_arch = "arm",
40228    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40229)]
40230#[cfg(not(target_arch = "arm64ec"))]
40231pub fn vreinterpret_s8_f16(a: float16x4_t) -> int8x8_t {
40232    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40233    unsafe {
40234        let ret_val: int8x8_t = transmute(a);
40235        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
40236    }
40237}
40238#[doc = "Vector reinterpret cast operation"]
40239#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f16)"]
40240#[inline(always)]
40241#[cfg(target_endian = "little")]
40242#[target_feature(enable = "neon")]
40243#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40244#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40245#[cfg_attr(
40246    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40247    assert_instr(nop)
40248)]
40249#[cfg_attr(
40250    not(target_arch = "arm"),
40251    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40252)]
40253#[cfg_attr(
40254    target_arch = "arm",
40255    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40256)]
40257#[cfg(not(target_arch = "arm64ec"))]
40258pub fn vreinterpret_s16_f16(a: float16x4_t) -> int16x4_t {
40259    unsafe { transmute(a) }
40260}
40261#[doc = "Vector reinterpret cast operation"]
40262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f16)"]
40263#[inline(always)]
40264#[cfg(target_endian = "big")]
40265#[target_feature(enable = "neon")]
40266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40268#[cfg_attr(
40269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40270    assert_instr(nop)
40271)]
40272#[cfg_attr(
40273    not(target_arch = "arm"),
40274    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40275)]
40276#[cfg_attr(
40277    target_arch = "arm",
40278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40279)]
40280#[cfg(not(target_arch = "arm64ec"))]
40281pub fn vreinterpret_s16_f16(a: float16x4_t) -> int16x4_t {
40282    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40283    unsafe {
40284        let ret_val: int16x4_t = transmute(a);
40285        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40286    }
40287}
40288#[doc = "Vector reinterpret cast operation"]
40289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f16)"]
40290#[inline(always)]
40291#[cfg(target_endian = "little")]
40292#[target_feature(enable = "neon")]
40293#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40294#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40295#[cfg_attr(
40296    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40297    assert_instr(nop)
40298)]
40299#[cfg_attr(
40300    not(target_arch = "arm"),
40301    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40302)]
40303#[cfg_attr(
40304    target_arch = "arm",
40305    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40306)]
40307#[cfg(not(target_arch = "arm64ec"))]
40308pub fn vreinterpret_s32_f16(a: float16x4_t) -> int32x2_t {
40309    unsafe { transmute(a) }
40310}
40311#[doc = "Vector reinterpret cast operation"]
40312#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f16)"]
40313#[inline(always)]
40314#[cfg(target_endian = "big")]
40315#[target_feature(enable = "neon")]
40316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40318#[cfg_attr(
40319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40320    assert_instr(nop)
40321)]
40322#[cfg_attr(
40323    not(target_arch = "arm"),
40324    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40325)]
40326#[cfg_attr(
40327    target_arch = "arm",
40328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40329)]
40330#[cfg(not(target_arch = "arm64ec"))]
40331pub fn vreinterpret_s32_f16(a: float16x4_t) -> int32x2_t {
40332    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40333    unsafe {
40334        let ret_val: int32x2_t = transmute(a);
40335        simd_shuffle!(ret_val, ret_val, [1, 0])
40336    }
40337}
40338#[doc = "Vector reinterpret cast operation"]
40339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f16)"]
40340#[inline(always)]
40341#[cfg(target_endian = "little")]
40342#[target_feature(enable = "neon")]
40343#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40344#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40345#[cfg_attr(
40346    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40347    assert_instr(nop)
40348)]
40349#[cfg_attr(
40350    not(target_arch = "arm"),
40351    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40352)]
40353#[cfg_attr(
40354    target_arch = "arm",
40355    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40356)]
40357#[cfg(not(target_arch = "arm64ec"))]
40358pub fn vreinterpret_s64_f16(a: float16x4_t) -> int64x1_t {
40359    unsafe { transmute(a) }
40360}
40361#[doc = "Vector reinterpret cast operation"]
40362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f16)"]
40363#[inline(always)]
40364#[cfg(target_endian = "big")]
40365#[target_feature(enable = "neon")]
40366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40368#[cfg_attr(
40369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40370    assert_instr(nop)
40371)]
40372#[cfg_attr(
40373    not(target_arch = "arm"),
40374    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40375)]
40376#[cfg_attr(
40377    target_arch = "arm",
40378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40379)]
40380#[cfg(not(target_arch = "arm64ec"))]
40381pub fn vreinterpret_s64_f16(a: float16x4_t) -> int64x1_t {
40382    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40383    unsafe { transmute(a) }
40384}
40385#[doc = "Vector reinterpret cast operation"]
40386#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f16)"]
40387#[inline(always)]
40388#[cfg(target_endian = "little")]
40389#[target_feature(enable = "neon")]
40390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40392#[cfg_attr(
40393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40394    assert_instr(nop)
40395)]
40396#[cfg_attr(
40397    not(target_arch = "arm"),
40398    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40399)]
40400#[cfg_attr(
40401    target_arch = "arm",
40402    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40403)]
40404#[cfg(not(target_arch = "arm64ec"))]
40405pub fn vreinterpret_u8_f16(a: float16x4_t) -> uint8x8_t {
40406    unsafe { transmute(a) }
40407}
40408#[doc = "Vector reinterpret cast operation"]
40409#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f16)"]
40410#[inline(always)]
40411#[cfg(target_endian = "big")]
40412#[target_feature(enable = "neon")]
40413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40414#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40415#[cfg_attr(
40416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40417    assert_instr(nop)
40418)]
40419#[cfg_attr(
40420    not(target_arch = "arm"),
40421    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40422)]
40423#[cfg_attr(
40424    target_arch = "arm",
40425    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40426)]
40427#[cfg(not(target_arch = "arm64ec"))]
40428pub fn vreinterpret_u8_f16(a: float16x4_t) -> uint8x8_t {
40429    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40430    unsafe {
40431        let ret_val: uint8x8_t = transmute(a);
40432        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
40433    }
40434}
40435#[doc = "Vector reinterpret cast operation"]
40436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f16)"]
40437#[inline(always)]
40438#[cfg(target_endian = "little")]
40439#[target_feature(enable = "neon")]
40440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40442#[cfg_attr(
40443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40444    assert_instr(nop)
40445)]
40446#[cfg_attr(
40447    not(target_arch = "arm"),
40448    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40449)]
40450#[cfg_attr(
40451    target_arch = "arm",
40452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40453)]
40454#[cfg(not(target_arch = "arm64ec"))]
40455pub fn vreinterpret_u16_f16(a: float16x4_t) -> uint16x4_t {
40456    unsafe { transmute(a) }
40457}
40458#[doc = "Vector reinterpret cast operation"]
40459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f16)"]
40460#[inline(always)]
40461#[cfg(target_endian = "big")]
40462#[target_feature(enable = "neon")]
40463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40465#[cfg_attr(
40466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40467    assert_instr(nop)
40468)]
40469#[cfg_attr(
40470    not(target_arch = "arm"),
40471    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40472)]
40473#[cfg_attr(
40474    target_arch = "arm",
40475    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40476)]
40477#[cfg(not(target_arch = "arm64ec"))]
40478pub fn vreinterpret_u16_f16(a: float16x4_t) -> uint16x4_t {
40479    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40480    unsafe {
40481        let ret_val: uint16x4_t = transmute(a);
40482        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40483    }
40484}
40485#[doc = "Vector reinterpret cast operation"]
40486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f16)"]
40487#[inline(always)]
40488#[cfg(target_endian = "little")]
40489#[target_feature(enable = "neon")]
40490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40492#[cfg_attr(
40493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40494    assert_instr(nop)
40495)]
40496#[cfg_attr(
40497    not(target_arch = "arm"),
40498    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40499)]
40500#[cfg_attr(
40501    target_arch = "arm",
40502    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40503)]
40504#[cfg(not(target_arch = "arm64ec"))]
40505pub fn vreinterpret_u32_f16(a: float16x4_t) -> uint32x2_t {
40506    unsafe { transmute(a) }
40507}
40508#[doc = "Vector reinterpret cast operation"]
40509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f16)"]
40510#[inline(always)]
40511#[cfg(target_endian = "big")]
40512#[target_feature(enable = "neon")]
40513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40515#[cfg_attr(
40516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40517    assert_instr(nop)
40518)]
40519#[cfg_attr(
40520    not(target_arch = "arm"),
40521    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40522)]
40523#[cfg_attr(
40524    target_arch = "arm",
40525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40526)]
40527#[cfg(not(target_arch = "arm64ec"))]
40528pub fn vreinterpret_u32_f16(a: float16x4_t) -> uint32x2_t {
40529    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40530    unsafe {
40531        let ret_val: uint32x2_t = transmute(a);
40532        simd_shuffle!(ret_val, ret_val, [1, 0])
40533    }
40534}
40535#[doc = "Vector reinterpret cast operation"]
40536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f16)"]
40537#[inline(always)]
40538#[cfg(target_endian = "little")]
40539#[target_feature(enable = "neon")]
40540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40542#[cfg_attr(
40543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40544    assert_instr(nop)
40545)]
40546#[cfg_attr(
40547    not(target_arch = "arm"),
40548    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40549)]
40550#[cfg_attr(
40551    target_arch = "arm",
40552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40553)]
40554#[cfg(not(target_arch = "arm64ec"))]
40555pub fn vreinterpret_u64_f16(a: float16x4_t) -> uint64x1_t {
40556    unsafe { transmute(a) }
40557}
40558#[doc = "Vector reinterpret cast operation"]
40559#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f16)"]
40560#[inline(always)]
40561#[cfg(target_endian = "big")]
40562#[target_feature(enable = "neon")]
40563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40564#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40565#[cfg_attr(
40566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40567    assert_instr(nop)
40568)]
40569#[cfg_attr(
40570    not(target_arch = "arm"),
40571    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40572)]
40573#[cfg_attr(
40574    target_arch = "arm",
40575    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40576)]
40577#[cfg(not(target_arch = "arm64ec"))]
40578pub fn vreinterpret_u64_f16(a: float16x4_t) -> uint64x1_t {
40579    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40580    unsafe { transmute(a) }
40581}
40582#[doc = "Vector reinterpret cast operation"]
40583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f16)"]
40584#[inline(always)]
40585#[cfg(target_endian = "little")]
40586#[target_feature(enable = "neon")]
40587#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40588#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40589#[cfg_attr(
40590    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40591    assert_instr(nop)
40592)]
40593#[cfg_attr(
40594    not(target_arch = "arm"),
40595    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40596)]
40597#[cfg_attr(
40598    target_arch = "arm",
40599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40600)]
40601#[cfg(not(target_arch = "arm64ec"))]
40602pub fn vreinterpret_p8_f16(a: float16x4_t) -> poly8x8_t {
40603    unsafe { transmute(a) }
40604}
40605#[doc = "Vector reinterpret cast operation"]
40606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f16)"]
40607#[inline(always)]
40608#[cfg(target_endian = "big")]
40609#[target_feature(enable = "neon")]
40610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40611#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40612#[cfg_attr(
40613    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40614    assert_instr(nop)
40615)]
40616#[cfg_attr(
40617    not(target_arch = "arm"),
40618    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40619)]
40620#[cfg_attr(
40621    target_arch = "arm",
40622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40623)]
40624#[cfg(not(target_arch = "arm64ec"))]
40625pub fn vreinterpret_p8_f16(a: float16x4_t) -> poly8x8_t {
40626    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40627    unsafe {
40628        let ret_val: poly8x8_t = transmute(a);
40629        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
40630    }
40631}
40632#[doc = "Vector reinterpret cast operation"]
40633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f16)"]
40634#[inline(always)]
40635#[cfg(target_endian = "little")]
40636#[target_feature(enable = "neon")]
40637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40639#[cfg_attr(
40640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40641    assert_instr(nop)
40642)]
40643#[cfg_attr(
40644    not(target_arch = "arm"),
40645    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40646)]
40647#[cfg_attr(
40648    target_arch = "arm",
40649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40650)]
40651#[cfg(not(target_arch = "arm64ec"))]
40652pub fn vreinterpret_p16_f16(a: float16x4_t) -> poly16x4_t {
40653    unsafe { transmute(a) }
40654}
40655#[doc = "Vector reinterpret cast operation"]
40656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f16)"]
40657#[inline(always)]
40658#[cfg(target_endian = "big")]
40659#[target_feature(enable = "neon")]
40660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40661#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40662#[cfg_attr(
40663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40664    assert_instr(nop)
40665)]
40666#[cfg_attr(
40667    not(target_arch = "arm"),
40668    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40669)]
40670#[cfg_attr(
40671    target_arch = "arm",
40672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40673)]
40674#[cfg(not(target_arch = "arm64ec"))]
40675pub fn vreinterpret_p16_f16(a: float16x4_t) -> poly16x4_t {
40676    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
40677    unsafe {
40678        let ret_val: poly16x4_t = transmute(a);
40679        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40680    }
40681}
40682#[doc = "Vector reinterpret cast operation"]
40683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_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_f32_f16(a: float16x8_t) -> float32x4_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_f32_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_f32_f16(a: float16x8_t) -> float32x4_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: float32x4_t = transmute(a);
40729        simd_shuffle!(ret_val, ret_val, [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_s8_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_s8_f16(a: float16x8_t) -> int8x16_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_s8_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_s8_f16(a: float16x8_t) -> int8x16_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: int8x16_t = transmute(a);
40779        simd_shuffle!(
40780            ret_val,
40781            ret_val,
40782            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
40783        )
40784    }
40785}
40786#[doc = "Vector reinterpret cast operation"]
40787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f16)"]
40788#[inline(always)]
40789#[cfg(target_endian = "little")]
40790#[target_feature(enable = "neon")]
40791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40793#[cfg_attr(
40794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40795    assert_instr(nop)
40796)]
40797#[cfg_attr(
40798    not(target_arch = "arm"),
40799    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40800)]
40801#[cfg_attr(
40802    target_arch = "arm",
40803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40804)]
40805#[cfg(not(target_arch = "arm64ec"))]
40806pub fn vreinterpretq_s16_f16(a: float16x8_t) -> int16x8_t {
40807    unsafe { transmute(a) }
40808}
40809#[doc = "Vector reinterpret cast operation"]
40810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f16)"]
40811#[inline(always)]
40812#[cfg(target_endian = "big")]
40813#[target_feature(enable = "neon")]
40814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40816#[cfg_attr(
40817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40818    assert_instr(nop)
40819)]
40820#[cfg_attr(
40821    not(target_arch = "arm"),
40822    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40823)]
40824#[cfg_attr(
40825    target_arch = "arm",
40826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40827)]
40828#[cfg(not(target_arch = "arm64ec"))]
40829pub fn vreinterpretq_s16_f16(a: float16x8_t) -> int16x8_t {
40830    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40831    unsafe {
40832        let ret_val: int16x8_t = transmute(a);
40833        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
40834    }
40835}
40836#[doc = "Vector reinterpret cast operation"]
40837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f16)"]
40838#[inline(always)]
40839#[cfg(target_endian = "little")]
40840#[target_feature(enable = "neon")]
40841#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40842#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40843#[cfg_attr(
40844    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40845    assert_instr(nop)
40846)]
40847#[cfg_attr(
40848    not(target_arch = "arm"),
40849    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40850)]
40851#[cfg_attr(
40852    target_arch = "arm",
40853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40854)]
40855#[cfg(not(target_arch = "arm64ec"))]
40856pub fn vreinterpretq_s32_f16(a: float16x8_t) -> int32x4_t {
40857    unsafe { transmute(a) }
40858}
40859#[doc = "Vector reinterpret cast operation"]
40860#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f16)"]
40861#[inline(always)]
40862#[cfg(target_endian = "big")]
40863#[target_feature(enable = "neon")]
40864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40865#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40866#[cfg_attr(
40867    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40868    assert_instr(nop)
40869)]
40870#[cfg_attr(
40871    not(target_arch = "arm"),
40872    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
40873)]
40874#[cfg_attr(
40875    target_arch = "arm",
40876    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
40877)]
40878#[cfg(not(target_arch = "arm64ec"))]
40879pub fn vreinterpretq_s32_f16(a: float16x8_t) -> int32x4_t {
40880    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
40881    unsafe {
40882        let ret_val: int32x4_t = transmute(a);
40883        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
40884    }
40885}
40886#[doc = "Vector reinterpret cast operation"]
40887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_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_s64_f16(a: float16x8_t) -> int64x2_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_s64_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_s64_f16(a: float16x8_t) -> int64x2_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: int64x2_t = transmute(a);
40933        simd_shuffle!(ret_val, ret_val, [1, 0])
40934    }
40935}
40936#[doc = "Vector reinterpret cast operation"]
40937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_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_u8_f16(a: float16x8_t) -> uint8x16_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_u8_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_u8_f16(a: float16x8_t) -> uint8x16_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: uint8x16_t = transmute(a);
40983        simd_shuffle!(
40984            ret_val,
40985            ret_val,
40986            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
40987        )
40988    }
40989}
40990#[doc = "Vector reinterpret cast operation"]
40991#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f16)"]
40992#[inline(always)]
40993#[cfg(target_endian = "little")]
40994#[target_feature(enable = "neon")]
40995#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
40996#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
40997#[cfg_attr(
40998    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
40999    assert_instr(nop)
41000)]
41001#[cfg_attr(
41002    not(target_arch = "arm"),
41003    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41004)]
41005#[cfg_attr(
41006    target_arch = "arm",
41007    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41008)]
41009#[cfg(not(target_arch = "arm64ec"))]
41010pub fn vreinterpretq_u16_f16(a: float16x8_t) -> uint16x8_t {
41011    unsafe { transmute(a) }
41012}
41013#[doc = "Vector reinterpret cast operation"]
41014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f16)"]
41015#[inline(always)]
41016#[cfg(target_endian = "big")]
41017#[target_feature(enable = "neon")]
41018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41020#[cfg_attr(
41021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41022    assert_instr(nop)
41023)]
41024#[cfg_attr(
41025    not(target_arch = "arm"),
41026    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41027)]
41028#[cfg_attr(
41029    target_arch = "arm",
41030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41031)]
41032#[cfg(not(target_arch = "arm64ec"))]
41033pub fn vreinterpretq_u16_f16(a: float16x8_t) -> uint16x8_t {
41034    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41035    unsafe {
41036        let ret_val: uint16x8_t = transmute(a);
41037        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41038    }
41039}
41040#[doc = "Vector reinterpret cast operation"]
41041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f16)"]
41042#[inline(always)]
41043#[cfg(target_endian = "little")]
41044#[target_feature(enable = "neon")]
41045#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41046#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41047#[cfg_attr(
41048    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41049    assert_instr(nop)
41050)]
41051#[cfg_attr(
41052    not(target_arch = "arm"),
41053    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41054)]
41055#[cfg_attr(
41056    target_arch = "arm",
41057    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41058)]
41059#[cfg(not(target_arch = "arm64ec"))]
41060pub fn vreinterpretq_u32_f16(a: float16x8_t) -> uint32x4_t {
41061    unsafe { transmute(a) }
41062}
41063#[doc = "Vector reinterpret cast operation"]
41064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f16)"]
41065#[inline(always)]
41066#[cfg(target_endian = "big")]
41067#[target_feature(enable = "neon")]
41068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41070#[cfg_attr(
41071    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41072    assert_instr(nop)
41073)]
41074#[cfg_attr(
41075    not(target_arch = "arm"),
41076    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41077)]
41078#[cfg_attr(
41079    target_arch = "arm",
41080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41081)]
41082#[cfg(not(target_arch = "arm64ec"))]
41083pub fn vreinterpretq_u32_f16(a: float16x8_t) -> uint32x4_t {
41084    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41085    unsafe {
41086        let ret_val: uint32x4_t = transmute(a);
41087        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41088    }
41089}
41090#[doc = "Vector reinterpret cast operation"]
41091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_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_u64_f16(a: float16x8_t) -> uint64x2_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_u64_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_u64_f16(a: float16x8_t) -> uint64x2_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: uint64x2_t = transmute(a);
41137        simd_shuffle!(ret_val, ret_val, [1, 0])
41138    }
41139}
41140#[doc = "Vector reinterpret cast operation"]
41141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f16)"]
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 vreinterpretq_p8_f16(a: float16x8_t) -> poly8x16_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/vreinterpretq_p8_f16)"]
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 vreinterpretq_p8_f16(a: float16x8_t) -> poly8x16_t {
41184    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41185    unsafe {
41186        let ret_val: poly8x16_t = transmute(a);
41187        simd_shuffle!(
41188            ret_val,
41189            ret_val,
41190            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
41191        )
41192    }
41193}
41194#[doc = "Vector reinterpret cast operation"]
41195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f16)"]
41196#[inline(always)]
41197#[cfg(target_endian = "little")]
41198#[target_feature(enable = "neon")]
41199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41200#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41201#[cfg_attr(
41202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41203    assert_instr(nop)
41204)]
41205#[cfg_attr(
41206    not(target_arch = "arm"),
41207    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41208)]
41209#[cfg_attr(
41210    target_arch = "arm",
41211    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41212)]
41213#[cfg(not(target_arch = "arm64ec"))]
41214pub fn vreinterpretq_p16_f16(a: float16x8_t) -> poly16x8_t {
41215    unsafe { transmute(a) }
41216}
41217#[doc = "Vector reinterpret cast operation"]
41218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f16)"]
41219#[inline(always)]
41220#[cfg(target_endian = "big")]
41221#[target_feature(enable = "neon")]
41222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41223#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41224#[cfg_attr(
41225    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41226    assert_instr(nop)
41227)]
41228#[cfg_attr(
41229    not(target_arch = "arm"),
41230    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41231)]
41232#[cfg_attr(
41233    target_arch = "arm",
41234    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41235)]
41236#[cfg(not(target_arch = "arm64ec"))]
41237pub fn vreinterpretq_p16_f16(a: float16x8_t) -> poly16x8_t {
41238    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41239    unsafe {
41240        let ret_val: poly16x8_t = transmute(a);
41241        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41242    }
41243}
41244#[doc = "Vector reinterpret cast operation"]
41245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_f32)"]
41246#[inline(always)]
41247#[cfg(target_endian = "little")]
41248#[target_feature(enable = "neon")]
41249#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41250#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41251#[cfg_attr(
41252    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41253    assert_instr(nop)
41254)]
41255#[cfg_attr(
41256    not(target_arch = "arm"),
41257    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41258)]
41259#[cfg_attr(
41260    target_arch = "arm",
41261    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41262)]
41263#[cfg(not(target_arch = "arm64ec"))]
41264pub fn vreinterpret_f16_f32(a: float32x2_t) -> float16x4_t {
41265    unsafe { transmute(a) }
41266}
41267#[doc = "Vector reinterpret cast operation"]
41268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_f32)"]
41269#[inline(always)]
41270#[cfg(target_endian = "big")]
41271#[target_feature(enable = "neon")]
41272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41274#[cfg_attr(
41275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41276    assert_instr(nop)
41277)]
41278#[cfg_attr(
41279    not(target_arch = "arm"),
41280    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41281)]
41282#[cfg_attr(
41283    target_arch = "arm",
41284    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41285)]
41286#[cfg(not(target_arch = "arm64ec"))]
41287pub fn vreinterpret_f16_f32(a: float32x2_t) -> float16x4_t {
41288    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
41289    unsafe {
41290        let ret_val: float16x4_t = transmute(a);
41291        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41292    }
41293}
41294#[doc = "Vector reinterpret cast operation"]
41295#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_f32)"]
41296#[inline(always)]
41297#[cfg(target_endian = "little")]
41298#[target_feature(enable = "neon")]
41299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41300#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41301#[cfg_attr(
41302    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41303    assert_instr(nop)
41304)]
41305#[cfg_attr(
41306    not(target_arch = "arm"),
41307    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41308)]
41309#[cfg_attr(
41310    target_arch = "arm",
41311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41312)]
41313#[cfg(not(target_arch = "arm64ec"))]
41314pub fn vreinterpretq_f16_f32(a: float32x4_t) -> float16x8_t {
41315    unsafe { transmute(a) }
41316}
41317#[doc = "Vector reinterpret cast operation"]
41318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_f32)"]
41319#[inline(always)]
41320#[cfg(target_endian = "big")]
41321#[target_feature(enable = "neon")]
41322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41323#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41324#[cfg_attr(
41325    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41326    assert_instr(nop)
41327)]
41328#[cfg_attr(
41329    not(target_arch = "arm"),
41330    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41331)]
41332#[cfg_attr(
41333    target_arch = "arm",
41334    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41335)]
41336#[cfg(not(target_arch = "arm64ec"))]
41337pub fn vreinterpretq_f16_f32(a: float32x4_t) -> float16x8_t {
41338    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41339    unsafe {
41340        let ret_val: float16x8_t = transmute(a);
41341        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41342    }
41343}
41344#[doc = "Vector reinterpret cast operation"]
41345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s8)"]
41346#[inline(always)]
41347#[cfg(target_endian = "little")]
41348#[target_feature(enable = "neon")]
41349#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41350#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41351#[cfg_attr(
41352    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41353    assert_instr(nop)
41354)]
41355#[cfg_attr(
41356    not(target_arch = "arm"),
41357    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41358)]
41359#[cfg_attr(
41360    target_arch = "arm",
41361    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41362)]
41363#[cfg(not(target_arch = "arm64ec"))]
41364pub fn vreinterpret_f16_s8(a: int8x8_t) -> float16x4_t {
41365    unsafe { transmute(a) }
41366}
41367#[doc = "Vector reinterpret cast operation"]
41368#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s8)"]
41369#[inline(always)]
41370#[cfg(target_endian = "big")]
41371#[target_feature(enable = "neon")]
41372#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41373#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41374#[cfg_attr(
41375    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41376    assert_instr(nop)
41377)]
41378#[cfg_attr(
41379    not(target_arch = "arm"),
41380    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41381)]
41382#[cfg_attr(
41383    target_arch = "arm",
41384    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41385)]
41386#[cfg(not(target_arch = "arm64ec"))]
41387pub fn vreinterpret_f16_s8(a: int8x8_t) -> float16x4_t {
41388    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41389    unsafe {
41390        let ret_val: float16x4_t = transmute(a);
41391        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41392    }
41393}
41394#[doc = "Vector reinterpret cast operation"]
41395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s8)"]
41396#[inline(always)]
41397#[cfg(target_endian = "little")]
41398#[target_feature(enable = "neon")]
41399#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41400#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41401#[cfg_attr(
41402    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41403    assert_instr(nop)
41404)]
41405#[cfg_attr(
41406    not(target_arch = "arm"),
41407    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41408)]
41409#[cfg_attr(
41410    target_arch = "arm",
41411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41412)]
41413#[cfg(not(target_arch = "arm64ec"))]
41414pub fn vreinterpretq_f16_s8(a: int8x16_t) -> float16x8_t {
41415    unsafe { transmute(a) }
41416}
41417#[doc = "Vector reinterpret cast operation"]
41418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s8)"]
41419#[inline(always)]
41420#[cfg(target_endian = "big")]
41421#[target_feature(enable = "neon")]
41422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41424#[cfg_attr(
41425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41426    assert_instr(nop)
41427)]
41428#[cfg_attr(
41429    not(target_arch = "arm"),
41430    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41431)]
41432#[cfg_attr(
41433    target_arch = "arm",
41434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41435)]
41436#[cfg(not(target_arch = "arm64ec"))]
41437pub fn vreinterpretq_f16_s8(a: int8x16_t) -> float16x8_t {
41438    let a: int8x16_t =
41439        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
41440    unsafe {
41441        let ret_val: float16x8_t = transmute(a);
41442        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41443    }
41444}
41445#[doc = "Vector reinterpret cast operation"]
41446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s16)"]
41447#[inline(always)]
41448#[cfg(target_endian = "little")]
41449#[target_feature(enable = "neon")]
41450#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41451#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41452#[cfg_attr(
41453    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41454    assert_instr(nop)
41455)]
41456#[cfg_attr(
41457    not(target_arch = "arm"),
41458    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41459)]
41460#[cfg_attr(
41461    target_arch = "arm",
41462    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41463)]
41464#[cfg(not(target_arch = "arm64ec"))]
41465pub fn vreinterpret_f16_s16(a: int16x4_t) -> float16x4_t {
41466    unsafe { transmute(a) }
41467}
41468#[doc = "Vector reinterpret cast operation"]
41469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s16)"]
41470#[inline(always)]
41471#[cfg(target_endian = "big")]
41472#[target_feature(enable = "neon")]
41473#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41474#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41475#[cfg_attr(
41476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41477    assert_instr(nop)
41478)]
41479#[cfg_attr(
41480    not(target_arch = "arm"),
41481    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41482)]
41483#[cfg_attr(
41484    target_arch = "arm",
41485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41486)]
41487#[cfg(not(target_arch = "arm64ec"))]
41488pub fn vreinterpret_f16_s16(a: int16x4_t) -> float16x4_t {
41489    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41490    unsafe {
41491        let ret_val: float16x4_t = transmute(a);
41492        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41493    }
41494}
41495#[doc = "Vector reinterpret cast operation"]
41496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s16)"]
41497#[inline(always)]
41498#[cfg(target_endian = "little")]
41499#[target_feature(enable = "neon")]
41500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41502#[cfg_attr(
41503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41504    assert_instr(nop)
41505)]
41506#[cfg_attr(
41507    not(target_arch = "arm"),
41508    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41509)]
41510#[cfg_attr(
41511    target_arch = "arm",
41512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41513)]
41514#[cfg(not(target_arch = "arm64ec"))]
41515pub fn vreinterpretq_f16_s16(a: int16x8_t) -> float16x8_t {
41516    unsafe { transmute(a) }
41517}
41518#[doc = "Vector reinterpret cast operation"]
41519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s16)"]
41520#[inline(always)]
41521#[cfg(target_endian = "big")]
41522#[target_feature(enable = "neon")]
41523#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41524#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41525#[cfg_attr(
41526    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41527    assert_instr(nop)
41528)]
41529#[cfg_attr(
41530    not(target_arch = "arm"),
41531    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41532)]
41533#[cfg_attr(
41534    target_arch = "arm",
41535    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41536)]
41537#[cfg(not(target_arch = "arm64ec"))]
41538pub fn vreinterpretq_f16_s16(a: int16x8_t) -> float16x8_t {
41539    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41540    unsafe {
41541        let ret_val: float16x8_t = transmute(a);
41542        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41543    }
41544}
41545#[doc = "Vector reinterpret cast operation"]
41546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s32)"]
41547#[inline(always)]
41548#[cfg(target_endian = "little")]
41549#[target_feature(enable = "neon")]
41550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41551#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41552#[cfg_attr(
41553    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41554    assert_instr(nop)
41555)]
41556#[cfg_attr(
41557    not(target_arch = "arm"),
41558    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41559)]
41560#[cfg_attr(
41561    target_arch = "arm",
41562    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41563)]
41564#[cfg(not(target_arch = "arm64ec"))]
41565pub fn vreinterpret_f16_s32(a: int32x2_t) -> float16x4_t {
41566    unsafe { transmute(a) }
41567}
41568#[doc = "Vector reinterpret cast operation"]
41569#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s32)"]
41570#[inline(always)]
41571#[cfg(target_endian = "big")]
41572#[target_feature(enable = "neon")]
41573#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41574#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41575#[cfg_attr(
41576    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41577    assert_instr(nop)
41578)]
41579#[cfg_attr(
41580    not(target_arch = "arm"),
41581    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41582)]
41583#[cfg_attr(
41584    target_arch = "arm",
41585    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41586)]
41587#[cfg(not(target_arch = "arm64ec"))]
41588pub fn vreinterpret_f16_s32(a: int32x2_t) -> float16x4_t {
41589    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
41590    unsafe {
41591        let ret_val: float16x4_t = transmute(a);
41592        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41593    }
41594}
41595#[doc = "Vector reinterpret cast operation"]
41596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s32)"]
41597#[inline(always)]
41598#[cfg(target_endian = "little")]
41599#[target_feature(enable = "neon")]
41600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41601#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41602#[cfg_attr(
41603    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41604    assert_instr(nop)
41605)]
41606#[cfg_attr(
41607    not(target_arch = "arm"),
41608    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41609)]
41610#[cfg_attr(
41611    target_arch = "arm",
41612    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41613)]
41614#[cfg(not(target_arch = "arm64ec"))]
41615pub fn vreinterpretq_f16_s32(a: int32x4_t) -> float16x8_t {
41616    unsafe { transmute(a) }
41617}
41618#[doc = "Vector reinterpret cast operation"]
41619#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s32)"]
41620#[inline(always)]
41621#[cfg(target_endian = "big")]
41622#[target_feature(enable = "neon")]
41623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41625#[cfg_attr(
41626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41627    assert_instr(nop)
41628)]
41629#[cfg_attr(
41630    not(target_arch = "arm"),
41631    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41632)]
41633#[cfg_attr(
41634    target_arch = "arm",
41635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41636)]
41637#[cfg(not(target_arch = "arm64ec"))]
41638pub fn vreinterpretq_f16_s32(a: int32x4_t) -> float16x8_t {
41639    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41640    unsafe {
41641        let ret_val: float16x8_t = transmute(a);
41642        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41643    }
41644}
41645#[doc = "Vector reinterpret cast operation"]
41646#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s64)"]
41647#[inline(always)]
41648#[cfg(target_endian = "little")]
41649#[target_feature(enable = "neon")]
41650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41651#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41652#[cfg_attr(
41653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41654    assert_instr(nop)
41655)]
41656#[cfg_attr(
41657    not(target_arch = "arm"),
41658    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41659)]
41660#[cfg_attr(
41661    target_arch = "arm",
41662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41663)]
41664#[cfg(not(target_arch = "arm64ec"))]
41665pub fn vreinterpret_f16_s64(a: int64x1_t) -> float16x4_t {
41666    unsafe { transmute(a) }
41667}
41668#[doc = "Vector reinterpret cast operation"]
41669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_s64)"]
41670#[inline(always)]
41671#[cfg(target_endian = "big")]
41672#[target_feature(enable = "neon")]
41673#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41674#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41675#[cfg_attr(
41676    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41677    assert_instr(nop)
41678)]
41679#[cfg_attr(
41680    not(target_arch = "arm"),
41681    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41682)]
41683#[cfg_attr(
41684    target_arch = "arm",
41685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41686)]
41687#[cfg(not(target_arch = "arm64ec"))]
41688pub fn vreinterpret_f16_s64(a: int64x1_t) -> float16x4_t {
41689    unsafe {
41690        let ret_val: float16x4_t = transmute(a);
41691        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41692    }
41693}
41694#[doc = "Vector reinterpret cast operation"]
41695#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s64)"]
41696#[inline(always)]
41697#[cfg(target_endian = "little")]
41698#[target_feature(enable = "neon")]
41699#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41700#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41701#[cfg_attr(
41702    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41703    assert_instr(nop)
41704)]
41705#[cfg_attr(
41706    not(target_arch = "arm"),
41707    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41708)]
41709#[cfg_attr(
41710    target_arch = "arm",
41711    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41712)]
41713#[cfg(not(target_arch = "arm64ec"))]
41714pub fn vreinterpretq_f16_s64(a: int64x2_t) -> float16x8_t {
41715    unsafe { transmute(a) }
41716}
41717#[doc = "Vector reinterpret cast operation"]
41718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_s64)"]
41719#[inline(always)]
41720#[cfg(target_endian = "big")]
41721#[target_feature(enable = "neon")]
41722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41724#[cfg_attr(
41725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41726    assert_instr(nop)
41727)]
41728#[cfg_attr(
41729    not(target_arch = "arm"),
41730    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41731)]
41732#[cfg_attr(
41733    target_arch = "arm",
41734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41735)]
41736#[cfg(not(target_arch = "arm64ec"))]
41737pub fn vreinterpretq_f16_s64(a: int64x2_t) -> float16x8_t {
41738    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
41739    unsafe {
41740        let ret_val: float16x8_t = transmute(a);
41741        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41742    }
41743}
41744#[doc = "Vector reinterpret cast operation"]
41745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u8)"]
41746#[inline(always)]
41747#[cfg(target_endian = "little")]
41748#[target_feature(enable = "neon")]
41749#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41750#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41751#[cfg_attr(
41752    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41753    assert_instr(nop)
41754)]
41755#[cfg_attr(
41756    not(target_arch = "arm"),
41757    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41758)]
41759#[cfg_attr(
41760    target_arch = "arm",
41761    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41762)]
41763#[cfg(not(target_arch = "arm64ec"))]
41764pub fn vreinterpret_f16_u8(a: uint8x8_t) -> float16x4_t {
41765    unsafe { transmute(a) }
41766}
41767#[doc = "Vector reinterpret cast operation"]
41768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u8)"]
41769#[inline(always)]
41770#[cfg(target_endian = "big")]
41771#[target_feature(enable = "neon")]
41772#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41773#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41774#[cfg_attr(
41775    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41776    assert_instr(nop)
41777)]
41778#[cfg_attr(
41779    not(target_arch = "arm"),
41780    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41781)]
41782#[cfg_attr(
41783    target_arch = "arm",
41784    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41785)]
41786#[cfg(not(target_arch = "arm64ec"))]
41787pub fn vreinterpret_f16_u8(a: uint8x8_t) -> float16x4_t {
41788    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41789    unsafe {
41790        let ret_val: float16x4_t = transmute(a);
41791        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41792    }
41793}
41794#[doc = "Vector reinterpret cast operation"]
41795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u8)"]
41796#[inline(always)]
41797#[cfg(target_endian = "little")]
41798#[target_feature(enable = "neon")]
41799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41800#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41801#[cfg_attr(
41802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41803    assert_instr(nop)
41804)]
41805#[cfg_attr(
41806    not(target_arch = "arm"),
41807    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41808)]
41809#[cfg_attr(
41810    target_arch = "arm",
41811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41812)]
41813#[cfg(not(target_arch = "arm64ec"))]
41814pub fn vreinterpretq_f16_u8(a: uint8x16_t) -> float16x8_t {
41815    unsafe { transmute(a) }
41816}
41817#[doc = "Vector reinterpret cast operation"]
41818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u8)"]
41819#[inline(always)]
41820#[cfg(target_endian = "big")]
41821#[target_feature(enable = "neon")]
41822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41824#[cfg_attr(
41825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41826    assert_instr(nop)
41827)]
41828#[cfg_attr(
41829    not(target_arch = "arm"),
41830    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41831)]
41832#[cfg_attr(
41833    target_arch = "arm",
41834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41835)]
41836#[cfg(not(target_arch = "arm64ec"))]
41837pub fn vreinterpretq_f16_u8(a: uint8x16_t) -> float16x8_t {
41838    let a: uint8x16_t =
41839        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
41840    unsafe {
41841        let ret_val: float16x8_t = transmute(a);
41842        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41843    }
41844}
41845#[doc = "Vector reinterpret cast operation"]
41846#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u16)"]
41847#[inline(always)]
41848#[cfg(target_endian = "little")]
41849#[target_feature(enable = "neon")]
41850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41852#[cfg_attr(
41853    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41854    assert_instr(nop)
41855)]
41856#[cfg_attr(
41857    not(target_arch = "arm"),
41858    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41859)]
41860#[cfg_attr(
41861    target_arch = "arm",
41862    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41863)]
41864#[cfg(not(target_arch = "arm64ec"))]
41865pub fn vreinterpret_f16_u16(a: uint16x4_t) -> float16x4_t {
41866    unsafe { transmute(a) }
41867}
41868#[doc = "Vector reinterpret cast operation"]
41869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u16)"]
41870#[inline(always)]
41871#[cfg(target_endian = "big")]
41872#[target_feature(enable = "neon")]
41873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41874#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41875#[cfg_attr(
41876    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41877    assert_instr(nop)
41878)]
41879#[cfg_attr(
41880    not(target_arch = "arm"),
41881    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41882)]
41883#[cfg_attr(
41884    target_arch = "arm",
41885    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41886)]
41887#[cfg(not(target_arch = "arm64ec"))]
41888pub fn vreinterpret_f16_u16(a: uint16x4_t) -> float16x4_t {
41889    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
41890    unsafe {
41891        let ret_val: float16x4_t = transmute(a);
41892        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41893    }
41894}
41895#[doc = "Vector reinterpret cast operation"]
41896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u16)"]
41897#[inline(always)]
41898#[cfg(target_endian = "little")]
41899#[target_feature(enable = "neon")]
41900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41901#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41902#[cfg_attr(
41903    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41904    assert_instr(nop)
41905)]
41906#[cfg_attr(
41907    not(target_arch = "arm"),
41908    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41909)]
41910#[cfg_attr(
41911    target_arch = "arm",
41912    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41913)]
41914#[cfg(not(target_arch = "arm64ec"))]
41915pub fn vreinterpretq_f16_u16(a: uint16x8_t) -> float16x8_t {
41916    unsafe { transmute(a) }
41917}
41918#[doc = "Vector reinterpret cast operation"]
41919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u16)"]
41920#[inline(always)]
41921#[cfg(target_endian = "big")]
41922#[target_feature(enable = "neon")]
41923#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41924#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41925#[cfg_attr(
41926    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41927    assert_instr(nop)
41928)]
41929#[cfg_attr(
41930    not(target_arch = "arm"),
41931    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41932)]
41933#[cfg_attr(
41934    target_arch = "arm",
41935    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41936)]
41937#[cfg(not(target_arch = "arm64ec"))]
41938pub fn vreinterpretq_f16_u16(a: uint16x8_t) -> float16x8_t {
41939    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
41940    unsafe {
41941        let ret_val: float16x8_t = transmute(a);
41942        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
41943    }
41944}
41945#[doc = "Vector reinterpret cast operation"]
41946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u32)"]
41947#[inline(always)]
41948#[cfg(target_endian = "little")]
41949#[target_feature(enable = "neon")]
41950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41951#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41952#[cfg_attr(
41953    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41954    assert_instr(nop)
41955)]
41956#[cfg_attr(
41957    not(target_arch = "arm"),
41958    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41959)]
41960#[cfg_attr(
41961    target_arch = "arm",
41962    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41963)]
41964#[cfg(not(target_arch = "arm64ec"))]
41965pub fn vreinterpret_f16_u32(a: uint32x2_t) -> float16x4_t {
41966    unsafe { transmute(a) }
41967}
41968#[doc = "Vector reinterpret cast operation"]
41969#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u32)"]
41970#[inline(always)]
41971#[cfg(target_endian = "big")]
41972#[target_feature(enable = "neon")]
41973#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
41974#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
41975#[cfg_attr(
41976    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
41977    assert_instr(nop)
41978)]
41979#[cfg_attr(
41980    not(target_arch = "arm"),
41981    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
41982)]
41983#[cfg_attr(
41984    target_arch = "arm",
41985    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
41986)]
41987#[cfg(not(target_arch = "arm64ec"))]
41988pub fn vreinterpret_f16_u32(a: uint32x2_t) -> float16x4_t {
41989    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
41990    unsafe {
41991        let ret_val: float16x4_t = transmute(a);
41992        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
41993    }
41994}
41995#[doc = "Vector reinterpret cast operation"]
41996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u32)"]
41997#[inline(always)]
41998#[cfg(target_endian = "little")]
41999#[target_feature(enable = "neon")]
42000#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42001#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42002#[cfg_attr(
42003    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42004    assert_instr(nop)
42005)]
42006#[cfg_attr(
42007    not(target_arch = "arm"),
42008    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42009)]
42010#[cfg_attr(
42011    target_arch = "arm",
42012    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42013)]
42014#[cfg(not(target_arch = "arm64ec"))]
42015pub fn vreinterpretq_f16_u32(a: uint32x4_t) -> float16x8_t {
42016    unsafe { transmute(a) }
42017}
42018#[doc = "Vector reinterpret cast operation"]
42019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u32)"]
42020#[inline(always)]
42021#[cfg(target_endian = "big")]
42022#[target_feature(enable = "neon")]
42023#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42024#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42025#[cfg_attr(
42026    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42027    assert_instr(nop)
42028)]
42029#[cfg_attr(
42030    not(target_arch = "arm"),
42031    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42032)]
42033#[cfg_attr(
42034    target_arch = "arm",
42035    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42036)]
42037#[cfg(not(target_arch = "arm64ec"))]
42038pub fn vreinterpretq_f16_u32(a: uint32x4_t) -> float16x8_t {
42039    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42040    unsafe {
42041        let ret_val: float16x8_t = transmute(a);
42042        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42043    }
42044}
42045#[doc = "Vector reinterpret cast operation"]
42046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u64)"]
42047#[inline(always)]
42048#[cfg(target_endian = "little")]
42049#[target_feature(enable = "neon")]
42050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42052#[cfg_attr(
42053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42054    assert_instr(nop)
42055)]
42056#[cfg_attr(
42057    not(target_arch = "arm"),
42058    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42059)]
42060#[cfg_attr(
42061    target_arch = "arm",
42062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42063)]
42064#[cfg(not(target_arch = "arm64ec"))]
42065pub fn vreinterpret_f16_u64(a: uint64x1_t) -> float16x4_t {
42066    unsafe { transmute(a) }
42067}
42068#[doc = "Vector reinterpret cast operation"]
42069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_u64)"]
42070#[inline(always)]
42071#[cfg(target_endian = "big")]
42072#[target_feature(enable = "neon")]
42073#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42074#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42075#[cfg_attr(
42076    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42077    assert_instr(nop)
42078)]
42079#[cfg_attr(
42080    not(target_arch = "arm"),
42081    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42082)]
42083#[cfg_attr(
42084    target_arch = "arm",
42085    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42086)]
42087#[cfg(not(target_arch = "arm64ec"))]
42088pub fn vreinterpret_f16_u64(a: uint64x1_t) -> float16x4_t {
42089    unsafe {
42090        let ret_val: float16x4_t = transmute(a);
42091        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42092    }
42093}
42094#[doc = "Vector reinterpret cast operation"]
42095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u64)"]
42096#[inline(always)]
42097#[cfg(target_endian = "little")]
42098#[target_feature(enable = "neon")]
42099#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42100#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42101#[cfg_attr(
42102    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42103    assert_instr(nop)
42104)]
42105#[cfg_attr(
42106    not(target_arch = "arm"),
42107    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42108)]
42109#[cfg_attr(
42110    target_arch = "arm",
42111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42112)]
42113#[cfg(not(target_arch = "arm64ec"))]
42114pub fn vreinterpretq_f16_u64(a: uint64x2_t) -> float16x8_t {
42115    unsafe { transmute(a) }
42116}
42117#[doc = "Vector reinterpret cast operation"]
42118#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_u64)"]
42119#[inline(always)]
42120#[cfg(target_endian = "big")]
42121#[target_feature(enable = "neon")]
42122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42124#[cfg_attr(
42125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42126    assert_instr(nop)
42127)]
42128#[cfg_attr(
42129    not(target_arch = "arm"),
42130    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42131)]
42132#[cfg_attr(
42133    target_arch = "arm",
42134    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42135)]
42136#[cfg(not(target_arch = "arm64ec"))]
42137pub fn vreinterpretq_f16_u64(a: uint64x2_t) -> float16x8_t {
42138    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42139    unsafe {
42140        let ret_val: float16x8_t = transmute(a);
42141        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42142    }
42143}
42144#[doc = "Vector reinterpret cast operation"]
42145#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p8)"]
42146#[inline(always)]
42147#[cfg(target_endian = "little")]
42148#[target_feature(enable = "neon")]
42149#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42150#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42151#[cfg_attr(
42152    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42153    assert_instr(nop)
42154)]
42155#[cfg_attr(
42156    not(target_arch = "arm"),
42157    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42158)]
42159#[cfg_attr(
42160    target_arch = "arm",
42161    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42162)]
42163#[cfg(not(target_arch = "arm64ec"))]
42164pub fn vreinterpret_f16_p8(a: poly8x8_t) -> float16x4_t {
42165    unsafe { transmute(a) }
42166}
42167#[doc = "Vector reinterpret cast operation"]
42168#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p8)"]
42169#[inline(always)]
42170#[cfg(target_endian = "big")]
42171#[target_feature(enable = "neon")]
42172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42173#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42174#[cfg_attr(
42175    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42176    assert_instr(nop)
42177)]
42178#[cfg_attr(
42179    not(target_arch = "arm"),
42180    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42181)]
42182#[cfg_attr(
42183    target_arch = "arm",
42184    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42185)]
42186#[cfg(not(target_arch = "arm64ec"))]
42187pub fn vreinterpret_f16_p8(a: poly8x8_t) -> float16x4_t {
42188    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
42189    unsafe {
42190        let ret_val: float16x4_t = transmute(a);
42191        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42192    }
42193}
42194#[doc = "Vector reinterpret cast operation"]
42195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p8)"]
42196#[inline(always)]
42197#[cfg(target_endian = "little")]
42198#[target_feature(enable = "neon")]
42199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42200#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42201#[cfg_attr(
42202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42203    assert_instr(nop)
42204)]
42205#[cfg_attr(
42206    not(target_arch = "arm"),
42207    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42208)]
42209#[cfg_attr(
42210    target_arch = "arm",
42211    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42212)]
42213#[cfg(not(target_arch = "arm64ec"))]
42214pub fn vreinterpretq_f16_p8(a: poly8x16_t) -> float16x8_t {
42215    unsafe { transmute(a) }
42216}
42217#[doc = "Vector reinterpret cast operation"]
42218#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p8)"]
42219#[inline(always)]
42220#[cfg(target_endian = "big")]
42221#[target_feature(enable = "neon")]
42222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42223#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42224#[cfg_attr(
42225    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42226    assert_instr(nop)
42227)]
42228#[cfg_attr(
42229    not(target_arch = "arm"),
42230    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42231)]
42232#[cfg_attr(
42233    target_arch = "arm",
42234    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42235)]
42236#[cfg(not(target_arch = "arm64ec"))]
42237pub fn vreinterpretq_f16_p8(a: poly8x16_t) -> float16x8_t {
42238    let a: poly8x16_t =
42239        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
42240    unsafe {
42241        let ret_val: float16x8_t = transmute(a);
42242        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42243    }
42244}
42245#[doc = "Vector reinterpret cast operation"]
42246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p16)"]
42247#[inline(always)]
42248#[cfg(target_endian = "little")]
42249#[target_feature(enable = "neon")]
42250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42252#[cfg_attr(
42253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42254    assert_instr(nop)
42255)]
42256#[cfg_attr(
42257    not(target_arch = "arm"),
42258    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42259)]
42260#[cfg_attr(
42261    target_arch = "arm",
42262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42263)]
42264#[cfg(not(target_arch = "arm64ec"))]
42265pub fn vreinterpret_f16_p16(a: poly16x4_t) -> float16x4_t {
42266    unsafe { transmute(a) }
42267}
42268#[doc = "Vector reinterpret cast operation"]
42269#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p16)"]
42270#[inline(always)]
42271#[cfg(target_endian = "big")]
42272#[target_feature(enable = "neon")]
42273#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42274#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42275#[cfg_attr(
42276    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42277    assert_instr(nop)
42278)]
42279#[cfg_attr(
42280    not(target_arch = "arm"),
42281    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42282)]
42283#[cfg_attr(
42284    target_arch = "arm",
42285    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42286)]
42287#[cfg(not(target_arch = "arm64ec"))]
42288pub fn vreinterpret_f16_p16(a: poly16x4_t) -> float16x4_t {
42289    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42290    unsafe {
42291        let ret_val: float16x4_t = transmute(a);
42292        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42293    }
42294}
42295#[doc = "Vector reinterpret cast operation"]
42296#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p16)"]
42297#[inline(always)]
42298#[cfg(target_endian = "little")]
42299#[target_feature(enable = "neon")]
42300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42301#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42302#[cfg_attr(
42303    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42304    assert_instr(nop)
42305)]
42306#[cfg_attr(
42307    not(target_arch = "arm"),
42308    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42309)]
42310#[cfg_attr(
42311    target_arch = "arm",
42312    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42313)]
42314#[cfg(not(target_arch = "arm64ec"))]
42315pub fn vreinterpretq_f16_p16(a: poly16x8_t) -> float16x8_t {
42316    unsafe { transmute(a) }
42317}
42318#[doc = "Vector reinterpret cast operation"]
42319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p16)"]
42320#[inline(always)]
42321#[cfg(target_endian = "big")]
42322#[target_feature(enable = "neon")]
42323#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42324#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42325#[cfg_attr(
42326    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42327    assert_instr(nop)
42328)]
42329#[cfg_attr(
42330    not(target_arch = "arm"),
42331    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42332)]
42333#[cfg_attr(
42334    target_arch = "arm",
42335    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42336)]
42337#[cfg(not(target_arch = "arm64ec"))]
42338pub fn vreinterpretq_f16_p16(a: poly16x8_t) -> float16x8_t {
42339    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
42340    unsafe {
42341        let ret_val: float16x8_t = transmute(a);
42342        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42343    }
42344}
42345#[doc = "Vector reinterpret cast operation"]
42346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p128)"]
42347#[inline(always)]
42348#[cfg(target_endian = "little")]
42349#[target_feature(enable = "neon")]
42350#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42352#[cfg_attr(
42353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42354    assert_instr(nop)
42355)]
42356#[cfg_attr(
42357    not(target_arch = "arm"),
42358    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42359)]
42360#[cfg_attr(
42361    target_arch = "arm",
42362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42363)]
42364#[cfg(not(target_arch = "arm64ec"))]
42365pub fn vreinterpretq_f16_p128(a: p128) -> float16x8_t {
42366    unsafe { transmute(a) }
42367}
42368#[doc = "Vector reinterpret cast operation"]
42369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p128)"]
42370#[inline(always)]
42371#[cfg(target_endian = "big")]
42372#[target_feature(enable = "neon")]
42373#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42374#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42375#[cfg_attr(
42376    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42377    assert_instr(nop)
42378)]
42379#[cfg_attr(
42380    not(target_arch = "arm"),
42381    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42382)]
42383#[cfg_attr(
42384    target_arch = "arm",
42385    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42386)]
42387#[cfg(not(target_arch = "arm64ec"))]
42388pub fn vreinterpretq_f16_p128(a: p128) -> float16x8_t {
42389    unsafe {
42390        let ret_val: float16x8_t = transmute(a);
42391        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42392    }
42393}
42394#[doc = "Vector reinterpret cast operation"]
42395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_f16)"]
42396#[inline(always)]
42397#[cfg(target_endian = "little")]
42398#[target_feature(enable = "neon")]
42399#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42400#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42401#[cfg_attr(
42402    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42403    assert_instr(nop)
42404)]
42405#[cfg_attr(
42406    not(target_arch = "arm"),
42407    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42408)]
42409#[cfg_attr(
42410    target_arch = "arm",
42411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42412)]
42413#[cfg(not(target_arch = "arm64ec"))]
42414pub fn vreinterpret_p64_f16(a: float16x4_t) -> poly64x1_t {
42415    unsafe { transmute(a) }
42416}
42417#[doc = "Vector reinterpret cast operation"]
42418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_f16)"]
42419#[inline(always)]
42420#[cfg(target_endian = "big")]
42421#[target_feature(enable = "neon")]
42422#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42424#[cfg_attr(
42425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42426    assert_instr(nop)
42427)]
42428#[cfg_attr(
42429    not(target_arch = "arm"),
42430    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42431)]
42432#[cfg_attr(
42433    target_arch = "arm",
42434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42435)]
42436#[cfg(not(target_arch = "arm64ec"))]
42437pub fn vreinterpret_p64_f16(a: float16x4_t) -> poly64x1_t {
42438    let a: float16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
42439    unsafe { transmute(a) }
42440}
42441#[doc = "Vector reinterpret cast operation"]
42442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f16)"]
42443#[inline(always)]
42444#[cfg(target_endian = "little")]
42445#[target_feature(enable = "neon")]
42446#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42447#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42448#[cfg_attr(
42449    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42450    assert_instr(nop)
42451)]
42452#[cfg_attr(
42453    not(target_arch = "arm"),
42454    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42455)]
42456#[cfg_attr(
42457    target_arch = "arm",
42458    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42459)]
42460#[cfg(not(target_arch = "arm64ec"))]
42461pub fn vreinterpretq_p128_f16(a: float16x8_t) -> p128 {
42462    unsafe { transmute(a) }
42463}
42464#[doc = "Vector reinterpret cast operation"]
42465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f16)"]
42466#[inline(always)]
42467#[cfg(target_endian = "big")]
42468#[target_feature(enable = "neon")]
42469#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42470#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42471#[cfg_attr(
42472    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42473    assert_instr(nop)
42474)]
42475#[cfg_attr(
42476    not(target_arch = "arm"),
42477    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42478)]
42479#[cfg_attr(
42480    target_arch = "arm",
42481    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42482)]
42483#[cfg(not(target_arch = "arm64ec"))]
42484pub fn vreinterpretq_p128_f16(a: float16x8_t) -> p128 {
42485    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
42486    unsafe { transmute(a) }
42487}
42488#[doc = "Vector reinterpret cast operation"]
42489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_f16)"]
42490#[inline(always)]
42491#[cfg(target_endian = "little")]
42492#[target_feature(enable = "neon")]
42493#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42495#[cfg_attr(
42496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42497    assert_instr(nop)
42498)]
42499#[cfg_attr(
42500    not(target_arch = "arm"),
42501    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42502)]
42503#[cfg_attr(
42504    target_arch = "arm",
42505    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42506)]
42507#[cfg(not(target_arch = "arm64ec"))]
42508pub fn vreinterpretq_p64_f16(a: float16x8_t) -> poly64x2_t {
42509    unsafe { transmute(a) }
42510}
42511#[doc = "Vector reinterpret cast operation"]
42512#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_f16)"]
42513#[inline(always)]
42514#[cfg(target_endian = "big")]
42515#[target_feature(enable = "neon")]
42516#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42517#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42518#[cfg_attr(
42519    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42520    assert_instr(nop)
42521)]
42522#[cfg_attr(
42523    not(target_arch = "arm"),
42524    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42525)]
42526#[cfg_attr(
42527    target_arch = "arm",
42528    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42529)]
42530#[cfg(not(target_arch = "arm64ec"))]
42531pub fn vreinterpretq_p64_f16(a: float16x8_t) -> poly64x2_t {
42532    let a: float16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
42533    unsafe {
42534        let ret_val: poly64x2_t = transmute(a);
42535        simd_shuffle!(ret_val, ret_val, [1, 0])
42536    }
42537}
42538#[doc = "Vector reinterpret cast operation"]
42539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p64)"]
42540#[inline(always)]
42541#[cfg(target_endian = "little")]
42542#[target_feature(enable = "neon")]
42543#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42544#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42545#[cfg_attr(
42546    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42547    assert_instr(nop)
42548)]
42549#[cfg_attr(
42550    not(target_arch = "arm"),
42551    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42552)]
42553#[cfg_attr(
42554    target_arch = "arm",
42555    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42556)]
42557#[cfg(not(target_arch = "arm64ec"))]
42558pub fn vreinterpret_f16_p64(a: poly64x1_t) -> float16x4_t {
42559    unsafe { transmute(a) }
42560}
42561#[doc = "Vector reinterpret cast operation"]
42562#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f16_p64)"]
42563#[inline(always)]
42564#[cfg(target_endian = "big")]
42565#[target_feature(enable = "neon")]
42566#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42568#[cfg_attr(
42569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42570    assert_instr(nop)
42571)]
42572#[cfg_attr(
42573    not(target_arch = "arm"),
42574    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42575)]
42576#[cfg_attr(
42577    target_arch = "arm",
42578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42579)]
42580#[cfg(not(target_arch = "arm64ec"))]
42581pub fn vreinterpret_f16_p64(a: poly64x1_t) -> float16x4_t {
42582    unsafe {
42583        let ret_val: float16x4_t = transmute(a);
42584        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42585    }
42586}
42587#[doc = "Vector reinterpret cast operation"]
42588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p64)"]
42589#[inline(always)]
42590#[cfg(target_endian = "little")]
42591#[target_feature(enable = "neon")]
42592#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42593#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42594#[cfg_attr(
42595    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42596    assert_instr(nop)
42597)]
42598#[cfg_attr(
42599    not(target_arch = "arm"),
42600    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42601)]
42602#[cfg_attr(
42603    target_arch = "arm",
42604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42605)]
42606#[cfg(not(target_arch = "arm64ec"))]
42607pub fn vreinterpretq_f16_p64(a: poly64x2_t) -> float16x8_t {
42608    unsafe { transmute(a) }
42609}
42610#[doc = "Vector reinterpret cast operation"]
42611#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f16_p64)"]
42612#[inline(always)]
42613#[cfg(target_endian = "big")]
42614#[target_feature(enable = "neon")]
42615#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
42616#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42617#[cfg_attr(
42618    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42619    assert_instr(nop)
42620)]
42621#[cfg_attr(
42622    not(target_arch = "arm"),
42623    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
42624)]
42625#[cfg_attr(
42626    target_arch = "arm",
42627    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42628)]
42629#[cfg(not(target_arch = "arm64ec"))]
42630pub fn vreinterpretq_f16_p64(a: poly64x2_t) -> float16x8_t {
42631    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42632    unsafe {
42633        let ret_val: float16x8_t = transmute(a);
42634        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42635    }
42636}
42637#[doc = "Vector reinterpret cast operation"]
42638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p128)"]
42639#[inline(always)]
42640#[cfg(target_endian = "little")]
42641#[target_feature(enable = "neon")]
42642#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42643#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42644#[cfg_attr(
42645    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42646    assert_instr(nop)
42647)]
42648#[cfg_attr(
42649    not(target_arch = "arm"),
42650    stable(feature = "neon_intrinsics", since = "1.59.0")
42651)]
42652#[cfg_attr(
42653    target_arch = "arm",
42654    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42655)]
42656pub fn vreinterpretq_f32_p128(a: p128) -> float32x4_t {
42657    unsafe { transmute(a) }
42658}
42659#[doc = "Vector reinterpret cast operation"]
42660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p128)"]
42661#[inline(always)]
42662#[cfg(target_endian = "big")]
42663#[target_feature(enable = "neon")]
42664#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42665#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42666#[cfg_attr(
42667    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42668    assert_instr(nop)
42669)]
42670#[cfg_attr(
42671    not(target_arch = "arm"),
42672    stable(feature = "neon_intrinsics", since = "1.59.0")
42673)]
42674#[cfg_attr(
42675    target_arch = "arm",
42676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42677)]
42678pub fn vreinterpretq_f32_p128(a: p128) -> float32x4_t {
42679    unsafe {
42680        let ret_val: float32x4_t = transmute(a);
42681        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42682    }
42683}
42684#[doc = "Vector reinterpret cast operation"]
42685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f32)"]
42686#[inline(always)]
42687#[cfg(target_endian = "little")]
42688#[target_feature(enable = "neon")]
42689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42690#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42691#[cfg_attr(
42692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42693    assert_instr(nop)
42694)]
42695#[cfg_attr(
42696    not(target_arch = "arm"),
42697    stable(feature = "neon_intrinsics", since = "1.59.0")
42698)]
42699#[cfg_attr(
42700    target_arch = "arm",
42701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42702)]
42703pub fn vreinterpret_s8_f32(a: float32x2_t) -> int8x8_t {
42704    unsafe { transmute(a) }
42705}
42706#[doc = "Vector reinterpret cast operation"]
42707#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f32)"]
42708#[inline(always)]
42709#[cfg(target_endian = "big")]
42710#[target_feature(enable = "neon")]
42711#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42712#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42713#[cfg_attr(
42714    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42715    assert_instr(nop)
42716)]
42717#[cfg_attr(
42718    not(target_arch = "arm"),
42719    stable(feature = "neon_intrinsics", since = "1.59.0")
42720)]
42721#[cfg_attr(
42722    target_arch = "arm",
42723    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42724)]
42725pub fn vreinterpret_s8_f32(a: float32x2_t) -> int8x8_t {
42726    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42727    unsafe {
42728        let ret_val: int8x8_t = transmute(a);
42729        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42730    }
42731}
42732#[doc = "Vector reinterpret cast operation"]
42733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f32)"]
42734#[inline(always)]
42735#[cfg(target_endian = "little")]
42736#[target_feature(enable = "neon")]
42737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42738#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42739#[cfg_attr(
42740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42741    assert_instr(nop)
42742)]
42743#[cfg_attr(
42744    not(target_arch = "arm"),
42745    stable(feature = "neon_intrinsics", since = "1.59.0")
42746)]
42747#[cfg_attr(
42748    target_arch = "arm",
42749    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42750)]
42751pub fn vreinterpret_s16_f32(a: float32x2_t) -> int16x4_t {
42752    unsafe { transmute(a) }
42753}
42754#[doc = "Vector reinterpret cast operation"]
42755#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f32)"]
42756#[inline(always)]
42757#[cfg(target_endian = "big")]
42758#[target_feature(enable = "neon")]
42759#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42760#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42761#[cfg_attr(
42762    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42763    assert_instr(nop)
42764)]
42765#[cfg_attr(
42766    not(target_arch = "arm"),
42767    stable(feature = "neon_intrinsics", since = "1.59.0")
42768)]
42769#[cfg_attr(
42770    target_arch = "arm",
42771    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42772)]
42773pub fn vreinterpret_s16_f32(a: float32x2_t) -> int16x4_t {
42774    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42775    unsafe {
42776        let ret_val: int16x4_t = transmute(a);
42777        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42778    }
42779}
42780#[doc = "Vector reinterpret cast operation"]
42781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f32)"]
42782#[inline(always)]
42783#[cfg(target_endian = "little")]
42784#[target_feature(enable = "neon")]
42785#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42786#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42787#[cfg_attr(
42788    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42789    assert_instr(nop)
42790)]
42791#[cfg_attr(
42792    not(target_arch = "arm"),
42793    stable(feature = "neon_intrinsics", since = "1.59.0")
42794)]
42795#[cfg_attr(
42796    target_arch = "arm",
42797    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42798)]
42799pub fn vreinterpret_s32_f32(a: float32x2_t) -> int32x2_t {
42800    unsafe { transmute(a) }
42801}
42802#[doc = "Vector reinterpret cast operation"]
42803#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f32)"]
42804#[inline(always)]
42805#[cfg(target_endian = "big")]
42806#[target_feature(enable = "neon")]
42807#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42808#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42809#[cfg_attr(
42810    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42811    assert_instr(nop)
42812)]
42813#[cfg_attr(
42814    not(target_arch = "arm"),
42815    stable(feature = "neon_intrinsics", since = "1.59.0")
42816)]
42817#[cfg_attr(
42818    target_arch = "arm",
42819    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42820)]
42821pub fn vreinterpret_s32_f32(a: float32x2_t) -> int32x2_t {
42822    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42823    unsafe {
42824        let ret_val: int32x2_t = transmute(a);
42825        simd_shuffle!(ret_val, ret_val, [1, 0])
42826    }
42827}
42828#[doc = "Vector reinterpret cast operation"]
42829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f32)"]
42830#[inline(always)]
42831#[cfg(target_endian = "little")]
42832#[target_feature(enable = "neon")]
42833#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42834#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42835#[cfg_attr(
42836    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42837    assert_instr(nop)
42838)]
42839#[cfg_attr(
42840    not(target_arch = "arm"),
42841    stable(feature = "neon_intrinsics", since = "1.59.0")
42842)]
42843#[cfg_attr(
42844    target_arch = "arm",
42845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42846)]
42847pub fn vreinterpret_s64_f32(a: float32x2_t) -> int64x1_t {
42848    unsafe { transmute(a) }
42849}
42850#[doc = "Vector reinterpret cast operation"]
42851#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f32)"]
42852#[inline(always)]
42853#[cfg(target_endian = "big")]
42854#[target_feature(enable = "neon")]
42855#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42856#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42857#[cfg_attr(
42858    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42859    assert_instr(nop)
42860)]
42861#[cfg_attr(
42862    not(target_arch = "arm"),
42863    stable(feature = "neon_intrinsics", since = "1.59.0")
42864)]
42865#[cfg_attr(
42866    target_arch = "arm",
42867    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42868)]
42869pub fn vreinterpret_s64_f32(a: float32x2_t) -> int64x1_t {
42870    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42871    unsafe { transmute(a) }
42872}
42873#[doc = "Vector reinterpret cast operation"]
42874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f32)"]
42875#[inline(always)]
42876#[cfg(target_endian = "little")]
42877#[target_feature(enable = "neon")]
42878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42880#[cfg_attr(
42881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42882    assert_instr(nop)
42883)]
42884#[cfg_attr(
42885    not(target_arch = "arm"),
42886    stable(feature = "neon_intrinsics", since = "1.59.0")
42887)]
42888#[cfg_attr(
42889    target_arch = "arm",
42890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42891)]
42892pub fn vreinterpret_u8_f32(a: float32x2_t) -> uint8x8_t {
42893    unsafe { transmute(a) }
42894}
42895#[doc = "Vector reinterpret cast operation"]
42896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f32)"]
42897#[inline(always)]
42898#[cfg(target_endian = "big")]
42899#[target_feature(enable = "neon")]
42900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42901#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42902#[cfg_attr(
42903    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42904    assert_instr(nop)
42905)]
42906#[cfg_attr(
42907    not(target_arch = "arm"),
42908    stable(feature = "neon_intrinsics", since = "1.59.0")
42909)]
42910#[cfg_attr(
42911    target_arch = "arm",
42912    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42913)]
42914pub fn vreinterpret_u8_f32(a: float32x2_t) -> uint8x8_t {
42915    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42916    unsafe {
42917        let ret_val: uint8x8_t = transmute(a);
42918        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
42919    }
42920}
42921#[doc = "Vector reinterpret cast operation"]
42922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f32)"]
42923#[inline(always)]
42924#[cfg(target_endian = "little")]
42925#[target_feature(enable = "neon")]
42926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42927#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42928#[cfg_attr(
42929    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42930    assert_instr(nop)
42931)]
42932#[cfg_attr(
42933    not(target_arch = "arm"),
42934    stable(feature = "neon_intrinsics", since = "1.59.0")
42935)]
42936#[cfg_attr(
42937    target_arch = "arm",
42938    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42939)]
42940pub fn vreinterpret_u16_f32(a: float32x2_t) -> uint16x4_t {
42941    unsafe { transmute(a) }
42942}
42943#[doc = "Vector reinterpret cast operation"]
42944#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f32)"]
42945#[inline(always)]
42946#[cfg(target_endian = "big")]
42947#[target_feature(enable = "neon")]
42948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42950#[cfg_attr(
42951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42952    assert_instr(nop)
42953)]
42954#[cfg_attr(
42955    not(target_arch = "arm"),
42956    stable(feature = "neon_intrinsics", since = "1.59.0")
42957)]
42958#[cfg_attr(
42959    target_arch = "arm",
42960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42961)]
42962pub fn vreinterpret_u16_f32(a: float32x2_t) -> uint16x4_t {
42963    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
42964    unsafe {
42965        let ret_val: uint16x4_t = transmute(a);
42966        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
42967    }
42968}
42969#[doc = "Vector reinterpret cast operation"]
42970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f32)"]
42971#[inline(always)]
42972#[cfg(target_endian = "little")]
42973#[target_feature(enable = "neon")]
42974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42975#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42976#[cfg_attr(
42977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
42978    assert_instr(nop)
42979)]
42980#[cfg_attr(
42981    not(target_arch = "arm"),
42982    stable(feature = "neon_intrinsics", since = "1.59.0")
42983)]
42984#[cfg_attr(
42985    target_arch = "arm",
42986    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
42987)]
42988pub fn vreinterpret_u32_f32(a: float32x2_t) -> uint32x2_t {
42989    unsafe { transmute(a) }
42990}
42991#[doc = "Vector reinterpret cast operation"]
42992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f32)"]
42993#[inline(always)]
42994#[cfg(target_endian = "big")]
42995#[target_feature(enable = "neon")]
42996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
42997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
42998#[cfg_attr(
42999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43000    assert_instr(nop)
43001)]
43002#[cfg_attr(
43003    not(target_arch = "arm"),
43004    stable(feature = "neon_intrinsics", since = "1.59.0")
43005)]
43006#[cfg_attr(
43007    target_arch = "arm",
43008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43009)]
43010pub fn vreinterpret_u32_f32(a: float32x2_t) -> uint32x2_t {
43011    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
43012    unsafe {
43013        let ret_val: uint32x2_t = transmute(a);
43014        simd_shuffle!(ret_val, ret_val, [1, 0])
43015    }
43016}
43017#[doc = "Vector reinterpret cast operation"]
43018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f32)"]
43019#[inline(always)]
43020#[cfg(target_endian = "little")]
43021#[target_feature(enable = "neon")]
43022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43024#[cfg_attr(
43025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43026    assert_instr(nop)
43027)]
43028#[cfg_attr(
43029    not(target_arch = "arm"),
43030    stable(feature = "neon_intrinsics", since = "1.59.0")
43031)]
43032#[cfg_attr(
43033    target_arch = "arm",
43034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43035)]
43036pub fn vreinterpret_u64_f32(a: float32x2_t) -> uint64x1_t {
43037    unsafe { transmute(a) }
43038}
43039#[doc = "Vector reinterpret cast operation"]
43040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f32)"]
43041#[inline(always)]
43042#[cfg(target_endian = "big")]
43043#[target_feature(enable = "neon")]
43044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43045#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43046#[cfg_attr(
43047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43048    assert_instr(nop)
43049)]
43050#[cfg_attr(
43051    not(target_arch = "arm"),
43052    stable(feature = "neon_intrinsics", since = "1.59.0")
43053)]
43054#[cfg_attr(
43055    target_arch = "arm",
43056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43057)]
43058pub fn vreinterpret_u64_f32(a: float32x2_t) -> uint64x1_t {
43059    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
43060    unsafe { transmute(a) }
43061}
43062#[doc = "Vector reinterpret cast operation"]
43063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f32)"]
43064#[inline(always)]
43065#[cfg(target_endian = "little")]
43066#[target_feature(enable = "neon")]
43067#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43068#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43069#[cfg_attr(
43070    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43071    assert_instr(nop)
43072)]
43073#[cfg_attr(
43074    not(target_arch = "arm"),
43075    stable(feature = "neon_intrinsics", since = "1.59.0")
43076)]
43077#[cfg_attr(
43078    target_arch = "arm",
43079    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43080)]
43081pub fn vreinterpret_p8_f32(a: float32x2_t) -> poly8x8_t {
43082    unsafe { transmute(a) }
43083}
43084#[doc = "Vector reinterpret cast operation"]
43085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f32)"]
43086#[inline(always)]
43087#[cfg(target_endian = "big")]
43088#[target_feature(enable = "neon")]
43089#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43090#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43091#[cfg_attr(
43092    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43093    assert_instr(nop)
43094)]
43095#[cfg_attr(
43096    not(target_arch = "arm"),
43097    stable(feature = "neon_intrinsics", since = "1.59.0")
43098)]
43099#[cfg_attr(
43100    target_arch = "arm",
43101    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43102)]
43103pub fn vreinterpret_p8_f32(a: float32x2_t) -> poly8x8_t {
43104    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
43105    unsafe {
43106        let ret_val: poly8x8_t = transmute(a);
43107        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43108    }
43109}
43110#[doc = "Vector reinterpret cast operation"]
43111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f32)"]
43112#[inline(always)]
43113#[cfg(target_endian = "little")]
43114#[target_feature(enable = "neon")]
43115#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43116#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43117#[cfg_attr(
43118    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43119    assert_instr(nop)
43120)]
43121#[cfg_attr(
43122    not(target_arch = "arm"),
43123    stable(feature = "neon_intrinsics", since = "1.59.0")
43124)]
43125#[cfg_attr(
43126    target_arch = "arm",
43127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43128)]
43129pub fn vreinterpret_p16_f32(a: float32x2_t) -> poly16x4_t {
43130    unsafe { transmute(a) }
43131}
43132#[doc = "Vector reinterpret cast operation"]
43133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f32)"]
43134#[inline(always)]
43135#[cfg(target_endian = "big")]
43136#[target_feature(enable = "neon")]
43137#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43138#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43139#[cfg_attr(
43140    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43141    assert_instr(nop)
43142)]
43143#[cfg_attr(
43144    not(target_arch = "arm"),
43145    stable(feature = "neon_intrinsics", since = "1.59.0")
43146)]
43147#[cfg_attr(
43148    target_arch = "arm",
43149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43150)]
43151pub fn vreinterpret_p16_f32(a: float32x2_t) -> poly16x4_t {
43152    let a: float32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
43153    unsafe {
43154        let ret_val: poly16x4_t = transmute(a);
43155        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43156    }
43157}
43158#[doc = "Vector reinterpret cast operation"]
43159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f32)"]
43160#[inline(always)]
43161#[cfg(target_endian = "little")]
43162#[target_feature(enable = "neon")]
43163#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43164#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43165#[cfg_attr(
43166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43167    assert_instr(nop)
43168)]
43169#[cfg_attr(
43170    not(target_arch = "arm"),
43171    stable(feature = "neon_intrinsics", since = "1.59.0")
43172)]
43173#[cfg_attr(
43174    target_arch = "arm",
43175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43176)]
43177pub fn vreinterpretq_p128_f32(a: float32x4_t) -> p128 {
43178    unsafe { transmute(a) }
43179}
43180#[doc = "Vector reinterpret cast operation"]
43181#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f32)"]
43182#[inline(always)]
43183#[cfg(target_endian = "big")]
43184#[target_feature(enable = "neon")]
43185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43186#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43187#[cfg_attr(
43188    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43189    assert_instr(nop)
43190)]
43191#[cfg_attr(
43192    not(target_arch = "arm"),
43193    stable(feature = "neon_intrinsics", since = "1.59.0")
43194)]
43195#[cfg_attr(
43196    target_arch = "arm",
43197    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43198)]
43199pub fn vreinterpretq_p128_f32(a: float32x4_t) -> p128 {
43200    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43201    unsafe { transmute(a) }
43202}
43203#[doc = "Vector reinterpret cast operation"]
43204#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f32)"]
43205#[inline(always)]
43206#[cfg(target_endian = "little")]
43207#[target_feature(enable = "neon")]
43208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43210#[cfg_attr(
43211    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43212    assert_instr(nop)
43213)]
43214#[cfg_attr(
43215    not(target_arch = "arm"),
43216    stable(feature = "neon_intrinsics", since = "1.59.0")
43217)]
43218#[cfg_attr(
43219    target_arch = "arm",
43220    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43221)]
43222pub fn vreinterpretq_s8_f32(a: float32x4_t) -> int8x16_t {
43223    unsafe { transmute(a) }
43224}
43225#[doc = "Vector reinterpret cast operation"]
43226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f32)"]
43227#[inline(always)]
43228#[cfg(target_endian = "big")]
43229#[target_feature(enable = "neon")]
43230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43231#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43232#[cfg_attr(
43233    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43234    assert_instr(nop)
43235)]
43236#[cfg_attr(
43237    not(target_arch = "arm"),
43238    stable(feature = "neon_intrinsics", since = "1.59.0")
43239)]
43240#[cfg_attr(
43241    target_arch = "arm",
43242    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43243)]
43244pub fn vreinterpretq_s8_f32(a: float32x4_t) -> int8x16_t {
43245    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43246    unsafe {
43247        let ret_val: int8x16_t = transmute(a);
43248        simd_shuffle!(
43249            ret_val,
43250            ret_val,
43251            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
43252        )
43253    }
43254}
43255#[doc = "Vector reinterpret cast operation"]
43256#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f32)"]
43257#[inline(always)]
43258#[cfg(target_endian = "little")]
43259#[target_feature(enable = "neon")]
43260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43261#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43262#[cfg_attr(
43263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43264    assert_instr(nop)
43265)]
43266#[cfg_attr(
43267    not(target_arch = "arm"),
43268    stable(feature = "neon_intrinsics", since = "1.59.0")
43269)]
43270#[cfg_attr(
43271    target_arch = "arm",
43272    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43273)]
43274pub fn vreinterpretq_s16_f32(a: float32x4_t) -> int16x8_t {
43275    unsafe { transmute(a) }
43276}
43277#[doc = "Vector reinterpret cast operation"]
43278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f32)"]
43279#[inline(always)]
43280#[cfg(target_endian = "big")]
43281#[target_feature(enable = "neon")]
43282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43284#[cfg_attr(
43285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43286    assert_instr(nop)
43287)]
43288#[cfg_attr(
43289    not(target_arch = "arm"),
43290    stable(feature = "neon_intrinsics", since = "1.59.0")
43291)]
43292#[cfg_attr(
43293    target_arch = "arm",
43294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43295)]
43296pub fn vreinterpretq_s16_f32(a: float32x4_t) -> int16x8_t {
43297    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43298    unsafe {
43299        let ret_val: int16x8_t = transmute(a);
43300        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43301    }
43302}
43303#[doc = "Vector reinterpret cast operation"]
43304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f32)"]
43305#[inline(always)]
43306#[cfg(target_endian = "little")]
43307#[target_feature(enable = "neon")]
43308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43310#[cfg_attr(
43311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43312    assert_instr(nop)
43313)]
43314#[cfg_attr(
43315    not(target_arch = "arm"),
43316    stable(feature = "neon_intrinsics", since = "1.59.0")
43317)]
43318#[cfg_attr(
43319    target_arch = "arm",
43320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43321)]
43322pub fn vreinterpretq_s32_f32(a: float32x4_t) -> int32x4_t {
43323    unsafe { transmute(a) }
43324}
43325#[doc = "Vector reinterpret cast operation"]
43326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f32)"]
43327#[inline(always)]
43328#[cfg(target_endian = "big")]
43329#[target_feature(enable = "neon")]
43330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43332#[cfg_attr(
43333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43334    assert_instr(nop)
43335)]
43336#[cfg_attr(
43337    not(target_arch = "arm"),
43338    stable(feature = "neon_intrinsics", since = "1.59.0")
43339)]
43340#[cfg_attr(
43341    target_arch = "arm",
43342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43343)]
43344pub fn vreinterpretq_s32_f32(a: float32x4_t) -> int32x4_t {
43345    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43346    unsafe {
43347        let ret_val: int32x4_t = transmute(a);
43348        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43349    }
43350}
43351#[doc = "Vector reinterpret cast operation"]
43352#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f32)"]
43353#[inline(always)]
43354#[cfg(target_endian = "little")]
43355#[target_feature(enable = "neon")]
43356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43357#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43358#[cfg_attr(
43359    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43360    assert_instr(nop)
43361)]
43362#[cfg_attr(
43363    not(target_arch = "arm"),
43364    stable(feature = "neon_intrinsics", since = "1.59.0")
43365)]
43366#[cfg_attr(
43367    target_arch = "arm",
43368    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43369)]
43370pub fn vreinterpretq_s64_f32(a: float32x4_t) -> int64x2_t {
43371    unsafe { transmute(a) }
43372}
43373#[doc = "Vector reinterpret cast operation"]
43374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f32)"]
43375#[inline(always)]
43376#[cfg(target_endian = "big")]
43377#[target_feature(enable = "neon")]
43378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43380#[cfg_attr(
43381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43382    assert_instr(nop)
43383)]
43384#[cfg_attr(
43385    not(target_arch = "arm"),
43386    stable(feature = "neon_intrinsics", since = "1.59.0")
43387)]
43388#[cfg_attr(
43389    target_arch = "arm",
43390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43391)]
43392pub fn vreinterpretq_s64_f32(a: float32x4_t) -> int64x2_t {
43393    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43394    unsafe {
43395        let ret_val: int64x2_t = transmute(a);
43396        simd_shuffle!(ret_val, ret_val, [1, 0])
43397    }
43398}
43399#[doc = "Vector reinterpret cast operation"]
43400#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f32)"]
43401#[inline(always)]
43402#[cfg(target_endian = "little")]
43403#[target_feature(enable = "neon")]
43404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43406#[cfg_attr(
43407    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43408    assert_instr(nop)
43409)]
43410#[cfg_attr(
43411    not(target_arch = "arm"),
43412    stable(feature = "neon_intrinsics", since = "1.59.0")
43413)]
43414#[cfg_attr(
43415    target_arch = "arm",
43416    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43417)]
43418pub fn vreinterpretq_u8_f32(a: float32x4_t) -> uint8x16_t {
43419    unsafe { transmute(a) }
43420}
43421#[doc = "Vector reinterpret cast operation"]
43422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f32)"]
43423#[inline(always)]
43424#[cfg(target_endian = "big")]
43425#[target_feature(enable = "neon")]
43426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43427#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43428#[cfg_attr(
43429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43430    assert_instr(nop)
43431)]
43432#[cfg_attr(
43433    not(target_arch = "arm"),
43434    stable(feature = "neon_intrinsics", since = "1.59.0")
43435)]
43436#[cfg_attr(
43437    target_arch = "arm",
43438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43439)]
43440pub fn vreinterpretq_u8_f32(a: float32x4_t) -> uint8x16_t {
43441    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43442    unsafe {
43443        let ret_val: uint8x16_t = transmute(a);
43444        simd_shuffle!(
43445            ret_val,
43446            ret_val,
43447            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
43448        )
43449    }
43450}
43451#[doc = "Vector reinterpret cast operation"]
43452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f32)"]
43453#[inline(always)]
43454#[cfg(target_endian = "little")]
43455#[target_feature(enable = "neon")]
43456#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43457#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43458#[cfg_attr(
43459    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43460    assert_instr(nop)
43461)]
43462#[cfg_attr(
43463    not(target_arch = "arm"),
43464    stable(feature = "neon_intrinsics", since = "1.59.0")
43465)]
43466#[cfg_attr(
43467    target_arch = "arm",
43468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43469)]
43470pub fn vreinterpretq_u16_f32(a: float32x4_t) -> uint16x8_t {
43471    unsafe { transmute(a) }
43472}
43473#[doc = "Vector reinterpret cast operation"]
43474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f32)"]
43475#[inline(always)]
43476#[cfg(target_endian = "big")]
43477#[target_feature(enable = "neon")]
43478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43480#[cfg_attr(
43481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43482    assert_instr(nop)
43483)]
43484#[cfg_attr(
43485    not(target_arch = "arm"),
43486    stable(feature = "neon_intrinsics", since = "1.59.0")
43487)]
43488#[cfg_attr(
43489    target_arch = "arm",
43490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43491)]
43492pub fn vreinterpretq_u16_f32(a: float32x4_t) -> uint16x8_t {
43493    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43494    unsafe {
43495        let ret_val: uint16x8_t = transmute(a);
43496        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43497    }
43498}
43499#[doc = "Vector reinterpret cast operation"]
43500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f32)"]
43501#[inline(always)]
43502#[cfg(target_endian = "little")]
43503#[target_feature(enable = "neon")]
43504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43506#[cfg_attr(
43507    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43508    assert_instr(nop)
43509)]
43510#[cfg_attr(
43511    not(target_arch = "arm"),
43512    stable(feature = "neon_intrinsics", since = "1.59.0")
43513)]
43514#[cfg_attr(
43515    target_arch = "arm",
43516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43517)]
43518pub fn vreinterpretq_u32_f32(a: float32x4_t) -> uint32x4_t {
43519    unsafe { transmute(a) }
43520}
43521#[doc = "Vector reinterpret cast operation"]
43522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f32)"]
43523#[inline(always)]
43524#[cfg(target_endian = "big")]
43525#[target_feature(enable = "neon")]
43526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43528#[cfg_attr(
43529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43530    assert_instr(nop)
43531)]
43532#[cfg_attr(
43533    not(target_arch = "arm"),
43534    stable(feature = "neon_intrinsics", since = "1.59.0")
43535)]
43536#[cfg_attr(
43537    target_arch = "arm",
43538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43539)]
43540pub fn vreinterpretq_u32_f32(a: float32x4_t) -> uint32x4_t {
43541    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43542    unsafe {
43543        let ret_val: uint32x4_t = transmute(a);
43544        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43545    }
43546}
43547#[doc = "Vector reinterpret cast operation"]
43548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f32)"]
43549#[inline(always)]
43550#[cfg(target_endian = "little")]
43551#[target_feature(enable = "neon")]
43552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43554#[cfg_attr(
43555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43556    assert_instr(nop)
43557)]
43558#[cfg_attr(
43559    not(target_arch = "arm"),
43560    stable(feature = "neon_intrinsics", since = "1.59.0")
43561)]
43562#[cfg_attr(
43563    target_arch = "arm",
43564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43565)]
43566pub fn vreinterpretq_u64_f32(a: float32x4_t) -> uint64x2_t {
43567    unsafe { transmute(a) }
43568}
43569#[doc = "Vector reinterpret cast operation"]
43570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f32)"]
43571#[inline(always)]
43572#[cfg(target_endian = "big")]
43573#[target_feature(enable = "neon")]
43574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43576#[cfg_attr(
43577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43578    assert_instr(nop)
43579)]
43580#[cfg_attr(
43581    not(target_arch = "arm"),
43582    stable(feature = "neon_intrinsics", since = "1.59.0")
43583)]
43584#[cfg_attr(
43585    target_arch = "arm",
43586    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43587)]
43588pub fn vreinterpretq_u64_f32(a: float32x4_t) -> uint64x2_t {
43589    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43590    unsafe {
43591        let ret_val: uint64x2_t = transmute(a);
43592        simd_shuffle!(ret_val, ret_val, [1, 0])
43593    }
43594}
43595#[doc = "Vector reinterpret cast operation"]
43596#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f32)"]
43597#[inline(always)]
43598#[cfg(target_endian = "little")]
43599#[target_feature(enable = "neon")]
43600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43601#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43602#[cfg_attr(
43603    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43604    assert_instr(nop)
43605)]
43606#[cfg_attr(
43607    not(target_arch = "arm"),
43608    stable(feature = "neon_intrinsics", since = "1.59.0")
43609)]
43610#[cfg_attr(
43611    target_arch = "arm",
43612    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43613)]
43614pub fn vreinterpretq_p8_f32(a: float32x4_t) -> poly8x16_t {
43615    unsafe { transmute(a) }
43616}
43617#[doc = "Vector reinterpret cast operation"]
43618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f32)"]
43619#[inline(always)]
43620#[cfg(target_endian = "big")]
43621#[target_feature(enable = "neon")]
43622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43624#[cfg_attr(
43625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43626    assert_instr(nop)
43627)]
43628#[cfg_attr(
43629    not(target_arch = "arm"),
43630    stable(feature = "neon_intrinsics", since = "1.59.0")
43631)]
43632#[cfg_attr(
43633    target_arch = "arm",
43634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43635)]
43636pub fn vreinterpretq_p8_f32(a: float32x4_t) -> poly8x16_t {
43637    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43638    unsafe {
43639        let ret_val: poly8x16_t = transmute(a);
43640        simd_shuffle!(
43641            ret_val,
43642            ret_val,
43643            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
43644        )
43645    }
43646}
43647#[doc = "Vector reinterpret cast operation"]
43648#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f32)"]
43649#[inline(always)]
43650#[cfg(target_endian = "little")]
43651#[target_feature(enable = "neon")]
43652#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43654#[cfg_attr(
43655    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43656    assert_instr(nop)
43657)]
43658#[cfg_attr(
43659    not(target_arch = "arm"),
43660    stable(feature = "neon_intrinsics", since = "1.59.0")
43661)]
43662#[cfg_attr(
43663    target_arch = "arm",
43664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43665)]
43666pub fn vreinterpretq_p16_f32(a: float32x4_t) -> poly16x8_t {
43667    unsafe { transmute(a) }
43668}
43669#[doc = "Vector reinterpret cast operation"]
43670#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f32)"]
43671#[inline(always)]
43672#[cfg(target_endian = "big")]
43673#[target_feature(enable = "neon")]
43674#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43675#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43676#[cfg_attr(
43677    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43678    assert_instr(nop)
43679)]
43680#[cfg_attr(
43681    not(target_arch = "arm"),
43682    stable(feature = "neon_intrinsics", since = "1.59.0")
43683)]
43684#[cfg_attr(
43685    target_arch = "arm",
43686    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43687)]
43688pub fn vreinterpretq_p16_f32(a: float32x4_t) -> poly16x8_t {
43689    let a: float32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
43690    unsafe {
43691        let ret_val: poly16x8_t = transmute(a);
43692        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43693    }
43694}
43695#[doc = "Vector reinterpret cast operation"]
43696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s8)"]
43697#[inline(always)]
43698#[cfg(target_endian = "little")]
43699#[target_feature(enable = "neon")]
43700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43701#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43702#[cfg_attr(
43703    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43704    assert_instr(nop)
43705)]
43706#[cfg_attr(
43707    not(target_arch = "arm"),
43708    stable(feature = "neon_intrinsics", since = "1.59.0")
43709)]
43710#[cfg_attr(
43711    target_arch = "arm",
43712    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43713)]
43714pub fn vreinterpret_f32_s8(a: int8x8_t) -> float32x2_t {
43715    unsafe { transmute(a) }
43716}
43717#[doc = "Vector reinterpret cast operation"]
43718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s8)"]
43719#[inline(always)]
43720#[cfg(target_endian = "big")]
43721#[target_feature(enable = "neon")]
43722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43724#[cfg_attr(
43725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43726    assert_instr(nop)
43727)]
43728#[cfg_attr(
43729    not(target_arch = "arm"),
43730    stable(feature = "neon_intrinsics", since = "1.59.0")
43731)]
43732#[cfg_attr(
43733    target_arch = "arm",
43734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43735)]
43736pub fn vreinterpret_f32_s8(a: int8x8_t) -> float32x2_t {
43737    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43738    unsafe {
43739        let ret_val: float32x2_t = transmute(a);
43740        simd_shuffle!(ret_val, ret_val, [1, 0])
43741    }
43742}
43743#[doc = "Vector reinterpret cast operation"]
43744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s8)"]
43745#[inline(always)]
43746#[cfg(target_endian = "little")]
43747#[target_feature(enable = "neon")]
43748#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43750#[cfg_attr(
43751    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43752    assert_instr(nop)
43753)]
43754#[cfg_attr(
43755    not(target_arch = "arm"),
43756    stable(feature = "neon_intrinsics", since = "1.59.0")
43757)]
43758#[cfg_attr(
43759    target_arch = "arm",
43760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43761)]
43762pub fn vreinterpret_s16_s8(a: int8x8_t) -> int16x4_t {
43763    unsafe { transmute(a) }
43764}
43765#[doc = "Vector reinterpret cast operation"]
43766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s8)"]
43767#[inline(always)]
43768#[cfg(target_endian = "big")]
43769#[target_feature(enable = "neon")]
43770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43772#[cfg_attr(
43773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43774    assert_instr(nop)
43775)]
43776#[cfg_attr(
43777    not(target_arch = "arm"),
43778    stable(feature = "neon_intrinsics", since = "1.59.0")
43779)]
43780#[cfg_attr(
43781    target_arch = "arm",
43782    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43783)]
43784pub fn vreinterpret_s16_s8(a: int8x8_t) -> int16x4_t {
43785    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43786    unsafe {
43787        let ret_val: int16x4_t = transmute(a);
43788        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43789    }
43790}
43791#[doc = "Vector reinterpret cast operation"]
43792#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s8)"]
43793#[inline(always)]
43794#[cfg(target_endian = "little")]
43795#[target_feature(enable = "neon")]
43796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43798#[cfg_attr(
43799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43800    assert_instr(nop)
43801)]
43802#[cfg_attr(
43803    not(target_arch = "arm"),
43804    stable(feature = "neon_intrinsics", since = "1.59.0")
43805)]
43806#[cfg_attr(
43807    target_arch = "arm",
43808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43809)]
43810pub fn vreinterpret_s32_s8(a: int8x8_t) -> int32x2_t {
43811    unsafe { transmute(a) }
43812}
43813#[doc = "Vector reinterpret cast operation"]
43814#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s8)"]
43815#[inline(always)]
43816#[cfg(target_endian = "big")]
43817#[target_feature(enable = "neon")]
43818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43819#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43820#[cfg_attr(
43821    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43822    assert_instr(nop)
43823)]
43824#[cfg_attr(
43825    not(target_arch = "arm"),
43826    stable(feature = "neon_intrinsics", since = "1.59.0")
43827)]
43828#[cfg_attr(
43829    target_arch = "arm",
43830    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43831)]
43832pub fn vreinterpret_s32_s8(a: int8x8_t) -> int32x2_t {
43833    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43834    unsafe {
43835        let ret_val: int32x2_t = transmute(a);
43836        simd_shuffle!(ret_val, ret_val, [1, 0])
43837    }
43838}
43839#[doc = "Vector reinterpret cast operation"]
43840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s8)"]
43841#[inline(always)]
43842#[cfg(target_endian = "little")]
43843#[target_feature(enable = "neon")]
43844#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43845#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43846#[cfg_attr(
43847    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43848    assert_instr(nop)
43849)]
43850#[cfg_attr(
43851    not(target_arch = "arm"),
43852    stable(feature = "neon_intrinsics", since = "1.59.0")
43853)]
43854#[cfg_attr(
43855    target_arch = "arm",
43856    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43857)]
43858pub fn vreinterpret_s64_s8(a: int8x8_t) -> int64x1_t {
43859    unsafe { transmute(a) }
43860}
43861#[doc = "Vector reinterpret cast operation"]
43862#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s8)"]
43863#[inline(always)]
43864#[cfg(target_endian = "big")]
43865#[target_feature(enable = "neon")]
43866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43867#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43868#[cfg_attr(
43869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43870    assert_instr(nop)
43871)]
43872#[cfg_attr(
43873    not(target_arch = "arm"),
43874    stable(feature = "neon_intrinsics", since = "1.59.0")
43875)]
43876#[cfg_attr(
43877    target_arch = "arm",
43878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43879)]
43880pub fn vreinterpret_s64_s8(a: int8x8_t) -> int64x1_t {
43881    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43882    unsafe { transmute(a) }
43883}
43884#[doc = "Vector reinterpret cast operation"]
43885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s8)"]
43886#[inline(always)]
43887#[cfg(target_endian = "little")]
43888#[target_feature(enable = "neon")]
43889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43891#[cfg_attr(
43892    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43893    assert_instr(nop)
43894)]
43895#[cfg_attr(
43896    not(target_arch = "arm"),
43897    stable(feature = "neon_intrinsics", since = "1.59.0")
43898)]
43899#[cfg_attr(
43900    target_arch = "arm",
43901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43902)]
43903pub fn vreinterpret_u8_s8(a: int8x8_t) -> uint8x8_t {
43904    unsafe { transmute(a) }
43905}
43906#[doc = "Vector reinterpret cast operation"]
43907#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s8)"]
43908#[inline(always)]
43909#[cfg(target_endian = "big")]
43910#[target_feature(enable = "neon")]
43911#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43912#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43913#[cfg_attr(
43914    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43915    assert_instr(nop)
43916)]
43917#[cfg_attr(
43918    not(target_arch = "arm"),
43919    stable(feature = "neon_intrinsics", since = "1.59.0")
43920)]
43921#[cfg_attr(
43922    target_arch = "arm",
43923    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43924)]
43925pub fn vreinterpret_u8_s8(a: int8x8_t) -> uint8x8_t {
43926    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43927    unsafe {
43928        let ret_val: uint8x8_t = transmute(a);
43929        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
43930    }
43931}
43932#[doc = "Vector reinterpret cast operation"]
43933#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s8)"]
43934#[inline(always)]
43935#[cfg(target_endian = "little")]
43936#[target_feature(enable = "neon")]
43937#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43938#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43939#[cfg_attr(
43940    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43941    assert_instr(nop)
43942)]
43943#[cfg_attr(
43944    not(target_arch = "arm"),
43945    stable(feature = "neon_intrinsics", since = "1.59.0")
43946)]
43947#[cfg_attr(
43948    target_arch = "arm",
43949    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43950)]
43951pub fn vreinterpret_u16_s8(a: int8x8_t) -> uint16x4_t {
43952    unsafe { transmute(a) }
43953}
43954#[doc = "Vector reinterpret cast operation"]
43955#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s8)"]
43956#[inline(always)]
43957#[cfg(target_endian = "big")]
43958#[target_feature(enable = "neon")]
43959#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43960#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43961#[cfg_attr(
43962    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43963    assert_instr(nop)
43964)]
43965#[cfg_attr(
43966    not(target_arch = "arm"),
43967    stable(feature = "neon_intrinsics", since = "1.59.0")
43968)]
43969#[cfg_attr(
43970    target_arch = "arm",
43971    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43972)]
43973pub fn vreinterpret_u16_s8(a: int8x8_t) -> uint16x4_t {
43974    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
43975    unsafe {
43976        let ret_val: uint16x4_t = transmute(a);
43977        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
43978    }
43979}
43980#[doc = "Vector reinterpret cast operation"]
43981#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s8)"]
43982#[inline(always)]
43983#[cfg(target_endian = "little")]
43984#[target_feature(enable = "neon")]
43985#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
43986#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
43987#[cfg_attr(
43988    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
43989    assert_instr(nop)
43990)]
43991#[cfg_attr(
43992    not(target_arch = "arm"),
43993    stable(feature = "neon_intrinsics", since = "1.59.0")
43994)]
43995#[cfg_attr(
43996    target_arch = "arm",
43997    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
43998)]
43999pub fn vreinterpret_u32_s8(a: int8x8_t) -> uint32x2_t {
44000    unsafe { transmute(a) }
44001}
44002#[doc = "Vector reinterpret cast operation"]
44003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s8)"]
44004#[inline(always)]
44005#[cfg(target_endian = "big")]
44006#[target_feature(enable = "neon")]
44007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44008#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44009#[cfg_attr(
44010    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44011    assert_instr(nop)
44012)]
44013#[cfg_attr(
44014    not(target_arch = "arm"),
44015    stable(feature = "neon_intrinsics", since = "1.59.0")
44016)]
44017#[cfg_attr(
44018    target_arch = "arm",
44019    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44020)]
44021pub fn vreinterpret_u32_s8(a: int8x8_t) -> uint32x2_t {
44022    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44023    unsafe {
44024        let ret_val: uint32x2_t = transmute(a);
44025        simd_shuffle!(ret_val, ret_val, [1, 0])
44026    }
44027}
44028#[doc = "Vector reinterpret cast operation"]
44029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s8)"]
44030#[inline(always)]
44031#[cfg(target_endian = "little")]
44032#[target_feature(enable = "neon")]
44033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44034#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44035#[cfg_attr(
44036    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44037    assert_instr(nop)
44038)]
44039#[cfg_attr(
44040    not(target_arch = "arm"),
44041    stable(feature = "neon_intrinsics", since = "1.59.0")
44042)]
44043#[cfg_attr(
44044    target_arch = "arm",
44045    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44046)]
44047pub fn vreinterpret_u64_s8(a: int8x8_t) -> uint64x1_t {
44048    unsafe { transmute(a) }
44049}
44050#[doc = "Vector reinterpret cast operation"]
44051#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s8)"]
44052#[inline(always)]
44053#[cfg(target_endian = "big")]
44054#[target_feature(enable = "neon")]
44055#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44056#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44057#[cfg_attr(
44058    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44059    assert_instr(nop)
44060)]
44061#[cfg_attr(
44062    not(target_arch = "arm"),
44063    stable(feature = "neon_intrinsics", since = "1.59.0")
44064)]
44065#[cfg_attr(
44066    target_arch = "arm",
44067    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44068)]
44069pub fn vreinterpret_u64_s8(a: int8x8_t) -> uint64x1_t {
44070    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44071    unsafe { transmute(a) }
44072}
44073#[doc = "Vector reinterpret cast operation"]
44074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s8)"]
44075#[inline(always)]
44076#[cfg(target_endian = "little")]
44077#[target_feature(enable = "neon")]
44078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44080#[cfg_attr(
44081    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44082    assert_instr(nop)
44083)]
44084#[cfg_attr(
44085    not(target_arch = "arm"),
44086    stable(feature = "neon_intrinsics", since = "1.59.0")
44087)]
44088#[cfg_attr(
44089    target_arch = "arm",
44090    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44091)]
44092pub fn vreinterpret_p8_s8(a: int8x8_t) -> poly8x8_t {
44093    unsafe { transmute(a) }
44094}
44095#[doc = "Vector reinterpret cast operation"]
44096#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s8)"]
44097#[inline(always)]
44098#[cfg(target_endian = "big")]
44099#[target_feature(enable = "neon")]
44100#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44101#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44102#[cfg_attr(
44103    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44104    assert_instr(nop)
44105)]
44106#[cfg_attr(
44107    not(target_arch = "arm"),
44108    stable(feature = "neon_intrinsics", since = "1.59.0")
44109)]
44110#[cfg_attr(
44111    target_arch = "arm",
44112    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44113)]
44114pub fn vreinterpret_p8_s8(a: int8x8_t) -> poly8x8_t {
44115    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44116    unsafe {
44117        let ret_val: poly8x8_t = transmute(a);
44118        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44119    }
44120}
44121#[doc = "Vector reinterpret cast operation"]
44122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s8)"]
44123#[inline(always)]
44124#[cfg(target_endian = "little")]
44125#[target_feature(enable = "neon")]
44126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44128#[cfg_attr(
44129    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44130    assert_instr(nop)
44131)]
44132#[cfg_attr(
44133    not(target_arch = "arm"),
44134    stable(feature = "neon_intrinsics", since = "1.59.0")
44135)]
44136#[cfg_attr(
44137    target_arch = "arm",
44138    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44139)]
44140pub fn vreinterpret_p16_s8(a: int8x8_t) -> poly16x4_t {
44141    unsafe { transmute(a) }
44142}
44143#[doc = "Vector reinterpret cast operation"]
44144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s8)"]
44145#[inline(always)]
44146#[cfg(target_endian = "big")]
44147#[target_feature(enable = "neon")]
44148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44150#[cfg_attr(
44151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44152    assert_instr(nop)
44153)]
44154#[cfg_attr(
44155    not(target_arch = "arm"),
44156    stable(feature = "neon_intrinsics", since = "1.59.0")
44157)]
44158#[cfg_attr(
44159    target_arch = "arm",
44160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44161)]
44162pub fn vreinterpret_p16_s8(a: int8x8_t) -> poly16x4_t {
44163    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
44164    unsafe {
44165        let ret_val: poly16x4_t = transmute(a);
44166        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44167    }
44168}
44169#[doc = "Vector reinterpret cast operation"]
44170#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s8)"]
44171#[inline(always)]
44172#[cfg(target_endian = "little")]
44173#[target_feature(enable = "neon")]
44174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44175#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44176#[cfg_attr(
44177    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44178    assert_instr(nop)
44179)]
44180#[cfg_attr(
44181    not(target_arch = "arm"),
44182    stable(feature = "neon_intrinsics", since = "1.59.0")
44183)]
44184#[cfg_attr(
44185    target_arch = "arm",
44186    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44187)]
44188pub fn vreinterpretq_f32_s8(a: int8x16_t) -> float32x4_t {
44189    unsafe { transmute(a) }
44190}
44191#[doc = "Vector reinterpret cast operation"]
44192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s8)"]
44193#[inline(always)]
44194#[cfg(target_endian = "big")]
44195#[target_feature(enable = "neon")]
44196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44198#[cfg_attr(
44199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44200    assert_instr(nop)
44201)]
44202#[cfg_attr(
44203    not(target_arch = "arm"),
44204    stable(feature = "neon_intrinsics", since = "1.59.0")
44205)]
44206#[cfg_attr(
44207    target_arch = "arm",
44208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44209)]
44210pub fn vreinterpretq_f32_s8(a: int8x16_t) -> float32x4_t {
44211    let a: int8x16_t =
44212        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44213    unsafe {
44214        let ret_val: float32x4_t = transmute(a);
44215        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44216    }
44217}
44218#[doc = "Vector reinterpret cast operation"]
44219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s8)"]
44220#[inline(always)]
44221#[cfg(target_endian = "little")]
44222#[target_feature(enable = "neon")]
44223#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44224#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44225#[cfg_attr(
44226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44227    assert_instr(nop)
44228)]
44229#[cfg_attr(
44230    not(target_arch = "arm"),
44231    stable(feature = "neon_intrinsics", since = "1.59.0")
44232)]
44233#[cfg_attr(
44234    target_arch = "arm",
44235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44236)]
44237pub fn vreinterpretq_s16_s8(a: int8x16_t) -> int16x8_t {
44238    unsafe { transmute(a) }
44239}
44240#[doc = "Vector reinterpret cast operation"]
44241#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s8)"]
44242#[inline(always)]
44243#[cfg(target_endian = "big")]
44244#[target_feature(enable = "neon")]
44245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44247#[cfg_attr(
44248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44249    assert_instr(nop)
44250)]
44251#[cfg_attr(
44252    not(target_arch = "arm"),
44253    stable(feature = "neon_intrinsics", since = "1.59.0")
44254)]
44255#[cfg_attr(
44256    target_arch = "arm",
44257    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44258)]
44259pub fn vreinterpretq_s16_s8(a: int8x16_t) -> int16x8_t {
44260    let a: int8x16_t =
44261        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44262    unsafe {
44263        let ret_val: int16x8_t = transmute(a);
44264        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44265    }
44266}
44267#[doc = "Vector reinterpret cast operation"]
44268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s8)"]
44269#[inline(always)]
44270#[cfg(target_endian = "little")]
44271#[target_feature(enable = "neon")]
44272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44274#[cfg_attr(
44275    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44276    assert_instr(nop)
44277)]
44278#[cfg_attr(
44279    not(target_arch = "arm"),
44280    stable(feature = "neon_intrinsics", since = "1.59.0")
44281)]
44282#[cfg_attr(
44283    target_arch = "arm",
44284    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44285)]
44286pub fn vreinterpretq_s32_s8(a: int8x16_t) -> int32x4_t {
44287    unsafe { transmute(a) }
44288}
44289#[doc = "Vector reinterpret cast operation"]
44290#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s8)"]
44291#[inline(always)]
44292#[cfg(target_endian = "big")]
44293#[target_feature(enable = "neon")]
44294#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44295#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44296#[cfg_attr(
44297    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44298    assert_instr(nop)
44299)]
44300#[cfg_attr(
44301    not(target_arch = "arm"),
44302    stable(feature = "neon_intrinsics", since = "1.59.0")
44303)]
44304#[cfg_attr(
44305    target_arch = "arm",
44306    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44307)]
44308pub fn vreinterpretq_s32_s8(a: int8x16_t) -> int32x4_t {
44309    let a: int8x16_t =
44310        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44311    unsafe {
44312        let ret_val: int32x4_t = transmute(a);
44313        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44314    }
44315}
44316#[doc = "Vector reinterpret cast operation"]
44317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s8)"]
44318#[inline(always)]
44319#[cfg(target_endian = "little")]
44320#[target_feature(enable = "neon")]
44321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44322#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44323#[cfg_attr(
44324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44325    assert_instr(nop)
44326)]
44327#[cfg_attr(
44328    not(target_arch = "arm"),
44329    stable(feature = "neon_intrinsics", since = "1.59.0")
44330)]
44331#[cfg_attr(
44332    target_arch = "arm",
44333    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44334)]
44335pub fn vreinterpretq_s64_s8(a: int8x16_t) -> int64x2_t {
44336    unsafe { transmute(a) }
44337}
44338#[doc = "Vector reinterpret cast operation"]
44339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s8)"]
44340#[inline(always)]
44341#[cfg(target_endian = "big")]
44342#[target_feature(enable = "neon")]
44343#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44344#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44345#[cfg_attr(
44346    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44347    assert_instr(nop)
44348)]
44349#[cfg_attr(
44350    not(target_arch = "arm"),
44351    stable(feature = "neon_intrinsics", since = "1.59.0")
44352)]
44353#[cfg_attr(
44354    target_arch = "arm",
44355    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44356)]
44357pub fn vreinterpretq_s64_s8(a: int8x16_t) -> int64x2_t {
44358    let a: int8x16_t =
44359        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44360    unsafe {
44361        let ret_val: int64x2_t = transmute(a);
44362        simd_shuffle!(ret_val, ret_val, [1, 0])
44363    }
44364}
44365#[doc = "Vector reinterpret cast operation"]
44366#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s8)"]
44367#[inline(always)]
44368#[cfg(target_endian = "little")]
44369#[target_feature(enable = "neon")]
44370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44371#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44372#[cfg_attr(
44373    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44374    assert_instr(nop)
44375)]
44376#[cfg_attr(
44377    not(target_arch = "arm"),
44378    stable(feature = "neon_intrinsics", since = "1.59.0")
44379)]
44380#[cfg_attr(
44381    target_arch = "arm",
44382    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44383)]
44384pub fn vreinterpretq_u8_s8(a: int8x16_t) -> uint8x16_t {
44385    unsafe { transmute(a) }
44386}
44387#[doc = "Vector reinterpret cast operation"]
44388#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s8)"]
44389#[inline(always)]
44390#[cfg(target_endian = "big")]
44391#[target_feature(enable = "neon")]
44392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44394#[cfg_attr(
44395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44396    assert_instr(nop)
44397)]
44398#[cfg_attr(
44399    not(target_arch = "arm"),
44400    stable(feature = "neon_intrinsics", since = "1.59.0")
44401)]
44402#[cfg_attr(
44403    target_arch = "arm",
44404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44405)]
44406pub fn vreinterpretq_u8_s8(a: int8x16_t) -> uint8x16_t {
44407    let a: int8x16_t =
44408        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44409    unsafe {
44410        let ret_val: uint8x16_t = transmute(a);
44411        simd_shuffle!(
44412            ret_val,
44413            ret_val,
44414            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
44415        )
44416    }
44417}
44418#[doc = "Vector reinterpret cast operation"]
44419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s8)"]
44420#[inline(always)]
44421#[cfg(target_endian = "little")]
44422#[target_feature(enable = "neon")]
44423#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44424#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44425#[cfg_attr(
44426    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44427    assert_instr(nop)
44428)]
44429#[cfg_attr(
44430    not(target_arch = "arm"),
44431    stable(feature = "neon_intrinsics", since = "1.59.0")
44432)]
44433#[cfg_attr(
44434    target_arch = "arm",
44435    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44436)]
44437pub fn vreinterpretq_u16_s8(a: int8x16_t) -> uint16x8_t {
44438    unsafe { transmute(a) }
44439}
44440#[doc = "Vector reinterpret cast operation"]
44441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s8)"]
44442#[inline(always)]
44443#[cfg(target_endian = "big")]
44444#[target_feature(enable = "neon")]
44445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44447#[cfg_attr(
44448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44449    assert_instr(nop)
44450)]
44451#[cfg_attr(
44452    not(target_arch = "arm"),
44453    stable(feature = "neon_intrinsics", since = "1.59.0")
44454)]
44455#[cfg_attr(
44456    target_arch = "arm",
44457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44458)]
44459pub fn vreinterpretq_u16_s8(a: int8x16_t) -> uint16x8_t {
44460    let a: int8x16_t =
44461        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44462    unsafe {
44463        let ret_val: uint16x8_t = transmute(a);
44464        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44465    }
44466}
44467#[doc = "Vector reinterpret cast operation"]
44468#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s8)"]
44469#[inline(always)]
44470#[cfg(target_endian = "little")]
44471#[target_feature(enable = "neon")]
44472#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44473#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44474#[cfg_attr(
44475    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44476    assert_instr(nop)
44477)]
44478#[cfg_attr(
44479    not(target_arch = "arm"),
44480    stable(feature = "neon_intrinsics", since = "1.59.0")
44481)]
44482#[cfg_attr(
44483    target_arch = "arm",
44484    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44485)]
44486pub fn vreinterpretq_u32_s8(a: int8x16_t) -> uint32x4_t {
44487    unsafe { transmute(a) }
44488}
44489#[doc = "Vector reinterpret cast operation"]
44490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s8)"]
44491#[inline(always)]
44492#[cfg(target_endian = "big")]
44493#[target_feature(enable = "neon")]
44494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44495#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44496#[cfg_attr(
44497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44498    assert_instr(nop)
44499)]
44500#[cfg_attr(
44501    not(target_arch = "arm"),
44502    stable(feature = "neon_intrinsics", since = "1.59.0")
44503)]
44504#[cfg_attr(
44505    target_arch = "arm",
44506    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44507)]
44508pub fn vreinterpretq_u32_s8(a: int8x16_t) -> uint32x4_t {
44509    let a: int8x16_t =
44510        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44511    unsafe {
44512        let ret_val: uint32x4_t = transmute(a);
44513        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44514    }
44515}
44516#[doc = "Vector reinterpret cast operation"]
44517#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s8)"]
44518#[inline(always)]
44519#[cfg(target_endian = "little")]
44520#[target_feature(enable = "neon")]
44521#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44522#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44523#[cfg_attr(
44524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44525    assert_instr(nop)
44526)]
44527#[cfg_attr(
44528    not(target_arch = "arm"),
44529    stable(feature = "neon_intrinsics", since = "1.59.0")
44530)]
44531#[cfg_attr(
44532    target_arch = "arm",
44533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44534)]
44535pub fn vreinterpretq_u64_s8(a: int8x16_t) -> uint64x2_t {
44536    unsafe { transmute(a) }
44537}
44538#[doc = "Vector reinterpret cast operation"]
44539#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s8)"]
44540#[inline(always)]
44541#[cfg(target_endian = "big")]
44542#[target_feature(enable = "neon")]
44543#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44544#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44545#[cfg_attr(
44546    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44547    assert_instr(nop)
44548)]
44549#[cfg_attr(
44550    not(target_arch = "arm"),
44551    stable(feature = "neon_intrinsics", since = "1.59.0")
44552)]
44553#[cfg_attr(
44554    target_arch = "arm",
44555    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44556)]
44557pub fn vreinterpretq_u64_s8(a: int8x16_t) -> uint64x2_t {
44558    let a: int8x16_t =
44559        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44560    unsafe {
44561        let ret_val: uint64x2_t = transmute(a);
44562        simd_shuffle!(ret_val, ret_val, [1, 0])
44563    }
44564}
44565#[doc = "Vector reinterpret cast operation"]
44566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s8)"]
44567#[inline(always)]
44568#[cfg(target_endian = "little")]
44569#[target_feature(enable = "neon")]
44570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44571#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44572#[cfg_attr(
44573    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44574    assert_instr(nop)
44575)]
44576#[cfg_attr(
44577    not(target_arch = "arm"),
44578    stable(feature = "neon_intrinsics", since = "1.59.0")
44579)]
44580#[cfg_attr(
44581    target_arch = "arm",
44582    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44583)]
44584pub fn vreinterpretq_p8_s8(a: int8x16_t) -> poly8x16_t {
44585    unsafe { transmute(a) }
44586}
44587#[doc = "Vector reinterpret cast operation"]
44588#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s8)"]
44589#[inline(always)]
44590#[cfg(target_endian = "big")]
44591#[target_feature(enable = "neon")]
44592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44593#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44594#[cfg_attr(
44595    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44596    assert_instr(nop)
44597)]
44598#[cfg_attr(
44599    not(target_arch = "arm"),
44600    stable(feature = "neon_intrinsics", since = "1.59.0")
44601)]
44602#[cfg_attr(
44603    target_arch = "arm",
44604    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44605)]
44606pub fn vreinterpretq_p8_s8(a: int8x16_t) -> poly8x16_t {
44607    let a: int8x16_t =
44608        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44609    unsafe {
44610        let ret_val: poly8x16_t = transmute(a);
44611        simd_shuffle!(
44612            ret_val,
44613            ret_val,
44614            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
44615        )
44616    }
44617}
44618#[doc = "Vector reinterpret cast operation"]
44619#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s8)"]
44620#[inline(always)]
44621#[cfg(target_endian = "little")]
44622#[target_feature(enable = "neon")]
44623#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44624#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44625#[cfg_attr(
44626    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44627    assert_instr(nop)
44628)]
44629#[cfg_attr(
44630    not(target_arch = "arm"),
44631    stable(feature = "neon_intrinsics", since = "1.59.0")
44632)]
44633#[cfg_attr(
44634    target_arch = "arm",
44635    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44636)]
44637pub fn vreinterpretq_p16_s8(a: int8x16_t) -> poly16x8_t {
44638    unsafe { transmute(a) }
44639}
44640#[doc = "Vector reinterpret cast operation"]
44641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s8)"]
44642#[inline(always)]
44643#[cfg(target_endian = "big")]
44644#[target_feature(enable = "neon")]
44645#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44646#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44647#[cfg_attr(
44648    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44649    assert_instr(nop)
44650)]
44651#[cfg_attr(
44652    not(target_arch = "arm"),
44653    stable(feature = "neon_intrinsics", since = "1.59.0")
44654)]
44655#[cfg_attr(
44656    target_arch = "arm",
44657    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44658)]
44659pub fn vreinterpretq_p16_s8(a: int8x16_t) -> poly16x8_t {
44660    let a: int8x16_t =
44661        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
44662    unsafe {
44663        let ret_val: poly16x8_t = transmute(a);
44664        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44665    }
44666}
44667#[doc = "Vector reinterpret cast operation"]
44668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s16)"]
44669#[inline(always)]
44670#[cfg(target_endian = "little")]
44671#[target_feature(enable = "neon")]
44672#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44673#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44674#[cfg_attr(
44675    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44676    assert_instr(nop)
44677)]
44678#[cfg_attr(
44679    not(target_arch = "arm"),
44680    stable(feature = "neon_intrinsics", since = "1.59.0")
44681)]
44682#[cfg_attr(
44683    target_arch = "arm",
44684    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44685)]
44686pub fn vreinterpret_f32_s16(a: int16x4_t) -> float32x2_t {
44687    unsafe { transmute(a) }
44688}
44689#[doc = "Vector reinterpret cast operation"]
44690#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s16)"]
44691#[inline(always)]
44692#[cfg(target_endian = "big")]
44693#[target_feature(enable = "neon")]
44694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44696#[cfg_attr(
44697    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44698    assert_instr(nop)
44699)]
44700#[cfg_attr(
44701    not(target_arch = "arm"),
44702    stable(feature = "neon_intrinsics", since = "1.59.0")
44703)]
44704#[cfg_attr(
44705    target_arch = "arm",
44706    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44707)]
44708pub fn vreinterpret_f32_s16(a: int16x4_t) -> float32x2_t {
44709    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44710    unsafe {
44711        let ret_val: float32x2_t = transmute(a);
44712        simd_shuffle!(ret_val, ret_val, [1, 0])
44713    }
44714}
44715#[doc = "Vector reinterpret cast operation"]
44716#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s16)"]
44717#[inline(always)]
44718#[cfg(target_endian = "little")]
44719#[target_feature(enable = "neon")]
44720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44722#[cfg_attr(
44723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44724    assert_instr(nop)
44725)]
44726#[cfg_attr(
44727    not(target_arch = "arm"),
44728    stable(feature = "neon_intrinsics", since = "1.59.0")
44729)]
44730#[cfg_attr(
44731    target_arch = "arm",
44732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44733)]
44734pub fn vreinterpret_s8_s16(a: int16x4_t) -> int8x8_t {
44735    unsafe { transmute(a) }
44736}
44737#[doc = "Vector reinterpret cast operation"]
44738#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s16)"]
44739#[inline(always)]
44740#[cfg(target_endian = "big")]
44741#[target_feature(enable = "neon")]
44742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44743#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44744#[cfg_attr(
44745    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44746    assert_instr(nop)
44747)]
44748#[cfg_attr(
44749    not(target_arch = "arm"),
44750    stable(feature = "neon_intrinsics", since = "1.59.0")
44751)]
44752#[cfg_attr(
44753    target_arch = "arm",
44754    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44755)]
44756pub fn vreinterpret_s8_s16(a: int16x4_t) -> int8x8_t {
44757    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44758    unsafe {
44759        let ret_val: int8x8_t = transmute(a);
44760        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44761    }
44762}
44763#[doc = "Vector reinterpret cast operation"]
44764#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s16)"]
44765#[inline(always)]
44766#[cfg(target_endian = "little")]
44767#[target_feature(enable = "neon")]
44768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44769#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44770#[cfg_attr(
44771    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44772    assert_instr(nop)
44773)]
44774#[cfg_attr(
44775    not(target_arch = "arm"),
44776    stable(feature = "neon_intrinsics", since = "1.59.0")
44777)]
44778#[cfg_attr(
44779    target_arch = "arm",
44780    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44781)]
44782pub fn vreinterpret_s32_s16(a: int16x4_t) -> int32x2_t {
44783    unsafe { transmute(a) }
44784}
44785#[doc = "Vector reinterpret cast operation"]
44786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s16)"]
44787#[inline(always)]
44788#[cfg(target_endian = "big")]
44789#[target_feature(enable = "neon")]
44790#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44791#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44792#[cfg_attr(
44793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44794    assert_instr(nop)
44795)]
44796#[cfg_attr(
44797    not(target_arch = "arm"),
44798    stable(feature = "neon_intrinsics", since = "1.59.0")
44799)]
44800#[cfg_attr(
44801    target_arch = "arm",
44802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44803)]
44804pub fn vreinterpret_s32_s16(a: int16x4_t) -> int32x2_t {
44805    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44806    unsafe {
44807        let ret_val: int32x2_t = transmute(a);
44808        simd_shuffle!(ret_val, ret_val, [1, 0])
44809    }
44810}
44811#[doc = "Vector reinterpret cast operation"]
44812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s16)"]
44813#[inline(always)]
44814#[cfg(target_endian = "little")]
44815#[target_feature(enable = "neon")]
44816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44818#[cfg_attr(
44819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44820    assert_instr(nop)
44821)]
44822#[cfg_attr(
44823    not(target_arch = "arm"),
44824    stable(feature = "neon_intrinsics", since = "1.59.0")
44825)]
44826#[cfg_attr(
44827    target_arch = "arm",
44828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44829)]
44830pub fn vreinterpret_s64_s16(a: int16x4_t) -> int64x1_t {
44831    unsafe { transmute(a) }
44832}
44833#[doc = "Vector reinterpret cast operation"]
44834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s16)"]
44835#[inline(always)]
44836#[cfg(target_endian = "big")]
44837#[target_feature(enable = "neon")]
44838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44840#[cfg_attr(
44841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44842    assert_instr(nop)
44843)]
44844#[cfg_attr(
44845    not(target_arch = "arm"),
44846    stable(feature = "neon_intrinsics", since = "1.59.0")
44847)]
44848#[cfg_attr(
44849    target_arch = "arm",
44850    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44851)]
44852pub fn vreinterpret_s64_s16(a: int16x4_t) -> int64x1_t {
44853    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44854    unsafe { transmute(a) }
44855}
44856#[doc = "Vector reinterpret cast operation"]
44857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s16)"]
44858#[inline(always)]
44859#[cfg(target_endian = "little")]
44860#[target_feature(enable = "neon")]
44861#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44862#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44863#[cfg_attr(
44864    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44865    assert_instr(nop)
44866)]
44867#[cfg_attr(
44868    not(target_arch = "arm"),
44869    stable(feature = "neon_intrinsics", since = "1.59.0")
44870)]
44871#[cfg_attr(
44872    target_arch = "arm",
44873    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44874)]
44875pub fn vreinterpret_u8_s16(a: int16x4_t) -> uint8x8_t {
44876    unsafe { transmute(a) }
44877}
44878#[doc = "Vector reinterpret cast operation"]
44879#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s16)"]
44880#[inline(always)]
44881#[cfg(target_endian = "big")]
44882#[target_feature(enable = "neon")]
44883#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44884#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44885#[cfg_attr(
44886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44887    assert_instr(nop)
44888)]
44889#[cfg_attr(
44890    not(target_arch = "arm"),
44891    stable(feature = "neon_intrinsics", since = "1.59.0")
44892)]
44893#[cfg_attr(
44894    target_arch = "arm",
44895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44896)]
44897pub fn vreinterpret_u8_s16(a: int16x4_t) -> uint8x8_t {
44898    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44899    unsafe {
44900        let ret_val: uint8x8_t = transmute(a);
44901        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
44902    }
44903}
44904#[doc = "Vector reinterpret cast operation"]
44905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s16)"]
44906#[inline(always)]
44907#[cfg(target_endian = "little")]
44908#[target_feature(enable = "neon")]
44909#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44910#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44911#[cfg_attr(
44912    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44913    assert_instr(nop)
44914)]
44915#[cfg_attr(
44916    not(target_arch = "arm"),
44917    stable(feature = "neon_intrinsics", since = "1.59.0")
44918)]
44919#[cfg_attr(
44920    target_arch = "arm",
44921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44922)]
44923pub fn vreinterpret_u16_s16(a: int16x4_t) -> uint16x4_t {
44924    unsafe { transmute(a) }
44925}
44926#[doc = "Vector reinterpret cast operation"]
44927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s16)"]
44928#[inline(always)]
44929#[cfg(target_endian = "big")]
44930#[target_feature(enable = "neon")]
44931#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44933#[cfg_attr(
44934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44935    assert_instr(nop)
44936)]
44937#[cfg_attr(
44938    not(target_arch = "arm"),
44939    stable(feature = "neon_intrinsics", since = "1.59.0")
44940)]
44941#[cfg_attr(
44942    target_arch = "arm",
44943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44944)]
44945pub fn vreinterpret_u16_s16(a: int16x4_t) -> uint16x4_t {
44946    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44947    unsafe {
44948        let ret_val: uint16x4_t = transmute(a);
44949        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
44950    }
44951}
44952#[doc = "Vector reinterpret cast operation"]
44953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s16)"]
44954#[inline(always)]
44955#[cfg(target_endian = "little")]
44956#[target_feature(enable = "neon")]
44957#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44958#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44959#[cfg_attr(
44960    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44961    assert_instr(nop)
44962)]
44963#[cfg_attr(
44964    not(target_arch = "arm"),
44965    stable(feature = "neon_intrinsics", since = "1.59.0")
44966)]
44967#[cfg_attr(
44968    target_arch = "arm",
44969    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44970)]
44971pub fn vreinterpret_u32_s16(a: int16x4_t) -> uint32x2_t {
44972    unsafe { transmute(a) }
44973}
44974#[doc = "Vector reinterpret cast operation"]
44975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s16)"]
44976#[inline(always)]
44977#[cfg(target_endian = "big")]
44978#[target_feature(enable = "neon")]
44979#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
44980#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
44981#[cfg_attr(
44982    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
44983    assert_instr(nop)
44984)]
44985#[cfg_attr(
44986    not(target_arch = "arm"),
44987    stable(feature = "neon_intrinsics", since = "1.59.0")
44988)]
44989#[cfg_attr(
44990    target_arch = "arm",
44991    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
44992)]
44993pub fn vreinterpret_u32_s16(a: int16x4_t) -> uint32x2_t {
44994    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
44995    unsafe {
44996        let ret_val: uint32x2_t = transmute(a);
44997        simd_shuffle!(ret_val, ret_val, [1, 0])
44998    }
44999}
45000#[doc = "Vector reinterpret cast operation"]
45001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s16)"]
45002#[inline(always)]
45003#[cfg(target_endian = "little")]
45004#[target_feature(enable = "neon")]
45005#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45006#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45007#[cfg_attr(
45008    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45009    assert_instr(nop)
45010)]
45011#[cfg_attr(
45012    not(target_arch = "arm"),
45013    stable(feature = "neon_intrinsics", since = "1.59.0")
45014)]
45015#[cfg_attr(
45016    target_arch = "arm",
45017    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45018)]
45019pub fn vreinterpret_u64_s16(a: int16x4_t) -> uint64x1_t {
45020    unsafe { transmute(a) }
45021}
45022#[doc = "Vector reinterpret cast operation"]
45023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s16)"]
45024#[inline(always)]
45025#[cfg(target_endian = "big")]
45026#[target_feature(enable = "neon")]
45027#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45028#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45029#[cfg_attr(
45030    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45031    assert_instr(nop)
45032)]
45033#[cfg_attr(
45034    not(target_arch = "arm"),
45035    stable(feature = "neon_intrinsics", since = "1.59.0")
45036)]
45037#[cfg_attr(
45038    target_arch = "arm",
45039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45040)]
45041pub fn vreinterpret_u64_s16(a: int16x4_t) -> uint64x1_t {
45042    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45043    unsafe { transmute(a) }
45044}
45045#[doc = "Vector reinterpret cast operation"]
45046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s16)"]
45047#[inline(always)]
45048#[cfg(target_endian = "little")]
45049#[target_feature(enable = "neon")]
45050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45052#[cfg_attr(
45053    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45054    assert_instr(nop)
45055)]
45056#[cfg_attr(
45057    not(target_arch = "arm"),
45058    stable(feature = "neon_intrinsics", since = "1.59.0")
45059)]
45060#[cfg_attr(
45061    target_arch = "arm",
45062    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45063)]
45064pub fn vreinterpret_p8_s16(a: int16x4_t) -> poly8x8_t {
45065    unsafe { transmute(a) }
45066}
45067#[doc = "Vector reinterpret cast operation"]
45068#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s16)"]
45069#[inline(always)]
45070#[cfg(target_endian = "big")]
45071#[target_feature(enable = "neon")]
45072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45073#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45074#[cfg_attr(
45075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45076    assert_instr(nop)
45077)]
45078#[cfg_attr(
45079    not(target_arch = "arm"),
45080    stable(feature = "neon_intrinsics", since = "1.59.0")
45081)]
45082#[cfg_attr(
45083    target_arch = "arm",
45084    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45085)]
45086pub fn vreinterpret_p8_s16(a: int16x4_t) -> poly8x8_t {
45087    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45088    unsafe {
45089        let ret_val: poly8x8_t = transmute(a);
45090        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45091    }
45092}
45093#[doc = "Vector reinterpret cast operation"]
45094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s16)"]
45095#[inline(always)]
45096#[cfg(target_endian = "little")]
45097#[target_feature(enable = "neon")]
45098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45100#[cfg_attr(
45101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45102    assert_instr(nop)
45103)]
45104#[cfg_attr(
45105    not(target_arch = "arm"),
45106    stable(feature = "neon_intrinsics", since = "1.59.0")
45107)]
45108#[cfg_attr(
45109    target_arch = "arm",
45110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45111)]
45112pub fn vreinterpret_p16_s16(a: int16x4_t) -> poly16x4_t {
45113    unsafe { transmute(a) }
45114}
45115#[doc = "Vector reinterpret cast operation"]
45116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s16)"]
45117#[inline(always)]
45118#[cfg(target_endian = "big")]
45119#[target_feature(enable = "neon")]
45120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45121#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45122#[cfg_attr(
45123    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45124    assert_instr(nop)
45125)]
45126#[cfg_attr(
45127    not(target_arch = "arm"),
45128    stable(feature = "neon_intrinsics", since = "1.59.0")
45129)]
45130#[cfg_attr(
45131    target_arch = "arm",
45132    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45133)]
45134pub fn vreinterpret_p16_s16(a: int16x4_t) -> poly16x4_t {
45135    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
45136    unsafe {
45137        let ret_val: poly16x4_t = transmute(a);
45138        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45139    }
45140}
45141#[doc = "Vector reinterpret cast operation"]
45142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s16)"]
45143#[inline(always)]
45144#[cfg(target_endian = "little")]
45145#[target_feature(enable = "neon")]
45146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45148#[cfg_attr(
45149    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45150    assert_instr(nop)
45151)]
45152#[cfg_attr(
45153    not(target_arch = "arm"),
45154    stable(feature = "neon_intrinsics", since = "1.59.0")
45155)]
45156#[cfg_attr(
45157    target_arch = "arm",
45158    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45159)]
45160pub fn vreinterpretq_f32_s16(a: int16x8_t) -> float32x4_t {
45161    unsafe { transmute(a) }
45162}
45163#[doc = "Vector reinterpret cast operation"]
45164#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s16)"]
45165#[inline(always)]
45166#[cfg(target_endian = "big")]
45167#[target_feature(enable = "neon")]
45168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45170#[cfg_attr(
45171    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45172    assert_instr(nop)
45173)]
45174#[cfg_attr(
45175    not(target_arch = "arm"),
45176    stable(feature = "neon_intrinsics", since = "1.59.0")
45177)]
45178#[cfg_attr(
45179    target_arch = "arm",
45180    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45181)]
45182pub fn vreinterpretq_f32_s16(a: int16x8_t) -> float32x4_t {
45183    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45184    unsafe {
45185        let ret_val: float32x4_t = transmute(a);
45186        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45187    }
45188}
45189#[doc = "Vector reinterpret cast operation"]
45190#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s16)"]
45191#[inline(always)]
45192#[cfg(target_endian = "little")]
45193#[target_feature(enable = "neon")]
45194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45196#[cfg_attr(
45197    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45198    assert_instr(nop)
45199)]
45200#[cfg_attr(
45201    not(target_arch = "arm"),
45202    stable(feature = "neon_intrinsics", since = "1.59.0")
45203)]
45204#[cfg_attr(
45205    target_arch = "arm",
45206    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45207)]
45208pub fn vreinterpretq_s8_s16(a: int16x8_t) -> int8x16_t {
45209    unsafe { transmute(a) }
45210}
45211#[doc = "Vector reinterpret cast operation"]
45212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s16)"]
45213#[inline(always)]
45214#[cfg(target_endian = "big")]
45215#[target_feature(enable = "neon")]
45216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45217#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45218#[cfg_attr(
45219    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45220    assert_instr(nop)
45221)]
45222#[cfg_attr(
45223    not(target_arch = "arm"),
45224    stable(feature = "neon_intrinsics", since = "1.59.0")
45225)]
45226#[cfg_attr(
45227    target_arch = "arm",
45228    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45229)]
45230pub fn vreinterpretq_s8_s16(a: int16x8_t) -> int8x16_t {
45231    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45232    unsafe {
45233        let ret_val: int8x16_t = transmute(a);
45234        simd_shuffle!(
45235            ret_val,
45236            ret_val,
45237            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
45238        )
45239    }
45240}
45241#[doc = "Vector reinterpret cast operation"]
45242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s16)"]
45243#[inline(always)]
45244#[cfg(target_endian = "little")]
45245#[target_feature(enable = "neon")]
45246#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45247#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45248#[cfg_attr(
45249    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45250    assert_instr(nop)
45251)]
45252#[cfg_attr(
45253    not(target_arch = "arm"),
45254    stable(feature = "neon_intrinsics", since = "1.59.0")
45255)]
45256#[cfg_attr(
45257    target_arch = "arm",
45258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45259)]
45260pub fn vreinterpretq_s32_s16(a: int16x8_t) -> int32x4_t {
45261    unsafe { transmute(a) }
45262}
45263#[doc = "Vector reinterpret cast operation"]
45264#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s16)"]
45265#[inline(always)]
45266#[cfg(target_endian = "big")]
45267#[target_feature(enable = "neon")]
45268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45269#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45270#[cfg_attr(
45271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45272    assert_instr(nop)
45273)]
45274#[cfg_attr(
45275    not(target_arch = "arm"),
45276    stable(feature = "neon_intrinsics", since = "1.59.0")
45277)]
45278#[cfg_attr(
45279    target_arch = "arm",
45280    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45281)]
45282pub fn vreinterpretq_s32_s16(a: int16x8_t) -> int32x4_t {
45283    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45284    unsafe {
45285        let ret_val: int32x4_t = transmute(a);
45286        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45287    }
45288}
45289#[doc = "Vector reinterpret cast operation"]
45290#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s16)"]
45291#[inline(always)]
45292#[cfg(target_endian = "little")]
45293#[target_feature(enable = "neon")]
45294#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45295#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45296#[cfg_attr(
45297    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45298    assert_instr(nop)
45299)]
45300#[cfg_attr(
45301    not(target_arch = "arm"),
45302    stable(feature = "neon_intrinsics", since = "1.59.0")
45303)]
45304#[cfg_attr(
45305    target_arch = "arm",
45306    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45307)]
45308pub fn vreinterpretq_s64_s16(a: int16x8_t) -> int64x2_t {
45309    unsafe { transmute(a) }
45310}
45311#[doc = "Vector reinterpret cast operation"]
45312#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s16)"]
45313#[inline(always)]
45314#[cfg(target_endian = "big")]
45315#[target_feature(enable = "neon")]
45316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45318#[cfg_attr(
45319    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45320    assert_instr(nop)
45321)]
45322#[cfg_attr(
45323    not(target_arch = "arm"),
45324    stable(feature = "neon_intrinsics", since = "1.59.0")
45325)]
45326#[cfg_attr(
45327    target_arch = "arm",
45328    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45329)]
45330pub fn vreinterpretq_s64_s16(a: int16x8_t) -> int64x2_t {
45331    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45332    unsafe {
45333        let ret_val: int64x2_t = transmute(a);
45334        simd_shuffle!(ret_val, ret_val, [1, 0])
45335    }
45336}
45337#[doc = "Vector reinterpret cast operation"]
45338#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s16)"]
45339#[inline(always)]
45340#[cfg(target_endian = "little")]
45341#[target_feature(enable = "neon")]
45342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45344#[cfg_attr(
45345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45346    assert_instr(nop)
45347)]
45348#[cfg_attr(
45349    not(target_arch = "arm"),
45350    stable(feature = "neon_intrinsics", since = "1.59.0")
45351)]
45352#[cfg_attr(
45353    target_arch = "arm",
45354    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45355)]
45356pub fn vreinterpretq_u8_s16(a: int16x8_t) -> uint8x16_t {
45357    unsafe { transmute(a) }
45358}
45359#[doc = "Vector reinterpret cast operation"]
45360#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s16)"]
45361#[inline(always)]
45362#[cfg(target_endian = "big")]
45363#[target_feature(enable = "neon")]
45364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45366#[cfg_attr(
45367    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45368    assert_instr(nop)
45369)]
45370#[cfg_attr(
45371    not(target_arch = "arm"),
45372    stable(feature = "neon_intrinsics", since = "1.59.0")
45373)]
45374#[cfg_attr(
45375    target_arch = "arm",
45376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45377)]
45378pub fn vreinterpretq_u8_s16(a: int16x8_t) -> uint8x16_t {
45379    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45380    unsafe {
45381        let ret_val: uint8x16_t = transmute(a);
45382        simd_shuffle!(
45383            ret_val,
45384            ret_val,
45385            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
45386        )
45387    }
45388}
45389#[doc = "Vector reinterpret cast operation"]
45390#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s16)"]
45391#[inline(always)]
45392#[cfg(target_endian = "little")]
45393#[target_feature(enable = "neon")]
45394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45396#[cfg_attr(
45397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45398    assert_instr(nop)
45399)]
45400#[cfg_attr(
45401    not(target_arch = "arm"),
45402    stable(feature = "neon_intrinsics", since = "1.59.0")
45403)]
45404#[cfg_attr(
45405    target_arch = "arm",
45406    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45407)]
45408pub fn vreinterpretq_u16_s16(a: int16x8_t) -> uint16x8_t {
45409    unsafe { transmute(a) }
45410}
45411#[doc = "Vector reinterpret cast operation"]
45412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s16)"]
45413#[inline(always)]
45414#[cfg(target_endian = "big")]
45415#[target_feature(enable = "neon")]
45416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45418#[cfg_attr(
45419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45420    assert_instr(nop)
45421)]
45422#[cfg_attr(
45423    not(target_arch = "arm"),
45424    stable(feature = "neon_intrinsics", since = "1.59.0")
45425)]
45426#[cfg_attr(
45427    target_arch = "arm",
45428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45429)]
45430pub fn vreinterpretq_u16_s16(a: int16x8_t) -> uint16x8_t {
45431    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45432    unsafe {
45433        let ret_val: uint16x8_t = transmute(a);
45434        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45435    }
45436}
45437#[doc = "Vector reinterpret cast operation"]
45438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s16)"]
45439#[inline(always)]
45440#[cfg(target_endian = "little")]
45441#[target_feature(enable = "neon")]
45442#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45443#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45444#[cfg_attr(
45445    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45446    assert_instr(nop)
45447)]
45448#[cfg_attr(
45449    not(target_arch = "arm"),
45450    stable(feature = "neon_intrinsics", since = "1.59.0")
45451)]
45452#[cfg_attr(
45453    target_arch = "arm",
45454    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45455)]
45456pub fn vreinterpretq_u32_s16(a: int16x8_t) -> uint32x4_t {
45457    unsafe { transmute(a) }
45458}
45459#[doc = "Vector reinterpret cast operation"]
45460#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s16)"]
45461#[inline(always)]
45462#[cfg(target_endian = "big")]
45463#[target_feature(enable = "neon")]
45464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45465#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45466#[cfg_attr(
45467    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45468    assert_instr(nop)
45469)]
45470#[cfg_attr(
45471    not(target_arch = "arm"),
45472    stable(feature = "neon_intrinsics", since = "1.59.0")
45473)]
45474#[cfg_attr(
45475    target_arch = "arm",
45476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45477)]
45478pub fn vreinterpretq_u32_s16(a: int16x8_t) -> uint32x4_t {
45479    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45480    unsafe {
45481        let ret_val: uint32x4_t = transmute(a);
45482        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45483    }
45484}
45485#[doc = "Vector reinterpret cast operation"]
45486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s16)"]
45487#[inline(always)]
45488#[cfg(target_endian = "little")]
45489#[target_feature(enable = "neon")]
45490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45492#[cfg_attr(
45493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45494    assert_instr(nop)
45495)]
45496#[cfg_attr(
45497    not(target_arch = "arm"),
45498    stable(feature = "neon_intrinsics", since = "1.59.0")
45499)]
45500#[cfg_attr(
45501    target_arch = "arm",
45502    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45503)]
45504pub fn vreinterpretq_u64_s16(a: int16x8_t) -> uint64x2_t {
45505    unsafe { transmute(a) }
45506}
45507#[doc = "Vector reinterpret cast operation"]
45508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s16)"]
45509#[inline(always)]
45510#[cfg(target_endian = "big")]
45511#[target_feature(enable = "neon")]
45512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45514#[cfg_attr(
45515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45516    assert_instr(nop)
45517)]
45518#[cfg_attr(
45519    not(target_arch = "arm"),
45520    stable(feature = "neon_intrinsics", since = "1.59.0")
45521)]
45522#[cfg_attr(
45523    target_arch = "arm",
45524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45525)]
45526pub fn vreinterpretq_u64_s16(a: int16x8_t) -> uint64x2_t {
45527    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45528    unsafe {
45529        let ret_val: uint64x2_t = transmute(a);
45530        simd_shuffle!(ret_val, ret_val, [1, 0])
45531    }
45532}
45533#[doc = "Vector reinterpret cast operation"]
45534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s16)"]
45535#[inline(always)]
45536#[cfg(target_endian = "little")]
45537#[target_feature(enable = "neon")]
45538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45540#[cfg_attr(
45541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45542    assert_instr(nop)
45543)]
45544#[cfg_attr(
45545    not(target_arch = "arm"),
45546    stable(feature = "neon_intrinsics", since = "1.59.0")
45547)]
45548#[cfg_attr(
45549    target_arch = "arm",
45550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45551)]
45552pub fn vreinterpretq_p8_s16(a: int16x8_t) -> poly8x16_t {
45553    unsafe { transmute(a) }
45554}
45555#[doc = "Vector reinterpret cast operation"]
45556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s16)"]
45557#[inline(always)]
45558#[cfg(target_endian = "big")]
45559#[target_feature(enable = "neon")]
45560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45562#[cfg_attr(
45563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45564    assert_instr(nop)
45565)]
45566#[cfg_attr(
45567    not(target_arch = "arm"),
45568    stable(feature = "neon_intrinsics", since = "1.59.0")
45569)]
45570#[cfg_attr(
45571    target_arch = "arm",
45572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45573)]
45574pub fn vreinterpretq_p8_s16(a: int16x8_t) -> poly8x16_t {
45575    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45576    unsafe {
45577        let ret_val: poly8x16_t = transmute(a);
45578        simd_shuffle!(
45579            ret_val,
45580            ret_val,
45581            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
45582        )
45583    }
45584}
45585#[doc = "Vector reinterpret cast operation"]
45586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s16)"]
45587#[inline(always)]
45588#[cfg(target_endian = "little")]
45589#[target_feature(enable = "neon")]
45590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45592#[cfg_attr(
45593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45594    assert_instr(nop)
45595)]
45596#[cfg_attr(
45597    not(target_arch = "arm"),
45598    stable(feature = "neon_intrinsics", since = "1.59.0")
45599)]
45600#[cfg_attr(
45601    target_arch = "arm",
45602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45603)]
45604pub fn vreinterpretq_p16_s16(a: int16x8_t) -> poly16x8_t {
45605    unsafe { transmute(a) }
45606}
45607#[doc = "Vector reinterpret cast operation"]
45608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s16)"]
45609#[inline(always)]
45610#[cfg(target_endian = "big")]
45611#[target_feature(enable = "neon")]
45612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45613#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45614#[cfg_attr(
45615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45616    assert_instr(nop)
45617)]
45618#[cfg_attr(
45619    not(target_arch = "arm"),
45620    stable(feature = "neon_intrinsics", since = "1.59.0")
45621)]
45622#[cfg_attr(
45623    target_arch = "arm",
45624    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45625)]
45626pub fn vreinterpretq_p16_s16(a: int16x8_t) -> poly16x8_t {
45627    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
45628    unsafe {
45629        let ret_val: poly16x8_t = transmute(a);
45630        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45631    }
45632}
45633#[doc = "Vector reinterpret cast operation"]
45634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s32)"]
45635#[inline(always)]
45636#[cfg(target_endian = "little")]
45637#[target_feature(enable = "neon")]
45638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45640#[cfg_attr(
45641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45642    assert_instr(nop)
45643)]
45644#[cfg_attr(
45645    not(target_arch = "arm"),
45646    stable(feature = "neon_intrinsics", since = "1.59.0")
45647)]
45648#[cfg_attr(
45649    target_arch = "arm",
45650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45651)]
45652pub fn vreinterpret_f32_s32(a: int32x2_t) -> float32x2_t {
45653    unsafe { transmute(a) }
45654}
45655#[doc = "Vector reinterpret cast operation"]
45656#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s32)"]
45657#[inline(always)]
45658#[cfg(target_endian = "big")]
45659#[target_feature(enable = "neon")]
45660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45661#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45662#[cfg_attr(
45663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45664    assert_instr(nop)
45665)]
45666#[cfg_attr(
45667    not(target_arch = "arm"),
45668    stable(feature = "neon_intrinsics", since = "1.59.0")
45669)]
45670#[cfg_attr(
45671    target_arch = "arm",
45672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45673)]
45674pub fn vreinterpret_f32_s32(a: int32x2_t) -> float32x2_t {
45675    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45676    unsafe {
45677        let ret_val: float32x2_t = transmute(a);
45678        simd_shuffle!(ret_val, ret_val, [1, 0])
45679    }
45680}
45681#[doc = "Vector reinterpret cast operation"]
45682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s32)"]
45683#[inline(always)]
45684#[cfg(target_endian = "little")]
45685#[target_feature(enable = "neon")]
45686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45688#[cfg_attr(
45689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45690    assert_instr(nop)
45691)]
45692#[cfg_attr(
45693    not(target_arch = "arm"),
45694    stable(feature = "neon_intrinsics", since = "1.59.0")
45695)]
45696#[cfg_attr(
45697    target_arch = "arm",
45698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45699)]
45700pub fn vreinterpret_s8_s32(a: int32x2_t) -> int8x8_t {
45701    unsafe { transmute(a) }
45702}
45703#[doc = "Vector reinterpret cast operation"]
45704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s32)"]
45705#[inline(always)]
45706#[cfg(target_endian = "big")]
45707#[target_feature(enable = "neon")]
45708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45710#[cfg_attr(
45711    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45712    assert_instr(nop)
45713)]
45714#[cfg_attr(
45715    not(target_arch = "arm"),
45716    stable(feature = "neon_intrinsics", since = "1.59.0")
45717)]
45718#[cfg_attr(
45719    target_arch = "arm",
45720    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45721)]
45722pub fn vreinterpret_s8_s32(a: int32x2_t) -> int8x8_t {
45723    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45724    unsafe {
45725        let ret_val: int8x8_t = transmute(a);
45726        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45727    }
45728}
45729#[doc = "Vector reinterpret cast operation"]
45730#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s32)"]
45731#[inline(always)]
45732#[cfg(target_endian = "little")]
45733#[target_feature(enable = "neon")]
45734#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45735#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45736#[cfg_attr(
45737    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45738    assert_instr(nop)
45739)]
45740#[cfg_attr(
45741    not(target_arch = "arm"),
45742    stable(feature = "neon_intrinsics", since = "1.59.0")
45743)]
45744#[cfg_attr(
45745    target_arch = "arm",
45746    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45747)]
45748pub fn vreinterpret_s16_s32(a: int32x2_t) -> int16x4_t {
45749    unsafe { transmute(a) }
45750}
45751#[doc = "Vector reinterpret cast operation"]
45752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s32)"]
45753#[inline(always)]
45754#[cfg(target_endian = "big")]
45755#[target_feature(enable = "neon")]
45756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45758#[cfg_attr(
45759    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45760    assert_instr(nop)
45761)]
45762#[cfg_attr(
45763    not(target_arch = "arm"),
45764    stable(feature = "neon_intrinsics", since = "1.59.0")
45765)]
45766#[cfg_attr(
45767    target_arch = "arm",
45768    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45769)]
45770pub fn vreinterpret_s16_s32(a: int32x2_t) -> int16x4_t {
45771    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45772    unsafe {
45773        let ret_val: int16x4_t = transmute(a);
45774        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45775    }
45776}
45777#[doc = "Vector reinterpret cast operation"]
45778#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s32)"]
45779#[inline(always)]
45780#[cfg(target_endian = "little")]
45781#[target_feature(enable = "neon")]
45782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45784#[cfg_attr(
45785    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45786    assert_instr(nop)
45787)]
45788#[cfg_attr(
45789    not(target_arch = "arm"),
45790    stable(feature = "neon_intrinsics", since = "1.59.0")
45791)]
45792#[cfg_attr(
45793    target_arch = "arm",
45794    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45795)]
45796pub fn vreinterpret_s64_s32(a: int32x2_t) -> int64x1_t {
45797    unsafe { transmute(a) }
45798}
45799#[doc = "Vector reinterpret cast operation"]
45800#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s32)"]
45801#[inline(always)]
45802#[cfg(target_endian = "big")]
45803#[target_feature(enable = "neon")]
45804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45805#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45806#[cfg_attr(
45807    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45808    assert_instr(nop)
45809)]
45810#[cfg_attr(
45811    not(target_arch = "arm"),
45812    stable(feature = "neon_intrinsics", since = "1.59.0")
45813)]
45814#[cfg_attr(
45815    target_arch = "arm",
45816    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45817)]
45818pub fn vreinterpret_s64_s32(a: int32x2_t) -> int64x1_t {
45819    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45820    unsafe { transmute(a) }
45821}
45822#[doc = "Vector reinterpret cast operation"]
45823#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s32)"]
45824#[inline(always)]
45825#[cfg(target_endian = "little")]
45826#[target_feature(enable = "neon")]
45827#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45828#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45829#[cfg_attr(
45830    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45831    assert_instr(nop)
45832)]
45833#[cfg_attr(
45834    not(target_arch = "arm"),
45835    stable(feature = "neon_intrinsics", since = "1.59.0")
45836)]
45837#[cfg_attr(
45838    target_arch = "arm",
45839    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45840)]
45841pub fn vreinterpret_u8_s32(a: int32x2_t) -> uint8x8_t {
45842    unsafe { transmute(a) }
45843}
45844#[doc = "Vector reinterpret cast operation"]
45845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s32)"]
45846#[inline(always)]
45847#[cfg(target_endian = "big")]
45848#[target_feature(enable = "neon")]
45849#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45850#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45851#[cfg_attr(
45852    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45853    assert_instr(nop)
45854)]
45855#[cfg_attr(
45856    not(target_arch = "arm"),
45857    stable(feature = "neon_intrinsics", since = "1.59.0")
45858)]
45859#[cfg_attr(
45860    target_arch = "arm",
45861    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45862)]
45863pub fn vreinterpret_u8_s32(a: int32x2_t) -> uint8x8_t {
45864    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45865    unsafe {
45866        let ret_val: uint8x8_t = transmute(a);
45867        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
45868    }
45869}
45870#[doc = "Vector reinterpret cast operation"]
45871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s32)"]
45872#[inline(always)]
45873#[cfg(target_endian = "little")]
45874#[target_feature(enable = "neon")]
45875#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45876#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45877#[cfg_attr(
45878    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45879    assert_instr(nop)
45880)]
45881#[cfg_attr(
45882    not(target_arch = "arm"),
45883    stable(feature = "neon_intrinsics", since = "1.59.0")
45884)]
45885#[cfg_attr(
45886    target_arch = "arm",
45887    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45888)]
45889pub fn vreinterpret_u16_s32(a: int32x2_t) -> uint16x4_t {
45890    unsafe { transmute(a) }
45891}
45892#[doc = "Vector reinterpret cast operation"]
45893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s32)"]
45894#[inline(always)]
45895#[cfg(target_endian = "big")]
45896#[target_feature(enable = "neon")]
45897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45898#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45899#[cfg_attr(
45900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45901    assert_instr(nop)
45902)]
45903#[cfg_attr(
45904    not(target_arch = "arm"),
45905    stable(feature = "neon_intrinsics", since = "1.59.0")
45906)]
45907#[cfg_attr(
45908    target_arch = "arm",
45909    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45910)]
45911pub fn vreinterpret_u16_s32(a: int32x2_t) -> uint16x4_t {
45912    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45913    unsafe {
45914        let ret_val: uint16x4_t = transmute(a);
45915        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
45916    }
45917}
45918#[doc = "Vector reinterpret cast operation"]
45919#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s32)"]
45920#[inline(always)]
45921#[cfg(target_endian = "little")]
45922#[target_feature(enable = "neon")]
45923#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45924#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45925#[cfg_attr(
45926    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45927    assert_instr(nop)
45928)]
45929#[cfg_attr(
45930    not(target_arch = "arm"),
45931    stable(feature = "neon_intrinsics", since = "1.59.0")
45932)]
45933#[cfg_attr(
45934    target_arch = "arm",
45935    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45936)]
45937pub fn vreinterpret_u32_s32(a: int32x2_t) -> uint32x2_t {
45938    unsafe { transmute(a) }
45939}
45940#[doc = "Vector reinterpret cast operation"]
45941#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s32)"]
45942#[inline(always)]
45943#[cfg(target_endian = "big")]
45944#[target_feature(enable = "neon")]
45945#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45946#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45947#[cfg_attr(
45948    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45949    assert_instr(nop)
45950)]
45951#[cfg_attr(
45952    not(target_arch = "arm"),
45953    stable(feature = "neon_intrinsics", since = "1.59.0")
45954)]
45955#[cfg_attr(
45956    target_arch = "arm",
45957    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45958)]
45959pub fn vreinterpret_u32_s32(a: int32x2_t) -> uint32x2_t {
45960    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
45961    unsafe {
45962        let ret_val: uint32x2_t = transmute(a);
45963        simd_shuffle!(ret_val, ret_val, [1, 0])
45964    }
45965}
45966#[doc = "Vector reinterpret cast operation"]
45967#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s32)"]
45968#[inline(always)]
45969#[cfg(target_endian = "little")]
45970#[target_feature(enable = "neon")]
45971#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45972#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45973#[cfg_attr(
45974    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45975    assert_instr(nop)
45976)]
45977#[cfg_attr(
45978    not(target_arch = "arm"),
45979    stable(feature = "neon_intrinsics", since = "1.59.0")
45980)]
45981#[cfg_attr(
45982    target_arch = "arm",
45983    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
45984)]
45985pub fn vreinterpret_u64_s32(a: int32x2_t) -> uint64x1_t {
45986    unsafe { transmute(a) }
45987}
45988#[doc = "Vector reinterpret cast operation"]
45989#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s32)"]
45990#[inline(always)]
45991#[cfg(target_endian = "big")]
45992#[target_feature(enable = "neon")]
45993#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
45994#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
45995#[cfg_attr(
45996    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
45997    assert_instr(nop)
45998)]
45999#[cfg_attr(
46000    not(target_arch = "arm"),
46001    stable(feature = "neon_intrinsics", since = "1.59.0")
46002)]
46003#[cfg_attr(
46004    target_arch = "arm",
46005    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46006)]
46007pub fn vreinterpret_u64_s32(a: int32x2_t) -> uint64x1_t {
46008    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
46009    unsafe { transmute(a) }
46010}
46011#[doc = "Vector reinterpret cast operation"]
46012#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s32)"]
46013#[inline(always)]
46014#[cfg(target_endian = "little")]
46015#[target_feature(enable = "neon")]
46016#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46017#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46018#[cfg_attr(
46019    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46020    assert_instr(nop)
46021)]
46022#[cfg_attr(
46023    not(target_arch = "arm"),
46024    stable(feature = "neon_intrinsics", since = "1.59.0")
46025)]
46026#[cfg_attr(
46027    target_arch = "arm",
46028    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46029)]
46030pub fn vreinterpret_p8_s32(a: int32x2_t) -> poly8x8_t {
46031    unsafe { transmute(a) }
46032}
46033#[doc = "Vector reinterpret cast operation"]
46034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s32)"]
46035#[inline(always)]
46036#[cfg(target_endian = "big")]
46037#[target_feature(enable = "neon")]
46038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46040#[cfg_attr(
46041    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46042    assert_instr(nop)
46043)]
46044#[cfg_attr(
46045    not(target_arch = "arm"),
46046    stable(feature = "neon_intrinsics", since = "1.59.0")
46047)]
46048#[cfg_attr(
46049    target_arch = "arm",
46050    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46051)]
46052pub fn vreinterpret_p8_s32(a: int32x2_t) -> poly8x8_t {
46053    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
46054    unsafe {
46055        let ret_val: poly8x8_t = transmute(a);
46056        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46057    }
46058}
46059#[doc = "Vector reinterpret cast operation"]
46060#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s32)"]
46061#[inline(always)]
46062#[cfg(target_endian = "little")]
46063#[target_feature(enable = "neon")]
46064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46066#[cfg_attr(
46067    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46068    assert_instr(nop)
46069)]
46070#[cfg_attr(
46071    not(target_arch = "arm"),
46072    stable(feature = "neon_intrinsics", since = "1.59.0")
46073)]
46074#[cfg_attr(
46075    target_arch = "arm",
46076    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46077)]
46078pub fn vreinterpret_p16_s32(a: int32x2_t) -> poly16x4_t {
46079    unsafe { transmute(a) }
46080}
46081#[doc = "Vector reinterpret cast operation"]
46082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s32)"]
46083#[inline(always)]
46084#[cfg(target_endian = "big")]
46085#[target_feature(enable = "neon")]
46086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46087#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46088#[cfg_attr(
46089    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46090    assert_instr(nop)
46091)]
46092#[cfg_attr(
46093    not(target_arch = "arm"),
46094    stable(feature = "neon_intrinsics", since = "1.59.0")
46095)]
46096#[cfg_attr(
46097    target_arch = "arm",
46098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46099)]
46100pub fn vreinterpret_p16_s32(a: int32x2_t) -> poly16x4_t {
46101    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
46102    unsafe {
46103        let ret_val: poly16x4_t = transmute(a);
46104        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46105    }
46106}
46107#[doc = "Vector reinterpret cast operation"]
46108#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s32)"]
46109#[inline(always)]
46110#[cfg(target_endian = "little")]
46111#[target_feature(enable = "neon")]
46112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46114#[cfg_attr(
46115    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46116    assert_instr(nop)
46117)]
46118#[cfg_attr(
46119    not(target_arch = "arm"),
46120    stable(feature = "neon_intrinsics", since = "1.59.0")
46121)]
46122#[cfg_attr(
46123    target_arch = "arm",
46124    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46125)]
46126pub fn vreinterpretq_f32_s32(a: int32x4_t) -> float32x4_t {
46127    unsafe { transmute(a) }
46128}
46129#[doc = "Vector reinterpret cast operation"]
46130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s32)"]
46131#[inline(always)]
46132#[cfg(target_endian = "big")]
46133#[target_feature(enable = "neon")]
46134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46136#[cfg_attr(
46137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46138    assert_instr(nop)
46139)]
46140#[cfg_attr(
46141    not(target_arch = "arm"),
46142    stable(feature = "neon_intrinsics", since = "1.59.0")
46143)]
46144#[cfg_attr(
46145    target_arch = "arm",
46146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46147)]
46148pub fn vreinterpretq_f32_s32(a: int32x4_t) -> float32x4_t {
46149    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46150    unsafe {
46151        let ret_val: float32x4_t = transmute(a);
46152        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46153    }
46154}
46155#[doc = "Vector reinterpret cast operation"]
46156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s32)"]
46157#[inline(always)]
46158#[cfg(target_endian = "little")]
46159#[target_feature(enable = "neon")]
46160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46161#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46162#[cfg_attr(
46163    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46164    assert_instr(nop)
46165)]
46166#[cfg_attr(
46167    not(target_arch = "arm"),
46168    stable(feature = "neon_intrinsics", since = "1.59.0")
46169)]
46170#[cfg_attr(
46171    target_arch = "arm",
46172    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46173)]
46174pub fn vreinterpretq_s8_s32(a: int32x4_t) -> int8x16_t {
46175    unsafe { transmute(a) }
46176}
46177#[doc = "Vector reinterpret cast operation"]
46178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s32)"]
46179#[inline(always)]
46180#[cfg(target_endian = "big")]
46181#[target_feature(enable = "neon")]
46182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46184#[cfg_attr(
46185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46186    assert_instr(nop)
46187)]
46188#[cfg_attr(
46189    not(target_arch = "arm"),
46190    stable(feature = "neon_intrinsics", since = "1.59.0")
46191)]
46192#[cfg_attr(
46193    target_arch = "arm",
46194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46195)]
46196pub fn vreinterpretq_s8_s32(a: int32x4_t) -> int8x16_t {
46197    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46198    unsafe {
46199        let ret_val: int8x16_t = transmute(a);
46200        simd_shuffle!(
46201            ret_val,
46202            ret_val,
46203            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
46204        )
46205    }
46206}
46207#[doc = "Vector reinterpret cast operation"]
46208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s32)"]
46209#[inline(always)]
46210#[cfg(target_endian = "little")]
46211#[target_feature(enable = "neon")]
46212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46214#[cfg_attr(
46215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46216    assert_instr(nop)
46217)]
46218#[cfg_attr(
46219    not(target_arch = "arm"),
46220    stable(feature = "neon_intrinsics", since = "1.59.0")
46221)]
46222#[cfg_attr(
46223    target_arch = "arm",
46224    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46225)]
46226pub fn vreinterpretq_s16_s32(a: int32x4_t) -> int16x8_t {
46227    unsafe { transmute(a) }
46228}
46229#[doc = "Vector reinterpret cast operation"]
46230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s32)"]
46231#[inline(always)]
46232#[cfg(target_endian = "big")]
46233#[target_feature(enable = "neon")]
46234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46235#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46236#[cfg_attr(
46237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46238    assert_instr(nop)
46239)]
46240#[cfg_attr(
46241    not(target_arch = "arm"),
46242    stable(feature = "neon_intrinsics", since = "1.59.0")
46243)]
46244#[cfg_attr(
46245    target_arch = "arm",
46246    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46247)]
46248pub fn vreinterpretq_s16_s32(a: int32x4_t) -> int16x8_t {
46249    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46250    unsafe {
46251        let ret_val: int16x8_t = transmute(a);
46252        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46253    }
46254}
46255#[doc = "Vector reinterpret cast operation"]
46256#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s32)"]
46257#[inline(always)]
46258#[cfg(target_endian = "little")]
46259#[target_feature(enable = "neon")]
46260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46261#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46262#[cfg_attr(
46263    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46264    assert_instr(nop)
46265)]
46266#[cfg_attr(
46267    not(target_arch = "arm"),
46268    stable(feature = "neon_intrinsics", since = "1.59.0")
46269)]
46270#[cfg_attr(
46271    target_arch = "arm",
46272    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46273)]
46274pub fn vreinterpretq_s64_s32(a: int32x4_t) -> int64x2_t {
46275    unsafe { transmute(a) }
46276}
46277#[doc = "Vector reinterpret cast operation"]
46278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s32)"]
46279#[inline(always)]
46280#[cfg(target_endian = "big")]
46281#[target_feature(enable = "neon")]
46282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46284#[cfg_attr(
46285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46286    assert_instr(nop)
46287)]
46288#[cfg_attr(
46289    not(target_arch = "arm"),
46290    stable(feature = "neon_intrinsics", since = "1.59.0")
46291)]
46292#[cfg_attr(
46293    target_arch = "arm",
46294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46295)]
46296pub fn vreinterpretq_s64_s32(a: int32x4_t) -> int64x2_t {
46297    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46298    unsafe {
46299        let ret_val: int64x2_t = transmute(a);
46300        simd_shuffle!(ret_val, ret_val, [1, 0])
46301    }
46302}
46303#[doc = "Vector reinterpret cast operation"]
46304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s32)"]
46305#[inline(always)]
46306#[cfg(target_endian = "little")]
46307#[target_feature(enable = "neon")]
46308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46310#[cfg_attr(
46311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46312    assert_instr(nop)
46313)]
46314#[cfg_attr(
46315    not(target_arch = "arm"),
46316    stable(feature = "neon_intrinsics", since = "1.59.0")
46317)]
46318#[cfg_attr(
46319    target_arch = "arm",
46320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46321)]
46322pub fn vreinterpretq_u8_s32(a: int32x4_t) -> uint8x16_t {
46323    unsafe { transmute(a) }
46324}
46325#[doc = "Vector reinterpret cast operation"]
46326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s32)"]
46327#[inline(always)]
46328#[cfg(target_endian = "big")]
46329#[target_feature(enable = "neon")]
46330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46332#[cfg_attr(
46333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46334    assert_instr(nop)
46335)]
46336#[cfg_attr(
46337    not(target_arch = "arm"),
46338    stable(feature = "neon_intrinsics", since = "1.59.0")
46339)]
46340#[cfg_attr(
46341    target_arch = "arm",
46342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46343)]
46344pub fn vreinterpretq_u8_s32(a: int32x4_t) -> uint8x16_t {
46345    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46346    unsafe {
46347        let ret_val: uint8x16_t = transmute(a);
46348        simd_shuffle!(
46349            ret_val,
46350            ret_val,
46351            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
46352        )
46353    }
46354}
46355#[doc = "Vector reinterpret cast operation"]
46356#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s32)"]
46357#[inline(always)]
46358#[cfg(target_endian = "little")]
46359#[target_feature(enable = "neon")]
46360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46362#[cfg_attr(
46363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46364    assert_instr(nop)
46365)]
46366#[cfg_attr(
46367    not(target_arch = "arm"),
46368    stable(feature = "neon_intrinsics", since = "1.59.0")
46369)]
46370#[cfg_attr(
46371    target_arch = "arm",
46372    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46373)]
46374pub fn vreinterpretq_u16_s32(a: int32x4_t) -> uint16x8_t {
46375    unsafe { transmute(a) }
46376}
46377#[doc = "Vector reinterpret cast operation"]
46378#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s32)"]
46379#[inline(always)]
46380#[cfg(target_endian = "big")]
46381#[target_feature(enable = "neon")]
46382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46383#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46384#[cfg_attr(
46385    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46386    assert_instr(nop)
46387)]
46388#[cfg_attr(
46389    not(target_arch = "arm"),
46390    stable(feature = "neon_intrinsics", since = "1.59.0")
46391)]
46392#[cfg_attr(
46393    target_arch = "arm",
46394    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46395)]
46396pub fn vreinterpretq_u16_s32(a: int32x4_t) -> uint16x8_t {
46397    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46398    unsafe {
46399        let ret_val: uint16x8_t = transmute(a);
46400        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46401    }
46402}
46403#[doc = "Vector reinterpret cast operation"]
46404#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s32)"]
46405#[inline(always)]
46406#[cfg(target_endian = "little")]
46407#[target_feature(enable = "neon")]
46408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46410#[cfg_attr(
46411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46412    assert_instr(nop)
46413)]
46414#[cfg_attr(
46415    not(target_arch = "arm"),
46416    stable(feature = "neon_intrinsics", since = "1.59.0")
46417)]
46418#[cfg_attr(
46419    target_arch = "arm",
46420    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46421)]
46422pub fn vreinterpretq_u32_s32(a: int32x4_t) -> uint32x4_t {
46423    unsafe { transmute(a) }
46424}
46425#[doc = "Vector reinterpret cast operation"]
46426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s32)"]
46427#[inline(always)]
46428#[cfg(target_endian = "big")]
46429#[target_feature(enable = "neon")]
46430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46431#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46432#[cfg_attr(
46433    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46434    assert_instr(nop)
46435)]
46436#[cfg_attr(
46437    not(target_arch = "arm"),
46438    stable(feature = "neon_intrinsics", since = "1.59.0")
46439)]
46440#[cfg_attr(
46441    target_arch = "arm",
46442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46443)]
46444pub fn vreinterpretq_u32_s32(a: int32x4_t) -> uint32x4_t {
46445    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46446    unsafe {
46447        let ret_val: uint32x4_t = transmute(a);
46448        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46449    }
46450}
46451#[doc = "Vector reinterpret cast operation"]
46452#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s32)"]
46453#[inline(always)]
46454#[cfg(target_endian = "little")]
46455#[target_feature(enable = "neon")]
46456#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46457#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46458#[cfg_attr(
46459    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46460    assert_instr(nop)
46461)]
46462#[cfg_attr(
46463    not(target_arch = "arm"),
46464    stable(feature = "neon_intrinsics", since = "1.59.0")
46465)]
46466#[cfg_attr(
46467    target_arch = "arm",
46468    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46469)]
46470pub fn vreinterpretq_u64_s32(a: int32x4_t) -> uint64x2_t {
46471    unsafe { transmute(a) }
46472}
46473#[doc = "Vector reinterpret cast operation"]
46474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s32)"]
46475#[inline(always)]
46476#[cfg(target_endian = "big")]
46477#[target_feature(enable = "neon")]
46478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46480#[cfg_attr(
46481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46482    assert_instr(nop)
46483)]
46484#[cfg_attr(
46485    not(target_arch = "arm"),
46486    stable(feature = "neon_intrinsics", since = "1.59.0")
46487)]
46488#[cfg_attr(
46489    target_arch = "arm",
46490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46491)]
46492pub fn vreinterpretq_u64_s32(a: int32x4_t) -> uint64x2_t {
46493    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46494    unsafe {
46495        let ret_val: uint64x2_t = transmute(a);
46496        simd_shuffle!(ret_val, ret_val, [1, 0])
46497    }
46498}
46499#[doc = "Vector reinterpret cast operation"]
46500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s32)"]
46501#[inline(always)]
46502#[cfg(target_endian = "little")]
46503#[target_feature(enable = "neon")]
46504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46506#[cfg_attr(
46507    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46508    assert_instr(nop)
46509)]
46510#[cfg_attr(
46511    not(target_arch = "arm"),
46512    stable(feature = "neon_intrinsics", since = "1.59.0")
46513)]
46514#[cfg_attr(
46515    target_arch = "arm",
46516    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46517)]
46518pub fn vreinterpretq_p8_s32(a: int32x4_t) -> poly8x16_t {
46519    unsafe { transmute(a) }
46520}
46521#[doc = "Vector reinterpret cast operation"]
46522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s32)"]
46523#[inline(always)]
46524#[cfg(target_endian = "big")]
46525#[target_feature(enable = "neon")]
46526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46528#[cfg_attr(
46529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46530    assert_instr(nop)
46531)]
46532#[cfg_attr(
46533    not(target_arch = "arm"),
46534    stable(feature = "neon_intrinsics", since = "1.59.0")
46535)]
46536#[cfg_attr(
46537    target_arch = "arm",
46538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46539)]
46540pub fn vreinterpretq_p8_s32(a: int32x4_t) -> poly8x16_t {
46541    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46542    unsafe {
46543        let ret_val: poly8x16_t = transmute(a);
46544        simd_shuffle!(
46545            ret_val,
46546            ret_val,
46547            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
46548        )
46549    }
46550}
46551#[doc = "Vector reinterpret cast operation"]
46552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s32)"]
46553#[inline(always)]
46554#[cfg(target_endian = "little")]
46555#[target_feature(enable = "neon")]
46556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46557#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46558#[cfg_attr(
46559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46560    assert_instr(nop)
46561)]
46562#[cfg_attr(
46563    not(target_arch = "arm"),
46564    stable(feature = "neon_intrinsics", since = "1.59.0")
46565)]
46566#[cfg_attr(
46567    target_arch = "arm",
46568    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46569)]
46570pub fn vreinterpretq_p16_s32(a: int32x4_t) -> poly16x8_t {
46571    unsafe { transmute(a) }
46572}
46573#[doc = "Vector reinterpret cast operation"]
46574#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s32)"]
46575#[inline(always)]
46576#[cfg(target_endian = "big")]
46577#[target_feature(enable = "neon")]
46578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46579#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46580#[cfg_attr(
46581    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46582    assert_instr(nop)
46583)]
46584#[cfg_attr(
46585    not(target_arch = "arm"),
46586    stable(feature = "neon_intrinsics", since = "1.59.0")
46587)]
46588#[cfg_attr(
46589    target_arch = "arm",
46590    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46591)]
46592pub fn vreinterpretq_p16_s32(a: int32x4_t) -> poly16x8_t {
46593    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
46594    unsafe {
46595        let ret_val: poly16x8_t = transmute(a);
46596        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46597    }
46598}
46599#[doc = "Vector reinterpret cast operation"]
46600#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s64)"]
46601#[inline(always)]
46602#[cfg(target_endian = "little")]
46603#[target_feature(enable = "neon")]
46604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46605#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46606#[cfg_attr(
46607    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46608    assert_instr(nop)
46609)]
46610#[cfg_attr(
46611    not(target_arch = "arm"),
46612    stable(feature = "neon_intrinsics", since = "1.59.0")
46613)]
46614#[cfg_attr(
46615    target_arch = "arm",
46616    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46617)]
46618pub fn vreinterpret_f32_s64(a: int64x1_t) -> float32x2_t {
46619    unsafe { transmute(a) }
46620}
46621#[doc = "Vector reinterpret cast operation"]
46622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s64)"]
46623#[inline(always)]
46624#[cfg(target_endian = "big")]
46625#[target_feature(enable = "neon")]
46626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46627#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46628#[cfg_attr(
46629    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46630    assert_instr(nop)
46631)]
46632#[cfg_attr(
46633    not(target_arch = "arm"),
46634    stable(feature = "neon_intrinsics", since = "1.59.0")
46635)]
46636#[cfg_attr(
46637    target_arch = "arm",
46638    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46639)]
46640pub fn vreinterpret_f32_s64(a: int64x1_t) -> float32x2_t {
46641    unsafe {
46642        let ret_val: float32x2_t = transmute(a);
46643        simd_shuffle!(ret_val, ret_val, [1, 0])
46644    }
46645}
46646#[doc = "Vector reinterpret cast operation"]
46647#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s64)"]
46648#[inline(always)]
46649#[cfg(target_endian = "little")]
46650#[target_feature(enable = "neon")]
46651#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46652#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46653#[cfg_attr(
46654    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46655    assert_instr(nop)
46656)]
46657#[cfg_attr(
46658    not(target_arch = "arm"),
46659    stable(feature = "neon_intrinsics", since = "1.59.0")
46660)]
46661#[cfg_attr(
46662    target_arch = "arm",
46663    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46664)]
46665pub fn vreinterpret_s8_s64(a: int64x1_t) -> int8x8_t {
46666    unsafe { transmute(a) }
46667}
46668#[doc = "Vector reinterpret cast operation"]
46669#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s64)"]
46670#[inline(always)]
46671#[cfg(target_endian = "big")]
46672#[target_feature(enable = "neon")]
46673#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46674#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46675#[cfg_attr(
46676    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46677    assert_instr(nop)
46678)]
46679#[cfg_attr(
46680    not(target_arch = "arm"),
46681    stable(feature = "neon_intrinsics", since = "1.59.0")
46682)]
46683#[cfg_attr(
46684    target_arch = "arm",
46685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46686)]
46687pub fn vreinterpret_s8_s64(a: int64x1_t) -> int8x8_t {
46688    unsafe {
46689        let ret_val: int8x8_t = transmute(a);
46690        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46691    }
46692}
46693#[doc = "Vector reinterpret cast operation"]
46694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s64)"]
46695#[inline(always)]
46696#[cfg(target_endian = "little")]
46697#[target_feature(enable = "neon")]
46698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46700#[cfg_attr(
46701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46702    assert_instr(nop)
46703)]
46704#[cfg_attr(
46705    not(target_arch = "arm"),
46706    stable(feature = "neon_intrinsics", since = "1.59.0")
46707)]
46708#[cfg_attr(
46709    target_arch = "arm",
46710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46711)]
46712pub fn vreinterpret_s16_s64(a: int64x1_t) -> int16x4_t {
46713    unsafe { transmute(a) }
46714}
46715#[doc = "Vector reinterpret cast operation"]
46716#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s64)"]
46717#[inline(always)]
46718#[cfg(target_endian = "big")]
46719#[target_feature(enable = "neon")]
46720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46721#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46722#[cfg_attr(
46723    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46724    assert_instr(nop)
46725)]
46726#[cfg_attr(
46727    not(target_arch = "arm"),
46728    stable(feature = "neon_intrinsics", since = "1.59.0")
46729)]
46730#[cfg_attr(
46731    target_arch = "arm",
46732    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46733)]
46734pub fn vreinterpret_s16_s64(a: int64x1_t) -> int16x4_t {
46735    unsafe {
46736        let ret_val: int16x4_t = transmute(a);
46737        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46738    }
46739}
46740#[doc = "Vector reinterpret cast operation"]
46741#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s64)"]
46742#[inline(always)]
46743#[cfg(target_endian = "little")]
46744#[target_feature(enable = "neon")]
46745#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46746#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46747#[cfg_attr(
46748    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46749    assert_instr(nop)
46750)]
46751#[cfg_attr(
46752    not(target_arch = "arm"),
46753    stable(feature = "neon_intrinsics", since = "1.59.0")
46754)]
46755#[cfg_attr(
46756    target_arch = "arm",
46757    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46758)]
46759pub fn vreinterpret_s32_s64(a: int64x1_t) -> int32x2_t {
46760    unsafe { transmute(a) }
46761}
46762#[doc = "Vector reinterpret cast operation"]
46763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s64)"]
46764#[inline(always)]
46765#[cfg(target_endian = "big")]
46766#[target_feature(enable = "neon")]
46767#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46768#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46769#[cfg_attr(
46770    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46771    assert_instr(nop)
46772)]
46773#[cfg_attr(
46774    not(target_arch = "arm"),
46775    stable(feature = "neon_intrinsics", since = "1.59.0")
46776)]
46777#[cfg_attr(
46778    target_arch = "arm",
46779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46780)]
46781pub fn vreinterpret_s32_s64(a: int64x1_t) -> int32x2_t {
46782    unsafe {
46783        let ret_val: int32x2_t = transmute(a);
46784        simd_shuffle!(ret_val, ret_val, [1, 0])
46785    }
46786}
46787#[doc = "Vector reinterpret cast operation"]
46788#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s64)"]
46789#[inline(always)]
46790#[cfg(target_endian = "little")]
46791#[target_feature(enable = "neon")]
46792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46794#[cfg_attr(
46795    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46796    assert_instr(nop)
46797)]
46798#[cfg_attr(
46799    not(target_arch = "arm"),
46800    stable(feature = "neon_intrinsics", since = "1.59.0")
46801)]
46802#[cfg_attr(
46803    target_arch = "arm",
46804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46805)]
46806pub fn vreinterpret_u8_s64(a: int64x1_t) -> uint8x8_t {
46807    unsafe { transmute(a) }
46808}
46809#[doc = "Vector reinterpret cast operation"]
46810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s64)"]
46811#[inline(always)]
46812#[cfg(target_endian = "big")]
46813#[target_feature(enable = "neon")]
46814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46816#[cfg_attr(
46817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46818    assert_instr(nop)
46819)]
46820#[cfg_attr(
46821    not(target_arch = "arm"),
46822    stable(feature = "neon_intrinsics", since = "1.59.0")
46823)]
46824#[cfg_attr(
46825    target_arch = "arm",
46826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46827)]
46828pub fn vreinterpret_u8_s64(a: int64x1_t) -> uint8x8_t {
46829    unsafe {
46830        let ret_val: uint8x8_t = transmute(a);
46831        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46832    }
46833}
46834#[doc = "Vector reinterpret cast operation"]
46835#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s64)"]
46836#[inline(always)]
46837#[cfg(target_endian = "little")]
46838#[target_feature(enable = "neon")]
46839#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46840#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46841#[cfg_attr(
46842    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46843    assert_instr(nop)
46844)]
46845#[cfg_attr(
46846    not(target_arch = "arm"),
46847    stable(feature = "neon_intrinsics", since = "1.59.0")
46848)]
46849#[cfg_attr(
46850    target_arch = "arm",
46851    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46852)]
46853pub fn vreinterpret_u16_s64(a: int64x1_t) -> uint16x4_t {
46854    unsafe { transmute(a) }
46855}
46856#[doc = "Vector reinterpret cast operation"]
46857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s64)"]
46858#[inline(always)]
46859#[cfg(target_endian = "big")]
46860#[target_feature(enable = "neon")]
46861#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46862#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46863#[cfg_attr(
46864    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46865    assert_instr(nop)
46866)]
46867#[cfg_attr(
46868    not(target_arch = "arm"),
46869    stable(feature = "neon_intrinsics", since = "1.59.0")
46870)]
46871#[cfg_attr(
46872    target_arch = "arm",
46873    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46874)]
46875pub fn vreinterpret_u16_s64(a: int64x1_t) -> uint16x4_t {
46876    unsafe {
46877        let ret_val: uint16x4_t = transmute(a);
46878        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
46879    }
46880}
46881#[doc = "Vector reinterpret cast operation"]
46882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s64)"]
46883#[inline(always)]
46884#[cfg(target_endian = "little")]
46885#[target_feature(enable = "neon")]
46886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46888#[cfg_attr(
46889    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46890    assert_instr(nop)
46891)]
46892#[cfg_attr(
46893    not(target_arch = "arm"),
46894    stable(feature = "neon_intrinsics", since = "1.59.0")
46895)]
46896#[cfg_attr(
46897    target_arch = "arm",
46898    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46899)]
46900pub fn vreinterpret_u32_s64(a: int64x1_t) -> uint32x2_t {
46901    unsafe { transmute(a) }
46902}
46903#[doc = "Vector reinterpret cast operation"]
46904#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s64)"]
46905#[inline(always)]
46906#[cfg(target_endian = "big")]
46907#[target_feature(enable = "neon")]
46908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46909#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46910#[cfg_attr(
46911    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46912    assert_instr(nop)
46913)]
46914#[cfg_attr(
46915    not(target_arch = "arm"),
46916    stable(feature = "neon_intrinsics", since = "1.59.0")
46917)]
46918#[cfg_attr(
46919    target_arch = "arm",
46920    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46921)]
46922pub fn vreinterpret_u32_s64(a: int64x1_t) -> uint32x2_t {
46923    unsafe {
46924        let ret_val: uint32x2_t = transmute(a);
46925        simd_shuffle!(ret_val, ret_val, [1, 0])
46926    }
46927}
46928#[doc = "Vector reinterpret cast operation"]
46929#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s64)"]
46930#[inline(always)]
46931#[target_feature(enable = "neon")]
46932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46933#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46934#[cfg_attr(
46935    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46936    assert_instr(nop)
46937)]
46938#[cfg_attr(
46939    not(target_arch = "arm"),
46940    stable(feature = "neon_intrinsics", since = "1.59.0")
46941)]
46942#[cfg_attr(
46943    target_arch = "arm",
46944    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46945)]
46946pub fn vreinterpret_u64_s64(a: int64x1_t) -> uint64x1_t {
46947    unsafe { transmute(a) }
46948}
46949#[doc = "Vector reinterpret cast operation"]
46950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s64)"]
46951#[inline(always)]
46952#[cfg(target_endian = "little")]
46953#[target_feature(enable = "neon")]
46954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46956#[cfg_attr(
46957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46958    assert_instr(nop)
46959)]
46960#[cfg_attr(
46961    not(target_arch = "arm"),
46962    stable(feature = "neon_intrinsics", since = "1.59.0")
46963)]
46964#[cfg_attr(
46965    target_arch = "arm",
46966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46967)]
46968pub fn vreinterpret_p8_s64(a: int64x1_t) -> poly8x8_t {
46969    unsafe { transmute(a) }
46970}
46971#[doc = "Vector reinterpret cast operation"]
46972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s64)"]
46973#[inline(always)]
46974#[cfg(target_endian = "big")]
46975#[target_feature(enable = "neon")]
46976#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
46978#[cfg_attr(
46979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
46980    assert_instr(nop)
46981)]
46982#[cfg_attr(
46983    not(target_arch = "arm"),
46984    stable(feature = "neon_intrinsics", since = "1.59.0")
46985)]
46986#[cfg_attr(
46987    target_arch = "arm",
46988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
46989)]
46990pub fn vreinterpret_p8_s64(a: int64x1_t) -> poly8x8_t {
46991    unsafe {
46992        let ret_val: poly8x8_t = transmute(a);
46993        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
46994    }
46995}
46996#[doc = "Vector reinterpret cast operation"]
46997#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s64)"]
46998#[inline(always)]
46999#[cfg(target_endian = "little")]
47000#[target_feature(enable = "neon")]
47001#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47002#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47003#[cfg_attr(
47004    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47005    assert_instr(nop)
47006)]
47007#[cfg_attr(
47008    not(target_arch = "arm"),
47009    stable(feature = "neon_intrinsics", since = "1.59.0")
47010)]
47011#[cfg_attr(
47012    target_arch = "arm",
47013    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47014)]
47015pub fn vreinterpret_p16_s64(a: int64x1_t) -> poly16x4_t {
47016    unsafe { transmute(a) }
47017}
47018#[doc = "Vector reinterpret cast operation"]
47019#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s64)"]
47020#[inline(always)]
47021#[cfg(target_endian = "big")]
47022#[target_feature(enable = "neon")]
47023#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47024#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47025#[cfg_attr(
47026    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47027    assert_instr(nop)
47028)]
47029#[cfg_attr(
47030    not(target_arch = "arm"),
47031    stable(feature = "neon_intrinsics", since = "1.59.0")
47032)]
47033#[cfg_attr(
47034    target_arch = "arm",
47035    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47036)]
47037pub fn vreinterpret_p16_s64(a: int64x1_t) -> poly16x4_t {
47038    unsafe {
47039        let ret_val: poly16x4_t = transmute(a);
47040        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47041    }
47042}
47043#[doc = "Vector reinterpret cast operation"]
47044#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s64)"]
47045#[inline(always)]
47046#[cfg(target_endian = "little")]
47047#[target_feature(enable = "neon")]
47048#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47049#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47050#[cfg_attr(
47051    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47052    assert_instr(nop)
47053)]
47054#[cfg_attr(
47055    not(target_arch = "arm"),
47056    stable(feature = "neon_intrinsics", since = "1.59.0")
47057)]
47058#[cfg_attr(
47059    target_arch = "arm",
47060    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47061)]
47062pub fn vreinterpretq_f32_s64(a: int64x2_t) -> float32x4_t {
47063    unsafe { transmute(a) }
47064}
47065#[doc = "Vector reinterpret cast operation"]
47066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s64)"]
47067#[inline(always)]
47068#[cfg(target_endian = "big")]
47069#[target_feature(enable = "neon")]
47070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47071#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47072#[cfg_attr(
47073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47074    assert_instr(nop)
47075)]
47076#[cfg_attr(
47077    not(target_arch = "arm"),
47078    stable(feature = "neon_intrinsics", since = "1.59.0")
47079)]
47080#[cfg_attr(
47081    target_arch = "arm",
47082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47083)]
47084pub fn vreinterpretq_f32_s64(a: int64x2_t) -> float32x4_t {
47085    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47086    unsafe {
47087        let ret_val: float32x4_t = transmute(a);
47088        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47089    }
47090}
47091#[doc = "Vector reinterpret cast operation"]
47092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s64)"]
47093#[inline(always)]
47094#[cfg(target_endian = "little")]
47095#[target_feature(enable = "neon")]
47096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47097#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47098#[cfg_attr(
47099    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47100    assert_instr(nop)
47101)]
47102#[cfg_attr(
47103    not(target_arch = "arm"),
47104    stable(feature = "neon_intrinsics", since = "1.59.0")
47105)]
47106#[cfg_attr(
47107    target_arch = "arm",
47108    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47109)]
47110pub fn vreinterpretq_s8_s64(a: int64x2_t) -> int8x16_t {
47111    unsafe { transmute(a) }
47112}
47113#[doc = "Vector reinterpret cast operation"]
47114#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s64)"]
47115#[inline(always)]
47116#[cfg(target_endian = "big")]
47117#[target_feature(enable = "neon")]
47118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47119#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47120#[cfg_attr(
47121    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47122    assert_instr(nop)
47123)]
47124#[cfg_attr(
47125    not(target_arch = "arm"),
47126    stable(feature = "neon_intrinsics", since = "1.59.0")
47127)]
47128#[cfg_attr(
47129    target_arch = "arm",
47130    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47131)]
47132pub fn vreinterpretq_s8_s64(a: int64x2_t) -> int8x16_t {
47133    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47134    unsafe {
47135        let ret_val: int8x16_t = transmute(a);
47136        simd_shuffle!(
47137            ret_val,
47138            ret_val,
47139            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
47140        )
47141    }
47142}
47143#[doc = "Vector reinterpret cast operation"]
47144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s64)"]
47145#[inline(always)]
47146#[cfg(target_endian = "little")]
47147#[target_feature(enable = "neon")]
47148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47150#[cfg_attr(
47151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47152    assert_instr(nop)
47153)]
47154#[cfg_attr(
47155    not(target_arch = "arm"),
47156    stable(feature = "neon_intrinsics", since = "1.59.0")
47157)]
47158#[cfg_attr(
47159    target_arch = "arm",
47160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47161)]
47162pub fn vreinterpretq_s16_s64(a: int64x2_t) -> int16x8_t {
47163    unsafe { transmute(a) }
47164}
47165#[doc = "Vector reinterpret cast operation"]
47166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s64)"]
47167#[inline(always)]
47168#[cfg(target_endian = "big")]
47169#[target_feature(enable = "neon")]
47170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47171#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47172#[cfg_attr(
47173    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47174    assert_instr(nop)
47175)]
47176#[cfg_attr(
47177    not(target_arch = "arm"),
47178    stable(feature = "neon_intrinsics", since = "1.59.0")
47179)]
47180#[cfg_attr(
47181    target_arch = "arm",
47182    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47183)]
47184pub fn vreinterpretq_s16_s64(a: int64x2_t) -> int16x8_t {
47185    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47186    unsafe {
47187        let ret_val: int16x8_t = transmute(a);
47188        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47189    }
47190}
47191#[doc = "Vector reinterpret cast operation"]
47192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s64)"]
47193#[inline(always)]
47194#[cfg(target_endian = "little")]
47195#[target_feature(enable = "neon")]
47196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47198#[cfg_attr(
47199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47200    assert_instr(nop)
47201)]
47202#[cfg_attr(
47203    not(target_arch = "arm"),
47204    stable(feature = "neon_intrinsics", since = "1.59.0")
47205)]
47206#[cfg_attr(
47207    target_arch = "arm",
47208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47209)]
47210pub fn vreinterpretq_s32_s64(a: int64x2_t) -> int32x4_t {
47211    unsafe { transmute(a) }
47212}
47213#[doc = "Vector reinterpret cast operation"]
47214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s64)"]
47215#[inline(always)]
47216#[cfg(target_endian = "big")]
47217#[target_feature(enable = "neon")]
47218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47220#[cfg_attr(
47221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47222    assert_instr(nop)
47223)]
47224#[cfg_attr(
47225    not(target_arch = "arm"),
47226    stable(feature = "neon_intrinsics", since = "1.59.0")
47227)]
47228#[cfg_attr(
47229    target_arch = "arm",
47230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47231)]
47232pub fn vreinterpretq_s32_s64(a: int64x2_t) -> int32x4_t {
47233    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47234    unsafe {
47235        let ret_val: int32x4_t = transmute(a);
47236        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47237    }
47238}
47239#[doc = "Vector reinterpret cast operation"]
47240#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s64)"]
47241#[inline(always)]
47242#[cfg(target_endian = "little")]
47243#[target_feature(enable = "neon")]
47244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47245#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47246#[cfg_attr(
47247    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47248    assert_instr(nop)
47249)]
47250#[cfg_attr(
47251    not(target_arch = "arm"),
47252    stable(feature = "neon_intrinsics", since = "1.59.0")
47253)]
47254#[cfg_attr(
47255    target_arch = "arm",
47256    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47257)]
47258pub fn vreinterpretq_u8_s64(a: int64x2_t) -> uint8x16_t {
47259    unsafe { transmute(a) }
47260}
47261#[doc = "Vector reinterpret cast operation"]
47262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s64)"]
47263#[inline(always)]
47264#[cfg(target_endian = "big")]
47265#[target_feature(enable = "neon")]
47266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47268#[cfg_attr(
47269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47270    assert_instr(nop)
47271)]
47272#[cfg_attr(
47273    not(target_arch = "arm"),
47274    stable(feature = "neon_intrinsics", since = "1.59.0")
47275)]
47276#[cfg_attr(
47277    target_arch = "arm",
47278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47279)]
47280pub fn vreinterpretq_u8_s64(a: int64x2_t) -> uint8x16_t {
47281    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47282    unsafe {
47283        let ret_val: uint8x16_t = transmute(a);
47284        simd_shuffle!(
47285            ret_val,
47286            ret_val,
47287            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
47288        )
47289    }
47290}
47291#[doc = "Vector reinterpret cast operation"]
47292#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s64)"]
47293#[inline(always)]
47294#[cfg(target_endian = "little")]
47295#[target_feature(enable = "neon")]
47296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47298#[cfg_attr(
47299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47300    assert_instr(nop)
47301)]
47302#[cfg_attr(
47303    not(target_arch = "arm"),
47304    stable(feature = "neon_intrinsics", since = "1.59.0")
47305)]
47306#[cfg_attr(
47307    target_arch = "arm",
47308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47309)]
47310pub fn vreinterpretq_u16_s64(a: int64x2_t) -> uint16x8_t {
47311    unsafe { transmute(a) }
47312}
47313#[doc = "Vector reinterpret cast operation"]
47314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s64)"]
47315#[inline(always)]
47316#[cfg(target_endian = "big")]
47317#[target_feature(enable = "neon")]
47318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47320#[cfg_attr(
47321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47322    assert_instr(nop)
47323)]
47324#[cfg_attr(
47325    not(target_arch = "arm"),
47326    stable(feature = "neon_intrinsics", since = "1.59.0")
47327)]
47328#[cfg_attr(
47329    target_arch = "arm",
47330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47331)]
47332pub fn vreinterpretq_u16_s64(a: int64x2_t) -> uint16x8_t {
47333    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47334    unsafe {
47335        let ret_val: uint16x8_t = transmute(a);
47336        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47337    }
47338}
47339#[doc = "Vector reinterpret cast operation"]
47340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s64)"]
47341#[inline(always)]
47342#[cfg(target_endian = "little")]
47343#[target_feature(enable = "neon")]
47344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47346#[cfg_attr(
47347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47348    assert_instr(nop)
47349)]
47350#[cfg_attr(
47351    not(target_arch = "arm"),
47352    stable(feature = "neon_intrinsics", since = "1.59.0")
47353)]
47354#[cfg_attr(
47355    target_arch = "arm",
47356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47357)]
47358pub fn vreinterpretq_u32_s64(a: int64x2_t) -> uint32x4_t {
47359    unsafe { transmute(a) }
47360}
47361#[doc = "Vector reinterpret cast operation"]
47362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s64)"]
47363#[inline(always)]
47364#[cfg(target_endian = "big")]
47365#[target_feature(enable = "neon")]
47366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47368#[cfg_attr(
47369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47370    assert_instr(nop)
47371)]
47372#[cfg_attr(
47373    not(target_arch = "arm"),
47374    stable(feature = "neon_intrinsics", since = "1.59.0")
47375)]
47376#[cfg_attr(
47377    target_arch = "arm",
47378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47379)]
47380pub fn vreinterpretq_u32_s64(a: int64x2_t) -> uint32x4_t {
47381    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47382    unsafe {
47383        let ret_val: uint32x4_t = transmute(a);
47384        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47385    }
47386}
47387#[doc = "Vector reinterpret cast operation"]
47388#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s64)"]
47389#[inline(always)]
47390#[cfg(target_endian = "little")]
47391#[target_feature(enable = "neon")]
47392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47394#[cfg_attr(
47395    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47396    assert_instr(nop)
47397)]
47398#[cfg_attr(
47399    not(target_arch = "arm"),
47400    stable(feature = "neon_intrinsics", since = "1.59.0")
47401)]
47402#[cfg_attr(
47403    target_arch = "arm",
47404    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47405)]
47406pub fn vreinterpretq_u64_s64(a: int64x2_t) -> uint64x2_t {
47407    unsafe { transmute(a) }
47408}
47409#[doc = "Vector reinterpret cast operation"]
47410#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s64)"]
47411#[inline(always)]
47412#[cfg(target_endian = "big")]
47413#[target_feature(enable = "neon")]
47414#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47415#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47416#[cfg_attr(
47417    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47418    assert_instr(nop)
47419)]
47420#[cfg_attr(
47421    not(target_arch = "arm"),
47422    stable(feature = "neon_intrinsics", since = "1.59.0")
47423)]
47424#[cfg_attr(
47425    target_arch = "arm",
47426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47427)]
47428pub fn vreinterpretq_u64_s64(a: int64x2_t) -> uint64x2_t {
47429    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47430    unsafe {
47431        let ret_val: uint64x2_t = transmute(a);
47432        simd_shuffle!(ret_val, ret_val, [1, 0])
47433    }
47434}
47435#[doc = "Vector reinterpret cast operation"]
47436#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s64)"]
47437#[inline(always)]
47438#[cfg(target_endian = "little")]
47439#[target_feature(enable = "neon")]
47440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47442#[cfg_attr(
47443    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47444    assert_instr(nop)
47445)]
47446#[cfg_attr(
47447    not(target_arch = "arm"),
47448    stable(feature = "neon_intrinsics", since = "1.59.0")
47449)]
47450#[cfg_attr(
47451    target_arch = "arm",
47452    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47453)]
47454pub fn vreinterpretq_p8_s64(a: int64x2_t) -> poly8x16_t {
47455    unsafe { transmute(a) }
47456}
47457#[doc = "Vector reinterpret cast operation"]
47458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s64)"]
47459#[inline(always)]
47460#[cfg(target_endian = "big")]
47461#[target_feature(enable = "neon")]
47462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47464#[cfg_attr(
47465    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47466    assert_instr(nop)
47467)]
47468#[cfg_attr(
47469    not(target_arch = "arm"),
47470    stable(feature = "neon_intrinsics", since = "1.59.0")
47471)]
47472#[cfg_attr(
47473    target_arch = "arm",
47474    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47475)]
47476pub fn vreinterpretq_p8_s64(a: int64x2_t) -> poly8x16_t {
47477    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47478    unsafe {
47479        let ret_val: poly8x16_t = transmute(a);
47480        simd_shuffle!(
47481            ret_val,
47482            ret_val,
47483            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
47484        )
47485    }
47486}
47487#[doc = "Vector reinterpret cast operation"]
47488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s64)"]
47489#[inline(always)]
47490#[cfg(target_endian = "little")]
47491#[target_feature(enable = "neon")]
47492#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47493#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47494#[cfg_attr(
47495    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47496    assert_instr(nop)
47497)]
47498#[cfg_attr(
47499    not(target_arch = "arm"),
47500    stable(feature = "neon_intrinsics", since = "1.59.0")
47501)]
47502#[cfg_attr(
47503    target_arch = "arm",
47504    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47505)]
47506pub fn vreinterpretq_p16_s64(a: int64x2_t) -> poly16x8_t {
47507    unsafe { transmute(a) }
47508}
47509#[doc = "Vector reinterpret cast operation"]
47510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s64)"]
47511#[inline(always)]
47512#[cfg(target_endian = "big")]
47513#[target_feature(enable = "neon")]
47514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47515#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47516#[cfg_attr(
47517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47518    assert_instr(nop)
47519)]
47520#[cfg_attr(
47521    not(target_arch = "arm"),
47522    stable(feature = "neon_intrinsics", since = "1.59.0")
47523)]
47524#[cfg_attr(
47525    target_arch = "arm",
47526    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47527)]
47528pub fn vreinterpretq_p16_s64(a: int64x2_t) -> poly16x8_t {
47529    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
47530    unsafe {
47531        let ret_val: poly16x8_t = transmute(a);
47532        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47533    }
47534}
47535#[doc = "Vector reinterpret cast operation"]
47536#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u8)"]
47537#[inline(always)]
47538#[cfg(target_endian = "little")]
47539#[target_feature(enable = "neon")]
47540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47542#[cfg_attr(
47543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47544    assert_instr(nop)
47545)]
47546#[cfg_attr(
47547    not(target_arch = "arm"),
47548    stable(feature = "neon_intrinsics", since = "1.59.0")
47549)]
47550#[cfg_attr(
47551    target_arch = "arm",
47552    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47553)]
47554pub fn vreinterpret_f32_u8(a: uint8x8_t) -> float32x2_t {
47555    unsafe { transmute(a) }
47556}
47557#[doc = "Vector reinterpret cast operation"]
47558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u8)"]
47559#[inline(always)]
47560#[cfg(target_endian = "big")]
47561#[target_feature(enable = "neon")]
47562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47563#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47564#[cfg_attr(
47565    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47566    assert_instr(nop)
47567)]
47568#[cfg_attr(
47569    not(target_arch = "arm"),
47570    stable(feature = "neon_intrinsics", since = "1.59.0")
47571)]
47572#[cfg_attr(
47573    target_arch = "arm",
47574    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47575)]
47576pub fn vreinterpret_f32_u8(a: uint8x8_t) -> float32x2_t {
47577    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47578    unsafe {
47579        let ret_val: float32x2_t = transmute(a);
47580        simd_shuffle!(ret_val, ret_val, [1, 0])
47581    }
47582}
47583#[doc = "Vector reinterpret cast operation"]
47584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u8)"]
47585#[inline(always)]
47586#[cfg(target_endian = "little")]
47587#[target_feature(enable = "neon")]
47588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47589#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47590#[cfg_attr(
47591    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47592    assert_instr(nop)
47593)]
47594#[cfg_attr(
47595    not(target_arch = "arm"),
47596    stable(feature = "neon_intrinsics", since = "1.59.0")
47597)]
47598#[cfg_attr(
47599    target_arch = "arm",
47600    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47601)]
47602pub fn vreinterpret_s8_u8(a: uint8x8_t) -> int8x8_t {
47603    unsafe { transmute(a) }
47604}
47605#[doc = "Vector reinterpret cast operation"]
47606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u8)"]
47607#[inline(always)]
47608#[cfg(target_endian = "big")]
47609#[target_feature(enable = "neon")]
47610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47611#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47612#[cfg_attr(
47613    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47614    assert_instr(nop)
47615)]
47616#[cfg_attr(
47617    not(target_arch = "arm"),
47618    stable(feature = "neon_intrinsics", since = "1.59.0")
47619)]
47620#[cfg_attr(
47621    target_arch = "arm",
47622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47623)]
47624pub fn vreinterpret_s8_u8(a: uint8x8_t) -> int8x8_t {
47625    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47626    unsafe {
47627        let ret_val: int8x8_t = transmute(a);
47628        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47629    }
47630}
47631#[doc = "Vector reinterpret cast operation"]
47632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u8)"]
47633#[inline(always)]
47634#[cfg(target_endian = "little")]
47635#[target_feature(enable = "neon")]
47636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47637#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47638#[cfg_attr(
47639    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47640    assert_instr(nop)
47641)]
47642#[cfg_attr(
47643    not(target_arch = "arm"),
47644    stable(feature = "neon_intrinsics", since = "1.59.0")
47645)]
47646#[cfg_attr(
47647    target_arch = "arm",
47648    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47649)]
47650pub fn vreinterpret_s16_u8(a: uint8x8_t) -> int16x4_t {
47651    unsafe { transmute(a) }
47652}
47653#[doc = "Vector reinterpret cast operation"]
47654#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u8)"]
47655#[inline(always)]
47656#[cfg(target_endian = "big")]
47657#[target_feature(enable = "neon")]
47658#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47659#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47660#[cfg_attr(
47661    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47662    assert_instr(nop)
47663)]
47664#[cfg_attr(
47665    not(target_arch = "arm"),
47666    stable(feature = "neon_intrinsics", since = "1.59.0")
47667)]
47668#[cfg_attr(
47669    target_arch = "arm",
47670    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47671)]
47672pub fn vreinterpret_s16_u8(a: uint8x8_t) -> int16x4_t {
47673    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47674    unsafe {
47675        let ret_val: int16x4_t = transmute(a);
47676        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47677    }
47678}
47679#[doc = "Vector reinterpret cast operation"]
47680#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u8)"]
47681#[inline(always)]
47682#[cfg(target_endian = "little")]
47683#[target_feature(enable = "neon")]
47684#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47685#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47686#[cfg_attr(
47687    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47688    assert_instr(nop)
47689)]
47690#[cfg_attr(
47691    not(target_arch = "arm"),
47692    stable(feature = "neon_intrinsics", since = "1.59.0")
47693)]
47694#[cfg_attr(
47695    target_arch = "arm",
47696    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47697)]
47698pub fn vreinterpret_s32_u8(a: uint8x8_t) -> int32x2_t {
47699    unsafe { transmute(a) }
47700}
47701#[doc = "Vector reinterpret cast operation"]
47702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u8)"]
47703#[inline(always)]
47704#[cfg(target_endian = "big")]
47705#[target_feature(enable = "neon")]
47706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47707#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47708#[cfg_attr(
47709    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47710    assert_instr(nop)
47711)]
47712#[cfg_attr(
47713    not(target_arch = "arm"),
47714    stable(feature = "neon_intrinsics", since = "1.59.0")
47715)]
47716#[cfg_attr(
47717    target_arch = "arm",
47718    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47719)]
47720pub fn vreinterpret_s32_u8(a: uint8x8_t) -> int32x2_t {
47721    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47722    unsafe {
47723        let ret_val: int32x2_t = transmute(a);
47724        simd_shuffle!(ret_val, ret_val, [1, 0])
47725    }
47726}
47727#[doc = "Vector reinterpret cast operation"]
47728#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u8)"]
47729#[inline(always)]
47730#[cfg(target_endian = "little")]
47731#[target_feature(enable = "neon")]
47732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47734#[cfg_attr(
47735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47736    assert_instr(nop)
47737)]
47738#[cfg_attr(
47739    not(target_arch = "arm"),
47740    stable(feature = "neon_intrinsics", since = "1.59.0")
47741)]
47742#[cfg_attr(
47743    target_arch = "arm",
47744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47745)]
47746pub fn vreinterpret_s64_u8(a: uint8x8_t) -> int64x1_t {
47747    unsafe { transmute(a) }
47748}
47749#[doc = "Vector reinterpret cast operation"]
47750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u8)"]
47751#[inline(always)]
47752#[cfg(target_endian = "big")]
47753#[target_feature(enable = "neon")]
47754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47755#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47756#[cfg_attr(
47757    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47758    assert_instr(nop)
47759)]
47760#[cfg_attr(
47761    not(target_arch = "arm"),
47762    stable(feature = "neon_intrinsics", since = "1.59.0")
47763)]
47764#[cfg_attr(
47765    target_arch = "arm",
47766    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47767)]
47768pub fn vreinterpret_s64_u8(a: uint8x8_t) -> int64x1_t {
47769    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47770    unsafe { transmute(a) }
47771}
47772#[doc = "Vector reinterpret cast operation"]
47773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u8)"]
47774#[inline(always)]
47775#[cfg(target_endian = "little")]
47776#[target_feature(enable = "neon")]
47777#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47778#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47779#[cfg_attr(
47780    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47781    assert_instr(nop)
47782)]
47783#[cfg_attr(
47784    not(target_arch = "arm"),
47785    stable(feature = "neon_intrinsics", since = "1.59.0")
47786)]
47787#[cfg_attr(
47788    target_arch = "arm",
47789    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47790)]
47791pub fn vreinterpret_u16_u8(a: uint8x8_t) -> uint16x4_t {
47792    unsafe { transmute(a) }
47793}
47794#[doc = "Vector reinterpret cast operation"]
47795#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u8)"]
47796#[inline(always)]
47797#[cfg(target_endian = "big")]
47798#[target_feature(enable = "neon")]
47799#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47800#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47801#[cfg_attr(
47802    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47803    assert_instr(nop)
47804)]
47805#[cfg_attr(
47806    not(target_arch = "arm"),
47807    stable(feature = "neon_intrinsics", since = "1.59.0")
47808)]
47809#[cfg_attr(
47810    target_arch = "arm",
47811    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47812)]
47813pub fn vreinterpret_u16_u8(a: uint8x8_t) -> uint16x4_t {
47814    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47815    unsafe {
47816        let ret_val: uint16x4_t = transmute(a);
47817        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
47818    }
47819}
47820#[doc = "Vector reinterpret cast operation"]
47821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u8)"]
47822#[inline(always)]
47823#[cfg(target_endian = "little")]
47824#[target_feature(enable = "neon")]
47825#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47826#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47827#[cfg_attr(
47828    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47829    assert_instr(nop)
47830)]
47831#[cfg_attr(
47832    not(target_arch = "arm"),
47833    stable(feature = "neon_intrinsics", since = "1.59.0")
47834)]
47835#[cfg_attr(
47836    target_arch = "arm",
47837    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47838)]
47839pub fn vreinterpret_u32_u8(a: uint8x8_t) -> uint32x2_t {
47840    unsafe { transmute(a) }
47841}
47842#[doc = "Vector reinterpret cast operation"]
47843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u8)"]
47844#[inline(always)]
47845#[cfg(target_endian = "big")]
47846#[target_feature(enable = "neon")]
47847#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47849#[cfg_attr(
47850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47851    assert_instr(nop)
47852)]
47853#[cfg_attr(
47854    not(target_arch = "arm"),
47855    stable(feature = "neon_intrinsics", since = "1.59.0")
47856)]
47857#[cfg_attr(
47858    target_arch = "arm",
47859    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47860)]
47861pub fn vreinterpret_u32_u8(a: uint8x8_t) -> uint32x2_t {
47862    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47863    unsafe {
47864        let ret_val: uint32x2_t = transmute(a);
47865        simd_shuffle!(ret_val, ret_val, [1, 0])
47866    }
47867}
47868#[doc = "Vector reinterpret cast operation"]
47869#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u8)"]
47870#[inline(always)]
47871#[cfg(target_endian = "little")]
47872#[target_feature(enable = "neon")]
47873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47874#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47875#[cfg_attr(
47876    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47877    assert_instr(nop)
47878)]
47879#[cfg_attr(
47880    not(target_arch = "arm"),
47881    stable(feature = "neon_intrinsics", since = "1.59.0")
47882)]
47883#[cfg_attr(
47884    target_arch = "arm",
47885    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47886)]
47887pub fn vreinterpret_u64_u8(a: uint8x8_t) -> uint64x1_t {
47888    unsafe { transmute(a) }
47889}
47890#[doc = "Vector reinterpret cast operation"]
47891#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u8)"]
47892#[inline(always)]
47893#[cfg(target_endian = "big")]
47894#[target_feature(enable = "neon")]
47895#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47896#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47897#[cfg_attr(
47898    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47899    assert_instr(nop)
47900)]
47901#[cfg_attr(
47902    not(target_arch = "arm"),
47903    stable(feature = "neon_intrinsics", since = "1.59.0")
47904)]
47905#[cfg_attr(
47906    target_arch = "arm",
47907    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47908)]
47909pub fn vreinterpret_u64_u8(a: uint8x8_t) -> uint64x1_t {
47910    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47911    unsafe { transmute(a) }
47912}
47913#[doc = "Vector reinterpret cast operation"]
47914#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u8)"]
47915#[inline(always)]
47916#[cfg(target_endian = "little")]
47917#[target_feature(enable = "neon")]
47918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47919#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47920#[cfg_attr(
47921    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47922    assert_instr(nop)
47923)]
47924#[cfg_attr(
47925    not(target_arch = "arm"),
47926    stable(feature = "neon_intrinsics", since = "1.59.0")
47927)]
47928#[cfg_attr(
47929    target_arch = "arm",
47930    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47931)]
47932pub fn vreinterpret_p8_u8(a: uint8x8_t) -> poly8x8_t {
47933    unsafe { transmute(a) }
47934}
47935#[doc = "Vector reinterpret cast operation"]
47936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u8)"]
47937#[inline(always)]
47938#[cfg(target_endian = "big")]
47939#[target_feature(enable = "neon")]
47940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47942#[cfg_attr(
47943    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47944    assert_instr(nop)
47945)]
47946#[cfg_attr(
47947    not(target_arch = "arm"),
47948    stable(feature = "neon_intrinsics", since = "1.59.0")
47949)]
47950#[cfg_attr(
47951    target_arch = "arm",
47952    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47953)]
47954pub fn vreinterpret_p8_u8(a: uint8x8_t) -> poly8x8_t {
47955    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
47956    unsafe {
47957        let ret_val: poly8x8_t = transmute(a);
47958        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
47959    }
47960}
47961#[doc = "Vector reinterpret cast operation"]
47962#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u8)"]
47963#[inline(always)]
47964#[cfg(target_endian = "little")]
47965#[target_feature(enable = "neon")]
47966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47968#[cfg_attr(
47969    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47970    assert_instr(nop)
47971)]
47972#[cfg_attr(
47973    not(target_arch = "arm"),
47974    stable(feature = "neon_intrinsics", since = "1.59.0")
47975)]
47976#[cfg_attr(
47977    target_arch = "arm",
47978    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
47979)]
47980pub fn vreinterpret_p16_u8(a: uint8x8_t) -> poly16x4_t {
47981    unsafe { transmute(a) }
47982}
47983#[doc = "Vector reinterpret cast operation"]
47984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u8)"]
47985#[inline(always)]
47986#[cfg(target_endian = "big")]
47987#[target_feature(enable = "neon")]
47988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
47989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
47990#[cfg_attr(
47991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
47992    assert_instr(nop)
47993)]
47994#[cfg_attr(
47995    not(target_arch = "arm"),
47996    stable(feature = "neon_intrinsics", since = "1.59.0")
47997)]
47998#[cfg_attr(
47999    target_arch = "arm",
48000    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48001)]
48002pub fn vreinterpret_p16_u8(a: uint8x8_t) -> poly16x4_t {
48003    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
48004    unsafe {
48005        let ret_val: poly16x4_t = transmute(a);
48006        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48007    }
48008}
48009#[doc = "Vector reinterpret cast operation"]
48010#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u8)"]
48011#[inline(always)]
48012#[cfg(target_endian = "little")]
48013#[target_feature(enable = "neon")]
48014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48016#[cfg_attr(
48017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48018    assert_instr(nop)
48019)]
48020#[cfg_attr(
48021    not(target_arch = "arm"),
48022    stable(feature = "neon_intrinsics", since = "1.59.0")
48023)]
48024#[cfg_attr(
48025    target_arch = "arm",
48026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48027)]
48028pub fn vreinterpretq_f32_u8(a: uint8x16_t) -> float32x4_t {
48029    unsafe { transmute(a) }
48030}
48031#[doc = "Vector reinterpret cast operation"]
48032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u8)"]
48033#[inline(always)]
48034#[cfg(target_endian = "big")]
48035#[target_feature(enable = "neon")]
48036#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48037#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48038#[cfg_attr(
48039    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48040    assert_instr(nop)
48041)]
48042#[cfg_attr(
48043    not(target_arch = "arm"),
48044    stable(feature = "neon_intrinsics", since = "1.59.0")
48045)]
48046#[cfg_attr(
48047    target_arch = "arm",
48048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48049)]
48050pub fn vreinterpretq_f32_u8(a: uint8x16_t) -> float32x4_t {
48051    let a: uint8x16_t =
48052        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48053    unsafe {
48054        let ret_val: float32x4_t = transmute(a);
48055        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48056    }
48057}
48058#[doc = "Vector reinterpret cast operation"]
48059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u8)"]
48060#[inline(always)]
48061#[cfg(target_endian = "little")]
48062#[target_feature(enable = "neon")]
48063#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48064#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48065#[cfg_attr(
48066    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48067    assert_instr(nop)
48068)]
48069#[cfg_attr(
48070    not(target_arch = "arm"),
48071    stable(feature = "neon_intrinsics", since = "1.59.0")
48072)]
48073#[cfg_attr(
48074    target_arch = "arm",
48075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48076)]
48077pub fn vreinterpretq_s8_u8(a: uint8x16_t) -> int8x16_t {
48078    unsafe { transmute(a) }
48079}
48080#[doc = "Vector reinterpret cast operation"]
48081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u8)"]
48082#[inline(always)]
48083#[cfg(target_endian = "big")]
48084#[target_feature(enable = "neon")]
48085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48086#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48087#[cfg_attr(
48088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48089    assert_instr(nop)
48090)]
48091#[cfg_attr(
48092    not(target_arch = "arm"),
48093    stable(feature = "neon_intrinsics", since = "1.59.0")
48094)]
48095#[cfg_attr(
48096    target_arch = "arm",
48097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48098)]
48099pub fn vreinterpretq_s8_u8(a: uint8x16_t) -> int8x16_t {
48100    let a: uint8x16_t =
48101        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48102    unsafe {
48103        let ret_val: int8x16_t = transmute(a);
48104        simd_shuffle!(
48105            ret_val,
48106            ret_val,
48107            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
48108        )
48109    }
48110}
48111#[doc = "Vector reinterpret cast operation"]
48112#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u8)"]
48113#[inline(always)]
48114#[cfg(target_endian = "little")]
48115#[target_feature(enable = "neon")]
48116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48118#[cfg_attr(
48119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48120    assert_instr(nop)
48121)]
48122#[cfg_attr(
48123    not(target_arch = "arm"),
48124    stable(feature = "neon_intrinsics", since = "1.59.0")
48125)]
48126#[cfg_attr(
48127    target_arch = "arm",
48128    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48129)]
48130pub fn vreinterpretq_s16_u8(a: uint8x16_t) -> int16x8_t {
48131    unsafe { transmute(a) }
48132}
48133#[doc = "Vector reinterpret cast operation"]
48134#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u8)"]
48135#[inline(always)]
48136#[cfg(target_endian = "big")]
48137#[target_feature(enable = "neon")]
48138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48139#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48140#[cfg_attr(
48141    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48142    assert_instr(nop)
48143)]
48144#[cfg_attr(
48145    not(target_arch = "arm"),
48146    stable(feature = "neon_intrinsics", since = "1.59.0")
48147)]
48148#[cfg_attr(
48149    target_arch = "arm",
48150    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48151)]
48152pub fn vreinterpretq_s16_u8(a: uint8x16_t) -> int16x8_t {
48153    let a: uint8x16_t =
48154        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48155    unsafe {
48156        let ret_val: int16x8_t = transmute(a);
48157        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48158    }
48159}
48160#[doc = "Vector reinterpret cast operation"]
48161#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u8)"]
48162#[inline(always)]
48163#[cfg(target_endian = "little")]
48164#[target_feature(enable = "neon")]
48165#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48166#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48167#[cfg_attr(
48168    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48169    assert_instr(nop)
48170)]
48171#[cfg_attr(
48172    not(target_arch = "arm"),
48173    stable(feature = "neon_intrinsics", since = "1.59.0")
48174)]
48175#[cfg_attr(
48176    target_arch = "arm",
48177    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48178)]
48179pub fn vreinterpretq_s32_u8(a: uint8x16_t) -> int32x4_t {
48180    unsafe { transmute(a) }
48181}
48182#[doc = "Vector reinterpret cast operation"]
48183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u8)"]
48184#[inline(always)]
48185#[cfg(target_endian = "big")]
48186#[target_feature(enable = "neon")]
48187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48188#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48189#[cfg_attr(
48190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48191    assert_instr(nop)
48192)]
48193#[cfg_attr(
48194    not(target_arch = "arm"),
48195    stable(feature = "neon_intrinsics", since = "1.59.0")
48196)]
48197#[cfg_attr(
48198    target_arch = "arm",
48199    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48200)]
48201pub fn vreinterpretq_s32_u8(a: uint8x16_t) -> int32x4_t {
48202    let a: uint8x16_t =
48203        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48204    unsafe {
48205        let ret_val: int32x4_t = transmute(a);
48206        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48207    }
48208}
48209#[doc = "Vector reinterpret cast operation"]
48210#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u8)"]
48211#[inline(always)]
48212#[cfg(target_endian = "little")]
48213#[target_feature(enable = "neon")]
48214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48216#[cfg_attr(
48217    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48218    assert_instr(nop)
48219)]
48220#[cfg_attr(
48221    not(target_arch = "arm"),
48222    stable(feature = "neon_intrinsics", since = "1.59.0")
48223)]
48224#[cfg_attr(
48225    target_arch = "arm",
48226    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48227)]
48228pub fn vreinterpretq_s64_u8(a: uint8x16_t) -> int64x2_t {
48229    unsafe { transmute(a) }
48230}
48231#[doc = "Vector reinterpret cast operation"]
48232#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u8)"]
48233#[inline(always)]
48234#[cfg(target_endian = "big")]
48235#[target_feature(enable = "neon")]
48236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48237#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48238#[cfg_attr(
48239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48240    assert_instr(nop)
48241)]
48242#[cfg_attr(
48243    not(target_arch = "arm"),
48244    stable(feature = "neon_intrinsics", since = "1.59.0")
48245)]
48246#[cfg_attr(
48247    target_arch = "arm",
48248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48249)]
48250pub fn vreinterpretq_s64_u8(a: uint8x16_t) -> int64x2_t {
48251    let a: uint8x16_t =
48252        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48253    unsafe {
48254        let ret_val: int64x2_t = transmute(a);
48255        simd_shuffle!(ret_val, ret_val, [1, 0])
48256    }
48257}
48258#[doc = "Vector reinterpret cast operation"]
48259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u8)"]
48260#[inline(always)]
48261#[cfg(target_endian = "little")]
48262#[target_feature(enable = "neon")]
48263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48265#[cfg_attr(
48266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48267    assert_instr(nop)
48268)]
48269#[cfg_attr(
48270    not(target_arch = "arm"),
48271    stable(feature = "neon_intrinsics", since = "1.59.0")
48272)]
48273#[cfg_attr(
48274    target_arch = "arm",
48275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48276)]
48277pub fn vreinterpretq_u16_u8(a: uint8x16_t) -> uint16x8_t {
48278    unsafe { transmute(a) }
48279}
48280#[doc = "Vector reinterpret cast operation"]
48281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u8)"]
48282#[inline(always)]
48283#[cfg(target_endian = "big")]
48284#[target_feature(enable = "neon")]
48285#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48286#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48287#[cfg_attr(
48288    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48289    assert_instr(nop)
48290)]
48291#[cfg_attr(
48292    not(target_arch = "arm"),
48293    stable(feature = "neon_intrinsics", since = "1.59.0")
48294)]
48295#[cfg_attr(
48296    target_arch = "arm",
48297    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48298)]
48299pub fn vreinterpretq_u16_u8(a: uint8x16_t) -> uint16x8_t {
48300    let a: uint8x16_t =
48301        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48302    unsafe {
48303        let ret_val: uint16x8_t = transmute(a);
48304        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48305    }
48306}
48307#[doc = "Vector reinterpret cast operation"]
48308#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u8)"]
48309#[inline(always)]
48310#[cfg(target_endian = "little")]
48311#[target_feature(enable = "neon")]
48312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48314#[cfg_attr(
48315    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48316    assert_instr(nop)
48317)]
48318#[cfg_attr(
48319    not(target_arch = "arm"),
48320    stable(feature = "neon_intrinsics", since = "1.59.0")
48321)]
48322#[cfg_attr(
48323    target_arch = "arm",
48324    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48325)]
48326pub fn vreinterpretq_u32_u8(a: uint8x16_t) -> uint32x4_t {
48327    unsafe { transmute(a) }
48328}
48329#[doc = "Vector reinterpret cast operation"]
48330#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u8)"]
48331#[inline(always)]
48332#[cfg(target_endian = "big")]
48333#[target_feature(enable = "neon")]
48334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48335#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48336#[cfg_attr(
48337    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48338    assert_instr(nop)
48339)]
48340#[cfg_attr(
48341    not(target_arch = "arm"),
48342    stable(feature = "neon_intrinsics", since = "1.59.0")
48343)]
48344#[cfg_attr(
48345    target_arch = "arm",
48346    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48347)]
48348pub fn vreinterpretq_u32_u8(a: uint8x16_t) -> uint32x4_t {
48349    let a: uint8x16_t =
48350        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48351    unsafe {
48352        let ret_val: uint32x4_t = transmute(a);
48353        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48354    }
48355}
48356#[doc = "Vector reinterpret cast operation"]
48357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u8)"]
48358#[inline(always)]
48359#[cfg(target_endian = "little")]
48360#[target_feature(enable = "neon")]
48361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48362#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48363#[cfg_attr(
48364    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48365    assert_instr(nop)
48366)]
48367#[cfg_attr(
48368    not(target_arch = "arm"),
48369    stable(feature = "neon_intrinsics", since = "1.59.0")
48370)]
48371#[cfg_attr(
48372    target_arch = "arm",
48373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48374)]
48375pub fn vreinterpretq_u64_u8(a: uint8x16_t) -> uint64x2_t {
48376    unsafe { transmute(a) }
48377}
48378#[doc = "Vector reinterpret cast operation"]
48379#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u8)"]
48380#[inline(always)]
48381#[cfg(target_endian = "big")]
48382#[target_feature(enable = "neon")]
48383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48384#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48385#[cfg_attr(
48386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48387    assert_instr(nop)
48388)]
48389#[cfg_attr(
48390    not(target_arch = "arm"),
48391    stable(feature = "neon_intrinsics", since = "1.59.0")
48392)]
48393#[cfg_attr(
48394    target_arch = "arm",
48395    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48396)]
48397pub fn vreinterpretq_u64_u8(a: uint8x16_t) -> uint64x2_t {
48398    let a: uint8x16_t =
48399        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48400    unsafe {
48401        let ret_val: uint64x2_t = transmute(a);
48402        simd_shuffle!(ret_val, ret_val, [1, 0])
48403    }
48404}
48405#[doc = "Vector reinterpret cast operation"]
48406#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u8)"]
48407#[inline(always)]
48408#[cfg(target_endian = "little")]
48409#[target_feature(enable = "neon")]
48410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48412#[cfg_attr(
48413    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48414    assert_instr(nop)
48415)]
48416#[cfg_attr(
48417    not(target_arch = "arm"),
48418    stable(feature = "neon_intrinsics", since = "1.59.0")
48419)]
48420#[cfg_attr(
48421    target_arch = "arm",
48422    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48423)]
48424pub fn vreinterpretq_p8_u8(a: uint8x16_t) -> poly8x16_t {
48425    unsafe { transmute(a) }
48426}
48427#[doc = "Vector reinterpret cast operation"]
48428#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u8)"]
48429#[inline(always)]
48430#[cfg(target_endian = "big")]
48431#[target_feature(enable = "neon")]
48432#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48433#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48434#[cfg_attr(
48435    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48436    assert_instr(nop)
48437)]
48438#[cfg_attr(
48439    not(target_arch = "arm"),
48440    stable(feature = "neon_intrinsics", since = "1.59.0")
48441)]
48442#[cfg_attr(
48443    target_arch = "arm",
48444    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48445)]
48446pub fn vreinterpretq_p8_u8(a: uint8x16_t) -> poly8x16_t {
48447    let a: uint8x16_t =
48448        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48449    unsafe {
48450        let ret_val: poly8x16_t = transmute(a);
48451        simd_shuffle!(
48452            ret_val,
48453            ret_val,
48454            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
48455        )
48456    }
48457}
48458#[doc = "Vector reinterpret cast operation"]
48459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u8)"]
48460#[inline(always)]
48461#[cfg(target_endian = "little")]
48462#[target_feature(enable = "neon")]
48463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48465#[cfg_attr(
48466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48467    assert_instr(nop)
48468)]
48469#[cfg_attr(
48470    not(target_arch = "arm"),
48471    stable(feature = "neon_intrinsics", since = "1.59.0")
48472)]
48473#[cfg_attr(
48474    target_arch = "arm",
48475    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48476)]
48477pub fn vreinterpretq_p16_u8(a: uint8x16_t) -> poly16x8_t {
48478    unsafe { transmute(a) }
48479}
48480#[doc = "Vector reinterpret cast operation"]
48481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u8)"]
48482#[inline(always)]
48483#[cfg(target_endian = "big")]
48484#[target_feature(enable = "neon")]
48485#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48486#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48487#[cfg_attr(
48488    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48489    assert_instr(nop)
48490)]
48491#[cfg_attr(
48492    not(target_arch = "arm"),
48493    stable(feature = "neon_intrinsics", since = "1.59.0")
48494)]
48495#[cfg_attr(
48496    target_arch = "arm",
48497    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48498)]
48499pub fn vreinterpretq_p16_u8(a: uint8x16_t) -> poly16x8_t {
48500    let a: uint8x16_t =
48501        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
48502    unsafe {
48503        let ret_val: poly16x8_t = transmute(a);
48504        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48505    }
48506}
48507#[doc = "Vector reinterpret cast operation"]
48508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u16)"]
48509#[inline(always)]
48510#[cfg(target_endian = "little")]
48511#[target_feature(enable = "neon")]
48512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48514#[cfg_attr(
48515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48516    assert_instr(nop)
48517)]
48518#[cfg_attr(
48519    not(target_arch = "arm"),
48520    stable(feature = "neon_intrinsics", since = "1.59.0")
48521)]
48522#[cfg_attr(
48523    target_arch = "arm",
48524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48525)]
48526pub fn vreinterpret_f32_u16(a: uint16x4_t) -> float32x2_t {
48527    unsafe { transmute(a) }
48528}
48529#[doc = "Vector reinterpret cast operation"]
48530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u16)"]
48531#[inline(always)]
48532#[cfg(target_endian = "big")]
48533#[target_feature(enable = "neon")]
48534#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48535#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48536#[cfg_attr(
48537    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48538    assert_instr(nop)
48539)]
48540#[cfg_attr(
48541    not(target_arch = "arm"),
48542    stable(feature = "neon_intrinsics", since = "1.59.0")
48543)]
48544#[cfg_attr(
48545    target_arch = "arm",
48546    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48547)]
48548pub fn vreinterpret_f32_u16(a: uint16x4_t) -> float32x2_t {
48549    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48550    unsafe {
48551        let ret_val: float32x2_t = transmute(a);
48552        simd_shuffle!(ret_val, ret_val, [1, 0])
48553    }
48554}
48555#[doc = "Vector reinterpret cast operation"]
48556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u16)"]
48557#[inline(always)]
48558#[cfg(target_endian = "little")]
48559#[target_feature(enable = "neon")]
48560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48562#[cfg_attr(
48563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48564    assert_instr(nop)
48565)]
48566#[cfg_attr(
48567    not(target_arch = "arm"),
48568    stable(feature = "neon_intrinsics", since = "1.59.0")
48569)]
48570#[cfg_attr(
48571    target_arch = "arm",
48572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48573)]
48574pub fn vreinterpret_s8_u16(a: uint16x4_t) -> int8x8_t {
48575    unsafe { transmute(a) }
48576}
48577#[doc = "Vector reinterpret cast operation"]
48578#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u16)"]
48579#[inline(always)]
48580#[cfg(target_endian = "big")]
48581#[target_feature(enable = "neon")]
48582#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48583#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48584#[cfg_attr(
48585    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48586    assert_instr(nop)
48587)]
48588#[cfg_attr(
48589    not(target_arch = "arm"),
48590    stable(feature = "neon_intrinsics", since = "1.59.0")
48591)]
48592#[cfg_attr(
48593    target_arch = "arm",
48594    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48595)]
48596pub fn vreinterpret_s8_u16(a: uint16x4_t) -> int8x8_t {
48597    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48598    unsafe {
48599        let ret_val: int8x8_t = transmute(a);
48600        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48601    }
48602}
48603#[doc = "Vector reinterpret cast operation"]
48604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u16)"]
48605#[inline(always)]
48606#[cfg(target_endian = "little")]
48607#[target_feature(enable = "neon")]
48608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48610#[cfg_attr(
48611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48612    assert_instr(nop)
48613)]
48614#[cfg_attr(
48615    not(target_arch = "arm"),
48616    stable(feature = "neon_intrinsics", since = "1.59.0")
48617)]
48618#[cfg_attr(
48619    target_arch = "arm",
48620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48621)]
48622pub fn vreinterpret_s16_u16(a: uint16x4_t) -> int16x4_t {
48623    unsafe { transmute(a) }
48624}
48625#[doc = "Vector reinterpret cast operation"]
48626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u16)"]
48627#[inline(always)]
48628#[cfg(target_endian = "big")]
48629#[target_feature(enable = "neon")]
48630#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48631#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48632#[cfg_attr(
48633    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48634    assert_instr(nop)
48635)]
48636#[cfg_attr(
48637    not(target_arch = "arm"),
48638    stable(feature = "neon_intrinsics", since = "1.59.0")
48639)]
48640#[cfg_attr(
48641    target_arch = "arm",
48642    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48643)]
48644pub fn vreinterpret_s16_u16(a: uint16x4_t) -> int16x4_t {
48645    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48646    unsafe {
48647        let ret_val: int16x4_t = transmute(a);
48648        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48649    }
48650}
48651#[doc = "Vector reinterpret cast operation"]
48652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u16)"]
48653#[inline(always)]
48654#[cfg(target_endian = "little")]
48655#[target_feature(enable = "neon")]
48656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48658#[cfg_attr(
48659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48660    assert_instr(nop)
48661)]
48662#[cfg_attr(
48663    not(target_arch = "arm"),
48664    stable(feature = "neon_intrinsics", since = "1.59.0")
48665)]
48666#[cfg_attr(
48667    target_arch = "arm",
48668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48669)]
48670pub fn vreinterpret_s32_u16(a: uint16x4_t) -> int32x2_t {
48671    unsafe { transmute(a) }
48672}
48673#[doc = "Vector reinterpret cast operation"]
48674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u16)"]
48675#[inline(always)]
48676#[cfg(target_endian = "big")]
48677#[target_feature(enable = "neon")]
48678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48680#[cfg_attr(
48681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48682    assert_instr(nop)
48683)]
48684#[cfg_attr(
48685    not(target_arch = "arm"),
48686    stable(feature = "neon_intrinsics", since = "1.59.0")
48687)]
48688#[cfg_attr(
48689    target_arch = "arm",
48690    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48691)]
48692pub fn vreinterpret_s32_u16(a: uint16x4_t) -> int32x2_t {
48693    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48694    unsafe {
48695        let ret_val: int32x2_t = transmute(a);
48696        simd_shuffle!(ret_val, ret_val, [1, 0])
48697    }
48698}
48699#[doc = "Vector reinterpret cast operation"]
48700#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u16)"]
48701#[inline(always)]
48702#[cfg(target_endian = "little")]
48703#[target_feature(enable = "neon")]
48704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48706#[cfg_attr(
48707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48708    assert_instr(nop)
48709)]
48710#[cfg_attr(
48711    not(target_arch = "arm"),
48712    stable(feature = "neon_intrinsics", since = "1.59.0")
48713)]
48714#[cfg_attr(
48715    target_arch = "arm",
48716    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48717)]
48718pub fn vreinterpret_s64_u16(a: uint16x4_t) -> int64x1_t {
48719    unsafe { transmute(a) }
48720}
48721#[doc = "Vector reinterpret cast operation"]
48722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u16)"]
48723#[inline(always)]
48724#[cfg(target_endian = "big")]
48725#[target_feature(enable = "neon")]
48726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48727#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48728#[cfg_attr(
48729    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48730    assert_instr(nop)
48731)]
48732#[cfg_attr(
48733    not(target_arch = "arm"),
48734    stable(feature = "neon_intrinsics", since = "1.59.0")
48735)]
48736#[cfg_attr(
48737    target_arch = "arm",
48738    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48739)]
48740pub fn vreinterpret_s64_u16(a: uint16x4_t) -> int64x1_t {
48741    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48742    unsafe { transmute(a) }
48743}
48744#[doc = "Vector reinterpret cast operation"]
48745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u16)"]
48746#[inline(always)]
48747#[cfg(target_endian = "little")]
48748#[target_feature(enable = "neon")]
48749#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48750#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48751#[cfg_attr(
48752    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48753    assert_instr(nop)
48754)]
48755#[cfg_attr(
48756    not(target_arch = "arm"),
48757    stable(feature = "neon_intrinsics", since = "1.59.0")
48758)]
48759#[cfg_attr(
48760    target_arch = "arm",
48761    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48762)]
48763pub fn vreinterpret_u8_u16(a: uint16x4_t) -> uint8x8_t {
48764    unsafe { transmute(a) }
48765}
48766#[doc = "Vector reinterpret cast operation"]
48767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u16)"]
48768#[inline(always)]
48769#[cfg(target_endian = "big")]
48770#[target_feature(enable = "neon")]
48771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48772#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48773#[cfg_attr(
48774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48775    assert_instr(nop)
48776)]
48777#[cfg_attr(
48778    not(target_arch = "arm"),
48779    stable(feature = "neon_intrinsics", since = "1.59.0")
48780)]
48781#[cfg_attr(
48782    target_arch = "arm",
48783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48784)]
48785pub fn vreinterpret_u8_u16(a: uint16x4_t) -> uint8x8_t {
48786    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48787    unsafe {
48788        let ret_val: uint8x8_t = transmute(a);
48789        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48790    }
48791}
48792#[doc = "Vector reinterpret cast operation"]
48793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u16)"]
48794#[inline(always)]
48795#[cfg(target_endian = "little")]
48796#[target_feature(enable = "neon")]
48797#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48798#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48799#[cfg_attr(
48800    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48801    assert_instr(nop)
48802)]
48803#[cfg_attr(
48804    not(target_arch = "arm"),
48805    stable(feature = "neon_intrinsics", since = "1.59.0")
48806)]
48807#[cfg_attr(
48808    target_arch = "arm",
48809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48810)]
48811pub fn vreinterpret_u32_u16(a: uint16x4_t) -> uint32x2_t {
48812    unsafe { transmute(a) }
48813}
48814#[doc = "Vector reinterpret cast operation"]
48815#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u16)"]
48816#[inline(always)]
48817#[cfg(target_endian = "big")]
48818#[target_feature(enable = "neon")]
48819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48820#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48821#[cfg_attr(
48822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48823    assert_instr(nop)
48824)]
48825#[cfg_attr(
48826    not(target_arch = "arm"),
48827    stable(feature = "neon_intrinsics", since = "1.59.0")
48828)]
48829#[cfg_attr(
48830    target_arch = "arm",
48831    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48832)]
48833pub fn vreinterpret_u32_u16(a: uint16x4_t) -> uint32x2_t {
48834    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48835    unsafe {
48836        let ret_val: uint32x2_t = transmute(a);
48837        simd_shuffle!(ret_val, ret_val, [1, 0])
48838    }
48839}
48840#[doc = "Vector reinterpret cast operation"]
48841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u16)"]
48842#[inline(always)]
48843#[cfg(target_endian = "little")]
48844#[target_feature(enable = "neon")]
48845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48846#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48847#[cfg_attr(
48848    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48849    assert_instr(nop)
48850)]
48851#[cfg_attr(
48852    not(target_arch = "arm"),
48853    stable(feature = "neon_intrinsics", since = "1.59.0")
48854)]
48855#[cfg_attr(
48856    target_arch = "arm",
48857    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48858)]
48859pub fn vreinterpret_u64_u16(a: uint16x4_t) -> uint64x1_t {
48860    unsafe { transmute(a) }
48861}
48862#[doc = "Vector reinterpret cast operation"]
48863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u16)"]
48864#[inline(always)]
48865#[cfg(target_endian = "big")]
48866#[target_feature(enable = "neon")]
48867#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48868#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48869#[cfg_attr(
48870    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48871    assert_instr(nop)
48872)]
48873#[cfg_attr(
48874    not(target_arch = "arm"),
48875    stable(feature = "neon_intrinsics", since = "1.59.0")
48876)]
48877#[cfg_attr(
48878    target_arch = "arm",
48879    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48880)]
48881pub fn vreinterpret_u64_u16(a: uint16x4_t) -> uint64x1_t {
48882    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48883    unsafe { transmute(a) }
48884}
48885#[doc = "Vector reinterpret cast operation"]
48886#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u16)"]
48887#[inline(always)]
48888#[cfg(target_endian = "little")]
48889#[target_feature(enable = "neon")]
48890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48891#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48892#[cfg_attr(
48893    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48894    assert_instr(nop)
48895)]
48896#[cfg_attr(
48897    not(target_arch = "arm"),
48898    stable(feature = "neon_intrinsics", since = "1.59.0")
48899)]
48900#[cfg_attr(
48901    target_arch = "arm",
48902    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48903)]
48904pub fn vreinterpret_p8_u16(a: uint16x4_t) -> poly8x8_t {
48905    unsafe { transmute(a) }
48906}
48907#[doc = "Vector reinterpret cast operation"]
48908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u16)"]
48909#[inline(always)]
48910#[cfg(target_endian = "big")]
48911#[target_feature(enable = "neon")]
48912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48913#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48914#[cfg_attr(
48915    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48916    assert_instr(nop)
48917)]
48918#[cfg_attr(
48919    not(target_arch = "arm"),
48920    stable(feature = "neon_intrinsics", since = "1.59.0")
48921)]
48922#[cfg_attr(
48923    target_arch = "arm",
48924    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48925)]
48926pub fn vreinterpret_p8_u16(a: uint16x4_t) -> poly8x8_t {
48927    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48928    unsafe {
48929        let ret_val: poly8x8_t = transmute(a);
48930        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
48931    }
48932}
48933#[doc = "Vector reinterpret cast operation"]
48934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u16)"]
48935#[inline(always)]
48936#[cfg(target_endian = "little")]
48937#[target_feature(enable = "neon")]
48938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48940#[cfg_attr(
48941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48942    assert_instr(nop)
48943)]
48944#[cfg_attr(
48945    not(target_arch = "arm"),
48946    stable(feature = "neon_intrinsics", since = "1.59.0")
48947)]
48948#[cfg_attr(
48949    target_arch = "arm",
48950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48951)]
48952pub fn vreinterpret_p16_u16(a: uint16x4_t) -> poly16x4_t {
48953    unsafe { transmute(a) }
48954}
48955#[doc = "Vector reinterpret cast operation"]
48956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u16)"]
48957#[inline(always)]
48958#[cfg(target_endian = "big")]
48959#[target_feature(enable = "neon")]
48960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48962#[cfg_attr(
48963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48964    assert_instr(nop)
48965)]
48966#[cfg_attr(
48967    not(target_arch = "arm"),
48968    stable(feature = "neon_intrinsics", since = "1.59.0")
48969)]
48970#[cfg_attr(
48971    target_arch = "arm",
48972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48973)]
48974pub fn vreinterpret_p16_u16(a: uint16x4_t) -> poly16x4_t {
48975    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
48976    unsafe {
48977        let ret_val: poly16x4_t = transmute(a);
48978        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
48979    }
48980}
48981#[doc = "Vector reinterpret cast operation"]
48982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u16)"]
48983#[inline(always)]
48984#[cfg(target_endian = "little")]
48985#[target_feature(enable = "neon")]
48986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
48987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
48988#[cfg_attr(
48989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
48990    assert_instr(nop)
48991)]
48992#[cfg_attr(
48993    not(target_arch = "arm"),
48994    stable(feature = "neon_intrinsics", since = "1.59.0")
48995)]
48996#[cfg_attr(
48997    target_arch = "arm",
48998    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
48999)]
49000pub fn vreinterpretq_f32_u16(a: uint16x8_t) -> float32x4_t {
49001    unsafe { transmute(a) }
49002}
49003#[doc = "Vector reinterpret cast operation"]
49004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u16)"]
49005#[inline(always)]
49006#[cfg(target_endian = "big")]
49007#[target_feature(enable = "neon")]
49008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49009#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49010#[cfg_attr(
49011    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49012    assert_instr(nop)
49013)]
49014#[cfg_attr(
49015    not(target_arch = "arm"),
49016    stable(feature = "neon_intrinsics", since = "1.59.0")
49017)]
49018#[cfg_attr(
49019    target_arch = "arm",
49020    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49021)]
49022pub fn vreinterpretq_f32_u16(a: uint16x8_t) -> float32x4_t {
49023    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49024    unsafe {
49025        let ret_val: float32x4_t = transmute(a);
49026        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49027    }
49028}
49029#[doc = "Vector reinterpret cast operation"]
49030#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u16)"]
49031#[inline(always)]
49032#[cfg(target_endian = "little")]
49033#[target_feature(enable = "neon")]
49034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49036#[cfg_attr(
49037    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49038    assert_instr(nop)
49039)]
49040#[cfg_attr(
49041    not(target_arch = "arm"),
49042    stable(feature = "neon_intrinsics", since = "1.59.0")
49043)]
49044#[cfg_attr(
49045    target_arch = "arm",
49046    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49047)]
49048pub fn vreinterpretq_s8_u16(a: uint16x8_t) -> int8x16_t {
49049    unsafe { transmute(a) }
49050}
49051#[doc = "Vector reinterpret cast operation"]
49052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u16)"]
49053#[inline(always)]
49054#[cfg(target_endian = "big")]
49055#[target_feature(enable = "neon")]
49056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49058#[cfg_attr(
49059    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49060    assert_instr(nop)
49061)]
49062#[cfg_attr(
49063    not(target_arch = "arm"),
49064    stable(feature = "neon_intrinsics", since = "1.59.0")
49065)]
49066#[cfg_attr(
49067    target_arch = "arm",
49068    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49069)]
49070pub fn vreinterpretq_s8_u16(a: uint16x8_t) -> int8x16_t {
49071    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49072    unsafe {
49073        let ret_val: int8x16_t = transmute(a);
49074        simd_shuffle!(
49075            ret_val,
49076            ret_val,
49077            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
49078        )
49079    }
49080}
49081#[doc = "Vector reinterpret cast operation"]
49082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u16)"]
49083#[inline(always)]
49084#[cfg(target_endian = "little")]
49085#[target_feature(enable = "neon")]
49086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49087#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49088#[cfg_attr(
49089    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49090    assert_instr(nop)
49091)]
49092#[cfg_attr(
49093    not(target_arch = "arm"),
49094    stable(feature = "neon_intrinsics", since = "1.59.0")
49095)]
49096#[cfg_attr(
49097    target_arch = "arm",
49098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49099)]
49100pub fn vreinterpretq_s16_u16(a: uint16x8_t) -> int16x8_t {
49101    unsafe { transmute(a) }
49102}
49103#[doc = "Vector reinterpret cast operation"]
49104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u16)"]
49105#[inline(always)]
49106#[cfg(target_endian = "big")]
49107#[target_feature(enable = "neon")]
49108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49110#[cfg_attr(
49111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49112    assert_instr(nop)
49113)]
49114#[cfg_attr(
49115    not(target_arch = "arm"),
49116    stable(feature = "neon_intrinsics", since = "1.59.0")
49117)]
49118#[cfg_attr(
49119    target_arch = "arm",
49120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49121)]
49122pub fn vreinterpretq_s16_u16(a: uint16x8_t) -> int16x8_t {
49123    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49124    unsafe {
49125        let ret_val: int16x8_t = transmute(a);
49126        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49127    }
49128}
49129#[doc = "Vector reinterpret cast operation"]
49130#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u16)"]
49131#[inline(always)]
49132#[cfg(target_endian = "little")]
49133#[target_feature(enable = "neon")]
49134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49136#[cfg_attr(
49137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49138    assert_instr(nop)
49139)]
49140#[cfg_attr(
49141    not(target_arch = "arm"),
49142    stable(feature = "neon_intrinsics", since = "1.59.0")
49143)]
49144#[cfg_attr(
49145    target_arch = "arm",
49146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49147)]
49148pub fn vreinterpretq_s32_u16(a: uint16x8_t) -> int32x4_t {
49149    unsafe { transmute(a) }
49150}
49151#[doc = "Vector reinterpret cast operation"]
49152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u16)"]
49153#[inline(always)]
49154#[cfg(target_endian = "big")]
49155#[target_feature(enable = "neon")]
49156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49157#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49158#[cfg_attr(
49159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49160    assert_instr(nop)
49161)]
49162#[cfg_attr(
49163    not(target_arch = "arm"),
49164    stable(feature = "neon_intrinsics", since = "1.59.0")
49165)]
49166#[cfg_attr(
49167    target_arch = "arm",
49168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49169)]
49170pub fn vreinterpretq_s32_u16(a: uint16x8_t) -> int32x4_t {
49171    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49172    unsafe {
49173        let ret_val: int32x4_t = transmute(a);
49174        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49175    }
49176}
49177#[doc = "Vector reinterpret cast operation"]
49178#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u16)"]
49179#[inline(always)]
49180#[cfg(target_endian = "little")]
49181#[target_feature(enable = "neon")]
49182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49184#[cfg_attr(
49185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49186    assert_instr(nop)
49187)]
49188#[cfg_attr(
49189    not(target_arch = "arm"),
49190    stable(feature = "neon_intrinsics", since = "1.59.0")
49191)]
49192#[cfg_attr(
49193    target_arch = "arm",
49194    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49195)]
49196pub fn vreinterpretq_s64_u16(a: uint16x8_t) -> int64x2_t {
49197    unsafe { transmute(a) }
49198}
49199#[doc = "Vector reinterpret cast operation"]
49200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u16)"]
49201#[inline(always)]
49202#[cfg(target_endian = "big")]
49203#[target_feature(enable = "neon")]
49204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49205#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49206#[cfg_attr(
49207    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49208    assert_instr(nop)
49209)]
49210#[cfg_attr(
49211    not(target_arch = "arm"),
49212    stable(feature = "neon_intrinsics", since = "1.59.0")
49213)]
49214#[cfg_attr(
49215    target_arch = "arm",
49216    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49217)]
49218pub fn vreinterpretq_s64_u16(a: uint16x8_t) -> int64x2_t {
49219    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49220    unsafe {
49221        let ret_val: int64x2_t = transmute(a);
49222        simd_shuffle!(ret_val, ret_val, [1, 0])
49223    }
49224}
49225#[doc = "Vector reinterpret cast operation"]
49226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u16)"]
49227#[inline(always)]
49228#[cfg(target_endian = "little")]
49229#[target_feature(enable = "neon")]
49230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49231#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49232#[cfg_attr(
49233    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49234    assert_instr(nop)
49235)]
49236#[cfg_attr(
49237    not(target_arch = "arm"),
49238    stable(feature = "neon_intrinsics", since = "1.59.0")
49239)]
49240#[cfg_attr(
49241    target_arch = "arm",
49242    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49243)]
49244pub fn vreinterpretq_u8_u16(a: uint16x8_t) -> uint8x16_t {
49245    unsafe { transmute(a) }
49246}
49247#[doc = "Vector reinterpret cast operation"]
49248#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u16)"]
49249#[inline(always)]
49250#[cfg(target_endian = "big")]
49251#[target_feature(enable = "neon")]
49252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49253#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49254#[cfg_attr(
49255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49256    assert_instr(nop)
49257)]
49258#[cfg_attr(
49259    not(target_arch = "arm"),
49260    stable(feature = "neon_intrinsics", since = "1.59.0")
49261)]
49262#[cfg_attr(
49263    target_arch = "arm",
49264    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49265)]
49266pub fn vreinterpretq_u8_u16(a: uint16x8_t) -> uint8x16_t {
49267    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49268    unsafe {
49269        let ret_val: uint8x16_t = transmute(a);
49270        simd_shuffle!(
49271            ret_val,
49272            ret_val,
49273            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
49274        )
49275    }
49276}
49277#[doc = "Vector reinterpret cast operation"]
49278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u16)"]
49279#[inline(always)]
49280#[cfg(target_endian = "little")]
49281#[target_feature(enable = "neon")]
49282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49284#[cfg_attr(
49285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49286    assert_instr(nop)
49287)]
49288#[cfg_attr(
49289    not(target_arch = "arm"),
49290    stable(feature = "neon_intrinsics", since = "1.59.0")
49291)]
49292#[cfg_attr(
49293    target_arch = "arm",
49294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49295)]
49296pub fn vreinterpretq_u32_u16(a: uint16x8_t) -> uint32x4_t {
49297    unsafe { transmute(a) }
49298}
49299#[doc = "Vector reinterpret cast operation"]
49300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u16)"]
49301#[inline(always)]
49302#[cfg(target_endian = "big")]
49303#[target_feature(enable = "neon")]
49304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49305#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49306#[cfg_attr(
49307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49308    assert_instr(nop)
49309)]
49310#[cfg_attr(
49311    not(target_arch = "arm"),
49312    stable(feature = "neon_intrinsics", since = "1.59.0")
49313)]
49314#[cfg_attr(
49315    target_arch = "arm",
49316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49317)]
49318pub fn vreinterpretq_u32_u16(a: uint16x8_t) -> uint32x4_t {
49319    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49320    unsafe {
49321        let ret_val: uint32x4_t = transmute(a);
49322        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49323    }
49324}
49325#[doc = "Vector reinterpret cast operation"]
49326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u16)"]
49327#[inline(always)]
49328#[cfg(target_endian = "little")]
49329#[target_feature(enable = "neon")]
49330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49332#[cfg_attr(
49333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49334    assert_instr(nop)
49335)]
49336#[cfg_attr(
49337    not(target_arch = "arm"),
49338    stable(feature = "neon_intrinsics", since = "1.59.0")
49339)]
49340#[cfg_attr(
49341    target_arch = "arm",
49342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49343)]
49344pub fn vreinterpretq_u64_u16(a: uint16x8_t) -> uint64x2_t {
49345    unsafe { transmute(a) }
49346}
49347#[doc = "Vector reinterpret cast operation"]
49348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u16)"]
49349#[inline(always)]
49350#[cfg(target_endian = "big")]
49351#[target_feature(enable = "neon")]
49352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49354#[cfg_attr(
49355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49356    assert_instr(nop)
49357)]
49358#[cfg_attr(
49359    not(target_arch = "arm"),
49360    stable(feature = "neon_intrinsics", since = "1.59.0")
49361)]
49362#[cfg_attr(
49363    target_arch = "arm",
49364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49365)]
49366pub fn vreinterpretq_u64_u16(a: uint16x8_t) -> uint64x2_t {
49367    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49368    unsafe {
49369        let ret_val: uint64x2_t = transmute(a);
49370        simd_shuffle!(ret_val, ret_val, [1, 0])
49371    }
49372}
49373#[doc = "Vector reinterpret cast operation"]
49374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u16)"]
49375#[inline(always)]
49376#[cfg(target_endian = "little")]
49377#[target_feature(enable = "neon")]
49378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49380#[cfg_attr(
49381    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49382    assert_instr(nop)
49383)]
49384#[cfg_attr(
49385    not(target_arch = "arm"),
49386    stable(feature = "neon_intrinsics", since = "1.59.0")
49387)]
49388#[cfg_attr(
49389    target_arch = "arm",
49390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49391)]
49392pub fn vreinterpretq_p8_u16(a: uint16x8_t) -> poly8x16_t {
49393    unsafe { transmute(a) }
49394}
49395#[doc = "Vector reinterpret cast operation"]
49396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u16)"]
49397#[inline(always)]
49398#[cfg(target_endian = "big")]
49399#[target_feature(enable = "neon")]
49400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49402#[cfg_attr(
49403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49404    assert_instr(nop)
49405)]
49406#[cfg_attr(
49407    not(target_arch = "arm"),
49408    stable(feature = "neon_intrinsics", since = "1.59.0")
49409)]
49410#[cfg_attr(
49411    target_arch = "arm",
49412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49413)]
49414pub fn vreinterpretq_p8_u16(a: uint16x8_t) -> poly8x16_t {
49415    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49416    unsafe {
49417        let ret_val: poly8x16_t = transmute(a);
49418        simd_shuffle!(
49419            ret_val,
49420            ret_val,
49421            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
49422        )
49423    }
49424}
49425#[doc = "Vector reinterpret cast operation"]
49426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u16)"]
49427#[inline(always)]
49428#[cfg(target_endian = "little")]
49429#[target_feature(enable = "neon")]
49430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49431#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49432#[cfg_attr(
49433    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49434    assert_instr(nop)
49435)]
49436#[cfg_attr(
49437    not(target_arch = "arm"),
49438    stable(feature = "neon_intrinsics", since = "1.59.0")
49439)]
49440#[cfg_attr(
49441    target_arch = "arm",
49442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49443)]
49444pub fn vreinterpretq_p16_u16(a: uint16x8_t) -> poly16x8_t {
49445    unsafe { transmute(a) }
49446}
49447#[doc = "Vector reinterpret cast operation"]
49448#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u16)"]
49449#[inline(always)]
49450#[cfg(target_endian = "big")]
49451#[target_feature(enable = "neon")]
49452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49454#[cfg_attr(
49455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49456    assert_instr(nop)
49457)]
49458#[cfg_attr(
49459    not(target_arch = "arm"),
49460    stable(feature = "neon_intrinsics", since = "1.59.0")
49461)]
49462#[cfg_attr(
49463    target_arch = "arm",
49464    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49465)]
49466pub fn vreinterpretq_p16_u16(a: uint16x8_t) -> poly16x8_t {
49467    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
49468    unsafe {
49469        let ret_val: poly16x8_t = transmute(a);
49470        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49471    }
49472}
49473#[doc = "Vector reinterpret cast operation"]
49474#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u32)"]
49475#[inline(always)]
49476#[cfg(target_endian = "little")]
49477#[target_feature(enable = "neon")]
49478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49480#[cfg_attr(
49481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49482    assert_instr(nop)
49483)]
49484#[cfg_attr(
49485    not(target_arch = "arm"),
49486    stable(feature = "neon_intrinsics", since = "1.59.0")
49487)]
49488#[cfg_attr(
49489    target_arch = "arm",
49490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49491)]
49492pub fn vreinterpret_f32_u32(a: uint32x2_t) -> float32x2_t {
49493    unsafe { transmute(a) }
49494}
49495#[doc = "Vector reinterpret cast operation"]
49496#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u32)"]
49497#[inline(always)]
49498#[cfg(target_endian = "big")]
49499#[target_feature(enable = "neon")]
49500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49502#[cfg_attr(
49503    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49504    assert_instr(nop)
49505)]
49506#[cfg_attr(
49507    not(target_arch = "arm"),
49508    stable(feature = "neon_intrinsics", since = "1.59.0")
49509)]
49510#[cfg_attr(
49511    target_arch = "arm",
49512    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49513)]
49514pub fn vreinterpret_f32_u32(a: uint32x2_t) -> float32x2_t {
49515    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49516    unsafe {
49517        let ret_val: float32x2_t = transmute(a);
49518        simd_shuffle!(ret_val, ret_val, [1, 0])
49519    }
49520}
49521#[doc = "Vector reinterpret cast operation"]
49522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u32)"]
49523#[inline(always)]
49524#[cfg(target_endian = "little")]
49525#[target_feature(enable = "neon")]
49526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49528#[cfg_attr(
49529    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49530    assert_instr(nop)
49531)]
49532#[cfg_attr(
49533    not(target_arch = "arm"),
49534    stable(feature = "neon_intrinsics", since = "1.59.0")
49535)]
49536#[cfg_attr(
49537    target_arch = "arm",
49538    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49539)]
49540pub fn vreinterpret_s8_u32(a: uint32x2_t) -> int8x8_t {
49541    unsafe { transmute(a) }
49542}
49543#[doc = "Vector reinterpret cast operation"]
49544#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u32)"]
49545#[inline(always)]
49546#[cfg(target_endian = "big")]
49547#[target_feature(enable = "neon")]
49548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49549#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49550#[cfg_attr(
49551    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49552    assert_instr(nop)
49553)]
49554#[cfg_attr(
49555    not(target_arch = "arm"),
49556    stable(feature = "neon_intrinsics", since = "1.59.0")
49557)]
49558#[cfg_attr(
49559    target_arch = "arm",
49560    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49561)]
49562pub fn vreinterpret_s8_u32(a: uint32x2_t) -> int8x8_t {
49563    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49564    unsafe {
49565        let ret_val: int8x8_t = transmute(a);
49566        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49567    }
49568}
49569#[doc = "Vector reinterpret cast operation"]
49570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u32)"]
49571#[inline(always)]
49572#[cfg(target_endian = "little")]
49573#[target_feature(enable = "neon")]
49574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49576#[cfg_attr(
49577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49578    assert_instr(nop)
49579)]
49580#[cfg_attr(
49581    not(target_arch = "arm"),
49582    stable(feature = "neon_intrinsics", since = "1.59.0")
49583)]
49584#[cfg_attr(
49585    target_arch = "arm",
49586    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49587)]
49588pub fn vreinterpret_s16_u32(a: uint32x2_t) -> int16x4_t {
49589    unsafe { transmute(a) }
49590}
49591#[doc = "Vector reinterpret cast operation"]
49592#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u32)"]
49593#[inline(always)]
49594#[cfg(target_endian = "big")]
49595#[target_feature(enable = "neon")]
49596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49598#[cfg_attr(
49599    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49600    assert_instr(nop)
49601)]
49602#[cfg_attr(
49603    not(target_arch = "arm"),
49604    stable(feature = "neon_intrinsics", since = "1.59.0")
49605)]
49606#[cfg_attr(
49607    target_arch = "arm",
49608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49609)]
49610pub fn vreinterpret_s16_u32(a: uint32x2_t) -> int16x4_t {
49611    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49612    unsafe {
49613        let ret_val: int16x4_t = transmute(a);
49614        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49615    }
49616}
49617#[doc = "Vector reinterpret cast operation"]
49618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u32)"]
49619#[inline(always)]
49620#[cfg(target_endian = "little")]
49621#[target_feature(enable = "neon")]
49622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49624#[cfg_attr(
49625    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49626    assert_instr(nop)
49627)]
49628#[cfg_attr(
49629    not(target_arch = "arm"),
49630    stable(feature = "neon_intrinsics", since = "1.59.0")
49631)]
49632#[cfg_attr(
49633    target_arch = "arm",
49634    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49635)]
49636pub fn vreinterpret_s32_u32(a: uint32x2_t) -> int32x2_t {
49637    unsafe { transmute(a) }
49638}
49639#[doc = "Vector reinterpret cast operation"]
49640#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u32)"]
49641#[inline(always)]
49642#[cfg(target_endian = "big")]
49643#[target_feature(enable = "neon")]
49644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49646#[cfg_attr(
49647    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49648    assert_instr(nop)
49649)]
49650#[cfg_attr(
49651    not(target_arch = "arm"),
49652    stable(feature = "neon_intrinsics", since = "1.59.0")
49653)]
49654#[cfg_attr(
49655    target_arch = "arm",
49656    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49657)]
49658pub fn vreinterpret_s32_u32(a: uint32x2_t) -> int32x2_t {
49659    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49660    unsafe {
49661        let ret_val: int32x2_t = transmute(a);
49662        simd_shuffle!(ret_val, ret_val, [1, 0])
49663    }
49664}
49665#[doc = "Vector reinterpret cast operation"]
49666#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u32)"]
49667#[inline(always)]
49668#[cfg(target_endian = "little")]
49669#[target_feature(enable = "neon")]
49670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49672#[cfg_attr(
49673    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49674    assert_instr(nop)
49675)]
49676#[cfg_attr(
49677    not(target_arch = "arm"),
49678    stable(feature = "neon_intrinsics", since = "1.59.0")
49679)]
49680#[cfg_attr(
49681    target_arch = "arm",
49682    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49683)]
49684pub fn vreinterpret_s64_u32(a: uint32x2_t) -> int64x1_t {
49685    unsafe { transmute(a) }
49686}
49687#[doc = "Vector reinterpret cast operation"]
49688#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u32)"]
49689#[inline(always)]
49690#[cfg(target_endian = "big")]
49691#[target_feature(enable = "neon")]
49692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49693#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49694#[cfg_attr(
49695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49696    assert_instr(nop)
49697)]
49698#[cfg_attr(
49699    not(target_arch = "arm"),
49700    stable(feature = "neon_intrinsics", since = "1.59.0")
49701)]
49702#[cfg_attr(
49703    target_arch = "arm",
49704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49705)]
49706pub fn vreinterpret_s64_u32(a: uint32x2_t) -> int64x1_t {
49707    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49708    unsafe { transmute(a) }
49709}
49710#[doc = "Vector reinterpret cast operation"]
49711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u32)"]
49712#[inline(always)]
49713#[cfg(target_endian = "little")]
49714#[target_feature(enable = "neon")]
49715#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49716#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49717#[cfg_attr(
49718    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49719    assert_instr(nop)
49720)]
49721#[cfg_attr(
49722    not(target_arch = "arm"),
49723    stable(feature = "neon_intrinsics", since = "1.59.0")
49724)]
49725#[cfg_attr(
49726    target_arch = "arm",
49727    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49728)]
49729pub fn vreinterpret_u8_u32(a: uint32x2_t) -> uint8x8_t {
49730    unsafe { transmute(a) }
49731}
49732#[doc = "Vector reinterpret cast operation"]
49733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u32)"]
49734#[inline(always)]
49735#[cfg(target_endian = "big")]
49736#[target_feature(enable = "neon")]
49737#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49738#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49739#[cfg_attr(
49740    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49741    assert_instr(nop)
49742)]
49743#[cfg_attr(
49744    not(target_arch = "arm"),
49745    stable(feature = "neon_intrinsics", since = "1.59.0")
49746)]
49747#[cfg_attr(
49748    target_arch = "arm",
49749    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49750)]
49751pub fn vreinterpret_u8_u32(a: uint32x2_t) -> uint8x8_t {
49752    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49753    unsafe {
49754        let ret_val: uint8x8_t = transmute(a);
49755        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49756    }
49757}
49758#[doc = "Vector reinterpret cast operation"]
49759#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u32)"]
49760#[inline(always)]
49761#[cfg(target_endian = "little")]
49762#[target_feature(enable = "neon")]
49763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49765#[cfg_attr(
49766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49767    assert_instr(nop)
49768)]
49769#[cfg_attr(
49770    not(target_arch = "arm"),
49771    stable(feature = "neon_intrinsics", since = "1.59.0")
49772)]
49773#[cfg_attr(
49774    target_arch = "arm",
49775    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49776)]
49777pub fn vreinterpret_u16_u32(a: uint32x2_t) -> uint16x4_t {
49778    unsafe { transmute(a) }
49779}
49780#[doc = "Vector reinterpret cast operation"]
49781#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u32)"]
49782#[inline(always)]
49783#[cfg(target_endian = "big")]
49784#[target_feature(enable = "neon")]
49785#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49786#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49787#[cfg_attr(
49788    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49789    assert_instr(nop)
49790)]
49791#[cfg_attr(
49792    not(target_arch = "arm"),
49793    stable(feature = "neon_intrinsics", since = "1.59.0")
49794)]
49795#[cfg_attr(
49796    target_arch = "arm",
49797    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49798)]
49799pub fn vreinterpret_u16_u32(a: uint32x2_t) -> uint16x4_t {
49800    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49801    unsafe {
49802        let ret_val: uint16x4_t = transmute(a);
49803        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49804    }
49805}
49806#[doc = "Vector reinterpret cast operation"]
49807#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u32)"]
49808#[inline(always)]
49809#[cfg(target_endian = "little")]
49810#[target_feature(enable = "neon")]
49811#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49812#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49813#[cfg_attr(
49814    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49815    assert_instr(nop)
49816)]
49817#[cfg_attr(
49818    not(target_arch = "arm"),
49819    stable(feature = "neon_intrinsics", since = "1.59.0")
49820)]
49821#[cfg_attr(
49822    target_arch = "arm",
49823    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49824)]
49825pub fn vreinterpret_u64_u32(a: uint32x2_t) -> uint64x1_t {
49826    unsafe { transmute(a) }
49827}
49828#[doc = "Vector reinterpret cast operation"]
49829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u32)"]
49830#[inline(always)]
49831#[cfg(target_endian = "big")]
49832#[target_feature(enable = "neon")]
49833#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49834#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49835#[cfg_attr(
49836    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49837    assert_instr(nop)
49838)]
49839#[cfg_attr(
49840    not(target_arch = "arm"),
49841    stable(feature = "neon_intrinsics", since = "1.59.0")
49842)]
49843#[cfg_attr(
49844    target_arch = "arm",
49845    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49846)]
49847pub fn vreinterpret_u64_u32(a: uint32x2_t) -> uint64x1_t {
49848    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49849    unsafe { transmute(a) }
49850}
49851#[doc = "Vector reinterpret cast operation"]
49852#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u32)"]
49853#[inline(always)]
49854#[cfg(target_endian = "little")]
49855#[target_feature(enable = "neon")]
49856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49858#[cfg_attr(
49859    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49860    assert_instr(nop)
49861)]
49862#[cfg_attr(
49863    not(target_arch = "arm"),
49864    stable(feature = "neon_intrinsics", since = "1.59.0")
49865)]
49866#[cfg_attr(
49867    target_arch = "arm",
49868    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49869)]
49870pub fn vreinterpret_p8_u32(a: uint32x2_t) -> poly8x8_t {
49871    unsafe { transmute(a) }
49872}
49873#[doc = "Vector reinterpret cast operation"]
49874#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u32)"]
49875#[inline(always)]
49876#[cfg(target_endian = "big")]
49877#[target_feature(enable = "neon")]
49878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49880#[cfg_attr(
49881    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49882    assert_instr(nop)
49883)]
49884#[cfg_attr(
49885    not(target_arch = "arm"),
49886    stable(feature = "neon_intrinsics", since = "1.59.0")
49887)]
49888#[cfg_attr(
49889    target_arch = "arm",
49890    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49891)]
49892pub fn vreinterpret_p8_u32(a: uint32x2_t) -> poly8x8_t {
49893    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49894    unsafe {
49895        let ret_val: poly8x8_t = transmute(a);
49896        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
49897    }
49898}
49899#[doc = "Vector reinterpret cast operation"]
49900#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u32)"]
49901#[inline(always)]
49902#[cfg(target_endian = "little")]
49903#[target_feature(enable = "neon")]
49904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49905#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49906#[cfg_attr(
49907    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49908    assert_instr(nop)
49909)]
49910#[cfg_attr(
49911    not(target_arch = "arm"),
49912    stable(feature = "neon_intrinsics", since = "1.59.0")
49913)]
49914#[cfg_attr(
49915    target_arch = "arm",
49916    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49917)]
49918pub fn vreinterpret_p16_u32(a: uint32x2_t) -> poly16x4_t {
49919    unsafe { transmute(a) }
49920}
49921#[doc = "Vector reinterpret cast operation"]
49922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u32)"]
49923#[inline(always)]
49924#[cfg(target_endian = "big")]
49925#[target_feature(enable = "neon")]
49926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49927#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49928#[cfg_attr(
49929    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49930    assert_instr(nop)
49931)]
49932#[cfg_attr(
49933    not(target_arch = "arm"),
49934    stable(feature = "neon_intrinsics", since = "1.59.0")
49935)]
49936#[cfg_attr(
49937    target_arch = "arm",
49938    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49939)]
49940pub fn vreinterpret_p16_u32(a: uint32x2_t) -> poly16x4_t {
49941    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
49942    unsafe {
49943        let ret_val: poly16x4_t = transmute(a);
49944        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49945    }
49946}
49947#[doc = "Vector reinterpret cast operation"]
49948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u32)"]
49949#[inline(always)]
49950#[cfg(target_endian = "little")]
49951#[target_feature(enable = "neon")]
49952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49954#[cfg_attr(
49955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49956    assert_instr(nop)
49957)]
49958#[cfg_attr(
49959    not(target_arch = "arm"),
49960    stable(feature = "neon_intrinsics", since = "1.59.0")
49961)]
49962#[cfg_attr(
49963    target_arch = "arm",
49964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49965)]
49966pub fn vreinterpretq_f32_u32(a: uint32x4_t) -> float32x4_t {
49967    unsafe { transmute(a) }
49968}
49969#[doc = "Vector reinterpret cast operation"]
49970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u32)"]
49971#[inline(always)]
49972#[cfg(target_endian = "big")]
49973#[target_feature(enable = "neon")]
49974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
49975#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
49976#[cfg_attr(
49977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
49978    assert_instr(nop)
49979)]
49980#[cfg_attr(
49981    not(target_arch = "arm"),
49982    stable(feature = "neon_intrinsics", since = "1.59.0")
49983)]
49984#[cfg_attr(
49985    target_arch = "arm",
49986    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
49987)]
49988pub fn vreinterpretq_f32_u32(a: uint32x4_t) -> float32x4_t {
49989    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
49990    unsafe {
49991        let ret_val: float32x4_t = transmute(a);
49992        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
49993    }
49994}
49995#[doc = "Vector reinterpret cast operation"]
49996#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u32)"]
49997#[inline(always)]
49998#[cfg(target_endian = "little")]
49999#[target_feature(enable = "neon")]
50000#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50001#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50002#[cfg_attr(
50003    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50004    assert_instr(nop)
50005)]
50006#[cfg_attr(
50007    not(target_arch = "arm"),
50008    stable(feature = "neon_intrinsics", since = "1.59.0")
50009)]
50010#[cfg_attr(
50011    target_arch = "arm",
50012    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50013)]
50014pub fn vreinterpretq_s8_u32(a: uint32x4_t) -> int8x16_t {
50015    unsafe { transmute(a) }
50016}
50017#[doc = "Vector reinterpret cast operation"]
50018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u32)"]
50019#[inline(always)]
50020#[cfg(target_endian = "big")]
50021#[target_feature(enable = "neon")]
50022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50024#[cfg_attr(
50025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50026    assert_instr(nop)
50027)]
50028#[cfg_attr(
50029    not(target_arch = "arm"),
50030    stable(feature = "neon_intrinsics", since = "1.59.0")
50031)]
50032#[cfg_attr(
50033    target_arch = "arm",
50034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50035)]
50036pub fn vreinterpretq_s8_u32(a: uint32x4_t) -> int8x16_t {
50037    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50038    unsafe {
50039        let ret_val: int8x16_t = transmute(a);
50040        simd_shuffle!(
50041            ret_val,
50042            ret_val,
50043            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
50044        )
50045    }
50046}
50047#[doc = "Vector reinterpret cast operation"]
50048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u32)"]
50049#[inline(always)]
50050#[cfg(target_endian = "little")]
50051#[target_feature(enable = "neon")]
50052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50053#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50054#[cfg_attr(
50055    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50056    assert_instr(nop)
50057)]
50058#[cfg_attr(
50059    not(target_arch = "arm"),
50060    stable(feature = "neon_intrinsics", since = "1.59.0")
50061)]
50062#[cfg_attr(
50063    target_arch = "arm",
50064    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50065)]
50066pub fn vreinterpretq_s16_u32(a: uint32x4_t) -> int16x8_t {
50067    unsafe { transmute(a) }
50068}
50069#[doc = "Vector reinterpret cast operation"]
50070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u32)"]
50071#[inline(always)]
50072#[cfg(target_endian = "big")]
50073#[target_feature(enable = "neon")]
50074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50075#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50076#[cfg_attr(
50077    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50078    assert_instr(nop)
50079)]
50080#[cfg_attr(
50081    not(target_arch = "arm"),
50082    stable(feature = "neon_intrinsics", since = "1.59.0")
50083)]
50084#[cfg_attr(
50085    target_arch = "arm",
50086    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50087)]
50088pub fn vreinterpretq_s16_u32(a: uint32x4_t) -> int16x8_t {
50089    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50090    unsafe {
50091        let ret_val: int16x8_t = transmute(a);
50092        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50093    }
50094}
50095#[doc = "Vector reinterpret cast operation"]
50096#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u32)"]
50097#[inline(always)]
50098#[cfg(target_endian = "little")]
50099#[target_feature(enable = "neon")]
50100#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50101#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50102#[cfg_attr(
50103    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50104    assert_instr(nop)
50105)]
50106#[cfg_attr(
50107    not(target_arch = "arm"),
50108    stable(feature = "neon_intrinsics", since = "1.59.0")
50109)]
50110#[cfg_attr(
50111    target_arch = "arm",
50112    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50113)]
50114pub fn vreinterpretq_s32_u32(a: uint32x4_t) -> int32x4_t {
50115    unsafe { transmute(a) }
50116}
50117#[doc = "Vector reinterpret cast operation"]
50118#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u32)"]
50119#[inline(always)]
50120#[cfg(target_endian = "big")]
50121#[target_feature(enable = "neon")]
50122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50124#[cfg_attr(
50125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50126    assert_instr(nop)
50127)]
50128#[cfg_attr(
50129    not(target_arch = "arm"),
50130    stable(feature = "neon_intrinsics", since = "1.59.0")
50131)]
50132#[cfg_attr(
50133    target_arch = "arm",
50134    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50135)]
50136pub fn vreinterpretq_s32_u32(a: uint32x4_t) -> int32x4_t {
50137    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50138    unsafe {
50139        let ret_val: int32x4_t = transmute(a);
50140        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50141    }
50142}
50143#[doc = "Vector reinterpret cast operation"]
50144#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u32)"]
50145#[inline(always)]
50146#[cfg(target_endian = "little")]
50147#[target_feature(enable = "neon")]
50148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50150#[cfg_attr(
50151    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50152    assert_instr(nop)
50153)]
50154#[cfg_attr(
50155    not(target_arch = "arm"),
50156    stable(feature = "neon_intrinsics", since = "1.59.0")
50157)]
50158#[cfg_attr(
50159    target_arch = "arm",
50160    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50161)]
50162pub fn vreinterpretq_s64_u32(a: uint32x4_t) -> int64x2_t {
50163    unsafe { transmute(a) }
50164}
50165#[doc = "Vector reinterpret cast operation"]
50166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u32)"]
50167#[inline(always)]
50168#[cfg(target_endian = "big")]
50169#[target_feature(enable = "neon")]
50170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50171#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50172#[cfg_attr(
50173    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50174    assert_instr(nop)
50175)]
50176#[cfg_attr(
50177    not(target_arch = "arm"),
50178    stable(feature = "neon_intrinsics", since = "1.59.0")
50179)]
50180#[cfg_attr(
50181    target_arch = "arm",
50182    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50183)]
50184pub fn vreinterpretq_s64_u32(a: uint32x4_t) -> int64x2_t {
50185    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50186    unsafe {
50187        let ret_val: int64x2_t = transmute(a);
50188        simd_shuffle!(ret_val, ret_val, [1, 0])
50189    }
50190}
50191#[doc = "Vector reinterpret cast operation"]
50192#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u32)"]
50193#[inline(always)]
50194#[cfg(target_endian = "little")]
50195#[target_feature(enable = "neon")]
50196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50198#[cfg_attr(
50199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50200    assert_instr(nop)
50201)]
50202#[cfg_attr(
50203    not(target_arch = "arm"),
50204    stable(feature = "neon_intrinsics", since = "1.59.0")
50205)]
50206#[cfg_attr(
50207    target_arch = "arm",
50208    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50209)]
50210pub fn vreinterpretq_u8_u32(a: uint32x4_t) -> uint8x16_t {
50211    unsafe { transmute(a) }
50212}
50213#[doc = "Vector reinterpret cast operation"]
50214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u32)"]
50215#[inline(always)]
50216#[cfg(target_endian = "big")]
50217#[target_feature(enable = "neon")]
50218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50220#[cfg_attr(
50221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50222    assert_instr(nop)
50223)]
50224#[cfg_attr(
50225    not(target_arch = "arm"),
50226    stable(feature = "neon_intrinsics", since = "1.59.0")
50227)]
50228#[cfg_attr(
50229    target_arch = "arm",
50230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50231)]
50232pub fn vreinterpretq_u8_u32(a: uint32x4_t) -> uint8x16_t {
50233    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50234    unsafe {
50235        let ret_val: uint8x16_t = transmute(a);
50236        simd_shuffle!(
50237            ret_val,
50238            ret_val,
50239            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
50240        )
50241    }
50242}
50243#[doc = "Vector reinterpret cast operation"]
50244#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u32)"]
50245#[inline(always)]
50246#[cfg(target_endian = "little")]
50247#[target_feature(enable = "neon")]
50248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50250#[cfg_attr(
50251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50252    assert_instr(nop)
50253)]
50254#[cfg_attr(
50255    not(target_arch = "arm"),
50256    stable(feature = "neon_intrinsics", since = "1.59.0")
50257)]
50258#[cfg_attr(
50259    target_arch = "arm",
50260    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50261)]
50262pub fn vreinterpretq_u16_u32(a: uint32x4_t) -> uint16x8_t {
50263    unsafe { transmute(a) }
50264}
50265#[doc = "Vector reinterpret cast operation"]
50266#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u32)"]
50267#[inline(always)]
50268#[cfg(target_endian = "big")]
50269#[target_feature(enable = "neon")]
50270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50272#[cfg_attr(
50273    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50274    assert_instr(nop)
50275)]
50276#[cfg_attr(
50277    not(target_arch = "arm"),
50278    stable(feature = "neon_intrinsics", since = "1.59.0")
50279)]
50280#[cfg_attr(
50281    target_arch = "arm",
50282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50283)]
50284pub fn vreinterpretq_u16_u32(a: uint32x4_t) -> uint16x8_t {
50285    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50286    unsafe {
50287        let ret_val: uint16x8_t = transmute(a);
50288        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50289    }
50290}
50291#[doc = "Vector reinterpret cast operation"]
50292#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u32)"]
50293#[inline(always)]
50294#[cfg(target_endian = "little")]
50295#[target_feature(enable = "neon")]
50296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50298#[cfg_attr(
50299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50300    assert_instr(nop)
50301)]
50302#[cfg_attr(
50303    not(target_arch = "arm"),
50304    stable(feature = "neon_intrinsics", since = "1.59.0")
50305)]
50306#[cfg_attr(
50307    target_arch = "arm",
50308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50309)]
50310pub fn vreinterpretq_u64_u32(a: uint32x4_t) -> uint64x2_t {
50311    unsafe { transmute(a) }
50312}
50313#[doc = "Vector reinterpret cast operation"]
50314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u32)"]
50315#[inline(always)]
50316#[cfg(target_endian = "big")]
50317#[target_feature(enable = "neon")]
50318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50320#[cfg_attr(
50321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50322    assert_instr(nop)
50323)]
50324#[cfg_attr(
50325    not(target_arch = "arm"),
50326    stable(feature = "neon_intrinsics", since = "1.59.0")
50327)]
50328#[cfg_attr(
50329    target_arch = "arm",
50330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50331)]
50332pub fn vreinterpretq_u64_u32(a: uint32x4_t) -> uint64x2_t {
50333    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50334    unsafe {
50335        let ret_val: uint64x2_t = transmute(a);
50336        simd_shuffle!(ret_val, ret_val, [1, 0])
50337    }
50338}
50339#[doc = "Vector reinterpret cast operation"]
50340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u32)"]
50341#[inline(always)]
50342#[cfg(target_endian = "little")]
50343#[target_feature(enable = "neon")]
50344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50346#[cfg_attr(
50347    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50348    assert_instr(nop)
50349)]
50350#[cfg_attr(
50351    not(target_arch = "arm"),
50352    stable(feature = "neon_intrinsics", since = "1.59.0")
50353)]
50354#[cfg_attr(
50355    target_arch = "arm",
50356    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50357)]
50358pub fn vreinterpretq_p8_u32(a: uint32x4_t) -> poly8x16_t {
50359    unsafe { transmute(a) }
50360}
50361#[doc = "Vector reinterpret cast operation"]
50362#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u32)"]
50363#[inline(always)]
50364#[cfg(target_endian = "big")]
50365#[target_feature(enable = "neon")]
50366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50368#[cfg_attr(
50369    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50370    assert_instr(nop)
50371)]
50372#[cfg_attr(
50373    not(target_arch = "arm"),
50374    stable(feature = "neon_intrinsics", since = "1.59.0")
50375)]
50376#[cfg_attr(
50377    target_arch = "arm",
50378    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50379)]
50380pub fn vreinterpretq_p8_u32(a: uint32x4_t) -> poly8x16_t {
50381    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50382    unsafe {
50383        let ret_val: poly8x16_t = transmute(a);
50384        simd_shuffle!(
50385            ret_val,
50386            ret_val,
50387            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
50388        )
50389    }
50390}
50391#[doc = "Vector reinterpret cast operation"]
50392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u32)"]
50393#[inline(always)]
50394#[cfg(target_endian = "little")]
50395#[target_feature(enable = "neon")]
50396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50398#[cfg_attr(
50399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50400    assert_instr(nop)
50401)]
50402#[cfg_attr(
50403    not(target_arch = "arm"),
50404    stable(feature = "neon_intrinsics", since = "1.59.0")
50405)]
50406#[cfg_attr(
50407    target_arch = "arm",
50408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50409)]
50410pub fn vreinterpretq_p16_u32(a: uint32x4_t) -> poly16x8_t {
50411    unsafe { transmute(a) }
50412}
50413#[doc = "Vector reinterpret cast operation"]
50414#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u32)"]
50415#[inline(always)]
50416#[cfg(target_endian = "big")]
50417#[target_feature(enable = "neon")]
50418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50419#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50420#[cfg_attr(
50421    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50422    assert_instr(nop)
50423)]
50424#[cfg_attr(
50425    not(target_arch = "arm"),
50426    stable(feature = "neon_intrinsics", since = "1.59.0")
50427)]
50428#[cfg_attr(
50429    target_arch = "arm",
50430    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50431)]
50432pub fn vreinterpretq_p16_u32(a: uint32x4_t) -> poly16x8_t {
50433    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
50434    unsafe {
50435        let ret_val: poly16x8_t = transmute(a);
50436        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50437    }
50438}
50439#[doc = "Vector reinterpret cast operation"]
50440#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u64)"]
50441#[inline(always)]
50442#[cfg(target_endian = "little")]
50443#[target_feature(enable = "neon")]
50444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50446#[cfg_attr(
50447    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50448    assert_instr(nop)
50449)]
50450#[cfg_attr(
50451    not(target_arch = "arm"),
50452    stable(feature = "neon_intrinsics", since = "1.59.0")
50453)]
50454#[cfg_attr(
50455    target_arch = "arm",
50456    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50457)]
50458pub fn vreinterpret_f32_u64(a: uint64x1_t) -> float32x2_t {
50459    unsafe { transmute(a) }
50460}
50461#[doc = "Vector reinterpret cast operation"]
50462#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u64)"]
50463#[inline(always)]
50464#[cfg(target_endian = "big")]
50465#[target_feature(enable = "neon")]
50466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50467#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50468#[cfg_attr(
50469    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50470    assert_instr(nop)
50471)]
50472#[cfg_attr(
50473    not(target_arch = "arm"),
50474    stable(feature = "neon_intrinsics", since = "1.59.0")
50475)]
50476#[cfg_attr(
50477    target_arch = "arm",
50478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50479)]
50480pub fn vreinterpret_f32_u64(a: uint64x1_t) -> float32x2_t {
50481    unsafe {
50482        let ret_val: float32x2_t = transmute(a);
50483        simd_shuffle!(ret_val, ret_val, [1, 0])
50484    }
50485}
50486#[doc = "Vector reinterpret cast operation"]
50487#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u64)"]
50488#[inline(always)]
50489#[cfg(target_endian = "little")]
50490#[target_feature(enable = "neon")]
50491#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50492#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50493#[cfg_attr(
50494    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50495    assert_instr(nop)
50496)]
50497#[cfg_attr(
50498    not(target_arch = "arm"),
50499    stable(feature = "neon_intrinsics", since = "1.59.0")
50500)]
50501#[cfg_attr(
50502    target_arch = "arm",
50503    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50504)]
50505pub fn vreinterpret_s8_u64(a: uint64x1_t) -> int8x8_t {
50506    unsafe { transmute(a) }
50507}
50508#[doc = "Vector reinterpret cast operation"]
50509#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u64)"]
50510#[inline(always)]
50511#[cfg(target_endian = "big")]
50512#[target_feature(enable = "neon")]
50513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50515#[cfg_attr(
50516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50517    assert_instr(nop)
50518)]
50519#[cfg_attr(
50520    not(target_arch = "arm"),
50521    stable(feature = "neon_intrinsics", since = "1.59.0")
50522)]
50523#[cfg_attr(
50524    target_arch = "arm",
50525    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50526)]
50527pub fn vreinterpret_s8_u64(a: uint64x1_t) -> int8x8_t {
50528    unsafe {
50529        let ret_val: int8x8_t = transmute(a);
50530        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50531    }
50532}
50533#[doc = "Vector reinterpret cast operation"]
50534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u64)"]
50535#[inline(always)]
50536#[cfg(target_endian = "little")]
50537#[target_feature(enable = "neon")]
50538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50540#[cfg_attr(
50541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50542    assert_instr(nop)
50543)]
50544#[cfg_attr(
50545    not(target_arch = "arm"),
50546    stable(feature = "neon_intrinsics", since = "1.59.0")
50547)]
50548#[cfg_attr(
50549    target_arch = "arm",
50550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50551)]
50552pub fn vreinterpret_s16_u64(a: uint64x1_t) -> int16x4_t {
50553    unsafe { transmute(a) }
50554}
50555#[doc = "Vector reinterpret cast operation"]
50556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u64)"]
50557#[inline(always)]
50558#[cfg(target_endian = "big")]
50559#[target_feature(enable = "neon")]
50560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50562#[cfg_attr(
50563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50564    assert_instr(nop)
50565)]
50566#[cfg_attr(
50567    not(target_arch = "arm"),
50568    stable(feature = "neon_intrinsics", since = "1.59.0")
50569)]
50570#[cfg_attr(
50571    target_arch = "arm",
50572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50573)]
50574pub fn vreinterpret_s16_u64(a: uint64x1_t) -> int16x4_t {
50575    unsafe {
50576        let ret_val: int16x4_t = transmute(a);
50577        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50578    }
50579}
50580#[doc = "Vector reinterpret cast operation"]
50581#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u64)"]
50582#[inline(always)]
50583#[cfg(target_endian = "little")]
50584#[target_feature(enable = "neon")]
50585#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50586#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50587#[cfg_attr(
50588    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50589    assert_instr(nop)
50590)]
50591#[cfg_attr(
50592    not(target_arch = "arm"),
50593    stable(feature = "neon_intrinsics", since = "1.59.0")
50594)]
50595#[cfg_attr(
50596    target_arch = "arm",
50597    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50598)]
50599pub fn vreinterpret_s32_u64(a: uint64x1_t) -> int32x2_t {
50600    unsafe { transmute(a) }
50601}
50602#[doc = "Vector reinterpret cast operation"]
50603#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u64)"]
50604#[inline(always)]
50605#[cfg(target_endian = "big")]
50606#[target_feature(enable = "neon")]
50607#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50608#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50609#[cfg_attr(
50610    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50611    assert_instr(nop)
50612)]
50613#[cfg_attr(
50614    not(target_arch = "arm"),
50615    stable(feature = "neon_intrinsics", since = "1.59.0")
50616)]
50617#[cfg_attr(
50618    target_arch = "arm",
50619    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50620)]
50621pub fn vreinterpret_s32_u64(a: uint64x1_t) -> int32x2_t {
50622    unsafe {
50623        let ret_val: int32x2_t = transmute(a);
50624        simd_shuffle!(ret_val, ret_val, [1, 0])
50625    }
50626}
50627#[doc = "Vector reinterpret cast operation"]
50628#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u64)"]
50629#[inline(always)]
50630#[target_feature(enable = "neon")]
50631#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50633#[cfg_attr(
50634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50635    assert_instr(nop)
50636)]
50637#[cfg_attr(
50638    not(target_arch = "arm"),
50639    stable(feature = "neon_intrinsics", since = "1.59.0")
50640)]
50641#[cfg_attr(
50642    target_arch = "arm",
50643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50644)]
50645pub fn vreinterpret_s64_u64(a: uint64x1_t) -> int64x1_t {
50646    unsafe { transmute(a) }
50647}
50648#[doc = "Vector reinterpret cast operation"]
50649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u64)"]
50650#[inline(always)]
50651#[cfg(target_endian = "little")]
50652#[target_feature(enable = "neon")]
50653#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50654#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50655#[cfg_attr(
50656    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50657    assert_instr(nop)
50658)]
50659#[cfg_attr(
50660    not(target_arch = "arm"),
50661    stable(feature = "neon_intrinsics", since = "1.59.0")
50662)]
50663#[cfg_attr(
50664    target_arch = "arm",
50665    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50666)]
50667pub fn vreinterpret_u8_u64(a: uint64x1_t) -> uint8x8_t {
50668    unsafe { transmute(a) }
50669}
50670#[doc = "Vector reinterpret cast operation"]
50671#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u64)"]
50672#[inline(always)]
50673#[cfg(target_endian = "big")]
50674#[target_feature(enable = "neon")]
50675#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50676#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50677#[cfg_attr(
50678    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50679    assert_instr(nop)
50680)]
50681#[cfg_attr(
50682    not(target_arch = "arm"),
50683    stable(feature = "neon_intrinsics", since = "1.59.0")
50684)]
50685#[cfg_attr(
50686    target_arch = "arm",
50687    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50688)]
50689pub fn vreinterpret_u8_u64(a: uint64x1_t) -> uint8x8_t {
50690    unsafe {
50691        let ret_val: uint8x8_t = transmute(a);
50692        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50693    }
50694}
50695#[doc = "Vector reinterpret cast operation"]
50696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u64)"]
50697#[inline(always)]
50698#[cfg(target_endian = "little")]
50699#[target_feature(enable = "neon")]
50700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50701#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50702#[cfg_attr(
50703    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50704    assert_instr(nop)
50705)]
50706#[cfg_attr(
50707    not(target_arch = "arm"),
50708    stable(feature = "neon_intrinsics", since = "1.59.0")
50709)]
50710#[cfg_attr(
50711    target_arch = "arm",
50712    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50713)]
50714pub fn vreinterpret_u16_u64(a: uint64x1_t) -> uint16x4_t {
50715    unsafe { transmute(a) }
50716}
50717#[doc = "Vector reinterpret cast operation"]
50718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u64)"]
50719#[inline(always)]
50720#[cfg(target_endian = "big")]
50721#[target_feature(enable = "neon")]
50722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50724#[cfg_attr(
50725    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50726    assert_instr(nop)
50727)]
50728#[cfg_attr(
50729    not(target_arch = "arm"),
50730    stable(feature = "neon_intrinsics", since = "1.59.0")
50731)]
50732#[cfg_attr(
50733    target_arch = "arm",
50734    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50735)]
50736pub fn vreinterpret_u16_u64(a: uint64x1_t) -> uint16x4_t {
50737    unsafe {
50738        let ret_val: uint16x4_t = transmute(a);
50739        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50740    }
50741}
50742#[doc = "Vector reinterpret cast operation"]
50743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u64)"]
50744#[inline(always)]
50745#[cfg(target_endian = "little")]
50746#[target_feature(enable = "neon")]
50747#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50748#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50749#[cfg_attr(
50750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50751    assert_instr(nop)
50752)]
50753#[cfg_attr(
50754    not(target_arch = "arm"),
50755    stable(feature = "neon_intrinsics", since = "1.59.0")
50756)]
50757#[cfg_attr(
50758    target_arch = "arm",
50759    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50760)]
50761pub fn vreinterpret_u32_u64(a: uint64x1_t) -> uint32x2_t {
50762    unsafe { transmute(a) }
50763}
50764#[doc = "Vector reinterpret cast operation"]
50765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u64)"]
50766#[inline(always)]
50767#[cfg(target_endian = "big")]
50768#[target_feature(enable = "neon")]
50769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50771#[cfg_attr(
50772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50773    assert_instr(nop)
50774)]
50775#[cfg_attr(
50776    not(target_arch = "arm"),
50777    stable(feature = "neon_intrinsics", since = "1.59.0")
50778)]
50779#[cfg_attr(
50780    target_arch = "arm",
50781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50782)]
50783pub fn vreinterpret_u32_u64(a: uint64x1_t) -> uint32x2_t {
50784    unsafe {
50785        let ret_val: uint32x2_t = transmute(a);
50786        simd_shuffle!(ret_val, ret_val, [1, 0])
50787    }
50788}
50789#[doc = "Vector reinterpret cast operation"]
50790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u64)"]
50791#[inline(always)]
50792#[cfg(target_endian = "little")]
50793#[target_feature(enable = "neon")]
50794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50795#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50796#[cfg_attr(
50797    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50798    assert_instr(nop)
50799)]
50800#[cfg_attr(
50801    not(target_arch = "arm"),
50802    stable(feature = "neon_intrinsics", since = "1.59.0")
50803)]
50804#[cfg_attr(
50805    target_arch = "arm",
50806    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50807)]
50808pub fn vreinterpret_p8_u64(a: uint64x1_t) -> poly8x8_t {
50809    unsafe { transmute(a) }
50810}
50811#[doc = "Vector reinterpret cast operation"]
50812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u64)"]
50813#[inline(always)]
50814#[cfg(target_endian = "big")]
50815#[target_feature(enable = "neon")]
50816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50818#[cfg_attr(
50819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50820    assert_instr(nop)
50821)]
50822#[cfg_attr(
50823    not(target_arch = "arm"),
50824    stable(feature = "neon_intrinsics", since = "1.59.0")
50825)]
50826#[cfg_attr(
50827    target_arch = "arm",
50828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50829)]
50830pub fn vreinterpret_p8_u64(a: uint64x1_t) -> poly8x8_t {
50831    unsafe {
50832        let ret_val: poly8x8_t = transmute(a);
50833        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
50834    }
50835}
50836#[doc = "Vector reinterpret cast operation"]
50837#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u64)"]
50838#[inline(always)]
50839#[cfg(target_endian = "little")]
50840#[target_feature(enable = "neon")]
50841#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50842#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50843#[cfg_attr(
50844    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50845    assert_instr(nop)
50846)]
50847#[cfg_attr(
50848    not(target_arch = "arm"),
50849    stable(feature = "neon_intrinsics", since = "1.59.0")
50850)]
50851#[cfg_attr(
50852    target_arch = "arm",
50853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50854)]
50855pub fn vreinterpret_p16_u64(a: uint64x1_t) -> poly16x4_t {
50856    unsafe { transmute(a) }
50857}
50858#[doc = "Vector reinterpret cast operation"]
50859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u64)"]
50860#[inline(always)]
50861#[cfg(target_endian = "big")]
50862#[target_feature(enable = "neon")]
50863#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50864#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50865#[cfg_attr(
50866    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50867    assert_instr(nop)
50868)]
50869#[cfg_attr(
50870    not(target_arch = "arm"),
50871    stable(feature = "neon_intrinsics", since = "1.59.0")
50872)]
50873#[cfg_attr(
50874    target_arch = "arm",
50875    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50876)]
50877pub fn vreinterpret_p16_u64(a: uint64x1_t) -> poly16x4_t {
50878    unsafe {
50879        let ret_val: poly16x4_t = transmute(a);
50880        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50881    }
50882}
50883#[doc = "Vector reinterpret cast operation"]
50884#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u64)"]
50885#[inline(always)]
50886#[cfg(target_endian = "little")]
50887#[target_feature(enable = "neon")]
50888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50890#[cfg_attr(
50891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50892    assert_instr(nop)
50893)]
50894#[cfg_attr(
50895    not(target_arch = "arm"),
50896    stable(feature = "neon_intrinsics", since = "1.59.0")
50897)]
50898#[cfg_attr(
50899    target_arch = "arm",
50900    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50901)]
50902pub fn vreinterpretq_f32_u64(a: uint64x2_t) -> float32x4_t {
50903    unsafe { transmute(a) }
50904}
50905#[doc = "Vector reinterpret cast operation"]
50906#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u64)"]
50907#[inline(always)]
50908#[cfg(target_endian = "big")]
50909#[target_feature(enable = "neon")]
50910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50912#[cfg_attr(
50913    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50914    assert_instr(nop)
50915)]
50916#[cfg_attr(
50917    not(target_arch = "arm"),
50918    stable(feature = "neon_intrinsics", since = "1.59.0")
50919)]
50920#[cfg_attr(
50921    target_arch = "arm",
50922    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50923)]
50924pub fn vreinterpretq_f32_u64(a: uint64x2_t) -> float32x4_t {
50925    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
50926    unsafe {
50927        let ret_val: float32x4_t = transmute(a);
50928        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
50929    }
50930}
50931#[doc = "Vector reinterpret cast operation"]
50932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u64)"]
50933#[inline(always)]
50934#[cfg(target_endian = "little")]
50935#[target_feature(enable = "neon")]
50936#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50937#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50938#[cfg_attr(
50939    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50940    assert_instr(nop)
50941)]
50942#[cfg_attr(
50943    not(target_arch = "arm"),
50944    stable(feature = "neon_intrinsics", since = "1.59.0")
50945)]
50946#[cfg_attr(
50947    target_arch = "arm",
50948    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50949)]
50950pub fn vreinterpretq_s8_u64(a: uint64x2_t) -> int8x16_t {
50951    unsafe { transmute(a) }
50952}
50953#[doc = "Vector reinterpret cast operation"]
50954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u64)"]
50955#[inline(always)]
50956#[cfg(target_endian = "big")]
50957#[target_feature(enable = "neon")]
50958#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50959#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50960#[cfg_attr(
50961    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50962    assert_instr(nop)
50963)]
50964#[cfg_attr(
50965    not(target_arch = "arm"),
50966    stable(feature = "neon_intrinsics", since = "1.59.0")
50967)]
50968#[cfg_attr(
50969    target_arch = "arm",
50970    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
50971)]
50972pub fn vreinterpretq_s8_u64(a: uint64x2_t) -> int8x16_t {
50973    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
50974    unsafe {
50975        let ret_val: int8x16_t = transmute(a);
50976        simd_shuffle!(
50977            ret_val,
50978            ret_val,
50979            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
50980        )
50981    }
50982}
50983#[doc = "Vector reinterpret cast operation"]
50984#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u64)"]
50985#[inline(always)]
50986#[cfg(target_endian = "little")]
50987#[target_feature(enable = "neon")]
50988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
50989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
50990#[cfg_attr(
50991    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
50992    assert_instr(nop)
50993)]
50994#[cfg_attr(
50995    not(target_arch = "arm"),
50996    stable(feature = "neon_intrinsics", since = "1.59.0")
50997)]
50998#[cfg_attr(
50999    target_arch = "arm",
51000    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51001)]
51002pub fn vreinterpretq_s16_u64(a: uint64x2_t) -> int16x8_t {
51003    unsafe { transmute(a) }
51004}
51005#[doc = "Vector reinterpret cast operation"]
51006#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u64)"]
51007#[inline(always)]
51008#[cfg(target_endian = "big")]
51009#[target_feature(enable = "neon")]
51010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51011#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51012#[cfg_attr(
51013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51014    assert_instr(nop)
51015)]
51016#[cfg_attr(
51017    not(target_arch = "arm"),
51018    stable(feature = "neon_intrinsics", since = "1.59.0")
51019)]
51020#[cfg_attr(
51021    target_arch = "arm",
51022    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51023)]
51024pub fn vreinterpretq_s16_u64(a: uint64x2_t) -> int16x8_t {
51025    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51026    unsafe {
51027        let ret_val: int16x8_t = transmute(a);
51028        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51029    }
51030}
51031#[doc = "Vector reinterpret cast operation"]
51032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u64)"]
51033#[inline(always)]
51034#[cfg(target_endian = "little")]
51035#[target_feature(enable = "neon")]
51036#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51037#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51038#[cfg_attr(
51039    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51040    assert_instr(nop)
51041)]
51042#[cfg_attr(
51043    not(target_arch = "arm"),
51044    stable(feature = "neon_intrinsics", since = "1.59.0")
51045)]
51046#[cfg_attr(
51047    target_arch = "arm",
51048    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51049)]
51050pub fn vreinterpretq_s32_u64(a: uint64x2_t) -> int32x4_t {
51051    unsafe { transmute(a) }
51052}
51053#[doc = "Vector reinterpret cast operation"]
51054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u64)"]
51055#[inline(always)]
51056#[cfg(target_endian = "big")]
51057#[target_feature(enable = "neon")]
51058#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51059#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51060#[cfg_attr(
51061    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51062    assert_instr(nop)
51063)]
51064#[cfg_attr(
51065    not(target_arch = "arm"),
51066    stable(feature = "neon_intrinsics", since = "1.59.0")
51067)]
51068#[cfg_attr(
51069    target_arch = "arm",
51070    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51071)]
51072pub fn vreinterpretq_s32_u64(a: uint64x2_t) -> int32x4_t {
51073    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51074    unsafe {
51075        let ret_val: int32x4_t = transmute(a);
51076        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51077    }
51078}
51079#[doc = "Vector reinterpret cast operation"]
51080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u64)"]
51081#[inline(always)]
51082#[cfg(target_endian = "little")]
51083#[target_feature(enable = "neon")]
51084#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51085#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51086#[cfg_attr(
51087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51088    assert_instr(nop)
51089)]
51090#[cfg_attr(
51091    not(target_arch = "arm"),
51092    stable(feature = "neon_intrinsics", since = "1.59.0")
51093)]
51094#[cfg_attr(
51095    target_arch = "arm",
51096    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51097)]
51098pub fn vreinterpretq_s64_u64(a: uint64x2_t) -> int64x2_t {
51099    unsafe { transmute(a) }
51100}
51101#[doc = "Vector reinterpret cast operation"]
51102#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u64)"]
51103#[inline(always)]
51104#[cfg(target_endian = "big")]
51105#[target_feature(enable = "neon")]
51106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51108#[cfg_attr(
51109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51110    assert_instr(nop)
51111)]
51112#[cfg_attr(
51113    not(target_arch = "arm"),
51114    stable(feature = "neon_intrinsics", since = "1.59.0")
51115)]
51116#[cfg_attr(
51117    target_arch = "arm",
51118    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51119)]
51120pub fn vreinterpretq_s64_u64(a: uint64x2_t) -> int64x2_t {
51121    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51122    unsafe {
51123        let ret_val: int64x2_t = transmute(a);
51124        simd_shuffle!(ret_val, ret_val, [1, 0])
51125    }
51126}
51127#[doc = "Vector reinterpret cast operation"]
51128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u64)"]
51129#[inline(always)]
51130#[cfg(target_endian = "little")]
51131#[target_feature(enable = "neon")]
51132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51133#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51134#[cfg_attr(
51135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51136    assert_instr(nop)
51137)]
51138#[cfg_attr(
51139    not(target_arch = "arm"),
51140    stable(feature = "neon_intrinsics", since = "1.59.0")
51141)]
51142#[cfg_attr(
51143    target_arch = "arm",
51144    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51145)]
51146pub fn vreinterpretq_u8_u64(a: uint64x2_t) -> uint8x16_t {
51147    unsafe { transmute(a) }
51148}
51149#[doc = "Vector reinterpret cast operation"]
51150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u64)"]
51151#[inline(always)]
51152#[cfg(target_endian = "big")]
51153#[target_feature(enable = "neon")]
51154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51155#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51156#[cfg_attr(
51157    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51158    assert_instr(nop)
51159)]
51160#[cfg_attr(
51161    not(target_arch = "arm"),
51162    stable(feature = "neon_intrinsics", since = "1.59.0")
51163)]
51164#[cfg_attr(
51165    target_arch = "arm",
51166    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51167)]
51168pub fn vreinterpretq_u8_u64(a: uint64x2_t) -> uint8x16_t {
51169    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51170    unsafe {
51171        let ret_val: uint8x16_t = transmute(a);
51172        simd_shuffle!(
51173            ret_val,
51174            ret_val,
51175            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
51176        )
51177    }
51178}
51179#[doc = "Vector reinterpret cast operation"]
51180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u64)"]
51181#[inline(always)]
51182#[cfg(target_endian = "little")]
51183#[target_feature(enable = "neon")]
51184#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51185#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51186#[cfg_attr(
51187    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51188    assert_instr(nop)
51189)]
51190#[cfg_attr(
51191    not(target_arch = "arm"),
51192    stable(feature = "neon_intrinsics", since = "1.59.0")
51193)]
51194#[cfg_attr(
51195    target_arch = "arm",
51196    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51197)]
51198pub fn vreinterpretq_u16_u64(a: uint64x2_t) -> uint16x8_t {
51199    unsafe { transmute(a) }
51200}
51201#[doc = "Vector reinterpret cast operation"]
51202#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u64)"]
51203#[inline(always)]
51204#[cfg(target_endian = "big")]
51205#[target_feature(enable = "neon")]
51206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51207#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51208#[cfg_attr(
51209    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51210    assert_instr(nop)
51211)]
51212#[cfg_attr(
51213    not(target_arch = "arm"),
51214    stable(feature = "neon_intrinsics", since = "1.59.0")
51215)]
51216#[cfg_attr(
51217    target_arch = "arm",
51218    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51219)]
51220pub fn vreinterpretq_u16_u64(a: uint64x2_t) -> uint16x8_t {
51221    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51222    unsafe {
51223        let ret_val: uint16x8_t = transmute(a);
51224        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51225    }
51226}
51227#[doc = "Vector reinterpret cast operation"]
51228#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u64)"]
51229#[inline(always)]
51230#[cfg(target_endian = "little")]
51231#[target_feature(enable = "neon")]
51232#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51233#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51234#[cfg_attr(
51235    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51236    assert_instr(nop)
51237)]
51238#[cfg_attr(
51239    not(target_arch = "arm"),
51240    stable(feature = "neon_intrinsics", since = "1.59.0")
51241)]
51242#[cfg_attr(
51243    target_arch = "arm",
51244    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51245)]
51246pub fn vreinterpretq_u32_u64(a: uint64x2_t) -> uint32x4_t {
51247    unsafe { transmute(a) }
51248}
51249#[doc = "Vector reinterpret cast operation"]
51250#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u64)"]
51251#[inline(always)]
51252#[cfg(target_endian = "big")]
51253#[target_feature(enable = "neon")]
51254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51255#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51256#[cfg_attr(
51257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51258    assert_instr(nop)
51259)]
51260#[cfg_attr(
51261    not(target_arch = "arm"),
51262    stable(feature = "neon_intrinsics", since = "1.59.0")
51263)]
51264#[cfg_attr(
51265    target_arch = "arm",
51266    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51267)]
51268pub fn vreinterpretq_u32_u64(a: uint64x2_t) -> uint32x4_t {
51269    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51270    unsafe {
51271        let ret_val: uint32x4_t = transmute(a);
51272        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51273    }
51274}
51275#[doc = "Vector reinterpret cast operation"]
51276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u64)"]
51277#[inline(always)]
51278#[cfg(target_endian = "little")]
51279#[target_feature(enable = "neon")]
51280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51281#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51282#[cfg_attr(
51283    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51284    assert_instr(nop)
51285)]
51286#[cfg_attr(
51287    not(target_arch = "arm"),
51288    stable(feature = "neon_intrinsics", since = "1.59.0")
51289)]
51290#[cfg_attr(
51291    target_arch = "arm",
51292    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51293)]
51294pub fn vreinterpretq_p8_u64(a: uint64x2_t) -> poly8x16_t {
51295    unsafe { transmute(a) }
51296}
51297#[doc = "Vector reinterpret cast operation"]
51298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u64)"]
51299#[inline(always)]
51300#[cfg(target_endian = "big")]
51301#[target_feature(enable = "neon")]
51302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51303#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51304#[cfg_attr(
51305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51306    assert_instr(nop)
51307)]
51308#[cfg_attr(
51309    not(target_arch = "arm"),
51310    stable(feature = "neon_intrinsics", since = "1.59.0")
51311)]
51312#[cfg_attr(
51313    target_arch = "arm",
51314    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51315)]
51316pub fn vreinterpretq_p8_u64(a: uint64x2_t) -> poly8x16_t {
51317    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51318    unsafe {
51319        let ret_val: poly8x16_t = transmute(a);
51320        simd_shuffle!(
51321            ret_val,
51322            ret_val,
51323            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
51324        )
51325    }
51326}
51327#[doc = "Vector reinterpret cast operation"]
51328#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u64)"]
51329#[inline(always)]
51330#[cfg(target_endian = "little")]
51331#[target_feature(enable = "neon")]
51332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51333#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51334#[cfg_attr(
51335    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51336    assert_instr(nop)
51337)]
51338#[cfg_attr(
51339    not(target_arch = "arm"),
51340    stable(feature = "neon_intrinsics", since = "1.59.0")
51341)]
51342#[cfg_attr(
51343    target_arch = "arm",
51344    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51345)]
51346pub fn vreinterpretq_p16_u64(a: uint64x2_t) -> poly16x8_t {
51347    unsafe { transmute(a) }
51348}
51349#[doc = "Vector reinterpret cast operation"]
51350#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u64)"]
51351#[inline(always)]
51352#[cfg(target_endian = "big")]
51353#[target_feature(enable = "neon")]
51354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51356#[cfg_attr(
51357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51358    assert_instr(nop)
51359)]
51360#[cfg_attr(
51361    not(target_arch = "arm"),
51362    stable(feature = "neon_intrinsics", since = "1.59.0")
51363)]
51364#[cfg_attr(
51365    target_arch = "arm",
51366    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51367)]
51368pub fn vreinterpretq_p16_u64(a: uint64x2_t) -> poly16x8_t {
51369    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
51370    unsafe {
51371        let ret_val: poly16x8_t = transmute(a);
51372        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51373    }
51374}
51375#[doc = "Vector reinterpret cast operation"]
51376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p8)"]
51377#[inline(always)]
51378#[cfg(target_endian = "little")]
51379#[target_feature(enable = "neon")]
51380#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51381#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51382#[cfg_attr(
51383    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51384    assert_instr(nop)
51385)]
51386#[cfg_attr(
51387    not(target_arch = "arm"),
51388    stable(feature = "neon_intrinsics", since = "1.59.0")
51389)]
51390#[cfg_attr(
51391    target_arch = "arm",
51392    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51393)]
51394pub fn vreinterpret_f32_p8(a: poly8x8_t) -> float32x2_t {
51395    unsafe { transmute(a) }
51396}
51397#[doc = "Vector reinterpret cast operation"]
51398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p8)"]
51399#[inline(always)]
51400#[cfg(target_endian = "big")]
51401#[target_feature(enable = "neon")]
51402#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51403#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51404#[cfg_attr(
51405    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51406    assert_instr(nop)
51407)]
51408#[cfg_attr(
51409    not(target_arch = "arm"),
51410    stable(feature = "neon_intrinsics", since = "1.59.0")
51411)]
51412#[cfg_attr(
51413    target_arch = "arm",
51414    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51415)]
51416pub fn vreinterpret_f32_p8(a: poly8x8_t) -> float32x2_t {
51417    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51418    unsafe {
51419        let ret_val: float32x2_t = transmute(a);
51420        simd_shuffle!(ret_val, ret_val, [1, 0])
51421    }
51422}
51423#[doc = "Vector reinterpret cast operation"]
51424#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p8)"]
51425#[inline(always)]
51426#[cfg(target_endian = "little")]
51427#[target_feature(enable = "neon")]
51428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51429#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51430#[cfg_attr(
51431    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51432    assert_instr(nop)
51433)]
51434#[cfg_attr(
51435    not(target_arch = "arm"),
51436    stable(feature = "neon_intrinsics", since = "1.59.0")
51437)]
51438#[cfg_attr(
51439    target_arch = "arm",
51440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51441)]
51442pub fn vreinterpret_s8_p8(a: poly8x8_t) -> int8x8_t {
51443    unsafe { transmute(a) }
51444}
51445#[doc = "Vector reinterpret cast operation"]
51446#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p8)"]
51447#[inline(always)]
51448#[cfg(target_endian = "big")]
51449#[target_feature(enable = "neon")]
51450#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51451#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51452#[cfg_attr(
51453    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51454    assert_instr(nop)
51455)]
51456#[cfg_attr(
51457    not(target_arch = "arm"),
51458    stable(feature = "neon_intrinsics", since = "1.59.0")
51459)]
51460#[cfg_attr(
51461    target_arch = "arm",
51462    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51463)]
51464pub fn vreinterpret_s8_p8(a: poly8x8_t) -> int8x8_t {
51465    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51466    unsafe {
51467        let ret_val: int8x8_t = transmute(a);
51468        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51469    }
51470}
51471#[doc = "Vector reinterpret cast operation"]
51472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p8)"]
51473#[inline(always)]
51474#[cfg(target_endian = "little")]
51475#[target_feature(enable = "neon")]
51476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51477#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51478#[cfg_attr(
51479    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51480    assert_instr(nop)
51481)]
51482#[cfg_attr(
51483    not(target_arch = "arm"),
51484    stable(feature = "neon_intrinsics", since = "1.59.0")
51485)]
51486#[cfg_attr(
51487    target_arch = "arm",
51488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51489)]
51490pub fn vreinterpret_s16_p8(a: poly8x8_t) -> int16x4_t {
51491    unsafe { transmute(a) }
51492}
51493#[doc = "Vector reinterpret cast operation"]
51494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p8)"]
51495#[inline(always)]
51496#[cfg(target_endian = "big")]
51497#[target_feature(enable = "neon")]
51498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51500#[cfg_attr(
51501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51502    assert_instr(nop)
51503)]
51504#[cfg_attr(
51505    not(target_arch = "arm"),
51506    stable(feature = "neon_intrinsics", since = "1.59.0")
51507)]
51508#[cfg_attr(
51509    target_arch = "arm",
51510    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51511)]
51512pub fn vreinterpret_s16_p8(a: poly8x8_t) -> int16x4_t {
51513    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51514    unsafe {
51515        let ret_val: int16x4_t = transmute(a);
51516        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51517    }
51518}
51519#[doc = "Vector reinterpret cast operation"]
51520#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p8)"]
51521#[inline(always)]
51522#[cfg(target_endian = "little")]
51523#[target_feature(enable = "neon")]
51524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51525#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51526#[cfg_attr(
51527    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51528    assert_instr(nop)
51529)]
51530#[cfg_attr(
51531    not(target_arch = "arm"),
51532    stable(feature = "neon_intrinsics", since = "1.59.0")
51533)]
51534#[cfg_attr(
51535    target_arch = "arm",
51536    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51537)]
51538pub fn vreinterpret_s32_p8(a: poly8x8_t) -> int32x2_t {
51539    unsafe { transmute(a) }
51540}
51541#[doc = "Vector reinterpret cast operation"]
51542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p8)"]
51543#[inline(always)]
51544#[cfg(target_endian = "big")]
51545#[target_feature(enable = "neon")]
51546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51548#[cfg_attr(
51549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51550    assert_instr(nop)
51551)]
51552#[cfg_attr(
51553    not(target_arch = "arm"),
51554    stable(feature = "neon_intrinsics", since = "1.59.0")
51555)]
51556#[cfg_attr(
51557    target_arch = "arm",
51558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51559)]
51560pub fn vreinterpret_s32_p8(a: poly8x8_t) -> int32x2_t {
51561    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51562    unsafe {
51563        let ret_val: int32x2_t = transmute(a);
51564        simd_shuffle!(ret_val, ret_val, [1, 0])
51565    }
51566}
51567#[doc = "Vector reinterpret cast operation"]
51568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p8)"]
51569#[inline(always)]
51570#[cfg(target_endian = "little")]
51571#[target_feature(enable = "neon")]
51572#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51573#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51574#[cfg_attr(
51575    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51576    assert_instr(nop)
51577)]
51578#[cfg_attr(
51579    not(target_arch = "arm"),
51580    stable(feature = "neon_intrinsics", since = "1.59.0")
51581)]
51582#[cfg_attr(
51583    target_arch = "arm",
51584    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51585)]
51586pub fn vreinterpret_s64_p8(a: poly8x8_t) -> int64x1_t {
51587    unsafe { transmute(a) }
51588}
51589#[doc = "Vector reinterpret cast operation"]
51590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p8)"]
51591#[inline(always)]
51592#[cfg(target_endian = "big")]
51593#[target_feature(enable = "neon")]
51594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51596#[cfg_attr(
51597    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51598    assert_instr(nop)
51599)]
51600#[cfg_attr(
51601    not(target_arch = "arm"),
51602    stable(feature = "neon_intrinsics", since = "1.59.0")
51603)]
51604#[cfg_attr(
51605    target_arch = "arm",
51606    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51607)]
51608pub fn vreinterpret_s64_p8(a: poly8x8_t) -> int64x1_t {
51609    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51610    unsafe { transmute(a) }
51611}
51612#[doc = "Vector reinterpret cast operation"]
51613#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p8)"]
51614#[inline(always)]
51615#[cfg(target_endian = "little")]
51616#[target_feature(enable = "neon")]
51617#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51618#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51619#[cfg_attr(
51620    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51621    assert_instr(nop)
51622)]
51623#[cfg_attr(
51624    not(target_arch = "arm"),
51625    stable(feature = "neon_intrinsics", since = "1.59.0")
51626)]
51627#[cfg_attr(
51628    target_arch = "arm",
51629    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51630)]
51631pub fn vreinterpret_u8_p8(a: poly8x8_t) -> uint8x8_t {
51632    unsafe { transmute(a) }
51633}
51634#[doc = "Vector reinterpret cast operation"]
51635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p8)"]
51636#[inline(always)]
51637#[cfg(target_endian = "big")]
51638#[target_feature(enable = "neon")]
51639#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51640#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51641#[cfg_attr(
51642    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51643    assert_instr(nop)
51644)]
51645#[cfg_attr(
51646    not(target_arch = "arm"),
51647    stable(feature = "neon_intrinsics", since = "1.59.0")
51648)]
51649#[cfg_attr(
51650    target_arch = "arm",
51651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51652)]
51653pub fn vreinterpret_u8_p8(a: poly8x8_t) -> uint8x8_t {
51654    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51655    unsafe {
51656        let ret_val: uint8x8_t = transmute(a);
51657        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51658    }
51659}
51660#[doc = "Vector reinterpret cast operation"]
51661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p8)"]
51662#[inline(always)]
51663#[cfg(target_endian = "little")]
51664#[target_feature(enable = "neon")]
51665#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51666#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51667#[cfg_attr(
51668    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51669    assert_instr(nop)
51670)]
51671#[cfg_attr(
51672    not(target_arch = "arm"),
51673    stable(feature = "neon_intrinsics", since = "1.59.0")
51674)]
51675#[cfg_attr(
51676    target_arch = "arm",
51677    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51678)]
51679pub fn vreinterpret_u16_p8(a: poly8x8_t) -> uint16x4_t {
51680    unsafe { transmute(a) }
51681}
51682#[doc = "Vector reinterpret cast operation"]
51683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p8)"]
51684#[inline(always)]
51685#[cfg(target_endian = "big")]
51686#[target_feature(enable = "neon")]
51687#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51688#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51689#[cfg_attr(
51690    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51691    assert_instr(nop)
51692)]
51693#[cfg_attr(
51694    not(target_arch = "arm"),
51695    stable(feature = "neon_intrinsics", since = "1.59.0")
51696)]
51697#[cfg_attr(
51698    target_arch = "arm",
51699    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51700)]
51701pub fn vreinterpret_u16_p8(a: poly8x8_t) -> uint16x4_t {
51702    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51703    unsafe {
51704        let ret_val: uint16x4_t = transmute(a);
51705        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51706    }
51707}
51708#[doc = "Vector reinterpret cast operation"]
51709#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p8)"]
51710#[inline(always)]
51711#[cfg(target_endian = "little")]
51712#[target_feature(enable = "neon")]
51713#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51714#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51715#[cfg_attr(
51716    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51717    assert_instr(nop)
51718)]
51719#[cfg_attr(
51720    not(target_arch = "arm"),
51721    stable(feature = "neon_intrinsics", since = "1.59.0")
51722)]
51723#[cfg_attr(
51724    target_arch = "arm",
51725    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51726)]
51727pub fn vreinterpret_u32_p8(a: poly8x8_t) -> uint32x2_t {
51728    unsafe { transmute(a) }
51729}
51730#[doc = "Vector reinterpret cast operation"]
51731#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p8)"]
51732#[inline(always)]
51733#[cfg(target_endian = "big")]
51734#[target_feature(enable = "neon")]
51735#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51736#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51737#[cfg_attr(
51738    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51739    assert_instr(nop)
51740)]
51741#[cfg_attr(
51742    not(target_arch = "arm"),
51743    stable(feature = "neon_intrinsics", since = "1.59.0")
51744)]
51745#[cfg_attr(
51746    target_arch = "arm",
51747    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51748)]
51749pub fn vreinterpret_u32_p8(a: poly8x8_t) -> uint32x2_t {
51750    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51751    unsafe {
51752        let ret_val: uint32x2_t = transmute(a);
51753        simd_shuffle!(ret_val, ret_val, [1, 0])
51754    }
51755}
51756#[doc = "Vector reinterpret cast operation"]
51757#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p8)"]
51758#[inline(always)]
51759#[cfg(target_endian = "little")]
51760#[target_feature(enable = "neon")]
51761#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51762#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51763#[cfg_attr(
51764    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51765    assert_instr(nop)
51766)]
51767#[cfg_attr(
51768    not(target_arch = "arm"),
51769    stable(feature = "neon_intrinsics", since = "1.59.0")
51770)]
51771#[cfg_attr(
51772    target_arch = "arm",
51773    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51774)]
51775pub fn vreinterpret_u64_p8(a: poly8x8_t) -> uint64x1_t {
51776    unsafe { transmute(a) }
51777}
51778#[doc = "Vector reinterpret cast operation"]
51779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p8)"]
51780#[inline(always)]
51781#[cfg(target_endian = "big")]
51782#[target_feature(enable = "neon")]
51783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51784#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51785#[cfg_attr(
51786    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51787    assert_instr(nop)
51788)]
51789#[cfg_attr(
51790    not(target_arch = "arm"),
51791    stable(feature = "neon_intrinsics", since = "1.59.0")
51792)]
51793#[cfg_attr(
51794    target_arch = "arm",
51795    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51796)]
51797pub fn vreinterpret_u64_p8(a: poly8x8_t) -> uint64x1_t {
51798    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51799    unsafe { transmute(a) }
51800}
51801#[doc = "Vector reinterpret cast operation"]
51802#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p8)"]
51803#[inline(always)]
51804#[cfg(target_endian = "little")]
51805#[target_feature(enable = "neon")]
51806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51807#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51808#[cfg_attr(
51809    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51810    assert_instr(nop)
51811)]
51812#[cfg_attr(
51813    not(target_arch = "arm"),
51814    stable(feature = "neon_intrinsics", since = "1.59.0")
51815)]
51816#[cfg_attr(
51817    target_arch = "arm",
51818    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51819)]
51820pub fn vreinterpret_p16_p8(a: poly8x8_t) -> poly16x4_t {
51821    unsafe { transmute(a) }
51822}
51823#[doc = "Vector reinterpret cast operation"]
51824#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p8)"]
51825#[inline(always)]
51826#[cfg(target_endian = "big")]
51827#[target_feature(enable = "neon")]
51828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51829#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51830#[cfg_attr(
51831    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51832    assert_instr(nop)
51833)]
51834#[cfg_attr(
51835    not(target_arch = "arm"),
51836    stable(feature = "neon_intrinsics", since = "1.59.0")
51837)]
51838#[cfg_attr(
51839    target_arch = "arm",
51840    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51841)]
51842pub fn vreinterpret_p16_p8(a: poly8x8_t) -> poly16x4_t {
51843    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
51844    unsafe {
51845        let ret_val: poly16x4_t = transmute(a);
51846        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51847    }
51848}
51849#[doc = "Vector reinterpret cast operation"]
51850#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p8)"]
51851#[inline(always)]
51852#[cfg(target_endian = "little")]
51853#[target_feature(enable = "neon")]
51854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51856#[cfg_attr(
51857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51858    assert_instr(nop)
51859)]
51860#[cfg_attr(
51861    not(target_arch = "arm"),
51862    stable(feature = "neon_intrinsics", since = "1.59.0")
51863)]
51864#[cfg_attr(
51865    target_arch = "arm",
51866    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51867)]
51868pub fn vreinterpretq_f32_p8(a: poly8x16_t) -> float32x4_t {
51869    unsafe { transmute(a) }
51870}
51871#[doc = "Vector reinterpret cast operation"]
51872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p8)"]
51873#[inline(always)]
51874#[cfg(target_endian = "big")]
51875#[target_feature(enable = "neon")]
51876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51877#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51878#[cfg_attr(
51879    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51880    assert_instr(nop)
51881)]
51882#[cfg_attr(
51883    not(target_arch = "arm"),
51884    stable(feature = "neon_intrinsics", since = "1.59.0")
51885)]
51886#[cfg_attr(
51887    target_arch = "arm",
51888    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51889)]
51890pub fn vreinterpretq_f32_p8(a: poly8x16_t) -> float32x4_t {
51891    let a: poly8x16_t =
51892        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
51893    unsafe {
51894        let ret_val: float32x4_t = transmute(a);
51895        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
51896    }
51897}
51898#[doc = "Vector reinterpret cast operation"]
51899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p8)"]
51900#[inline(always)]
51901#[cfg(target_endian = "little")]
51902#[target_feature(enable = "neon")]
51903#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51904#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51905#[cfg_attr(
51906    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51907    assert_instr(nop)
51908)]
51909#[cfg_attr(
51910    not(target_arch = "arm"),
51911    stable(feature = "neon_intrinsics", since = "1.59.0")
51912)]
51913#[cfg_attr(
51914    target_arch = "arm",
51915    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51916)]
51917pub fn vreinterpretq_s8_p8(a: poly8x16_t) -> int8x16_t {
51918    unsafe { transmute(a) }
51919}
51920#[doc = "Vector reinterpret cast operation"]
51921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p8)"]
51922#[inline(always)]
51923#[cfg(target_endian = "big")]
51924#[target_feature(enable = "neon")]
51925#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51926#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51927#[cfg_attr(
51928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51929    assert_instr(nop)
51930)]
51931#[cfg_attr(
51932    not(target_arch = "arm"),
51933    stable(feature = "neon_intrinsics", since = "1.59.0")
51934)]
51935#[cfg_attr(
51936    target_arch = "arm",
51937    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51938)]
51939pub fn vreinterpretq_s8_p8(a: poly8x16_t) -> int8x16_t {
51940    let a: poly8x16_t =
51941        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
51942    unsafe {
51943        let ret_val: int8x16_t = transmute(a);
51944        simd_shuffle!(
51945            ret_val,
51946            ret_val,
51947            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
51948        )
51949    }
51950}
51951#[doc = "Vector reinterpret cast operation"]
51952#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p8)"]
51953#[inline(always)]
51954#[cfg(target_endian = "little")]
51955#[target_feature(enable = "neon")]
51956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51957#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51958#[cfg_attr(
51959    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51960    assert_instr(nop)
51961)]
51962#[cfg_attr(
51963    not(target_arch = "arm"),
51964    stable(feature = "neon_intrinsics", since = "1.59.0")
51965)]
51966#[cfg_attr(
51967    target_arch = "arm",
51968    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51969)]
51970pub fn vreinterpretq_s16_p8(a: poly8x16_t) -> int16x8_t {
51971    unsafe { transmute(a) }
51972}
51973#[doc = "Vector reinterpret cast operation"]
51974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p8)"]
51975#[inline(always)]
51976#[cfg(target_endian = "big")]
51977#[target_feature(enable = "neon")]
51978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
51979#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
51980#[cfg_attr(
51981    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
51982    assert_instr(nop)
51983)]
51984#[cfg_attr(
51985    not(target_arch = "arm"),
51986    stable(feature = "neon_intrinsics", since = "1.59.0")
51987)]
51988#[cfg_attr(
51989    target_arch = "arm",
51990    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
51991)]
51992pub fn vreinterpretq_s16_p8(a: poly8x16_t) -> int16x8_t {
51993    let a: poly8x16_t =
51994        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
51995    unsafe {
51996        let ret_val: int16x8_t = transmute(a);
51997        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
51998    }
51999}
52000#[doc = "Vector reinterpret cast operation"]
52001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p8)"]
52002#[inline(always)]
52003#[cfg(target_endian = "little")]
52004#[target_feature(enable = "neon")]
52005#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52006#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52007#[cfg_attr(
52008    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52009    assert_instr(nop)
52010)]
52011#[cfg_attr(
52012    not(target_arch = "arm"),
52013    stable(feature = "neon_intrinsics", since = "1.59.0")
52014)]
52015#[cfg_attr(
52016    target_arch = "arm",
52017    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52018)]
52019pub fn vreinterpretq_s32_p8(a: poly8x16_t) -> int32x4_t {
52020    unsafe { transmute(a) }
52021}
52022#[doc = "Vector reinterpret cast operation"]
52023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p8)"]
52024#[inline(always)]
52025#[cfg(target_endian = "big")]
52026#[target_feature(enable = "neon")]
52027#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52028#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52029#[cfg_attr(
52030    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52031    assert_instr(nop)
52032)]
52033#[cfg_attr(
52034    not(target_arch = "arm"),
52035    stable(feature = "neon_intrinsics", since = "1.59.0")
52036)]
52037#[cfg_attr(
52038    target_arch = "arm",
52039    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52040)]
52041pub fn vreinterpretq_s32_p8(a: poly8x16_t) -> int32x4_t {
52042    let a: poly8x16_t =
52043        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52044    unsafe {
52045        let ret_val: int32x4_t = transmute(a);
52046        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52047    }
52048}
52049#[doc = "Vector reinterpret cast operation"]
52050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p8)"]
52051#[inline(always)]
52052#[cfg(target_endian = "little")]
52053#[target_feature(enable = "neon")]
52054#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52055#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52056#[cfg_attr(
52057    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52058    assert_instr(nop)
52059)]
52060#[cfg_attr(
52061    not(target_arch = "arm"),
52062    stable(feature = "neon_intrinsics", since = "1.59.0")
52063)]
52064#[cfg_attr(
52065    target_arch = "arm",
52066    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52067)]
52068pub fn vreinterpretq_s64_p8(a: poly8x16_t) -> int64x2_t {
52069    unsafe { transmute(a) }
52070}
52071#[doc = "Vector reinterpret cast operation"]
52072#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p8)"]
52073#[inline(always)]
52074#[cfg(target_endian = "big")]
52075#[target_feature(enable = "neon")]
52076#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52077#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52078#[cfg_attr(
52079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52080    assert_instr(nop)
52081)]
52082#[cfg_attr(
52083    not(target_arch = "arm"),
52084    stable(feature = "neon_intrinsics", since = "1.59.0")
52085)]
52086#[cfg_attr(
52087    target_arch = "arm",
52088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52089)]
52090pub fn vreinterpretq_s64_p8(a: poly8x16_t) -> int64x2_t {
52091    let a: poly8x16_t =
52092        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52093    unsafe {
52094        let ret_val: int64x2_t = transmute(a);
52095        simd_shuffle!(ret_val, ret_val, [1, 0])
52096    }
52097}
52098#[doc = "Vector reinterpret cast operation"]
52099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p8)"]
52100#[inline(always)]
52101#[cfg(target_endian = "little")]
52102#[target_feature(enable = "neon")]
52103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52104#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52105#[cfg_attr(
52106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52107    assert_instr(nop)
52108)]
52109#[cfg_attr(
52110    not(target_arch = "arm"),
52111    stable(feature = "neon_intrinsics", since = "1.59.0")
52112)]
52113#[cfg_attr(
52114    target_arch = "arm",
52115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52116)]
52117pub fn vreinterpretq_u8_p8(a: poly8x16_t) -> uint8x16_t {
52118    unsafe { transmute(a) }
52119}
52120#[doc = "Vector reinterpret cast operation"]
52121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p8)"]
52122#[inline(always)]
52123#[cfg(target_endian = "big")]
52124#[target_feature(enable = "neon")]
52125#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52126#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52127#[cfg_attr(
52128    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52129    assert_instr(nop)
52130)]
52131#[cfg_attr(
52132    not(target_arch = "arm"),
52133    stable(feature = "neon_intrinsics", since = "1.59.0")
52134)]
52135#[cfg_attr(
52136    target_arch = "arm",
52137    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52138)]
52139pub fn vreinterpretq_u8_p8(a: poly8x16_t) -> uint8x16_t {
52140    let a: poly8x16_t =
52141        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52142    unsafe {
52143        let ret_val: uint8x16_t = transmute(a);
52144        simd_shuffle!(
52145            ret_val,
52146            ret_val,
52147            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
52148        )
52149    }
52150}
52151#[doc = "Vector reinterpret cast operation"]
52152#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p8)"]
52153#[inline(always)]
52154#[cfg(target_endian = "little")]
52155#[target_feature(enable = "neon")]
52156#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52157#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52158#[cfg_attr(
52159    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52160    assert_instr(nop)
52161)]
52162#[cfg_attr(
52163    not(target_arch = "arm"),
52164    stable(feature = "neon_intrinsics", since = "1.59.0")
52165)]
52166#[cfg_attr(
52167    target_arch = "arm",
52168    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52169)]
52170pub fn vreinterpretq_u16_p8(a: poly8x16_t) -> uint16x8_t {
52171    unsafe { transmute(a) }
52172}
52173#[doc = "Vector reinterpret cast operation"]
52174#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p8)"]
52175#[inline(always)]
52176#[cfg(target_endian = "big")]
52177#[target_feature(enable = "neon")]
52178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52180#[cfg_attr(
52181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52182    assert_instr(nop)
52183)]
52184#[cfg_attr(
52185    not(target_arch = "arm"),
52186    stable(feature = "neon_intrinsics", since = "1.59.0")
52187)]
52188#[cfg_attr(
52189    target_arch = "arm",
52190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52191)]
52192pub fn vreinterpretq_u16_p8(a: poly8x16_t) -> uint16x8_t {
52193    let a: poly8x16_t =
52194        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52195    unsafe {
52196        let ret_val: uint16x8_t = transmute(a);
52197        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52198    }
52199}
52200#[doc = "Vector reinterpret cast operation"]
52201#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p8)"]
52202#[inline(always)]
52203#[cfg(target_endian = "little")]
52204#[target_feature(enable = "neon")]
52205#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52206#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52207#[cfg_attr(
52208    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52209    assert_instr(nop)
52210)]
52211#[cfg_attr(
52212    not(target_arch = "arm"),
52213    stable(feature = "neon_intrinsics", since = "1.59.0")
52214)]
52215#[cfg_attr(
52216    target_arch = "arm",
52217    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52218)]
52219pub fn vreinterpretq_u32_p8(a: poly8x16_t) -> uint32x4_t {
52220    unsafe { transmute(a) }
52221}
52222#[doc = "Vector reinterpret cast operation"]
52223#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p8)"]
52224#[inline(always)]
52225#[cfg(target_endian = "big")]
52226#[target_feature(enable = "neon")]
52227#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52228#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52229#[cfg_attr(
52230    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52231    assert_instr(nop)
52232)]
52233#[cfg_attr(
52234    not(target_arch = "arm"),
52235    stable(feature = "neon_intrinsics", since = "1.59.0")
52236)]
52237#[cfg_attr(
52238    target_arch = "arm",
52239    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52240)]
52241pub fn vreinterpretq_u32_p8(a: poly8x16_t) -> uint32x4_t {
52242    let a: poly8x16_t =
52243        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52244    unsafe {
52245        let ret_val: uint32x4_t = transmute(a);
52246        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52247    }
52248}
52249#[doc = "Vector reinterpret cast operation"]
52250#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p8)"]
52251#[inline(always)]
52252#[cfg(target_endian = "little")]
52253#[target_feature(enable = "neon")]
52254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52255#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52256#[cfg_attr(
52257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52258    assert_instr(nop)
52259)]
52260#[cfg_attr(
52261    not(target_arch = "arm"),
52262    stable(feature = "neon_intrinsics", since = "1.59.0")
52263)]
52264#[cfg_attr(
52265    target_arch = "arm",
52266    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52267)]
52268pub fn vreinterpretq_u64_p8(a: poly8x16_t) -> uint64x2_t {
52269    unsafe { transmute(a) }
52270}
52271#[doc = "Vector reinterpret cast operation"]
52272#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p8)"]
52273#[inline(always)]
52274#[cfg(target_endian = "big")]
52275#[target_feature(enable = "neon")]
52276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52277#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52278#[cfg_attr(
52279    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52280    assert_instr(nop)
52281)]
52282#[cfg_attr(
52283    not(target_arch = "arm"),
52284    stable(feature = "neon_intrinsics", since = "1.59.0")
52285)]
52286#[cfg_attr(
52287    target_arch = "arm",
52288    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52289)]
52290pub fn vreinterpretq_u64_p8(a: poly8x16_t) -> uint64x2_t {
52291    let a: poly8x16_t =
52292        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52293    unsafe {
52294        let ret_val: uint64x2_t = transmute(a);
52295        simd_shuffle!(ret_val, ret_val, [1, 0])
52296    }
52297}
52298#[doc = "Vector reinterpret cast operation"]
52299#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p8)"]
52300#[inline(always)]
52301#[cfg(target_endian = "little")]
52302#[target_feature(enable = "neon")]
52303#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52304#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52305#[cfg_attr(
52306    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52307    assert_instr(nop)
52308)]
52309#[cfg_attr(
52310    not(target_arch = "arm"),
52311    stable(feature = "neon_intrinsics", since = "1.59.0")
52312)]
52313#[cfg_attr(
52314    target_arch = "arm",
52315    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52316)]
52317pub fn vreinterpretq_p16_p8(a: poly8x16_t) -> poly16x8_t {
52318    unsafe { transmute(a) }
52319}
52320#[doc = "Vector reinterpret cast operation"]
52321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p8)"]
52322#[inline(always)]
52323#[cfg(target_endian = "big")]
52324#[target_feature(enable = "neon")]
52325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52326#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52327#[cfg_attr(
52328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52329    assert_instr(nop)
52330)]
52331#[cfg_attr(
52332    not(target_arch = "arm"),
52333    stable(feature = "neon_intrinsics", since = "1.59.0")
52334)]
52335#[cfg_attr(
52336    target_arch = "arm",
52337    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52338)]
52339pub fn vreinterpretq_p16_p8(a: poly8x16_t) -> poly16x8_t {
52340    let a: poly8x16_t =
52341        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
52342    unsafe {
52343        let ret_val: poly16x8_t = transmute(a);
52344        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52345    }
52346}
52347#[doc = "Vector reinterpret cast operation"]
52348#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p16)"]
52349#[inline(always)]
52350#[cfg(target_endian = "little")]
52351#[target_feature(enable = "neon")]
52352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52354#[cfg_attr(
52355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52356    assert_instr(nop)
52357)]
52358#[cfg_attr(
52359    not(target_arch = "arm"),
52360    stable(feature = "neon_intrinsics", since = "1.59.0")
52361)]
52362#[cfg_attr(
52363    target_arch = "arm",
52364    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52365)]
52366pub fn vreinterpret_f32_p16(a: poly16x4_t) -> float32x2_t {
52367    unsafe { transmute(a) }
52368}
52369#[doc = "Vector reinterpret cast operation"]
52370#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p16)"]
52371#[inline(always)]
52372#[cfg(target_endian = "big")]
52373#[target_feature(enable = "neon")]
52374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52376#[cfg_attr(
52377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52378    assert_instr(nop)
52379)]
52380#[cfg_attr(
52381    not(target_arch = "arm"),
52382    stable(feature = "neon_intrinsics", since = "1.59.0")
52383)]
52384#[cfg_attr(
52385    target_arch = "arm",
52386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52387)]
52388pub fn vreinterpret_f32_p16(a: poly16x4_t) -> float32x2_t {
52389    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52390    unsafe {
52391        let ret_val: float32x2_t = transmute(a);
52392        simd_shuffle!(ret_val, ret_val, [1, 0])
52393    }
52394}
52395#[doc = "Vector reinterpret cast operation"]
52396#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p16)"]
52397#[inline(always)]
52398#[cfg(target_endian = "little")]
52399#[target_feature(enable = "neon")]
52400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52402#[cfg_attr(
52403    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52404    assert_instr(nop)
52405)]
52406#[cfg_attr(
52407    not(target_arch = "arm"),
52408    stable(feature = "neon_intrinsics", since = "1.59.0")
52409)]
52410#[cfg_attr(
52411    target_arch = "arm",
52412    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52413)]
52414pub fn vreinterpret_s8_p16(a: poly16x4_t) -> int8x8_t {
52415    unsafe { transmute(a) }
52416}
52417#[doc = "Vector reinterpret cast operation"]
52418#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p16)"]
52419#[inline(always)]
52420#[cfg(target_endian = "big")]
52421#[target_feature(enable = "neon")]
52422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52424#[cfg_attr(
52425    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52426    assert_instr(nop)
52427)]
52428#[cfg_attr(
52429    not(target_arch = "arm"),
52430    stable(feature = "neon_intrinsics", since = "1.59.0")
52431)]
52432#[cfg_attr(
52433    target_arch = "arm",
52434    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52435)]
52436pub fn vreinterpret_s8_p16(a: poly16x4_t) -> int8x8_t {
52437    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52438    unsafe {
52439        let ret_val: int8x8_t = transmute(a);
52440        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52441    }
52442}
52443#[doc = "Vector reinterpret cast operation"]
52444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p16)"]
52445#[inline(always)]
52446#[cfg(target_endian = "little")]
52447#[target_feature(enable = "neon")]
52448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52450#[cfg_attr(
52451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52452    assert_instr(nop)
52453)]
52454#[cfg_attr(
52455    not(target_arch = "arm"),
52456    stable(feature = "neon_intrinsics", since = "1.59.0")
52457)]
52458#[cfg_attr(
52459    target_arch = "arm",
52460    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52461)]
52462pub fn vreinterpret_s16_p16(a: poly16x4_t) -> int16x4_t {
52463    unsafe { transmute(a) }
52464}
52465#[doc = "Vector reinterpret cast operation"]
52466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p16)"]
52467#[inline(always)]
52468#[cfg(target_endian = "big")]
52469#[target_feature(enable = "neon")]
52470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52472#[cfg_attr(
52473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52474    assert_instr(nop)
52475)]
52476#[cfg_attr(
52477    not(target_arch = "arm"),
52478    stable(feature = "neon_intrinsics", since = "1.59.0")
52479)]
52480#[cfg_attr(
52481    target_arch = "arm",
52482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52483)]
52484pub fn vreinterpret_s16_p16(a: poly16x4_t) -> int16x4_t {
52485    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52486    unsafe {
52487        let ret_val: int16x4_t = transmute(a);
52488        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52489    }
52490}
52491#[doc = "Vector reinterpret cast operation"]
52492#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p16)"]
52493#[inline(always)]
52494#[cfg(target_endian = "little")]
52495#[target_feature(enable = "neon")]
52496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52498#[cfg_attr(
52499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52500    assert_instr(nop)
52501)]
52502#[cfg_attr(
52503    not(target_arch = "arm"),
52504    stable(feature = "neon_intrinsics", since = "1.59.0")
52505)]
52506#[cfg_attr(
52507    target_arch = "arm",
52508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52509)]
52510pub fn vreinterpret_s32_p16(a: poly16x4_t) -> int32x2_t {
52511    unsafe { transmute(a) }
52512}
52513#[doc = "Vector reinterpret cast operation"]
52514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p16)"]
52515#[inline(always)]
52516#[cfg(target_endian = "big")]
52517#[target_feature(enable = "neon")]
52518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52519#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52520#[cfg_attr(
52521    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52522    assert_instr(nop)
52523)]
52524#[cfg_attr(
52525    not(target_arch = "arm"),
52526    stable(feature = "neon_intrinsics", since = "1.59.0")
52527)]
52528#[cfg_attr(
52529    target_arch = "arm",
52530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52531)]
52532pub fn vreinterpret_s32_p16(a: poly16x4_t) -> int32x2_t {
52533    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52534    unsafe {
52535        let ret_val: int32x2_t = transmute(a);
52536        simd_shuffle!(ret_val, ret_val, [1, 0])
52537    }
52538}
52539#[doc = "Vector reinterpret cast operation"]
52540#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p16)"]
52541#[inline(always)]
52542#[cfg(target_endian = "little")]
52543#[target_feature(enable = "neon")]
52544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52546#[cfg_attr(
52547    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52548    assert_instr(nop)
52549)]
52550#[cfg_attr(
52551    not(target_arch = "arm"),
52552    stable(feature = "neon_intrinsics", since = "1.59.0")
52553)]
52554#[cfg_attr(
52555    target_arch = "arm",
52556    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52557)]
52558pub fn vreinterpret_s64_p16(a: poly16x4_t) -> int64x1_t {
52559    unsafe { transmute(a) }
52560}
52561#[doc = "Vector reinterpret cast operation"]
52562#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p16)"]
52563#[inline(always)]
52564#[cfg(target_endian = "big")]
52565#[target_feature(enable = "neon")]
52566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52568#[cfg_attr(
52569    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52570    assert_instr(nop)
52571)]
52572#[cfg_attr(
52573    not(target_arch = "arm"),
52574    stable(feature = "neon_intrinsics", since = "1.59.0")
52575)]
52576#[cfg_attr(
52577    target_arch = "arm",
52578    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52579)]
52580pub fn vreinterpret_s64_p16(a: poly16x4_t) -> int64x1_t {
52581    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52582    unsafe { transmute(a) }
52583}
52584#[doc = "Vector reinterpret cast operation"]
52585#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p16)"]
52586#[inline(always)]
52587#[cfg(target_endian = "little")]
52588#[target_feature(enable = "neon")]
52589#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52590#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52591#[cfg_attr(
52592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52593    assert_instr(nop)
52594)]
52595#[cfg_attr(
52596    not(target_arch = "arm"),
52597    stable(feature = "neon_intrinsics", since = "1.59.0")
52598)]
52599#[cfg_attr(
52600    target_arch = "arm",
52601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52602)]
52603pub fn vreinterpret_u8_p16(a: poly16x4_t) -> uint8x8_t {
52604    unsafe { transmute(a) }
52605}
52606#[doc = "Vector reinterpret cast operation"]
52607#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p16)"]
52608#[inline(always)]
52609#[cfg(target_endian = "big")]
52610#[target_feature(enable = "neon")]
52611#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52612#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52613#[cfg_attr(
52614    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52615    assert_instr(nop)
52616)]
52617#[cfg_attr(
52618    not(target_arch = "arm"),
52619    stable(feature = "neon_intrinsics", since = "1.59.0")
52620)]
52621#[cfg_attr(
52622    target_arch = "arm",
52623    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52624)]
52625pub fn vreinterpret_u8_p16(a: poly16x4_t) -> uint8x8_t {
52626    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52627    unsafe {
52628        let ret_val: uint8x8_t = transmute(a);
52629        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52630    }
52631}
52632#[doc = "Vector reinterpret cast operation"]
52633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p16)"]
52634#[inline(always)]
52635#[cfg(target_endian = "little")]
52636#[target_feature(enable = "neon")]
52637#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52638#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52639#[cfg_attr(
52640    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52641    assert_instr(nop)
52642)]
52643#[cfg_attr(
52644    not(target_arch = "arm"),
52645    stable(feature = "neon_intrinsics", since = "1.59.0")
52646)]
52647#[cfg_attr(
52648    target_arch = "arm",
52649    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52650)]
52651pub fn vreinterpret_u16_p16(a: poly16x4_t) -> uint16x4_t {
52652    unsafe { transmute(a) }
52653}
52654#[doc = "Vector reinterpret cast operation"]
52655#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p16)"]
52656#[inline(always)]
52657#[cfg(target_endian = "big")]
52658#[target_feature(enable = "neon")]
52659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52660#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52661#[cfg_attr(
52662    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52663    assert_instr(nop)
52664)]
52665#[cfg_attr(
52666    not(target_arch = "arm"),
52667    stable(feature = "neon_intrinsics", since = "1.59.0")
52668)]
52669#[cfg_attr(
52670    target_arch = "arm",
52671    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52672)]
52673pub fn vreinterpret_u16_p16(a: poly16x4_t) -> uint16x4_t {
52674    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52675    unsafe {
52676        let ret_val: uint16x4_t = transmute(a);
52677        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52678    }
52679}
52680#[doc = "Vector reinterpret cast operation"]
52681#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p16)"]
52682#[inline(always)]
52683#[cfg(target_endian = "little")]
52684#[target_feature(enable = "neon")]
52685#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52686#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52687#[cfg_attr(
52688    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52689    assert_instr(nop)
52690)]
52691#[cfg_attr(
52692    not(target_arch = "arm"),
52693    stable(feature = "neon_intrinsics", since = "1.59.0")
52694)]
52695#[cfg_attr(
52696    target_arch = "arm",
52697    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52698)]
52699pub fn vreinterpret_u32_p16(a: poly16x4_t) -> uint32x2_t {
52700    unsafe { transmute(a) }
52701}
52702#[doc = "Vector reinterpret cast operation"]
52703#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p16)"]
52704#[inline(always)]
52705#[cfg(target_endian = "big")]
52706#[target_feature(enable = "neon")]
52707#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52708#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52709#[cfg_attr(
52710    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52711    assert_instr(nop)
52712)]
52713#[cfg_attr(
52714    not(target_arch = "arm"),
52715    stable(feature = "neon_intrinsics", since = "1.59.0")
52716)]
52717#[cfg_attr(
52718    target_arch = "arm",
52719    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52720)]
52721pub fn vreinterpret_u32_p16(a: poly16x4_t) -> uint32x2_t {
52722    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52723    unsafe {
52724        let ret_val: uint32x2_t = transmute(a);
52725        simd_shuffle!(ret_val, ret_val, [1, 0])
52726    }
52727}
52728#[doc = "Vector reinterpret cast operation"]
52729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p16)"]
52730#[inline(always)]
52731#[cfg(target_endian = "little")]
52732#[target_feature(enable = "neon")]
52733#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52734#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52735#[cfg_attr(
52736    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52737    assert_instr(nop)
52738)]
52739#[cfg_attr(
52740    not(target_arch = "arm"),
52741    stable(feature = "neon_intrinsics", since = "1.59.0")
52742)]
52743#[cfg_attr(
52744    target_arch = "arm",
52745    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52746)]
52747pub fn vreinterpret_u64_p16(a: poly16x4_t) -> uint64x1_t {
52748    unsafe { transmute(a) }
52749}
52750#[doc = "Vector reinterpret cast operation"]
52751#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p16)"]
52752#[inline(always)]
52753#[cfg(target_endian = "big")]
52754#[target_feature(enable = "neon")]
52755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52756#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52757#[cfg_attr(
52758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52759    assert_instr(nop)
52760)]
52761#[cfg_attr(
52762    not(target_arch = "arm"),
52763    stable(feature = "neon_intrinsics", since = "1.59.0")
52764)]
52765#[cfg_attr(
52766    target_arch = "arm",
52767    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52768)]
52769pub fn vreinterpret_u64_p16(a: poly16x4_t) -> uint64x1_t {
52770    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52771    unsafe { transmute(a) }
52772}
52773#[doc = "Vector reinterpret cast operation"]
52774#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p16)"]
52775#[inline(always)]
52776#[cfg(target_endian = "little")]
52777#[target_feature(enable = "neon")]
52778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52780#[cfg_attr(
52781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52782    assert_instr(nop)
52783)]
52784#[cfg_attr(
52785    not(target_arch = "arm"),
52786    stable(feature = "neon_intrinsics", since = "1.59.0")
52787)]
52788#[cfg_attr(
52789    target_arch = "arm",
52790    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52791)]
52792pub fn vreinterpret_p8_p16(a: poly16x4_t) -> poly8x8_t {
52793    unsafe { transmute(a) }
52794}
52795#[doc = "Vector reinterpret cast operation"]
52796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p16)"]
52797#[inline(always)]
52798#[cfg(target_endian = "big")]
52799#[target_feature(enable = "neon")]
52800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52802#[cfg_attr(
52803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52804    assert_instr(nop)
52805)]
52806#[cfg_attr(
52807    not(target_arch = "arm"),
52808    stable(feature = "neon_intrinsics", since = "1.59.0")
52809)]
52810#[cfg_attr(
52811    target_arch = "arm",
52812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52813)]
52814pub fn vreinterpret_p8_p16(a: poly16x4_t) -> poly8x8_t {
52815    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
52816    unsafe {
52817        let ret_val: poly8x8_t = transmute(a);
52818        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52819    }
52820}
52821#[doc = "Vector reinterpret cast operation"]
52822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p16)"]
52823#[inline(always)]
52824#[cfg(target_endian = "little")]
52825#[target_feature(enable = "neon")]
52826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52827#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52828#[cfg_attr(
52829    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52830    assert_instr(nop)
52831)]
52832#[cfg_attr(
52833    not(target_arch = "arm"),
52834    stable(feature = "neon_intrinsics", since = "1.59.0")
52835)]
52836#[cfg_attr(
52837    target_arch = "arm",
52838    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52839)]
52840pub fn vreinterpretq_f32_p16(a: poly16x8_t) -> float32x4_t {
52841    unsafe { transmute(a) }
52842}
52843#[doc = "Vector reinterpret cast operation"]
52844#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p16)"]
52845#[inline(always)]
52846#[cfg(target_endian = "big")]
52847#[target_feature(enable = "neon")]
52848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52850#[cfg_attr(
52851    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52852    assert_instr(nop)
52853)]
52854#[cfg_attr(
52855    not(target_arch = "arm"),
52856    stable(feature = "neon_intrinsics", since = "1.59.0")
52857)]
52858#[cfg_attr(
52859    target_arch = "arm",
52860    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52861)]
52862pub fn vreinterpretq_f32_p16(a: poly16x8_t) -> float32x4_t {
52863    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
52864    unsafe {
52865        let ret_val: float32x4_t = transmute(a);
52866        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
52867    }
52868}
52869#[doc = "Vector reinterpret cast operation"]
52870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p16)"]
52871#[inline(always)]
52872#[cfg(target_endian = "little")]
52873#[target_feature(enable = "neon")]
52874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52876#[cfg_attr(
52877    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52878    assert_instr(nop)
52879)]
52880#[cfg_attr(
52881    not(target_arch = "arm"),
52882    stable(feature = "neon_intrinsics", since = "1.59.0")
52883)]
52884#[cfg_attr(
52885    target_arch = "arm",
52886    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52887)]
52888pub fn vreinterpretq_s8_p16(a: poly16x8_t) -> int8x16_t {
52889    unsafe { transmute(a) }
52890}
52891#[doc = "Vector reinterpret cast operation"]
52892#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p16)"]
52893#[inline(always)]
52894#[cfg(target_endian = "big")]
52895#[target_feature(enable = "neon")]
52896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52898#[cfg_attr(
52899    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52900    assert_instr(nop)
52901)]
52902#[cfg_attr(
52903    not(target_arch = "arm"),
52904    stable(feature = "neon_intrinsics", since = "1.59.0")
52905)]
52906#[cfg_attr(
52907    target_arch = "arm",
52908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52909)]
52910pub fn vreinterpretq_s8_p16(a: poly16x8_t) -> int8x16_t {
52911    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
52912    unsafe {
52913        let ret_val: int8x16_t = transmute(a);
52914        simd_shuffle!(
52915            ret_val,
52916            ret_val,
52917            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
52918        )
52919    }
52920}
52921#[doc = "Vector reinterpret cast operation"]
52922#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p16)"]
52923#[inline(always)]
52924#[cfg(target_endian = "little")]
52925#[target_feature(enable = "neon")]
52926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52927#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52928#[cfg_attr(
52929    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52930    assert_instr(nop)
52931)]
52932#[cfg_attr(
52933    not(target_arch = "arm"),
52934    stable(feature = "neon_intrinsics", since = "1.59.0")
52935)]
52936#[cfg_attr(
52937    target_arch = "arm",
52938    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52939)]
52940pub fn vreinterpretq_s16_p16(a: poly16x8_t) -> int16x8_t {
52941    unsafe { transmute(a) }
52942}
52943#[doc = "Vector reinterpret cast operation"]
52944#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p16)"]
52945#[inline(always)]
52946#[cfg(target_endian = "big")]
52947#[target_feature(enable = "neon")]
52948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52950#[cfg_attr(
52951    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52952    assert_instr(nop)
52953)]
52954#[cfg_attr(
52955    not(target_arch = "arm"),
52956    stable(feature = "neon_intrinsics", since = "1.59.0")
52957)]
52958#[cfg_attr(
52959    target_arch = "arm",
52960    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52961)]
52962pub fn vreinterpretq_s16_p16(a: poly16x8_t) -> int16x8_t {
52963    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
52964    unsafe {
52965        let ret_val: int16x8_t = transmute(a);
52966        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
52967    }
52968}
52969#[doc = "Vector reinterpret cast operation"]
52970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p16)"]
52971#[inline(always)]
52972#[cfg(target_endian = "little")]
52973#[target_feature(enable = "neon")]
52974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52975#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52976#[cfg_attr(
52977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
52978    assert_instr(nop)
52979)]
52980#[cfg_attr(
52981    not(target_arch = "arm"),
52982    stable(feature = "neon_intrinsics", since = "1.59.0")
52983)]
52984#[cfg_attr(
52985    target_arch = "arm",
52986    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
52987)]
52988pub fn vreinterpretq_s32_p16(a: poly16x8_t) -> int32x4_t {
52989    unsafe { transmute(a) }
52990}
52991#[doc = "Vector reinterpret cast operation"]
52992#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p16)"]
52993#[inline(always)]
52994#[cfg(target_endian = "big")]
52995#[target_feature(enable = "neon")]
52996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
52997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
52998#[cfg_attr(
52999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53000    assert_instr(nop)
53001)]
53002#[cfg_attr(
53003    not(target_arch = "arm"),
53004    stable(feature = "neon_intrinsics", since = "1.59.0")
53005)]
53006#[cfg_attr(
53007    target_arch = "arm",
53008    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53009)]
53010pub fn vreinterpretq_s32_p16(a: poly16x8_t) -> int32x4_t {
53011    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53012    unsafe {
53013        let ret_val: int32x4_t = transmute(a);
53014        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53015    }
53016}
53017#[doc = "Vector reinterpret cast operation"]
53018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p16)"]
53019#[inline(always)]
53020#[cfg(target_endian = "little")]
53021#[target_feature(enable = "neon")]
53022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53024#[cfg_attr(
53025    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53026    assert_instr(nop)
53027)]
53028#[cfg_attr(
53029    not(target_arch = "arm"),
53030    stable(feature = "neon_intrinsics", since = "1.59.0")
53031)]
53032#[cfg_attr(
53033    target_arch = "arm",
53034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53035)]
53036pub fn vreinterpretq_s64_p16(a: poly16x8_t) -> int64x2_t {
53037    unsafe { transmute(a) }
53038}
53039#[doc = "Vector reinterpret cast operation"]
53040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p16)"]
53041#[inline(always)]
53042#[cfg(target_endian = "big")]
53043#[target_feature(enable = "neon")]
53044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53045#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53046#[cfg_attr(
53047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53048    assert_instr(nop)
53049)]
53050#[cfg_attr(
53051    not(target_arch = "arm"),
53052    stable(feature = "neon_intrinsics", since = "1.59.0")
53053)]
53054#[cfg_attr(
53055    target_arch = "arm",
53056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53057)]
53058pub fn vreinterpretq_s64_p16(a: poly16x8_t) -> int64x2_t {
53059    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53060    unsafe {
53061        let ret_val: int64x2_t = transmute(a);
53062        simd_shuffle!(ret_val, ret_val, [1, 0])
53063    }
53064}
53065#[doc = "Vector reinterpret cast operation"]
53066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p16)"]
53067#[inline(always)]
53068#[cfg(target_endian = "little")]
53069#[target_feature(enable = "neon")]
53070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53071#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53072#[cfg_attr(
53073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53074    assert_instr(nop)
53075)]
53076#[cfg_attr(
53077    not(target_arch = "arm"),
53078    stable(feature = "neon_intrinsics", since = "1.59.0")
53079)]
53080#[cfg_attr(
53081    target_arch = "arm",
53082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53083)]
53084pub fn vreinterpretq_u8_p16(a: poly16x8_t) -> uint8x16_t {
53085    unsafe { transmute(a) }
53086}
53087#[doc = "Vector reinterpret cast operation"]
53088#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p16)"]
53089#[inline(always)]
53090#[cfg(target_endian = "big")]
53091#[target_feature(enable = "neon")]
53092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53093#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53094#[cfg_attr(
53095    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53096    assert_instr(nop)
53097)]
53098#[cfg_attr(
53099    not(target_arch = "arm"),
53100    stable(feature = "neon_intrinsics", since = "1.59.0")
53101)]
53102#[cfg_attr(
53103    target_arch = "arm",
53104    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53105)]
53106pub fn vreinterpretq_u8_p16(a: poly16x8_t) -> uint8x16_t {
53107    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53108    unsafe {
53109        let ret_val: uint8x16_t = transmute(a);
53110        simd_shuffle!(
53111            ret_val,
53112            ret_val,
53113            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53114        )
53115    }
53116}
53117#[doc = "Vector reinterpret cast operation"]
53118#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p16)"]
53119#[inline(always)]
53120#[cfg(target_endian = "little")]
53121#[target_feature(enable = "neon")]
53122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53124#[cfg_attr(
53125    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53126    assert_instr(nop)
53127)]
53128#[cfg_attr(
53129    not(target_arch = "arm"),
53130    stable(feature = "neon_intrinsics", since = "1.59.0")
53131)]
53132#[cfg_attr(
53133    target_arch = "arm",
53134    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53135)]
53136pub fn vreinterpretq_u16_p16(a: poly16x8_t) -> uint16x8_t {
53137    unsafe { transmute(a) }
53138}
53139#[doc = "Vector reinterpret cast operation"]
53140#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p16)"]
53141#[inline(always)]
53142#[cfg(target_endian = "big")]
53143#[target_feature(enable = "neon")]
53144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53146#[cfg_attr(
53147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53148    assert_instr(nop)
53149)]
53150#[cfg_attr(
53151    not(target_arch = "arm"),
53152    stable(feature = "neon_intrinsics", since = "1.59.0")
53153)]
53154#[cfg_attr(
53155    target_arch = "arm",
53156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53157)]
53158pub fn vreinterpretq_u16_p16(a: poly16x8_t) -> uint16x8_t {
53159    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53160    unsafe {
53161        let ret_val: uint16x8_t = transmute(a);
53162        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53163    }
53164}
53165#[doc = "Vector reinterpret cast operation"]
53166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p16)"]
53167#[inline(always)]
53168#[cfg(target_endian = "little")]
53169#[target_feature(enable = "neon")]
53170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53171#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53172#[cfg_attr(
53173    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53174    assert_instr(nop)
53175)]
53176#[cfg_attr(
53177    not(target_arch = "arm"),
53178    stable(feature = "neon_intrinsics", since = "1.59.0")
53179)]
53180#[cfg_attr(
53181    target_arch = "arm",
53182    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53183)]
53184pub fn vreinterpretq_u32_p16(a: poly16x8_t) -> uint32x4_t {
53185    unsafe { transmute(a) }
53186}
53187#[doc = "Vector reinterpret cast operation"]
53188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p16)"]
53189#[inline(always)]
53190#[cfg(target_endian = "big")]
53191#[target_feature(enable = "neon")]
53192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53194#[cfg_attr(
53195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53196    assert_instr(nop)
53197)]
53198#[cfg_attr(
53199    not(target_arch = "arm"),
53200    stable(feature = "neon_intrinsics", since = "1.59.0")
53201)]
53202#[cfg_attr(
53203    target_arch = "arm",
53204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53205)]
53206pub fn vreinterpretq_u32_p16(a: poly16x8_t) -> uint32x4_t {
53207    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53208    unsafe {
53209        let ret_val: uint32x4_t = transmute(a);
53210        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53211    }
53212}
53213#[doc = "Vector reinterpret cast operation"]
53214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p16)"]
53215#[inline(always)]
53216#[cfg(target_endian = "little")]
53217#[target_feature(enable = "neon")]
53218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53220#[cfg_attr(
53221    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53222    assert_instr(nop)
53223)]
53224#[cfg_attr(
53225    not(target_arch = "arm"),
53226    stable(feature = "neon_intrinsics", since = "1.59.0")
53227)]
53228#[cfg_attr(
53229    target_arch = "arm",
53230    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53231)]
53232pub fn vreinterpretq_u64_p16(a: poly16x8_t) -> uint64x2_t {
53233    unsafe { transmute(a) }
53234}
53235#[doc = "Vector reinterpret cast operation"]
53236#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p16)"]
53237#[inline(always)]
53238#[cfg(target_endian = "big")]
53239#[target_feature(enable = "neon")]
53240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53242#[cfg_attr(
53243    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53244    assert_instr(nop)
53245)]
53246#[cfg_attr(
53247    not(target_arch = "arm"),
53248    stable(feature = "neon_intrinsics", since = "1.59.0")
53249)]
53250#[cfg_attr(
53251    target_arch = "arm",
53252    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53253)]
53254pub fn vreinterpretq_u64_p16(a: poly16x8_t) -> uint64x2_t {
53255    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53256    unsafe {
53257        let ret_val: uint64x2_t = transmute(a);
53258        simd_shuffle!(ret_val, ret_val, [1, 0])
53259    }
53260}
53261#[doc = "Vector reinterpret cast operation"]
53262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p16)"]
53263#[inline(always)]
53264#[cfg(target_endian = "little")]
53265#[target_feature(enable = "neon")]
53266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53268#[cfg_attr(
53269    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53270    assert_instr(nop)
53271)]
53272#[cfg_attr(
53273    not(target_arch = "arm"),
53274    stable(feature = "neon_intrinsics", since = "1.59.0")
53275)]
53276#[cfg_attr(
53277    target_arch = "arm",
53278    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53279)]
53280pub fn vreinterpretq_p8_p16(a: poly16x8_t) -> poly8x16_t {
53281    unsafe { transmute(a) }
53282}
53283#[doc = "Vector reinterpret cast operation"]
53284#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p16)"]
53285#[inline(always)]
53286#[cfg(target_endian = "big")]
53287#[target_feature(enable = "neon")]
53288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
53289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53290#[cfg_attr(
53291    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53292    assert_instr(nop)
53293)]
53294#[cfg_attr(
53295    not(target_arch = "arm"),
53296    stable(feature = "neon_intrinsics", since = "1.59.0")
53297)]
53298#[cfg_attr(
53299    target_arch = "arm",
53300    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53301)]
53302pub fn vreinterpretq_p8_p16(a: poly16x8_t) -> poly8x16_t {
53303    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53304    unsafe {
53305        let ret_val: poly8x16_t = transmute(a);
53306        simd_shuffle!(
53307            ret_val,
53308            ret_val,
53309            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53310        )
53311    }
53312}
53313#[doc = "Vector reinterpret cast operation"]
53314#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p128)"]
53315#[inline(always)]
53316#[cfg(target_endian = "little")]
53317#[target_feature(enable = "neon,aes")]
53318#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53320#[cfg_attr(
53321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53322    assert_instr(nop)
53323)]
53324#[cfg_attr(
53325    not(target_arch = "arm"),
53326    stable(feature = "neon_intrinsics", since = "1.59.0")
53327)]
53328#[cfg_attr(
53329    target_arch = "arm",
53330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53331)]
53332pub fn vreinterpretq_s8_p128(a: p128) -> int8x16_t {
53333    unsafe { transmute(a) }
53334}
53335#[doc = "Vector reinterpret cast operation"]
53336#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p128)"]
53337#[inline(always)]
53338#[cfg(target_endian = "big")]
53339#[target_feature(enable = "neon,aes")]
53340#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53342#[cfg_attr(
53343    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53344    assert_instr(nop)
53345)]
53346#[cfg_attr(
53347    not(target_arch = "arm"),
53348    stable(feature = "neon_intrinsics", since = "1.59.0")
53349)]
53350#[cfg_attr(
53351    target_arch = "arm",
53352    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53353)]
53354pub fn vreinterpretq_s8_p128(a: p128) -> int8x16_t {
53355    unsafe {
53356        let ret_val: int8x16_t = transmute(a);
53357        simd_shuffle!(
53358            ret_val,
53359            ret_val,
53360            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53361        )
53362    }
53363}
53364#[doc = "Vector reinterpret cast operation"]
53365#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p128)"]
53366#[inline(always)]
53367#[cfg(target_endian = "little")]
53368#[target_feature(enable = "neon,aes")]
53369#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53370#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53371#[cfg_attr(
53372    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53373    assert_instr(nop)
53374)]
53375#[cfg_attr(
53376    not(target_arch = "arm"),
53377    stable(feature = "neon_intrinsics", since = "1.59.0")
53378)]
53379#[cfg_attr(
53380    target_arch = "arm",
53381    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53382)]
53383pub fn vreinterpretq_s16_p128(a: p128) -> int16x8_t {
53384    unsafe { transmute(a) }
53385}
53386#[doc = "Vector reinterpret cast operation"]
53387#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p128)"]
53388#[inline(always)]
53389#[cfg(target_endian = "big")]
53390#[target_feature(enable = "neon,aes")]
53391#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53392#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53393#[cfg_attr(
53394    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53395    assert_instr(nop)
53396)]
53397#[cfg_attr(
53398    not(target_arch = "arm"),
53399    stable(feature = "neon_intrinsics", since = "1.59.0")
53400)]
53401#[cfg_attr(
53402    target_arch = "arm",
53403    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53404)]
53405pub fn vreinterpretq_s16_p128(a: p128) -> int16x8_t {
53406    unsafe {
53407        let ret_val: int16x8_t = transmute(a);
53408        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53409    }
53410}
53411#[doc = "Vector reinterpret cast operation"]
53412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p128)"]
53413#[inline(always)]
53414#[cfg(target_endian = "little")]
53415#[target_feature(enable = "neon,aes")]
53416#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53418#[cfg_attr(
53419    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53420    assert_instr(nop)
53421)]
53422#[cfg_attr(
53423    not(target_arch = "arm"),
53424    stable(feature = "neon_intrinsics", since = "1.59.0")
53425)]
53426#[cfg_attr(
53427    target_arch = "arm",
53428    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53429)]
53430pub fn vreinterpretq_s32_p128(a: p128) -> int32x4_t {
53431    unsafe { transmute(a) }
53432}
53433#[doc = "Vector reinterpret cast operation"]
53434#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p128)"]
53435#[inline(always)]
53436#[cfg(target_endian = "big")]
53437#[target_feature(enable = "neon,aes")]
53438#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53440#[cfg_attr(
53441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53442    assert_instr(nop)
53443)]
53444#[cfg_attr(
53445    not(target_arch = "arm"),
53446    stable(feature = "neon_intrinsics", since = "1.59.0")
53447)]
53448#[cfg_attr(
53449    target_arch = "arm",
53450    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53451)]
53452pub fn vreinterpretq_s32_p128(a: p128) -> int32x4_t {
53453    unsafe {
53454        let ret_val: int32x4_t = transmute(a);
53455        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53456    }
53457}
53458#[doc = "Vector reinterpret cast operation"]
53459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p128)"]
53460#[inline(always)]
53461#[cfg(target_endian = "little")]
53462#[target_feature(enable = "neon,aes")]
53463#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53465#[cfg_attr(
53466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53467    assert_instr(nop)
53468)]
53469#[cfg_attr(
53470    not(target_arch = "arm"),
53471    stable(feature = "neon_intrinsics", since = "1.59.0")
53472)]
53473#[cfg_attr(
53474    target_arch = "arm",
53475    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53476)]
53477pub fn vreinterpretq_s64_p128(a: p128) -> int64x2_t {
53478    unsafe { transmute(a) }
53479}
53480#[doc = "Vector reinterpret cast operation"]
53481#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p128)"]
53482#[inline(always)]
53483#[cfg(target_endian = "big")]
53484#[target_feature(enable = "neon,aes")]
53485#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53486#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53487#[cfg_attr(
53488    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53489    assert_instr(nop)
53490)]
53491#[cfg_attr(
53492    not(target_arch = "arm"),
53493    stable(feature = "neon_intrinsics", since = "1.59.0")
53494)]
53495#[cfg_attr(
53496    target_arch = "arm",
53497    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53498)]
53499pub fn vreinterpretq_s64_p128(a: p128) -> int64x2_t {
53500    unsafe {
53501        let ret_val: int64x2_t = transmute(a);
53502        simd_shuffle!(ret_val, ret_val, [1, 0])
53503    }
53504}
53505#[doc = "Vector reinterpret cast operation"]
53506#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p128)"]
53507#[inline(always)]
53508#[cfg(target_endian = "little")]
53509#[target_feature(enable = "neon,aes")]
53510#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53511#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53512#[cfg_attr(
53513    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53514    assert_instr(nop)
53515)]
53516#[cfg_attr(
53517    not(target_arch = "arm"),
53518    stable(feature = "neon_intrinsics", since = "1.59.0")
53519)]
53520#[cfg_attr(
53521    target_arch = "arm",
53522    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53523)]
53524pub fn vreinterpretq_u8_p128(a: p128) -> uint8x16_t {
53525    unsafe { transmute(a) }
53526}
53527#[doc = "Vector reinterpret cast operation"]
53528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p128)"]
53529#[inline(always)]
53530#[cfg(target_endian = "big")]
53531#[target_feature(enable = "neon,aes")]
53532#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53533#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53534#[cfg_attr(
53535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53536    assert_instr(nop)
53537)]
53538#[cfg_attr(
53539    not(target_arch = "arm"),
53540    stable(feature = "neon_intrinsics", since = "1.59.0")
53541)]
53542#[cfg_attr(
53543    target_arch = "arm",
53544    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53545)]
53546pub fn vreinterpretq_u8_p128(a: p128) -> uint8x16_t {
53547    unsafe {
53548        let ret_val: uint8x16_t = transmute(a);
53549        simd_shuffle!(
53550            ret_val,
53551            ret_val,
53552            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53553        )
53554    }
53555}
53556#[doc = "Vector reinterpret cast operation"]
53557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p128)"]
53558#[inline(always)]
53559#[cfg(target_endian = "little")]
53560#[target_feature(enable = "neon,aes")]
53561#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53562#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53563#[cfg_attr(
53564    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53565    assert_instr(nop)
53566)]
53567#[cfg_attr(
53568    not(target_arch = "arm"),
53569    stable(feature = "neon_intrinsics", since = "1.59.0")
53570)]
53571#[cfg_attr(
53572    target_arch = "arm",
53573    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53574)]
53575pub fn vreinterpretq_u16_p128(a: p128) -> uint16x8_t {
53576    unsafe { transmute(a) }
53577}
53578#[doc = "Vector reinterpret cast operation"]
53579#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p128)"]
53580#[inline(always)]
53581#[cfg(target_endian = "big")]
53582#[target_feature(enable = "neon,aes")]
53583#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53584#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53585#[cfg_attr(
53586    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53587    assert_instr(nop)
53588)]
53589#[cfg_attr(
53590    not(target_arch = "arm"),
53591    stable(feature = "neon_intrinsics", since = "1.59.0")
53592)]
53593#[cfg_attr(
53594    target_arch = "arm",
53595    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53596)]
53597pub fn vreinterpretq_u16_p128(a: p128) -> uint16x8_t {
53598    unsafe {
53599        let ret_val: uint16x8_t = transmute(a);
53600        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53601    }
53602}
53603#[doc = "Vector reinterpret cast operation"]
53604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p128)"]
53605#[inline(always)]
53606#[cfg(target_endian = "little")]
53607#[target_feature(enable = "neon,aes")]
53608#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53610#[cfg_attr(
53611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53612    assert_instr(nop)
53613)]
53614#[cfg_attr(
53615    not(target_arch = "arm"),
53616    stable(feature = "neon_intrinsics", since = "1.59.0")
53617)]
53618#[cfg_attr(
53619    target_arch = "arm",
53620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53621)]
53622pub fn vreinterpretq_u32_p128(a: p128) -> uint32x4_t {
53623    unsafe { transmute(a) }
53624}
53625#[doc = "Vector reinterpret cast operation"]
53626#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p128)"]
53627#[inline(always)]
53628#[cfg(target_endian = "big")]
53629#[target_feature(enable = "neon,aes")]
53630#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53631#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53632#[cfg_attr(
53633    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53634    assert_instr(nop)
53635)]
53636#[cfg_attr(
53637    not(target_arch = "arm"),
53638    stable(feature = "neon_intrinsics", since = "1.59.0")
53639)]
53640#[cfg_attr(
53641    target_arch = "arm",
53642    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53643)]
53644pub fn vreinterpretq_u32_p128(a: p128) -> uint32x4_t {
53645    unsafe {
53646        let ret_val: uint32x4_t = transmute(a);
53647        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
53648    }
53649}
53650#[doc = "Vector reinterpret cast operation"]
53651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p128)"]
53652#[inline(always)]
53653#[cfg(target_endian = "little")]
53654#[target_feature(enable = "neon,aes")]
53655#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53657#[cfg_attr(
53658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53659    assert_instr(nop)
53660)]
53661#[cfg_attr(
53662    not(target_arch = "arm"),
53663    stable(feature = "neon_intrinsics", since = "1.59.0")
53664)]
53665#[cfg_attr(
53666    target_arch = "arm",
53667    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53668)]
53669pub fn vreinterpretq_u64_p128(a: p128) -> uint64x2_t {
53670    unsafe { transmute(a) }
53671}
53672#[doc = "Vector reinterpret cast operation"]
53673#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p128)"]
53674#[inline(always)]
53675#[cfg(target_endian = "big")]
53676#[target_feature(enable = "neon,aes")]
53677#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53678#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53679#[cfg_attr(
53680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53681    assert_instr(nop)
53682)]
53683#[cfg_attr(
53684    not(target_arch = "arm"),
53685    stable(feature = "neon_intrinsics", since = "1.59.0")
53686)]
53687#[cfg_attr(
53688    target_arch = "arm",
53689    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53690)]
53691pub fn vreinterpretq_u64_p128(a: p128) -> uint64x2_t {
53692    unsafe {
53693        let ret_val: uint64x2_t = transmute(a);
53694        simd_shuffle!(ret_val, ret_val, [1, 0])
53695    }
53696}
53697#[doc = "Vector reinterpret cast operation"]
53698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p128)"]
53699#[inline(always)]
53700#[cfg(target_endian = "little")]
53701#[target_feature(enable = "neon,aes")]
53702#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53703#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53704#[cfg_attr(
53705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53706    assert_instr(nop)
53707)]
53708#[cfg_attr(
53709    not(target_arch = "arm"),
53710    stable(feature = "neon_intrinsics", since = "1.59.0")
53711)]
53712#[cfg_attr(
53713    target_arch = "arm",
53714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53715)]
53716pub fn vreinterpretq_p8_p128(a: p128) -> poly8x16_t {
53717    unsafe { transmute(a) }
53718}
53719#[doc = "Vector reinterpret cast operation"]
53720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p128)"]
53721#[inline(always)]
53722#[cfg(target_endian = "big")]
53723#[target_feature(enable = "neon,aes")]
53724#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53726#[cfg_attr(
53727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53728    assert_instr(nop)
53729)]
53730#[cfg_attr(
53731    not(target_arch = "arm"),
53732    stable(feature = "neon_intrinsics", since = "1.59.0")
53733)]
53734#[cfg_attr(
53735    target_arch = "arm",
53736    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53737)]
53738pub fn vreinterpretq_p8_p128(a: p128) -> poly8x16_t {
53739    unsafe {
53740        let ret_val: poly8x16_t = transmute(a);
53741        simd_shuffle!(
53742            ret_val,
53743            ret_val,
53744            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
53745        )
53746    }
53747}
53748#[doc = "Vector reinterpret cast operation"]
53749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p128)"]
53750#[inline(always)]
53751#[cfg(target_endian = "little")]
53752#[target_feature(enable = "neon,aes")]
53753#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53754#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53755#[cfg_attr(
53756    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53757    assert_instr(nop)
53758)]
53759#[cfg_attr(
53760    not(target_arch = "arm"),
53761    stable(feature = "neon_intrinsics", since = "1.59.0")
53762)]
53763#[cfg_attr(
53764    target_arch = "arm",
53765    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53766)]
53767pub fn vreinterpretq_p16_p128(a: p128) -> poly16x8_t {
53768    unsafe { transmute(a) }
53769}
53770#[doc = "Vector reinterpret cast operation"]
53771#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p128)"]
53772#[inline(always)]
53773#[cfg(target_endian = "big")]
53774#[target_feature(enable = "neon,aes")]
53775#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53776#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53777#[cfg_attr(
53778    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53779    assert_instr(nop)
53780)]
53781#[cfg_attr(
53782    not(target_arch = "arm"),
53783    stable(feature = "neon_intrinsics", since = "1.59.0")
53784)]
53785#[cfg_attr(
53786    target_arch = "arm",
53787    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53788)]
53789pub fn vreinterpretq_p16_p128(a: p128) -> poly16x8_t {
53790    unsafe {
53791        let ret_val: poly16x8_t = transmute(a);
53792        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
53793    }
53794}
53795#[doc = "Vector reinterpret cast operation"]
53796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p128)"]
53797#[inline(always)]
53798#[cfg(target_endian = "little")]
53799#[target_feature(enable = "neon,aes")]
53800#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53802#[cfg_attr(
53803    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53804    assert_instr(nop)
53805)]
53806#[cfg_attr(
53807    not(target_arch = "arm"),
53808    stable(feature = "neon_intrinsics", since = "1.59.0")
53809)]
53810#[cfg_attr(
53811    target_arch = "arm",
53812    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53813)]
53814pub fn vreinterpretq_p64_p128(a: p128) -> poly64x2_t {
53815    unsafe { transmute(a) }
53816}
53817#[doc = "Vector reinterpret cast operation"]
53818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p128)"]
53819#[inline(always)]
53820#[cfg(target_endian = "big")]
53821#[target_feature(enable = "neon,aes")]
53822#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53824#[cfg_attr(
53825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53826    assert_instr(nop)
53827)]
53828#[cfg_attr(
53829    not(target_arch = "arm"),
53830    stable(feature = "neon_intrinsics", since = "1.59.0")
53831)]
53832#[cfg_attr(
53833    target_arch = "arm",
53834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53835)]
53836pub fn vreinterpretq_p64_p128(a: p128) -> poly64x2_t {
53837    unsafe {
53838        let ret_val: poly64x2_t = transmute(a);
53839        simd_shuffle!(ret_val, ret_val, [1, 0])
53840    }
53841}
53842#[doc = "Vector reinterpret cast operation"]
53843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s8)"]
53844#[inline(always)]
53845#[cfg(target_endian = "little")]
53846#[target_feature(enable = "neon,aes")]
53847#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53849#[cfg_attr(
53850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53851    assert_instr(nop)
53852)]
53853#[cfg_attr(
53854    not(target_arch = "arm"),
53855    stable(feature = "neon_intrinsics", since = "1.59.0")
53856)]
53857#[cfg_attr(
53858    target_arch = "arm",
53859    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53860)]
53861pub fn vreinterpret_p64_s8(a: int8x8_t) -> poly64x1_t {
53862    unsafe { transmute(a) }
53863}
53864#[doc = "Vector reinterpret cast operation"]
53865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s8)"]
53866#[inline(always)]
53867#[cfg(target_endian = "big")]
53868#[target_feature(enable = "neon,aes")]
53869#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53870#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53871#[cfg_attr(
53872    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53873    assert_instr(nop)
53874)]
53875#[cfg_attr(
53876    not(target_arch = "arm"),
53877    stable(feature = "neon_intrinsics", since = "1.59.0")
53878)]
53879#[cfg_attr(
53880    target_arch = "arm",
53881    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53882)]
53883pub fn vreinterpret_p64_s8(a: int8x8_t) -> poly64x1_t {
53884    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
53885    unsafe { transmute(a) }
53886}
53887#[doc = "Vector reinterpret cast operation"]
53888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s8)"]
53889#[inline(always)]
53890#[cfg(target_endian = "little")]
53891#[target_feature(enable = "neon,aes")]
53892#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53893#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53894#[cfg_attr(
53895    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53896    assert_instr(nop)
53897)]
53898#[cfg_attr(
53899    not(target_arch = "arm"),
53900    stable(feature = "neon_intrinsics", since = "1.59.0")
53901)]
53902#[cfg_attr(
53903    target_arch = "arm",
53904    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53905)]
53906pub fn vreinterpretq_p128_s8(a: int8x16_t) -> p128 {
53907    unsafe { transmute(a) }
53908}
53909#[doc = "Vector reinterpret cast operation"]
53910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s8)"]
53911#[inline(always)]
53912#[cfg(target_endian = "big")]
53913#[target_feature(enable = "neon,aes")]
53914#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53916#[cfg_attr(
53917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53918    assert_instr(nop)
53919)]
53920#[cfg_attr(
53921    not(target_arch = "arm"),
53922    stable(feature = "neon_intrinsics", since = "1.59.0")
53923)]
53924#[cfg_attr(
53925    target_arch = "arm",
53926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53927)]
53928pub fn vreinterpretq_p128_s8(a: int8x16_t) -> p128 {
53929    let a: int8x16_t =
53930        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
53931    unsafe { transmute(a) }
53932}
53933#[doc = "Vector reinterpret cast operation"]
53934#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s8)"]
53935#[inline(always)]
53936#[cfg(target_endian = "little")]
53937#[target_feature(enable = "neon,aes")]
53938#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53940#[cfg_attr(
53941    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53942    assert_instr(nop)
53943)]
53944#[cfg_attr(
53945    not(target_arch = "arm"),
53946    stable(feature = "neon_intrinsics", since = "1.59.0")
53947)]
53948#[cfg_attr(
53949    target_arch = "arm",
53950    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53951)]
53952pub fn vreinterpretq_p64_s8(a: int8x16_t) -> poly64x2_t {
53953    unsafe { transmute(a) }
53954}
53955#[doc = "Vector reinterpret cast operation"]
53956#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s8)"]
53957#[inline(always)]
53958#[cfg(target_endian = "big")]
53959#[target_feature(enable = "neon,aes")]
53960#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53962#[cfg_attr(
53963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53964    assert_instr(nop)
53965)]
53966#[cfg_attr(
53967    not(target_arch = "arm"),
53968    stable(feature = "neon_intrinsics", since = "1.59.0")
53969)]
53970#[cfg_attr(
53971    target_arch = "arm",
53972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
53973)]
53974pub fn vreinterpretq_p64_s8(a: int8x16_t) -> poly64x2_t {
53975    let a: int8x16_t =
53976        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
53977    unsafe {
53978        let ret_val: poly64x2_t = transmute(a);
53979        simd_shuffle!(ret_val, ret_val, [1, 0])
53980    }
53981}
53982#[doc = "Vector reinterpret cast operation"]
53983#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s16)"]
53984#[inline(always)]
53985#[cfg(target_endian = "little")]
53986#[target_feature(enable = "neon,aes")]
53987#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
53988#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
53989#[cfg_attr(
53990    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
53991    assert_instr(nop)
53992)]
53993#[cfg_attr(
53994    not(target_arch = "arm"),
53995    stable(feature = "neon_intrinsics", since = "1.59.0")
53996)]
53997#[cfg_attr(
53998    target_arch = "arm",
53999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54000)]
54001pub fn vreinterpret_p64_s16(a: int16x4_t) -> poly64x1_t {
54002    unsafe { transmute(a) }
54003}
54004#[doc = "Vector reinterpret cast operation"]
54005#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s16)"]
54006#[inline(always)]
54007#[cfg(target_endian = "big")]
54008#[target_feature(enable = "neon,aes")]
54009#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54010#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54011#[cfg_attr(
54012    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54013    assert_instr(nop)
54014)]
54015#[cfg_attr(
54016    not(target_arch = "arm"),
54017    stable(feature = "neon_intrinsics", since = "1.59.0")
54018)]
54019#[cfg_attr(
54020    target_arch = "arm",
54021    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54022)]
54023pub fn vreinterpret_p64_s16(a: int16x4_t) -> poly64x1_t {
54024    let a: int16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54025    unsafe { transmute(a) }
54026}
54027#[doc = "Vector reinterpret cast operation"]
54028#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s16)"]
54029#[inline(always)]
54030#[cfg(target_endian = "little")]
54031#[target_feature(enable = "neon,aes")]
54032#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54033#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54034#[cfg_attr(
54035    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54036    assert_instr(nop)
54037)]
54038#[cfg_attr(
54039    not(target_arch = "arm"),
54040    stable(feature = "neon_intrinsics", since = "1.59.0")
54041)]
54042#[cfg_attr(
54043    target_arch = "arm",
54044    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54045)]
54046pub fn vreinterpretq_p128_s16(a: int16x8_t) -> p128 {
54047    unsafe { transmute(a) }
54048}
54049#[doc = "Vector reinterpret cast operation"]
54050#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s16)"]
54051#[inline(always)]
54052#[cfg(target_endian = "big")]
54053#[target_feature(enable = "neon,aes")]
54054#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54055#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54056#[cfg_attr(
54057    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54058    assert_instr(nop)
54059)]
54060#[cfg_attr(
54061    not(target_arch = "arm"),
54062    stable(feature = "neon_intrinsics", since = "1.59.0")
54063)]
54064#[cfg_attr(
54065    target_arch = "arm",
54066    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54067)]
54068pub fn vreinterpretq_p128_s16(a: int16x8_t) -> p128 {
54069    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54070    unsafe { transmute(a) }
54071}
54072#[doc = "Vector reinterpret cast operation"]
54073#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s16)"]
54074#[inline(always)]
54075#[cfg(target_endian = "little")]
54076#[target_feature(enable = "neon,aes")]
54077#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54078#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54079#[cfg_attr(
54080    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54081    assert_instr(nop)
54082)]
54083#[cfg_attr(
54084    not(target_arch = "arm"),
54085    stable(feature = "neon_intrinsics", since = "1.59.0")
54086)]
54087#[cfg_attr(
54088    target_arch = "arm",
54089    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54090)]
54091pub fn vreinterpretq_p64_s16(a: int16x8_t) -> poly64x2_t {
54092    unsafe { transmute(a) }
54093}
54094#[doc = "Vector reinterpret cast operation"]
54095#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s16)"]
54096#[inline(always)]
54097#[cfg(target_endian = "big")]
54098#[target_feature(enable = "neon,aes")]
54099#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54100#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54101#[cfg_attr(
54102    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54103    assert_instr(nop)
54104)]
54105#[cfg_attr(
54106    not(target_arch = "arm"),
54107    stable(feature = "neon_intrinsics", since = "1.59.0")
54108)]
54109#[cfg_attr(
54110    target_arch = "arm",
54111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54112)]
54113pub fn vreinterpretq_p64_s16(a: int16x8_t) -> poly64x2_t {
54114    let a: int16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54115    unsafe {
54116        let ret_val: poly64x2_t = transmute(a);
54117        simd_shuffle!(ret_val, ret_val, [1, 0])
54118    }
54119}
54120#[doc = "Vector reinterpret cast operation"]
54121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s32)"]
54122#[inline(always)]
54123#[cfg(target_endian = "little")]
54124#[target_feature(enable = "neon,aes")]
54125#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54126#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54127#[cfg_attr(
54128    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54129    assert_instr(nop)
54130)]
54131#[cfg_attr(
54132    not(target_arch = "arm"),
54133    stable(feature = "neon_intrinsics", since = "1.59.0")
54134)]
54135#[cfg_attr(
54136    target_arch = "arm",
54137    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54138)]
54139pub fn vreinterpret_p64_s32(a: int32x2_t) -> poly64x1_t {
54140    unsafe { transmute(a) }
54141}
54142#[doc = "Vector reinterpret cast operation"]
54143#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s32)"]
54144#[inline(always)]
54145#[cfg(target_endian = "big")]
54146#[target_feature(enable = "neon,aes")]
54147#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54148#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54149#[cfg_attr(
54150    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54151    assert_instr(nop)
54152)]
54153#[cfg_attr(
54154    not(target_arch = "arm"),
54155    stable(feature = "neon_intrinsics", since = "1.59.0")
54156)]
54157#[cfg_attr(
54158    target_arch = "arm",
54159    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54160)]
54161pub fn vreinterpret_p64_s32(a: int32x2_t) -> poly64x1_t {
54162    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
54163    unsafe { transmute(a) }
54164}
54165#[doc = "Vector reinterpret cast operation"]
54166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s32)"]
54167#[inline(always)]
54168#[cfg(target_endian = "little")]
54169#[target_feature(enable = "neon,aes")]
54170#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54171#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54172#[cfg_attr(
54173    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54174    assert_instr(nop)
54175)]
54176#[cfg_attr(
54177    not(target_arch = "arm"),
54178    stable(feature = "neon_intrinsics", since = "1.59.0")
54179)]
54180#[cfg_attr(
54181    target_arch = "arm",
54182    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54183)]
54184pub fn vreinterpretq_p128_s32(a: int32x4_t) -> p128 {
54185    unsafe { transmute(a) }
54186}
54187#[doc = "Vector reinterpret cast operation"]
54188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s32)"]
54189#[inline(always)]
54190#[cfg(target_endian = "big")]
54191#[target_feature(enable = "neon,aes")]
54192#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54194#[cfg_attr(
54195    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54196    assert_instr(nop)
54197)]
54198#[cfg_attr(
54199    not(target_arch = "arm"),
54200    stable(feature = "neon_intrinsics", since = "1.59.0")
54201)]
54202#[cfg_attr(
54203    target_arch = "arm",
54204    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54205)]
54206pub fn vreinterpretq_p128_s32(a: int32x4_t) -> p128 {
54207    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54208    unsafe { transmute(a) }
54209}
54210#[doc = "Vector reinterpret cast operation"]
54211#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s32)"]
54212#[inline(always)]
54213#[cfg(target_endian = "little")]
54214#[target_feature(enable = "neon,aes")]
54215#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54216#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54217#[cfg_attr(
54218    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54219    assert_instr(nop)
54220)]
54221#[cfg_attr(
54222    not(target_arch = "arm"),
54223    stable(feature = "neon_intrinsics", since = "1.59.0")
54224)]
54225#[cfg_attr(
54226    target_arch = "arm",
54227    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54228)]
54229pub fn vreinterpretq_p64_s32(a: int32x4_t) -> poly64x2_t {
54230    unsafe { transmute(a) }
54231}
54232#[doc = "Vector reinterpret cast operation"]
54233#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s32)"]
54234#[inline(always)]
54235#[cfg(target_endian = "big")]
54236#[target_feature(enable = "neon,aes")]
54237#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54238#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54239#[cfg_attr(
54240    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54241    assert_instr(nop)
54242)]
54243#[cfg_attr(
54244    not(target_arch = "arm"),
54245    stable(feature = "neon_intrinsics", since = "1.59.0")
54246)]
54247#[cfg_attr(
54248    target_arch = "arm",
54249    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54250)]
54251pub fn vreinterpretq_p64_s32(a: int32x4_t) -> poly64x2_t {
54252    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54253    unsafe {
54254        let ret_val: poly64x2_t = transmute(a);
54255        simd_shuffle!(ret_val, ret_val, [1, 0])
54256    }
54257}
54258#[doc = "Vector reinterpret cast operation"]
54259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s64)"]
54260#[inline(always)]
54261#[cfg(target_endian = "little")]
54262#[target_feature(enable = "neon,aes")]
54263#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54265#[cfg_attr(
54266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54267    assert_instr(nop)
54268)]
54269#[cfg_attr(
54270    not(target_arch = "arm"),
54271    stable(feature = "neon_intrinsics", since = "1.59.0")
54272)]
54273#[cfg_attr(
54274    target_arch = "arm",
54275    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54276)]
54277pub fn vreinterpretq_p128_s64(a: int64x2_t) -> p128 {
54278    unsafe { transmute(a) }
54279}
54280#[doc = "Vector reinterpret cast operation"]
54281#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s64)"]
54282#[inline(always)]
54283#[cfg(target_endian = "big")]
54284#[target_feature(enable = "neon,aes")]
54285#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54286#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54287#[cfg_attr(
54288    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54289    assert_instr(nop)
54290)]
54291#[cfg_attr(
54292    not(target_arch = "arm"),
54293    stable(feature = "neon_intrinsics", since = "1.59.0")
54294)]
54295#[cfg_attr(
54296    target_arch = "arm",
54297    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54298)]
54299pub fn vreinterpretq_p128_s64(a: int64x2_t) -> p128 {
54300    let a: int64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
54301    unsafe { transmute(a) }
54302}
54303#[doc = "Vector reinterpret cast operation"]
54304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u8)"]
54305#[inline(always)]
54306#[cfg(target_endian = "little")]
54307#[target_feature(enable = "neon,aes")]
54308#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54310#[cfg_attr(
54311    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54312    assert_instr(nop)
54313)]
54314#[cfg_attr(
54315    not(target_arch = "arm"),
54316    stable(feature = "neon_intrinsics", since = "1.59.0")
54317)]
54318#[cfg_attr(
54319    target_arch = "arm",
54320    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54321)]
54322pub fn vreinterpret_p64_u8(a: uint8x8_t) -> poly64x1_t {
54323    unsafe { transmute(a) }
54324}
54325#[doc = "Vector reinterpret cast operation"]
54326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u8)"]
54327#[inline(always)]
54328#[cfg(target_endian = "big")]
54329#[target_feature(enable = "neon,aes")]
54330#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54332#[cfg_attr(
54333    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54334    assert_instr(nop)
54335)]
54336#[cfg_attr(
54337    not(target_arch = "arm"),
54338    stable(feature = "neon_intrinsics", since = "1.59.0")
54339)]
54340#[cfg_attr(
54341    target_arch = "arm",
54342    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54343)]
54344pub fn vreinterpret_p64_u8(a: uint8x8_t) -> poly64x1_t {
54345    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54346    unsafe { transmute(a) }
54347}
54348#[doc = "Vector reinterpret cast operation"]
54349#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u8)"]
54350#[inline(always)]
54351#[cfg(target_endian = "little")]
54352#[target_feature(enable = "neon,aes")]
54353#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54354#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54355#[cfg_attr(
54356    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54357    assert_instr(nop)
54358)]
54359#[cfg_attr(
54360    not(target_arch = "arm"),
54361    stable(feature = "neon_intrinsics", since = "1.59.0")
54362)]
54363#[cfg_attr(
54364    target_arch = "arm",
54365    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54366)]
54367pub fn vreinterpretq_p128_u8(a: uint8x16_t) -> p128 {
54368    unsafe { transmute(a) }
54369}
54370#[doc = "Vector reinterpret cast operation"]
54371#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u8)"]
54372#[inline(always)]
54373#[cfg(target_endian = "big")]
54374#[target_feature(enable = "neon,aes")]
54375#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54376#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54377#[cfg_attr(
54378    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54379    assert_instr(nop)
54380)]
54381#[cfg_attr(
54382    not(target_arch = "arm"),
54383    stable(feature = "neon_intrinsics", since = "1.59.0")
54384)]
54385#[cfg_attr(
54386    target_arch = "arm",
54387    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54388)]
54389pub fn vreinterpretq_p128_u8(a: uint8x16_t) -> p128 {
54390    let a: uint8x16_t =
54391        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54392    unsafe { transmute(a) }
54393}
54394#[doc = "Vector reinterpret cast operation"]
54395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u8)"]
54396#[inline(always)]
54397#[cfg(target_endian = "little")]
54398#[target_feature(enable = "neon,aes")]
54399#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54400#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54401#[cfg_attr(
54402    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54403    assert_instr(nop)
54404)]
54405#[cfg_attr(
54406    not(target_arch = "arm"),
54407    stable(feature = "neon_intrinsics", since = "1.59.0")
54408)]
54409#[cfg_attr(
54410    target_arch = "arm",
54411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54412)]
54413pub fn vreinterpretq_p64_u8(a: uint8x16_t) -> poly64x2_t {
54414    unsafe { transmute(a) }
54415}
54416#[doc = "Vector reinterpret cast operation"]
54417#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u8)"]
54418#[inline(always)]
54419#[cfg(target_endian = "big")]
54420#[target_feature(enable = "neon,aes")]
54421#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54422#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54423#[cfg_attr(
54424    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54425    assert_instr(nop)
54426)]
54427#[cfg_attr(
54428    not(target_arch = "arm"),
54429    stable(feature = "neon_intrinsics", since = "1.59.0")
54430)]
54431#[cfg_attr(
54432    target_arch = "arm",
54433    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54434)]
54435pub fn vreinterpretq_p64_u8(a: uint8x16_t) -> poly64x2_t {
54436    let a: uint8x16_t =
54437        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54438    unsafe {
54439        let ret_val: poly64x2_t = transmute(a);
54440        simd_shuffle!(ret_val, ret_val, [1, 0])
54441    }
54442}
54443#[doc = "Vector reinterpret cast operation"]
54444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u16)"]
54445#[inline(always)]
54446#[cfg(target_endian = "little")]
54447#[target_feature(enable = "neon,aes")]
54448#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54450#[cfg_attr(
54451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54452    assert_instr(nop)
54453)]
54454#[cfg_attr(
54455    not(target_arch = "arm"),
54456    stable(feature = "neon_intrinsics", since = "1.59.0")
54457)]
54458#[cfg_attr(
54459    target_arch = "arm",
54460    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54461)]
54462pub fn vreinterpret_p64_u16(a: uint16x4_t) -> poly64x1_t {
54463    unsafe { transmute(a) }
54464}
54465#[doc = "Vector reinterpret cast operation"]
54466#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u16)"]
54467#[inline(always)]
54468#[cfg(target_endian = "big")]
54469#[target_feature(enable = "neon,aes")]
54470#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54472#[cfg_attr(
54473    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54474    assert_instr(nop)
54475)]
54476#[cfg_attr(
54477    not(target_arch = "arm"),
54478    stable(feature = "neon_intrinsics", since = "1.59.0")
54479)]
54480#[cfg_attr(
54481    target_arch = "arm",
54482    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54483)]
54484pub fn vreinterpret_p64_u16(a: uint16x4_t) -> poly64x1_t {
54485    let a: uint16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54486    unsafe { transmute(a) }
54487}
54488#[doc = "Vector reinterpret cast operation"]
54489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u16)"]
54490#[inline(always)]
54491#[cfg(target_endian = "little")]
54492#[target_feature(enable = "neon,aes")]
54493#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54495#[cfg_attr(
54496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54497    assert_instr(nop)
54498)]
54499#[cfg_attr(
54500    not(target_arch = "arm"),
54501    stable(feature = "neon_intrinsics", since = "1.59.0")
54502)]
54503#[cfg_attr(
54504    target_arch = "arm",
54505    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54506)]
54507pub fn vreinterpretq_p128_u16(a: uint16x8_t) -> p128 {
54508    unsafe { transmute(a) }
54509}
54510#[doc = "Vector reinterpret cast operation"]
54511#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u16)"]
54512#[inline(always)]
54513#[cfg(target_endian = "big")]
54514#[target_feature(enable = "neon,aes")]
54515#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54516#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54517#[cfg_attr(
54518    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54519    assert_instr(nop)
54520)]
54521#[cfg_attr(
54522    not(target_arch = "arm"),
54523    stable(feature = "neon_intrinsics", since = "1.59.0")
54524)]
54525#[cfg_attr(
54526    target_arch = "arm",
54527    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54528)]
54529pub fn vreinterpretq_p128_u16(a: uint16x8_t) -> p128 {
54530    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54531    unsafe { transmute(a) }
54532}
54533#[doc = "Vector reinterpret cast operation"]
54534#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u16)"]
54535#[inline(always)]
54536#[cfg(target_endian = "little")]
54537#[target_feature(enable = "neon,aes")]
54538#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54540#[cfg_attr(
54541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54542    assert_instr(nop)
54543)]
54544#[cfg_attr(
54545    not(target_arch = "arm"),
54546    stable(feature = "neon_intrinsics", since = "1.59.0")
54547)]
54548#[cfg_attr(
54549    target_arch = "arm",
54550    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54551)]
54552pub fn vreinterpretq_p64_u16(a: uint16x8_t) -> poly64x2_t {
54553    unsafe { transmute(a) }
54554}
54555#[doc = "Vector reinterpret cast operation"]
54556#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u16)"]
54557#[inline(always)]
54558#[cfg(target_endian = "big")]
54559#[target_feature(enable = "neon,aes")]
54560#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54562#[cfg_attr(
54563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54564    assert_instr(nop)
54565)]
54566#[cfg_attr(
54567    not(target_arch = "arm"),
54568    stable(feature = "neon_intrinsics", since = "1.59.0")
54569)]
54570#[cfg_attr(
54571    target_arch = "arm",
54572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54573)]
54574pub fn vreinterpretq_p64_u16(a: uint16x8_t) -> poly64x2_t {
54575    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54576    unsafe {
54577        let ret_val: poly64x2_t = transmute(a);
54578        simd_shuffle!(ret_val, ret_val, [1, 0])
54579    }
54580}
54581#[doc = "Vector reinterpret cast operation"]
54582#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u32)"]
54583#[inline(always)]
54584#[cfg(target_endian = "little")]
54585#[target_feature(enable = "neon,aes")]
54586#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54588#[cfg_attr(
54589    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54590    assert_instr(nop)
54591)]
54592#[cfg_attr(
54593    not(target_arch = "arm"),
54594    stable(feature = "neon_intrinsics", since = "1.59.0")
54595)]
54596#[cfg_attr(
54597    target_arch = "arm",
54598    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54599)]
54600pub fn vreinterpret_p64_u32(a: uint32x2_t) -> poly64x1_t {
54601    unsafe { transmute(a) }
54602}
54603#[doc = "Vector reinterpret cast operation"]
54604#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u32)"]
54605#[inline(always)]
54606#[cfg(target_endian = "big")]
54607#[target_feature(enable = "neon,aes")]
54608#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54610#[cfg_attr(
54611    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54612    assert_instr(nop)
54613)]
54614#[cfg_attr(
54615    not(target_arch = "arm"),
54616    stable(feature = "neon_intrinsics", since = "1.59.0")
54617)]
54618#[cfg_attr(
54619    target_arch = "arm",
54620    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54621)]
54622pub fn vreinterpret_p64_u32(a: uint32x2_t) -> poly64x1_t {
54623    let a: uint32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
54624    unsafe { transmute(a) }
54625}
54626#[doc = "Vector reinterpret cast operation"]
54627#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u32)"]
54628#[inline(always)]
54629#[cfg(target_endian = "little")]
54630#[target_feature(enable = "neon,aes")]
54631#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54632#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54633#[cfg_attr(
54634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54635    assert_instr(nop)
54636)]
54637#[cfg_attr(
54638    not(target_arch = "arm"),
54639    stable(feature = "neon_intrinsics", since = "1.59.0")
54640)]
54641#[cfg_attr(
54642    target_arch = "arm",
54643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54644)]
54645pub fn vreinterpretq_p128_u32(a: uint32x4_t) -> p128 {
54646    unsafe { transmute(a) }
54647}
54648#[doc = "Vector reinterpret cast operation"]
54649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u32)"]
54650#[inline(always)]
54651#[cfg(target_endian = "big")]
54652#[target_feature(enable = "neon,aes")]
54653#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54654#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54655#[cfg_attr(
54656    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54657    assert_instr(nop)
54658)]
54659#[cfg_attr(
54660    not(target_arch = "arm"),
54661    stable(feature = "neon_intrinsics", since = "1.59.0")
54662)]
54663#[cfg_attr(
54664    target_arch = "arm",
54665    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54666)]
54667pub fn vreinterpretq_p128_u32(a: uint32x4_t) -> p128 {
54668    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54669    unsafe { transmute(a) }
54670}
54671#[doc = "Vector reinterpret cast operation"]
54672#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u32)"]
54673#[inline(always)]
54674#[cfg(target_endian = "little")]
54675#[target_feature(enable = "neon,aes")]
54676#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54678#[cfg_attr(
54679    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54680    assert_instr(nop)
54681)]
54682#[cfg_attr(
54683    not(target_arch = "arm"),
54684    stable(feature = "neon_intrinsics", since = "1.59.0")
54685)]
54686#[cfg_attr(
54687    target_arch = "arm",
54688    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54689)]
54690pub fn vreinterpretq_p64_u32(a: uint32x4_t) -> poly64x2_t {
54691    unsafe { transmute(a) }
54692}
54693#[doc = "Vector reinterpret cast operation"]
54694#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u32)"]
54695#[inline(always)]
54696#[cfg(target_endian = "big")]
54697#[target_feature(enable = "neon,aes")]
54698#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54700#[cfg_attr(
54701    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54702    assert_instr(nop)
54703)]
54704#[cfg_attr(
54705    not(target_arch = "arm"),
54706    stable(feature = "neon_intrinsics", since = "1.59.0")
54707)]
54708#[cfg_attr(
54709    target_arch = "arm",
54710    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54711)]
54712pub fn vreinterpretq_p64_u32(a: uint32x4_t) -> poly64x2_t {
54713    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54714    unsafe {
54715        let ret_val: poly64x2_t = transmute(a);
54716        simd_shuffle!(ret_val, ret_val, [1, 0])
54717    }
54718}
54719#[doc = "Vector reinterpret cast operation"]
54720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u64)"]
54721#[inline(always)]
54722#[cfg(target_endian = "little")]
54723#[target_feature(enable = "neon,aes")]
54724#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54726#[cfg_attr(
54727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54728    assert_instr(nop)
54729)]
54730#[cfg_attr(
54731    not(target_arch = "arm"),
54732    stable(feature = "neon_intrinsics", since = "1.59.0")
54733)]
54734#[cfg_attr(
54735    target_arch = "arm",
54736    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54737)]
54738pub fn vreinterpretq_p128_u64(a: uint64x2_t) -> p128 {
54739    unsafe { transmute(a) }
54740}
54741#[doc = "Vector reinterpret cast operation"]
54742#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u64)"]
54743#[inline(always)]
54744#[cfg(target_endian = "big")]
54745#[target_feature(enable = "neon,aes")]
54746#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54748#[cfg_attr(
54749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54750    assert_instr(nop)
54751)]
54752#[cfg_attr(
54753    not(target_arch = "arm"),
54754    stable(feature = "neon_intrinsics", since = "1.59.0")
54755)]
54756#[cfg_attr(
54757    target_arch = "arm",
54758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54759)]
54760pub fn vreinterpretq_p128_u64(a: uint64x2_t) -> p128 {
54761    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
54762    unsafe { transmute(a) }
54763}
54764#[doc = "Vector reinterpret cast operation"]
54765#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p8)"]
54766#[inline(always)]
54767#[cfg(target_endian = "little")]
54768#[target_feature(enable = "neon,aes")]
54769#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54771#[cfg_attr(
54772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54773    assert_instr(nop)
54774)]
54775#[cfg_attr(
54776    not(target_arch = "arm"),
54777    stable(feature = "neon_intrinsics", since = "1.59.0")
54778)]
54779#[cfg_attr(
54780    target_arch = "arm",
54781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54782)]
54783pub fn vreinterpret_p64_p8(a: poly8x8_t) -> poly64x1_t {
54784    unsafe { transmute(a) }
54785}
54786#[doc = "Vector reinterpret cast operation"]
54787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p8)"]
54788#[inline(always)]
54789#[cfg(target_endian = "big")]
54790#[target_feature(enable = "neon,aes")]
54791#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54793#[cfg_attr(
54794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54795    assert_instr(nop)
54796)]
54797#[cfg_attr(
54798    not(target_arch = "arm"),
54799    stable(feature = "neon_intrinsics", since = "1.59.0")
54800)]
54801#[cfg_attr(
54802    target_arch = "arm",
54803    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54804)]
54805pub fn vreinterpret_p64_p8(a: poly8x8_t) -> poly64x1_t {
54806    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54807    unsafe { transmute(a) }
54808}
54809#[doc = "Vector reinterpret cast operation"]
54810#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p8)"]
54811#[inline(always)]
54812#[cfg(target_endian = "little")]
54813#[target_feature(enable = "neon,aes")]
54814#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54816#[cfg_attr(
54817    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54818    assert_instr(nop)
54819)]
54820#[cfg_attr(
54821    not(target_arch = "arm"),
54822    stable(feature = "neon_intrinsics", since = "1.59.0")
54823)]
54824#[cfg_attr(
54825    target_arch = "arm",
54826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54827)]
54828pub fn vreinterpretq_p128_p8(a: poly8x16_t) -> p128 {
54829    unsafe { transmute(a) }
54830}
54831#[doc = "Vector reinterpret cast operation"]
54832#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p8)"]
54833#[inline(always)]
54834#[cfg(target_endian = "big")]
54835#[target_feature(enable = "neon,aes")]
54836#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54837#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54838#[cfg_attr(
54839    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54840    assert_instr(nop)
54841)]
54842#[cfg_attr(
54843    not(target_arch = "arm"),
54844    stable(feature = "neon_intrinsics", since = "1.59.0")
54845)]
54846#[cfg_attr(
54847    target_arch = "arm",
54848    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54849)]
54850pub fn vreinterpretq_p128_p8(a: poly8x16_t) -> p128 {
54851    let a: poly8x16_t =
54852        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54853    unsafe { transmute(a) }
54854}
54855#[doc = "Vector reinterpret cast operation"]
54856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p8)"]
54857#[inline(always)]
54858#[cfg(target_endian = "little")]
54859#[target_feature(enable = "neon,aes")]
54860#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54861#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54862#[cfg_attr(
54863    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54864    assert_instr(nop)
54865)]
54866#[cfg_attr(
54867    not(target_arch = "arm"),
54868    stable(feature = "neon_intrinsics", since = "1.59.0")
54869)]
54870#[cfg_attr(
54871    target_arch = "arm",
54872    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54873)]
54874pub fn vreinterpretq_p64_p8(a: poly8x16_t) -> poly64x2_t {
54875    unsafe { transmute(a) }
54876}
54877#[doc = "Vector reinterpret cast operation"]
54878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p8)"]
54879#[inline(always)]
54880#[cfg(target_endian = "big")]
54881#[target_feature(enable = "neon,aes")]
54882#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54884#[cfg_attr(
54885    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54886    assert_instr(nop)
54887)]
54888#[cfg_attr(
54889    not(target_arch = "arm"),
54890    stable(feature = "neon_intrinsics", since = "1.59.0")
54891)]
54892#[cfg_attr(
54893    target_arch = "arm",
54894    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54895)]
54896pub fn vreinterpretq_p64_p8(a: poly8x16_t) -> poly64x2_t {
54897    let a: poly8x16_t =
54898        unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
54899    unsafe {
54900        let ret_val: poly64x2_t = transmute(a);
54901        simd_shuffle!(ret_val, ret_val, [1, 0])
54902    }
54903}
54904#[doc = "Vector reinterpret cast operation"]
54905#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p16)"]
54906#[inline(always)]
54907#[cfg(target_endian = "little")]
54908#[target_feature(enable = "neon,aes")]
54909#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54910#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54911#[cfg_attr(
54912    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54913    assert_instr(nop)
54914)]
54915#[cfg_attr(
54916    not(target_arch = "arm"),
54917    stable(feature = "neon_intrinsics", since = "1.59.0")
54918)]
54919#[cfg_attr(
54920    target_arch = "arm",
54921    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54922)]
54923pub fn vreinterpret_p64_p16(a: poly16x4_t) -> poly64x1_t {
54924    unsafe { transmute(a) }
54925}
54926#[doc = "Vector reinterpret cast operation"]
54927#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p16)"]
54928#[inline(always)]
54929#[cfg(target_endian = "big")]
54930#[target_feature(enable = "neon,aes")]
54931#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54932#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54933#[cfg_attr(
54934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54935    assert_instr(nop)
54936)]
54937#[cfg_attr(
54938    not(target_arch = "arm"),
54939    stable(feature = "neon_intrinsics", since = "1.59.0")
54940)]
54941#[cfg_attr(
54942    target_arch = "arm",
54943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54944)]
54945pub fn vreinterpret_p64_p16(a: poly16x4_t) -> poly64x1_t {
54946    let a: poly16x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
54947    unsafe { transmute(a) }
54948}
54949#[doc = "Vector reinterpret cast operation"]
54950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p16)"]
54951#[inline(always)]
54952#[cfg(target_endian = "little")]
54953#[target_feature(enable = "neon,aes")]
54954#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54956#[cfg_attr(
54957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54958    assert_instr(nop)
54959)]
54960#[cfg_attr(
54961    not(target_arch = "arm"),
54962    stable(feature = "neon_intrinsics", since = "1.59.0")
54963)]
54964#[cfg_attr(
54965    target_arch = "arm",
54966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54967)]
54968pub fn vreinterpretq_p128_p16(a: poly16x8_t) -> p128 {
54969    unsafe { transmute(a) }
54970}
54971#[doc = "Vector reinterpret cast operation"]
54972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p16)"]
54973#[inline(always)]
54974#[cfg(target_endian = "big")]
54975#[target_feature(enable = "neon,aes")]
54976#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
54977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
54978#[cfg_attr(
54979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
54980    assert_instr(nop)
54981)]
54982#[cfg_attr(
54983    not(target_arch = "arm"),
54984    stable(feature = "neon_intrinsics", since = "1.59.0")
54985)]
54986#[cfg_attr(
54987    target_arch = "arm",
54988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
54989)]
54990pub fn vreinterpretq_p128_p16(a: poly16x8_t) -> p128 {
54991    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
54992    unsafe { transmute(a) }
54993}
54994#[doc = "Vector reinterpret cast operation"]
54995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p16)"]
54996#[inline(always)]
54997#[cfg(target_endian = "little")]
54998#[target_feature(enable = "neon,aes")]
54999#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55000#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55001#[cfg_attr(
55002    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55003    assert_instr(nop)
55004)]
55005#[cfg_attr(
55006    not(target_arch = "arm"),
55007    stable(feature = "neon_intrinsics", since = "1.59.0")
55008)]
55009#[cfg_attr(
55010    target_arch = "arm",
55011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55012)]
55013pub fn vreinterpretq_p64_p16(a: poly16x8_t) -> poly64x2_t {
55014    unsafe { transmute(a) }
55015}
55016#[doc = "Vector reinterpret cast operation"]
55017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p16)"]
55018#[inline(always)]
55019#[cfg(target_endian = "big")]
55020#[target_feature(enable = "neon,aes")]
55021#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55022#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55023#[cfg_attr(
55024    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55025    assert_instr(nop)
55026)]
55027#[cfg_attr(
55028    not(target_arch = "arm"),
55029    stable(feature = "neon_intrinsics", since = "1.59.0")
55030)]
55031#[cfg_attr(
55032    target_arch = "arm",
55033    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55034)]
55035pub fn vreinterpretq_p64_p16(a: poly16x8_t) -> poly64x2_t {
55036    let a: poly16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
55037    unsafe {
55038        let ret_val: poly64x2_t = transmute(a);
55039        simd_shuffle!(ret_val, ret_val, [1, 0])
55040    }
55041}
55042#[doc = "Vector reinterpret cast operation"]
55043#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p64)"]
55044#[inline(always)]
55045#[cfg(target_endian = "little")]
55046#[target_feature(enable = "neon,aes")]
55047#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55048#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55049#[cfg_attr(
55050    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55051    assert_instr(nop)
55052)]
55053#[cfg_attr(
55054    not(target_arch = "arm"),
55055    stable(feature = "neon_intrinsics", since = "1.59.0")
55056)]
55057#[cfg_attr(
55058    target_arch = "arm",
55059    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55060)]
55061pub fn vreinterpret_s8_p64(a: poly64x1_t) -> int8x8_t {
55062    unsafe { transmute(a) }
55063}
55064#[doc = "Vector reinterpret cast operation"]
55065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p64)"]
55066#[inline(always)]
55067#[cfg(target_endian = "big")]
55068#[target_feature(enable = "neon,aes")]
55069#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55070#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55071#[cfg_attr(
55072    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55073    assert_instr(nop)
55074)]
55075#[cfg_attr(
55076    not(target_arch = "arm"),
55077    stable(feature = "neon_intrinsics", since = "1.59.0")
55078)]
55079#[cfg_attr(
55080    target_arch = "arm",
55081    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55082)]
55083pub fn vreinterpret_s8_p64(a: poly64x1_t) -> int8x8_t {
55084    unsafe {
55085        let ret_val: int8x8_t = transmute(a);
55086        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55087    }
55088}
55089#[doc = "Vector reinterpret cast operation"]
55090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p64)"]
55091#[inline(always)]
55092#[cfg(target_endian = "little")]
55093#[target_feature(enable = "neon,aes")]
55094#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55095#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55096#[cfg_attr(
55097    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55098    assert_instr(nop)
55099)]
55100#[cfg_attr(
55101    not(target_arch = "arm"),
55102    stable(feature = "neon_intrinsics", since = "1.59.0")
55103)]
55104#[cfg_attr(
55105    target_arch = "arm",
55106    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55107)]
55108pub fn vreinterpret_s16_p64(a: poly64x1_t) -> int16x4_t {
55109    unsafe { transmute(a) }
55110}
55111#[doc = "Vector reinterpret cast operation"]
55112#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p64)"]
55113#[inline(always)]
55114#[cfg(target_endian = "big")]
55115#[target_feature(enable = "neon,aes")]
55116#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55118#[cfg_attr(
55119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55120    assert_instr(nop)
55121)]
55122#[cfg_attr(
55123    not(target_arch = "arm"),
55124    stable(feature = "neon_intrinsics", since = "1.59.0")
55125)]
55126#[cfg_attr(
55127    target_arch = "arm",
55128    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55129)]
55130pub fn vreinterpret_s16_p64(a: poly64x1_t) -> int16x4_t {
55131    unsafe {
55132        let ret_val: int16x4_t = transmute(a);
55133        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55134    }
55135}
55136#[doc = "Vector reinterpret cast operation"]
55137#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p64)"]
55138#[inline(always)]
55139#[cfg(target_endian = "little")]
55140#[target_feature(enable = "neon,aes")]
55141#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55142#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55143#[cfg_attr(
55144    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55145    assert_instr(nop)
55146)]
55147#[cfg_attr(
55148    not(target_arch = "arm"),
55149    stable(feature = "neon_intrinsics", since = "1.59.0")
55150)]
55151#[cfg_attr(
55152    target_arch = "arm",
55153    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55154)]
55155pub fn vreinterpret_s32_p64(a: poly64x1_t) -> int32x2_t {
55156    unsafe { transmute(a) }
55157}
55158#[doc = "Vector reinterpret cast operation"]
55159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p64)"]
55160#[inline(always)]
55161#[cfg(target_endian = "big")]
55162#[target_feature(enable = "neon,aes")]
55163#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55164#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55165#[cfg_attr(
55166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55167    assert_instr(nop)
55168)]
55169#[cfg_attr(
55170    not(target_arch = "arm"),
55171    stable(feature = "neon_intrinsics", since = "1.59.0")
55172)]
55173#[cfg_attr(
55174    target_arch = "arm",
55175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55176)]
55177pub fn vreinterpret_s32_p64(a: poly64x1_t) -> int32x2_t {
55178    unsafe {
55179        let ret_val: int32x2_t = transmute(a);
55180        simd_shuffle!(ret_val, ret_val, [1, 0])
55181    }
55182}
55183#[doc = "Vector reinterpret cast operation"]
55184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p64)"]
55185#[inline(always)]
55186#[cfg(target_endian = "little")]
55187#[target_feature(enable = "neon,aes")]
55188#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55189#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55190#[cfg_attr(
55191    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55192    assert_instr(nop)
55193)]
55194#[cfg_attr(
55195    not(target_arch = "arm"),
55196    stable(feature = "neon_intrinsics", since = "1.59.0")
55197)]
55198#[cfg_attr(
55199    target_arch = "arm",
55200    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55201)]
55202pub fn vreinterpret_u8_p64(a: poly64x1_t) -> uint8x8_t {
55203    unsafe { transmute(a) }
55204}
55205#[doc = "Vector reinterpret cast operation"]
55206#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p64)"]
55207#[inline(always)]
55208#[cfg(target_endian = "big")]
55209#[target_feature(enable = "neon,aes")]
55210#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55212#[cfg_attr(
55213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55214    assert_instr(nop)
55215)]
55216#[cfg_attr(
55217    not(target_arch = "arm"),
55218    stable(feature = "neon_intrinsics", since = "1.59.0")
55219)]
55220#[cfg_attr(
55221    target_arch = "arm",
55222    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55223)]
55224pub fn vreinterpret_u8_p64(a: poly64x1_t) -> uint8x8_t {
55225    unsafe {
55226        let ret_val: uint8x8_t = transmute(a);
55227        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55228    }
55229}
55230#[doc = "Vector reinterpret cast operation"]
55231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p64)"]
55232#[inline(always)]
55233#[cfg(target_endian = "little")]
55234#[target_feature(enable = "neon,aes")]
55235#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55236#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55237#[cfg_attr(
55238    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55239    assert_instr(nop)
55240)]
55241#[cfg_attr(
55242    not(target_arch = "arm"),
55243    stable(feature = "neon_intrinsics", since = "1.59.0")
55244)]
55245#[cfg_attr(
55246    target_arch = "arm",
55247    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55248)]
55249pub fn vreinterpret_u16_p64(a: poly64x1_t) -> uint16x4_t {
55250    unsafe { transmute(a) }
55251}
55252#[doc = "Vector reinterpret cast operation"]
55253#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p64)"]
55254#[inline(always)]
55255#[cfg(target_endian = "big")]
55256#[target_feature(enable = "neon,aes")]
55257#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55258#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55259#[cfg_attr(
55260    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55261    assert_instr(nop)
55262)]
55263#[cfg_attr(
55264    not(target_arch = "arm"),
55265    stable(feature = "neon_intrinsics", since = "1.59.0")
55266)]
55267#[cfg_attr(
55268    target_arch = "arm",
55269    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55270)]
55271pub fn vreinterpret_u16_p64(a: poly64x1_t) -> uint16x4_t {
55272    unsafe {
55273        let ret_val: uint16x4_t = transmute(a);
55274        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55275    }
55276}
55277#[doc = "Vector reinterpret cast operation"]
55278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p64)"]
55279#[inline(always)]
55280#[cfg(target_endian = "little")]
55281#[target_feature(enable = "neon,aes")]
55282#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55284#[cfg_attr(
55285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55286    assert_instr(nop)
55287)]
55288#[cfg_attr(
55289    not(target_arch = "arm"),
55290    stable(feature = "neon_intrinsics", since = "1.59.0")
55291)]
55292#[cfg_attr(
55293    target_arch = "arm",
55294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55295)]
55296pub fn vreinterpret_u32_p64(a: poly64x1_t) -> uint32x2_t {
55297    unsafe { transmute(a) }
55298}
55299#[doc = "Vector reinterpret cast operation"]
55300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p64)"]
55301#[inline(always)]
55302#[cfg(target_endian = "big")]
55303#[target_feature(enable = "neon,aes")]
55304#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55305#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55306#[cfg_attr(
55307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55308    assert_instr(nop)
55309)]
55310#[cfg_attr(
55311    not(target_arch = "arm"),
55312    stable(feature = "neon_intrinsics", since = "1.59.0")
55313)]
55314#[cfg_attr(
55315    target_arch = "arm",
55316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55317)]
55318pub fn vreinterpret_u32_p64(a: poly64x1_t) -> uint32x2_t {
55319    unsafe {
55320        let ret_val: uint32x2_t = transmute(a);
55321        simd_shuffle!(ret_val, ret_val, [1, 0])
55322    }
55323}
55324#[doc = "Vector reinterpret cast operation"]
55325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p64)"]
55326#[inline(always)]
55327#[cfg(target_endian = "little")]
55328#[target_feature(enable = "neon,aes")]
55329#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55330#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55331#[cfg_attr(
55332    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55333    assert_instr(nop)
55334)]
55335#[cfg_attr(
55336    not(target_arch = "arm"),
55337    stable(feature = "neon_intrinsics", since = "1.59.0")
55338)]
55339#[cfg_attr(
55340    target_arch = "arm",
55341    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55342)]
55343pub fn vreinterpret_p8_p64(a: poly64x1_t) -> poly8x8_t {
55344    unsafe { transmute(a) }
55345}
55346#[doc = "Vector reinterpret cast operation"]
55347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p64)"]
55348#[inline(always)]
55349#[cfg(target_endian = "big")]
55350#[target_feature(enable = "neon,aes")]
55351#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55352#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55353#[cfg_attr(
55354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55355    assert_instr(nop)
55356)]
55357#[cfg_attr(
55358    not(target_arch = "arm"),
55359    stable(feature = "neon_intrinsics", since = "1.59.0")
55360)]
55361#[cfg_attr(
55362    target_arch = "arm",
55363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55364)]
55365pub fn vreinterpret_p8_p64(a: poly64x1_t) -> poly8x8_t {
55366    unsafe {
55367        let ret_val: poly8x8_t = transmute(a);
55368        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55369    }
55370}
55371#[doc = "Vector reinterpret cast operation"]
55372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p64)"]
55373#[inline(always)]
55374#[cfg(target_endian = "little")]
55375#[target_feature(enable = "neon,aes")]
55376#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55377#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55378#[cfg_attr(
55379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55380    assert_instr(nop)
55381)]
55382#[cfg_attr(
55383    not(target_arch = "arm"),
55384    stable(feature = "neon_intrinsics", since = "1.59.0")
55385)]
55386#[cfg_attr(
55387    target_arch = "arm",
55388    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55389)]
55390pub fn vreinterpret_p16_p64(a: poly64x1_t) -> poly16x4_t {
55391    unsafe { transmute(a) }
55392}
55393#[doc = "Vector reinterpret cast operation"]
55394#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p64)"]
55395#[inline(always)]
55396#[cfg(target_endian = "big")]
55397#[target_feature(enable = "neon,aes")]
55398#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55399#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55400#[cfg_attr(
55401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55402    assert_instr(nop)
55403)]
55404#[cfg_attr(
55405    not(target_arch = "arm"),
55406    stable(feature = "neon_intrinsics", since = "1.59.0")
55407)]
55408#[cfg_attr(
55409    target_arch = "arm",
55410    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55411)]
55412pub fn vreinterpret_p16_p64(a: poly64x1_t) -> poly16x4_t {
55413    unsafe {
55414        let ret_val: poly16x4_t = transmute(a);
55415        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55416    }
55417}
55418#[doc = "Vector reinterpret cast operation"]
55419#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p64)"]
55420#[inline(always)]
55421#[cfg(target_endian = "little")]
55422#[target_feature(enable = "neon,aes")]
55423#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55424#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55425#[cfg_attr(
55426    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55427    assert_instr(nop)
55428)]
55429#[cfg_attr(
55430    not(target_arch = "arm"),
55431    stable(feature = "neon_intrinsics", since = "1.59.0")
55432)]
55433#[cfg_attr(
55434    target_arch = "arm",
55435    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55436)]
55437pub fn vreinterpretq_p128_p64(a: poly64x2_t) -> p128 {
55438    unsafe { transmute(a) }
55439}
55440#[doc = "Vector reinterpret cast operation"]
55441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p64)"]
55442#[inline(always)]
55443#[cfg(target_endian = "big")]
55444#[target_feature(enable = "neon,aes")]
55445#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55447#[cfg_attr(
55448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55449    assert_instr(nop)
55450)]
55451#[cfg_attr(
55452    not(target_arch = "arm"),
55453    stable(feature = "neon_intrinsics", since = "1.59.0")
55454)]
55455#[cfg_attr(
55456    target_arch = "arm",
55457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55458)]
55459pub fn vreinterpretq_p128_p64(a: poly64x2_t) -> p128 {
55460    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55461    unsafe { transmute(a) }
55462}
55463#[doc = "Vector reinterpret cast operation"]
55464#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p64)"]
55465#[inline(always)]
55466#[cfg(target_endian = "little")]
55467#[target_feature(enable = "neon,aes")]
55468#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55470#[cfg_attr(
55471    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55472    assert_instr(nop)
55473)]
55474#[cfg_attr(
55475    not(target_arch = "arm"),
55476    stable(feature = "neon_intrinsics", since = "1.59.0")
55477)]
55478#[cfg_attr(
55479    target_arch = "arm",
55480    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55481)]
55482pub fn vreinterpretq_s8_p64(a: poly64x2_t) -> int8x16_t {
55483    unsafe { transmute(a) }
55484}
55485#[doc = "Vector reinterpret cast operation"]
55486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p64)"]
55487#[inline(always)]
55488#[cfg(target_endian = "big")]
55489#[target_feature(enable = "neon,aes")]
55490#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55492#[cfg_attr(
55493    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55494    assert_instr(nop)
55495)]
55496#[cfg_attr(
55497    not(target_arch = "arm"),
55498    stable(feature = "neon_intrinsics", since = "1.59.0")
55499)]
55500#[cfg_attr(
55501    target_arch = "arm",
55502    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55503)]
55504pub fn vreinterpretq_s8_p64(a: poly64x2_t) -> int8x16_t {
55505    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55506    unsafe {
55507        let ret_val: int8x16_t = transmute(a);
55508        simd_shuffle!(
55509            ret_val,
55510            ret_val,
55511            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55512        )
55513    }
55514}
55515#[doc = "Vector reinterpret cast operation"]
55516#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p64)"]
55517#[inline(always)]
55518#[cfg(target_endian = "little")]
55519#[target_feature(enable = "neon,aes")]
55520#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55522#[cfg_attr(
55523    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55524    assert_instr(nop)
55525)]
55526#[cfg_attr(
55527    not(target_arch = "arm"),
55528    stable(feature = "neon_intrinsics", since = "1.59.0")
55529)]
55530#[cfg_attr(
55531    target_arch = "arm",
55532    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55533)]
55534pub fn vreinterpretq_s16_p64(a: poly64x2_t) -> int16x8_t {
55535    unsafe { transmute(a) }
55536}
55537#[doc = "Vector reinterpret cast operation"]
55538#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p64)"]
55539#[inline(always)]
55540#[cfg(target_endian = "big")]
55541#[target_feature(enable = "neon,aes")]
55542#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55543#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55544#[cfg_attr(
55545    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55546    assert_instr(nop)
55547)]
55548#[cfg_attr(
55549    not(target_arch = "arm"),
55550    stable(feature = "neon_intrinsics", since = "1.59.0")
55551)]
55552#[cfg_attr(
55553    target_arch = "arm",
55554    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55555)]
55556pub fn vreinterpretq_s16_p64(a: poly64x2_t) -> int16x8_t {
55557    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55558    unsafe {
55559        let ret_val: int16x8_t = transmute(a);
55560        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55561    }
55562}
55563#[doc = "Vector reinterpret cast operation"]
55564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p64)"]
55565#[inline(always)]
55566#[cfg(target_endian = "little")]
55567#[target_feature(enable = "neon,aes")]
55568#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55569#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55570#[cfg_attr(
55571    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55572    assert_instr(nop)
55573)]
55574#[cfg_attr(
55575    not(target_arch = "arm"),
55576    stable(feature = "neon_intrinsics", since = "1.59.0")
55577)]
55578#[cfg_attr(
55579    target_arch = "arm",
55580    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55581)]
55582pub fn vreinterpretq_s32_p64(a: poly64x2_t) -> int32x4_t {
55583    unsafe { transmute(a) }
55584}
55585#[doc = "Vector reinterpret cast operation"]
55586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p64)"]
55587#[inline(always)]
55588#[cfg(target_endian = "big")]
55589#[target_feature(enable = "neon,aes")]
55590#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55592#[cfg_attr(
55593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55594    assert_instr(nop)
55595)]
55596#[cfg_attr(
55597    not(target_arch = "arm"),
55598    stable(feature = "neon_intrinsics", since = "1.59.0")
55599)]
55600#[cfg_attr(
55601    target_arch = "arm",
55602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55603)]
55604pub fn vreinterpretq_s32_p64(a: poly64x2_t) -> int32x4_t {
55605    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55606    unsafe {
55607        let ret_val: int32x4_t = transmute(a);
55608        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55609    }
55610}
55611#[doc = "Vector reinterpret cast operation"]
55612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p64)"]
55613#[inline(always)]
55614#[cfg(target_endian = "little")]
55615#[target_feature(enable = "neon,aes")]
55616#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55617#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55618#[cfg_attr(
55619    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55620    assert_instr(nop)
55621)]
55622#[cfg_attr(
55623    not(target_arch = "arm"),
55624    stable(feature = "neon_intrinsics", since = "1.59.0")
55625)]
55626#[cfg_attr(
55627    target_arch = "arm",
55628    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55629)]
55630pub fn vreinterpretq_u8_p64(a: poly64x2_t) -> uint8x16_t {
55631    unsafe { transmute(a) }
55632}
55633#[doc = "Vector reinterpret cast operation"]
55634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p64)"]
55635#[inline(always)]
55636#[cfg(target_endian = "big")]
55637#[target_feature(enable = "neon,aes")]
55638#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55640#[cfg_attr(
55641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55642    assert_instr(nop)
55643)]
55644#[cfg_attr(
55645    not(target_arch = "arm"),
55646    stable(feature = "neon_intrinsics", since = "1.59.0")
55647)]
55648#[cfg_attr(
55649    target_arch = "arm",
55650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55651)]
55652pub fn vreinterpretq_u8_p64(a: poly64x2_t) -> uint8x16_t {
55653    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55654    unsafe {
55655        let ret_val: uint8x16_t = transmute(a);
55656        simd_shuffle!(
55657            ret_val,
55658            ret_val,
55659            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55660        )
55661    }
55662}
55663#[doc = "Vector reinterpret cast operation"]
55664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p64)"]
55665#[inline(always)]
55666#[cfg(target_endian = "little")]
55667#[target_feature(enable = "neon,aes")]
55668#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55670#[cfg_attr(
55671    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55672    assert_instr(nop)
55673)]
55674#[cfg_attr(
55675    not(target_arch = "arm"),
55676    stable(feature = "neon_intrinsics", since = "1.59.0")
55677)]
55678#[cfg_attr(
55679    target_arch = "arm",
55680    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55681)]
55682pub fn vreinterpretq_u16_p64(a: poly64x2_t) -> uint16x8_t {
55683    unsafe { transmute(a) }
55684}
55685#[doc = "Vector reinterpret cast operation"]
55686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p64)"]
55687#[inline(always)]
55688#[cfg(target_endian = "big")]
55689#[target_feature(enable = "neon,aes")]
55690#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55691#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55692#[cfg_attr(
55693    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55694    assert_instr(nop)
55695)]
55696#[cfg_attr(
55697    not(target_arch = "arm"),
55698    stable(feature = "neon_intrinsics", since = "1.59.0")
55699)]
55700#[cfg_attr(
55701    target_arch = "arm",
55702    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55703)]
55704pub fn vreinterpretq_u16_p64(a: poly64x2_t) -> uint16x8_t {
55705    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55706    unsafe {
55707        let ret_val: uint16x8_t = transmute(a);
55708        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55709    }
55710}
55711#[doc = "Vector reinterpret cast operation"]
55712#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p64)"]
55713#[inline(always)]
55714#[cfg(target_endian = "little")]
55715#[target_feature(enable = "neon,aes")]
55716#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55717#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55718#[cfg_attr(
55719    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55720    assert_instr(nop)
55721)]
55722#[cfg_attr(
55723    not(target_arch = "arm"),
55724    stable(feature = "neon_intrinsics", since = "1.59.0")
55725)]
55726#[cfg_attr(
55727    target_arch = "arm",
55728    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55729)]
55730pub fn vreinterpretq_u32_p64(a: poly64x2_t) -> uint32x4_t {
55731    unsafe { transmute(a) }
55732}
55733#[doc = "Vector reinterpret cast operation"]
55734#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p64)"]
55735#[inline(always)]
55736#[cfg(target_endian = "big")]
55737#[target_feature(enable = "neon,aes")]
55738#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55739#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55740#[cfg_attr(
55741    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55742    assert_instr(nop)
55743)]
55744#[cfg_attr(
55745    not(target_arch = "arm"),
55746    stable(feature = "neon_intrinsics", since = "1.59.0")
55747)]
55748#[cfg_attr(
55749    target_arch = "arm",
55750    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55751)]
55752pub fn vreinterpretq_u32_p64(a: poly64x2_t) -> uint32x4_t {
55753    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55754    unsafe {
55755        let ret_val: uint32x4_t = transmute(a);
55756        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
55757    }
55758}
55759#[doc = "Vector reinterpret cast operation"]
55760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p64)"]
55761#[inline(always)]
55762#[cfg(target_endian = "little")]
55763#[target_feature(enable = "neon,aes")]
55764#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55765#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55766#[cfg_attr(
55767    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55768    assert_instr(nop)
55769)]
55770#[cfg_attr(
55771    not(target_arch = "arm"),
55772    stable(feature = "neon_intrinsics", since = "1.59.0")
55773)]
55774#[cfg_attr(
55775    target_arch = "arm",
55776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55777)]
55778pub fn vreinterpretq_p8_p64(a: poly64x2_t) -> poly8x16_t {
55779    unsafe { transmute(a) }
55780}
55781#[doc = "Vector reinterpret cast operation"]
55782#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p64)"]
55783#[inline(always)]
55784#[cfg(target_endian = "big")]
55785#[target_feature(enable = "neon,aes")]
55786#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55787#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55788#[cfg_attr(
55789    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55790    assert_instr(nop)
55791)]
55792#[cfg_attr(
55793    not(target_arch = "arm"),
55794    stable(feature = "neon_intrinsics", since = "1.59.0")
55795)]
55796#[cfg_attr(
55797    target_arch = "arm",
55798    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55799)]
55800pub fn vreinterpretq_p8_p64(a: poly64x2_t) -> poly8x16_t {
55801    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55802    unsafe {
55803        let ret_val: poly8x16_t = transmute(a);
55804        simd_shuffle!(
55805            ret_val,
55806            ret_val,
55807            [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
55808        )
55809    }
55810}
55811#[doc = "Vector reinterpret cast operation"]
55812#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p64)"]
55813#[inline(always)]
55814#[cfg(target_endian = "little")]
55815#[target_feature(enable = "neon,aes")]
55816#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55818#[cfg_attr(
55819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55820    assert_instr(nop)
55821)]
55822#[cfg_attr(
55823    not(target_arch = "arm"),
55824    stable(feature = "neon_intrinsics", since = "1.59.0")
55825)]
55826#[cfg_attr(
55827    target_arch = "arm",
55828    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55829)]
55830pub fn vreinterpretq_p16_p64(a: poly64x2_t) -> poly16x8_t {
55831    unsafe { transmute(a) }
55832}
55833#[doc = "Vector reinterpret cast operation"]
55834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p64)"]
55835#[inline(always)]
55836#[cfg(target_endian = "big")]
55837#[target_feature(enable = "neon,aes")]
55838#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
55839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
55840#[cfg_attr(
55841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55842    assert_instr(nop)
55843)]
55844#[cfg_attr(
55845    not(target_arch = "arm"),
55846    stable(feature = "neon_intrinsics", since = "1.59.0")
55847)]
55848#[cfg_attr(
55849    target_arch = "arm",
55850    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55851)]
55852pub fn vreinterpretq_p16_p64(a: poly64x2_t) -> poly16x8_t {
55853    let a: poly64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
55854    unsafe {
55855        let ret_val: poly16x8_t = transmute(a);
55856        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
55857    }
55858}
55859#[doc = "Reversing vector elements (swap endianness)"]
55860#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_p8)"]
55861#[inline(always)]
55862#[target_feature(enable = "neon")]
55863#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55864#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55865#[cfg_attr(
55866    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55867    assert_instr(rev16)
55868)]
55869#[cfg_attr(
55870    not(target_arch = "arm"),
55871    stable(feature = "neon_intrinsics", since = "1.59.0")
55872)]
55873#[cfg_attr(
55874    target_arch = "arm",
55875    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55876)]
55877pub fn vrev16_p8(a: poly8x8_t) -> poly8x8_t {
55878    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
55879}
55880#[doc = "Reversing vector elements (swap endianness)"]
55881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_s8)"]
55882#[inline(always)]
55883#[target_feature(enable = "neon")]
55884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55885#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55886#[cfg_attr(
55887    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55888    assert_instr(rev16)
55889)]
55890#[cfg_attr(
55891    not(target_arch = "arm"),
55892    stable(feature = "neon_intrinsics", since = "1.59.0")
55893)]
55894#[cfg_attr(
55895    target_arch = "arm",
55896    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55897)]
55898pub fn vrev16_s8(a: int8x8_t) -> int8x8_t {
55899    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
55900}
55901#[doc = "Reversing vector elements (swap endianness)"]
55902#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16_u8)"]
55903#[inline(always)]
55904#[target_feature(enable = "neon")]
55905#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55906#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55907#[cfg_attr(
55908    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55909    assert_instr(rev16)
55910)]
55911#[cfg_attr(
55912    not(target_arch = "arm"),
55913    stable(feature = "neon_intrinsics", since = "1.59.0")
55914)]
55915#[cfg_attr(
55916    target_arch = "arm",
55917    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55918)]
55919pub fn vrev16_u8(a: uint8x8_t) -> uint8x8_t {
55920    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
55921}
55922#[doc = "Reversing vector elements (swap endianness)"]
55923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_p8)"]
55924#[inline(always)]
55925#[target_feature(enable = "neon")]
55926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55927#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55928#[cfg_attr(
55929    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55930    assert_instr(rev16)
55931)]
55932#[cfg_attr(
55933    not(target_arch = "arm"),
55934    stable(feature = "neon_intrinsics", since = "1.59.0")
55935)]
55936#[cfg_attr(
55937    target_arch = "arm",
55938    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55939)]
55940pub fn vrev16q_p8(a: poly8x16_t) -> poly8x16_t {
55941    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
55942}
55943#[doc = "Reversing vector elements (swap endianness)"]
55944#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_s8)"]
55945#[inline(always)]
55946#[target_feature(enable = "neon")]
55947#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55948#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55949#[cfg_attr(
55950    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55951    assert_instr(rev16)
55952)]
55953#[cfg_attr(
55954    not(target_arch = "arm"),
55955    stable(feature = "neon_intrinsics", since = "1.59.0")
55956)]
55957#[cfg_attr(
55958    target_arch = "arm",
55959    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55960)]
55961pub fn vrev16q_s8(a: int8x16_t) -> int8x16_t {
55962    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
55963}
55964#[doc = "Reversing vector elements (swap endianness)"]
55965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev16q_u8)"]
55966#[inline(always)]
55967#[target_feature(enable = "neon")]
55968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55969#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev16.8"))]
55970#[cfg_attr(
55971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55972    assert_instr(rev16)
55973)]
55974#[cfg_attr(
55975    not(target_arch = "arm"),
55976    stable(feature = "neon_intrinsics", since = "1.59.0")
55977)]
55978#[cfg_attr(
55979    target_arch = "arm",
55980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
55981)]
55982pub fn vrev16q_u8(a: uint8x16_t) -> uint8x16_t {
55983    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14]) }
55984}
55985#[doc = "Reversing vector elements (swap endianness)"]
55986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_p16)"]
55987#[inline(always)]
55988#[target_feature(enable = "neon")]
55989#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
55990#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
55991#[cfg_attr(
55992    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
55993    assert_instr(rev32)
55994)]
55995#[cfg_attr(
55996    not(target_arch = "arm"),
55997    stable(feature = "neon_intrinsics", since = "1.59.0")
55998)]
55999#[cfg_attr(
56000    target_arch = "arm",
56001    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56002)]
56003pub fn vrev32_p16(a: poly16x4_t) -> poly16x4_t {
56004    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
56005}
56006#[doc = "Reversing vector elements (swap endianness)"]
56007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_p8)"]
56008#[inline(always)]
56009#[target_feature(enable = "neon")]
56010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56011#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
56012#[cfg_attr(
56013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56014    assert_instr(rev32)
56015)]
56016#[cfg_attr(
56017    not(target_arch = "arm"),
56018    stable(feature = "neon_intrinsics", since = "1.59.0")
56019)]
56020#[cfg_attr(
56021    target_arch = "arm",
56022    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56023)]
56024pub fn vrev32_p8(a: poly8x8_t) -> poly8x8_t {
56025    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56026}
56027#[doc = "Reversing vector elements (swap endianness)"]
56028#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_s16)"]
56029#[inline(always)]
56030#[target_feature(enable = "neon")]
56031#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56032#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
56033#[cfg_attr(
56034    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56035    assert_instr(rev32)
56036)]
56037#[cfg_attr(
56038    not(target_arch = "arm"),
56039    stable(feature = "neon_intrinsics", since = "1.59.0")
56040)]
56041#[cfg_attr(
56042    target_arch = "arm",
56043    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56044)]
56045pub fn vrev32_s16(a: int16x4_t) -> int16x4_t {
56046    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
56047}
56048#[doc = "Reversing vector elements (swap endianness)"]
56049#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_s8)"]
56050#[inline(always)]
56051#[target_feature(enable = "neon")]
56052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56053#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
56054#[cfg_attr(
56055    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56056    assert_instr(rev32)
56057)]
56058#[cfg_attr(
56059    not(target_arch = "arm"),
56060    stable(feature = "neon_intrinsics", since = "1.59.0")
56061)]
56062#[cfg_attr(
56063    target_arch = "arm",
56064    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56065)]
56066pub fn vrev32_s8(a: int8x8_t) -> int8x8_t {
56067    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56068}
56069#[doc = "Reversing vector elements (swap endianness)"]
56070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_u16)"]
56071#[inline(always)]
56072#[target_feature(enable = "neon")]
56073#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56074#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
56075#[cfg_attr(
56076    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56077    assert_instr(rev32)
56078)]
56079#[cfg_attr(
56080    not(target_arch = "arm"),
56081    stable(feature = "neon_intrinsics", since = "1.59.0")
56082)]
56083#[cfg_attr(
56084    target_arch = "arm",
56085    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56086)]
56087pub fn vrev32_u16(a: uint16x4_t) -> uint16x4_t {
56088    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
56089}
56090#[doc = "Reversing vector elements (swap endianness)"]
56091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32_u8)"]
56092#[inline(always)]
56093#[target_feature(enable = "neon")]
56094#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56095#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
56096#[cfg_attr(
56097    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56098    assert_instr(rev32)
56099)]
56100#[cfg_attr(
56101    not(target_arch = "arm"),
56102    stable(feature = "neon_intrinsics", since = "1.59.0")
56103)]
56104#[cfg_attr(
56105    target_arch = "arm",
56106    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56107)]
56108pub fn vrev32_u8(a: uint8x8_t) -> uint8x8_t {
56109    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56110}
56111#[doc = "Reversing vector elements (swap endianness)"]
56112#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_p16)"]
56113#[inline(always)]
56114#[target_feature(enable = "neon")]
56115#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56116#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
56117#[cfg_attr(
56118    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56119    assert_instr(rev32)
56120)]
56121#[cfg_attr(
56122    not(target_arch = "arm"),
56123    stable(feature = "neon_intrinsics", since = "1.59.0")
56124)]
56125#[cfg_attr(
56126    target_arch = "arm",
56127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56128)]
56129pub fn vrev32q_p16(a: poly16x8_t) -> poly16x8_t {
56130    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
56131}
56132#[doc = "Reversing vector elements (swap endianness)"]
56133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_p8)"]
56134#[inline(always)]
56135#[target_feature(enable = "neon")]
56136#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56137#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
56138#[cfg_attr(
56139    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56140    assert_instr(rev32)
56141)]
56142#[cfg_attr(
56143    not(target_arch = "arm"),
56144    stable(feature = "neon_intrinsics", since = "1.59.0")
56145)]
56146#[cfg_attr(
56147    target_arch = "arm",
56148    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56149)]
56150pub fn vrev32q_p8(a: poly8x16_t) -> poly8x16_t {
56151    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
56152}
56153#[doc = "Reversing vector elements (swap endianness)"]
56154#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_s16)"]
56155#[inline(always)]
56156#[target_feature(enable = "neon")]
56157#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56158#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
56159#[cfg_attr(
56160    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56161    assert_instr(rev32)
56162)]
56163#[cfg_attr(
56164    not(target_arch = "arm"),
56165    stable(feature = "neon_intrinsics", since = "1.59.0")
56166)]
56167#[cfg_attr(
56168    target_arch = "arm",
56169    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56170)]
56171pub fn vrev32q_s16(a: int16x8_t) -> int16x8_t {
56172    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
56173}
56174#[doc = "Reversing vector elements (swap endianness)"]
56175#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_s8)"]
56176#[inline(always)]
56177#[target_feature(enable = "neon")]
56178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56179#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
56180#[cfg_attr(
56181    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56182    assert_instr(rev32)
56183)]
56184#[cfg_attr(
56185    not(target_arch = "arm"),
56186    stable(feature = "neon_intrinsics", since = "1.59.0")
56187)]
56188#[cfg_attr(
56189    target_arch = "arm",
56190    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56191)]
56192pub fn vrev32q_s8(a: int8x16_t) -> int8x16_t {
56193    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
56194}
56195#[doc = "Reversing vector elements (swap endianness)"]
56196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_u16)"]
56197#[inline(always)]
56198#[target_feature(enable = "neon")]
56199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56200#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.16"))]
56201#[cfg_attr(
56202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56203    assert_instr(rev32)
56204)]
56205#[cfg_attr(
56206    not(target_arch = "arm"),
56207    stable(feature = "neon_intrinsics", since = "1.59.0")
56208)]
56209#[cfg_attr(
56210    target_arch = "arm",
56211    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56212)]
56213pub fn vrev32q_u16(a: uint16x8_t) -> uint16x8_t {
56214    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2, 5, 4, 7, 6]) }
56215}
56216#[doc = "Reversing vector elements (swap endianness)"]
56217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev32q_u8)"]
56218#[inline(always)]
56219#[target_feature(enable = "neon")]
56220#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56221#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev32.8"))]
56222#[cfg_attr(
56223    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56224    assert_instr(rev32)
56225)]
56226#[cfg_attr(
56227    not(target_arch = "arm"),
56228    stable(feature = "neon_intrinsics", since = "1.59.0")
56229)]
56230#[cfg_attr(
56231    target_arch = "arm",
56232    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56233)]
56234pub fn vrev32q_u8(a: uint8x16_t) -> uint8x16_t {
56235    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4, 11, 10, 9, 8, 15, 14, 13, 12]) }
56236}
56237#[doc = "Reversing vector elements (swap endianness)"]
56238#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_f32)"]
56239#[inline(always)]
56240#[target_feature(enable = "neon")]
56241#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56242#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56243#[cfg_attr(
56244    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56245    assert_instr(rev64)
56246)]
56247#[cfg_attr(
56248    not(target_arch = "arm"),
56249    stable(feature = "neon_intrinsics", since = "1.59.0")
56250)]
56251#[cfg_attr(
56252    target_arch = "arm",
56253    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56254)]
56255pub fn vrev64_f32(a: float32x2_t) -> float32x2_t {
56256    unsafe { simd_shuffle!(a, a, [1, 0]) }
56257}
56258#[doc = "Reversing vector elements (swap endianness)"]
56259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_p16)"]
56260#[inline(always)]
56261#[target_feature(enable = "neon")]
56262#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56263#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56264#[cfg_attr(
56265    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56266    assert_instr(rev64)
56267)]
56268#[cfg_attr(
56269    not(target_arch = "arm"),
56270    stable(feature = "neon_intrinsics", since = "1.59.0")
56271)]
56272#[cfg_attr(
56273    target_arch = "arm",
56274    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56275)]
56276pub fn vrev64_p16(a: poly16x4_t) -> poly16x4_t {
56277    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
56278}
56279#[doc = "Reversing vector elements (swap endianness)"]
56280#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_p8)"]
56281#[inline(always)]
56282#[target_feature(enable = "neon")]
56283#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56284#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56285#[cfg_attr(
56286    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56287    assert_instr(rev64)
56288)]
56289#[cfg_attr(
56290    not(target_arch = "arm"),
56291    stable(feature = "neon_intrinsics", since = "1.59.0")
56292)]
56293#[cfg_attr(
56294    target_arch = "arm",
56295    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56296)]
56297pub fn vrev64_p8(a: poly8x8_t) -> poly8x8_t {
56298    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
56299}
56300#[doc = "Reversing vector elements (swap endianness)"]
56301#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s16)"]
56302#[inline(always)]
56303#[target_feature(enable = "neon")]
56304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56305#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56306#[cfg_attr(
56307    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56308    assert_instr(rev64)
56309)]
56310#[cfg_attr(
56311    not(target_arch = "arm"),
56312    stable(feature = "neon_intrinsics", since = "1.59.0")
56313)]
56314#[cfg_attr(
56315    target_arch = "arm",
56316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56317)]
56318pub fn vrev64_s16(a: int16x4_t) -> int16x4_t {
56319    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
56320}
56321#[doc = "Reversing vector elements (swap endianness)"]
56322#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s32)"]
56323#[inline(always)]
56324#[target_feature(enable = "neon")]
56325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56326#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56327#[cfg_attr(
56328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56329    assert_instr(rev64)
56330)]
56331#[cfg_attr(
56332    not(target_arch = "arm"),
56333    stable(feature = "neon_intrinsics", since = "1.59.0")
56334)]
56335#[cfg_attr(
56336    target_arch = "arm",
56337    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56338)]
56339pub fn vrev64_s32(a: int32x2_t) -> int32x2_t {
56340    unsafe { simd_shuffle!(a, a, [1, 0]) }
56341}
56342#[doc = "Reversing vector elements (swap endianness)"]
56343#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_s8)"]
56344#[inline(always)]
56345#[target_feature(enable = "neon")]
56346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56347#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56348#[cfg_attr(
56349    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56350    assert_instr(rev64)
56351)]
56352#[cfg_attr(
56353    not(target_arch = "arm"),
56354    stable(feature = "neon_intrinsics", since = "1.59.0")
56355)]
56356#[cfg_attr(
56357    target_arch = "arm",
56358    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56359)]
56360pub fn vrev64_s8(a: int8x8_t) -> int8x8_t {
56361    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
56362}
56363#[doc = "Reversing vector elements (swap endianness)"]
56364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u16)"]
56365#[inline(always)]
56366#[target_feature(enable = "neon")]
56367#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56368#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56369#[cfg_attr(
56370    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56371    assert_instr(rev64)
56372)]
56373#[cfg_attr(
56374    not(target_arch = "arm"),
56375    stable(feature = "neon_intrinsics", since = "1.59.0")
56376)]
56377#[cfg_attr(
56378    target_arch = "arm",
56379    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56380)]
56381pub fn vrev64_u16(a: uint16x4_t) -> uint16x4_t {
56382    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
56383}
56384#[doc = "Reversing vector elements (swap endianness)"]
56385#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u32)"]
56386#[inline(always)]
56387#[target_feature(enable = "neon")]
56388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56389#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56390#[cfg_attr(
56391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56392    assert_instr(rev64)
56393)]
56394#[cfg_attr(
56395    not(target_arch = "arm"),
56396    stable(feature = "neon_intrinsics", since = "1.59.0")
56397)]
56398#[cfg_attr(
56399    target_arch = "arm",
56400    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56401)]
56402pub fn vrev64_u32(a: uint32x2_t) -> uint32x2_t {
56403    unsafe { simd_shuffle!(a, a, [1, 0]) }
56404}
56405#[doc = "Reversing vector elements (swap endianness)"]
56406#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_u8)"]
56407#[inline(always)]
56408#[target_feature(enable = "neon")]
56409#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56410#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56411#[cfg_attr(
56412    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56413    assert_instr(rev64)
56414)]
56415#[cfg_attr(
56416    not(target_arch = "arm"),
56417    stable(feature = "neon_intrinsics", since = "1.59.0")
56418)]
56419#[cfg_attr(
56420    target_arch = "arm",
56421    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56422)]
56423pub fn vrev64_u8(a: uint8x8_t) -> uint8x8_t {
56424    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) }
56425}
56426#[doc = "Reversing vector elements (swap endianness)"]
56427#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_f32)"]
56428#[inline(always)]
56429#[target_feature(enable = "neon")]
56430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56431#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56432#[cfg_attr(
56433    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56434    assert_instr(rev64)
56435)]
56436#[cfg_attr(
56437    not(target_arch = "arm"),
56438    stable(feature = "neon_intrinsics", since = "1.59.0")
56439)]
56440#[cfg_attr(
56441    target_arch = "arm",
56442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56443)]
56444pub fn vrev64q_f32(a: float32x4_t) -> float32x4_t {
56445    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
56446}
56447#[doc = "Reversing vector elements (swap endianness)"]
56448#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_p16)"]
56449#[inline(always)]
56450#[target_feature(enable = "neon")]
56451#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56452#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56453#[cfg_attr(
56454    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56455    assert_instr(rev64)
56456)]
56457#[cfg_attr(
56458    not(target_arch = "arm"),
56459    stable(feature = "neon_intrinsics", since = "1.59.0")
56460)]
56461#[cfg_attr(
56462    target_arch = "arm",
56463    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56464)]
56465pub fn vrev64q_p16(a: poly16x8_t) -> poly16x8_t {
56466    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56467}
56468#[doc = "Reversing vector elements (swap endianness)"]
56469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_p8)"]
56470#[inline(always)]
56471#[target_feature(enable = "neon")]
56472#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56473#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56474#[cfg_attr(
56475    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56476    assert_instr(rev64)
56477)]
56478#[cfg_attr(
56479    not(target_arch = "arm"),
56480    stable(feature = "neon_intrinsics", since = "1.59.0")
56481)]
56482#[cfg_attr(
56483    target_arch = "arm",
56484    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56485)]
56486pub fn vrev64q_p8(a: poly8x16_t) -> poly8x16_t {
56487    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
56488}
56489#[doc = "Reversing vector elements (swap endianness)"]
56490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s16)"]
56491#[inline(always)]
56492#[target_feature(enable = "neon")]
56493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56494#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56495#[cfg_attr(
56496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56497    assert_instr(rev64)
56498)]
56499#[cfg_attr(
56500    not(target_arch = "arm"),
56501    stable(feature = "neon_intrinsics", since = "1.59.0")
56502)]
56503#[cfg_attr(
56504    target_arch = "arm",
56505    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56506)]
56507pub fn vrev64q_s16(a: int16x8_t) -> int16x8_t {
56508    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56509}
56510#[doc = "Reversing vector elements (swap endianness)"]
56511#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s32)"]
56512#[inline(always)]
56513#[target_feature(enable = "neon")]
56514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56515#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56516#[cfg_attr(
56517    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56518    assert_instr(rev64)
56519)]
56520#[cfg_attr(
56521    not(target_arch = "arm"),
56522    stable(feature = "neon_intrinsics", since = "1.59.0")
56523)]
56524#[cfg_attr(
56525    target_arch = "arm",
56526    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56527)]
56528pub fn vrev64q_s32(a: int32x4_t) -> int32x4_t {
56529    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
56530}
56531#[doc = "Reversing vector elements (swap endianness)"]
56532#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_s8)"]
56533#[inline(always)]
56534#[target_feature(enable = "neon")]
56535#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56536#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56537#[cfg_attr(
56538    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56539    assert_instr(rev64)
56540)]
56541#[cfg_attr(
56542    not(target_arch = "arm"),
56543    stable(feature = "neon_intrinsics", since = "1.59.0")
56544)]
56545#[cfg_attr(
56546    target_arch = "arm",
56547    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56548)]
56549pub fn vrev64q_s8(a: int8x16_t) -> int8x16_t {
56550    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
56551}
56552#[doc = "Reversing vector elements (swap endianness)"]
56553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u16)"]
56554#[inline(always)]
56555#[target_feature(enable = "neon")]
56556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56557#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.16"))]
56558#[cfg_attr(
56559    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56560    assert_instr(rev64)
56561)]
56562#[cfg_attr(
56563    not(target_arch = "arm"),
56564    stable(feature = "neon_intrinsics", since = "1.59.0")
56565)]
56566#[cfg_attr(
56567    target_arch = "arm",
56568    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56569)]
56570pub fn vrev64q_u16(a: uint16x8_t) -> uint16x8_t {
56571    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56572}
56573#[doc = "Reversing vector elements (swap endianness)"]
56574#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u32)"]
56575#[inline(always)]
56576#[target_feature(enable = "neon")]
56577#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56578#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.32"))]
56579#[cfg_attr(
56580    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56581    assert_instr(rev64)
56582)]
56583#[cfg_attr(
56584    not(target_arch = "arm"),
56585    stable(feature = "neon_intrinsics", since = "1.59.0")
56586)]
56587#[cfg_attr(
56588    target_arch = "arm",
56589    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56590)]
56591pub fn vrev64q_u32(a: uint32x4_t) -> uint32x4_t {
56592    unsafe { simd_shuffle!(a, a, [1, 0, 3, 2]) }
56593}
56594#[doc = "Reversing vector elements (swap endianness)"]
56595#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_u8)"]
56596#[inline(always)]
56597#[target_feature(enable = "neon")]
56598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56599#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrev64.8"))]
56600#[cfg_attr(
56601    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56602    assert_instr(rev64)
56603)]
56604#[cfg_attr(
56605    not(target_arch = "arm"),
56606    stable(feature = "neon_intrinsics", since = "1.59.0")
56607)]
56608#[cfg_attr(
56609    target_arch = "arm",
56610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56611)]
56612pub fn vrev64q_u8(a: uint8x16_t) -> uint8x16_t {
56613    unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8]) }
56614}
56615#[doc = "Reverse elements in 64-bit doublewords"]
56616#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64_f16)"]
56617#[inline(always)]
56618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrev64))]
56620#[cfg_attr(
56621    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56622    assert_instr(rev64)
56623)]
56624#[target_feature(enable = "neon,fp16")]
56625#[cfg_attr(
56626    not(target_arch = "arm"),
56627    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
56628)]
56629#[cfg_attr(
56630    target_arch = "arm",
56631    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56632)]
56633#[cfg(not(target_arch = "arm64ec"))]
56634pub fn vrev64_f16(a: float16x4_t) -> float16x4_t {
56635    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) }
56636}
56637#[doc = "Reverse elements in 64-bit doublewords"]
56638#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrev64q_f16)"]
56639#[inline(always)]
56640#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56641#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrev64))]
56642#[cfg_attr(
56643    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56644    assert_instr(rev64)
56645)]
56646#[target_feature(enable = "neon,fp16")]
56647#[cfg_attr(
56648    not(target_arch = "arm"),
56649    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
56650)]
56651#[cfg_attr(
56652    target_arch = "arm",
56653    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56654)]
56655#[cfg(not(target_arch = "arm64ec"))]
56656pub fn vrev64q_f16(a: float16x8_t) -> float16x8_t {
56657    unsafe { simd_shuffle!(a, a, [3, 2, 1, 0, 7, 6, 5, 4]) }
56658}
56659#[doc = "Rounding halving add"]
56660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s8)"]
56661#[inline(always)]
56662#[target_feature(enable = "neon")]
56663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56664#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
56665#[cfg_attr(
56666    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56667    assert_instr(srhadd)
56668)]
56669#[cfg_attr(
56670    not(target_arch = "arm"),
56671    stable(feature = "neon_intrinsics", since = "1.59.0")
56672)]
56673#[cfg_attr(
56674    target_arch = "arm",
56675    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56676)]
56677pub fn vrhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
56678    unsafe extern "unadjusted" {
56679        #[cfg_attr(
56680            any(target_arch = "aarch64", target_arch = "arm64ec"),
56681            link_name = "llvm.aarch64.neon.srhadd.v8i8"
56682        )]
56683        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i8")]
56684        fn _vrhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
56685    }
56686    unsafe { _vrhadd_s8(a, b) }
56687}
56688#[doc = "Rounding halving add"]
56689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s8)"]
56690#[inline(always)]
56691#[target_feature(enable = "neon")]
56692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56693#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
56694#[cfg_attr(
56695    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56696    assert_instr(srhadd)
56697)]
56698#[cfg_attr(
56699    not(target_arch = "arm"),
56700    stable(feature = "neon_intrinsics", since = "1.59.0")
56701)]
56702#[cfg_attr(
56703    target_arch = "arm",
56704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56705)]
56706pub fn vrhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
56707    unsafe extern "unadjusted" {
56708        #[cfg_attr(
56709            any(target_arch = "aarch64", target_arch = "arm64ec"),
56710            link_name = "llvm.aarch64.neon.srhadd.v16i8"
56711        )]
56712        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v16i8")]
56713        fn _vrhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
56714    }
56715    unsafe { _vrhaddq_s8(a, b) }
56716}
56717#[doc = "Rounding halving add"]
56718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s16)"]
56719#[inline(always)]
56720#[target_feature(enable = "neon")]
56721#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56722#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
56723#[cfg_attr(
56724    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56725    assert_instr(srhadd)
56726)]
56727#[cfg_attr(
56728    not(target_arch = "arm"),
56729    stable(feature = "neon_intrinsics", since = "1.59.0")
56730)]
56731#[cfg_attr(
56732    target_arch = "arm",
56733    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56734)]
56735pub fn vrhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
56736    unsafe extern "unadjusted" {
56737        #[cfg_attr(
56738            any(target_arch = "aarch64", target_arch = "arm64ec"),
56739            link_name = "llvm.aarch64.neon.srhadd.v4i16"
56740        )]
56741        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i16")]
56742        fn _vrhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
56743    }
56744    unsafe { _vrhadd_s16(a, b) }
56745}
56746#[doc = "Rounding halving add"]
56747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s16)"]
56748#[inline(always)]
56749#[target_feature(enable = "neon")]
56750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56751#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
56752#[cfg_attr(
56753    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56754    assert_instr(srhadd)
56755)]
56756#[cfg_attr(
56757    not(target_arch = "arm"),
56758    stable(feature = "neon_intrinsics", since = "1.59.0")
56759)]
56760#[cfg_attr(
56761    target_arch = "arm",
56762    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56763)]
56764pub fn vrhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
56765    unsafe extern "unadjusted" {
56766        #[cfg_attr(
56767            any(target_arch = "aarch64", target_arch = "arm64ec"),
56768            link_name = "llvm.aarch64.neon.srhadd.v8i16"
56769        )]
56770        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i16")]
56771        fn _vrhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
56772    }
56773    unsafe { _vrhaddq_s16(a, b) }
56774}
56775#[doc = "Rounding halving add"]
56776#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s32)"]
56777#[inline(always)]
56778#[target_feature(enable = "neon")]
56779#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56780#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
56781#[cfg_attr(
56782    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56783    assert_instr(srhadd)
56784)]
56785#[cfg_attr(
56786    not(target_arch = "arm"),
56787    stable(feature = "neon_intrinsics", since = "1.59.0")
56788)]
56789#[cfg_attr(
56790    target_arch = "arm",
56791    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56792)]
56793pub fn vrhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
56794    unsafe extern "unadjusted" {
56795        #[cfg_attr(
56796            any(target_arch = "aarch64", target_arch = "arm64ec"),
56797            link_name = "llvm.aarch64.neon.srhadd.v2i32"
56798        )]
56799        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v2i32")]
56800        fn _vrhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
56801    }
56802    unsafe { _vrhadd_s32(a, b) }
56803}
56804#[doc = "Rounding halving add"]
56805#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s32)"]
56806#[inline(always)]
56807#[target_feature(enable = "neon")]
56808#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56809#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
56810#[cfg_attr(
56811    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56812    assert_instr(srhadd)
56813)]
56814#[cfg_attr(
56815    not(target_arch = "arm"),
56816    stable(feature = "neon_intrinsics", since = "1.59.0")
56817)]
56818#[cfg_attr(
56819    target_arch = "arm",
56820    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56821)]
56822pub fn vrhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
56823    unsafe extern "unadjusted" {
56824        #[cfg_attr(
56825            any(target_arch = "aarch64", target_arch = "arm64ec"),
56826            link_name = "llvm.aarch64.neon.srhadd.v4i32"
56827        )]
56828        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i32")]
56829        fn _vrhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
56830    }
56831    unsafe { _vrhaddq_s32(a, b) }
56832}
56833#[doc = "Rounding halving add"]
56834#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u8)"]
56835#[inline(always)]
56836#[target_feature(enable = "neon")]
56837#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56838#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
56839#[cfg_attr(
56840    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56841    assert_instr(urhadd)
56842)]
56843#[cfg_attr(
56844    not(target_arch = "arm"),
56845    stable(feature = "neon_intrinsics", since = "1.59.0")
56846)]
56847#[cfg_attr(
56848    target_arch = "arm",
56849    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56850)]
56851pub fn vrhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
56852    unsafe extern "unadjusted" {
56853        #[cfg_attr(
56854            any(target_arch = "aarch64", target_arch = "arm64ec"),
56855            link_name = "llvm.aarch64.neon.urhadd.v8i8"
56856        )]
56857        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i8")]
56858        fn _vrhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
56859    }
56860    unsafe { _vrhadd_u8(a, b) }
56861}
56862#[doc = "Rounding halving add"]
56863#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u8)"]
56864#[inline(always)]
56865#[target_feature(enable = "neon")]
56866#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56867#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
56868#[cfg_attr(
56869    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56870    assert_instr(urhadd)
56871)]
56872#[cfg_attr(
56873    not(target_arch = "arm"),
56874    stable(feature = "neon_intrinsics", since = "1.59.0")
56875)]
56876#[cfg_attr(
56877    target_arch = "arm",
56878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56879)]
56880pub fn vrhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
56881    unsafe extern "unadjusted" {
56882        #[cfg_attr(
56883            any(target_arch = "aarch64", target_arch = "arm64ec"),
56884            link_name = "llvm.aarch64.neon.urhadd.v16i8"
56885        )]
56886        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v16i8")]
56887        fn _vrhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
56888    }
56889    unsafe { _vrhaddq_u8(a, b) }
56890}
56891#[doc = "Rounding halving add"]
56892#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u16)"]
56893#[inline(always)]
56894#[target_feature(enable = "neon")]
56895#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56896#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
56897#[cfg_attr(
56898    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56899    assert_instr(urhadd)
56900)]
56901#[cfg_attr(
56902    not(target_arch = "arm"),
56903    stable(feature = "neon_intrinsics", since = "1.59.0")
56904)]
56905#[cfg_attr(
56906    target_arch = "arm",
56907    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56908)]
56909pub fn vrhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
56910    unsafe extern "unadjusted" {
56911        #[cfg_attr(
56912            any(target_arch = "aarch64", target_arch = "arm64ec"),
56913            link_name = "llvm.aarch64.neon.urhadd.v4i16"
56914        )]
56915        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i16")]
56916        fn _vrhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
56917    }
56918    unsafe { _vrhadd_u16(a, b) }
56919}
56920#[doc = "Rounding halving add"]
56921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u16)"]
56922#[inline(always)]
56923#[target_feature(enable = "neon")]
56924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56925#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
56926#[cfg_attr(
56927    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56928    assert_instr(urhadd)
56929)]
56930#[cfg_attr(
56931    not(target_arch = "arm"),
56932    stable(feature = "neon_intrinsics", since = "1.59.0")
56933)]
56934#[cfg_attr(
56935    target_arch = "arm",
56936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56937)]
56938pub fn vrhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
56939    unsafe extern "unadjusted" {
56940        #[cfg_attr(
56941            any(target_arch = "aarch64", target_arch = "arm64ec"),
56942            link_name = "llvm.aarch64.neon.urhadd.v8i16"
56943        )]
56944        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i16")]
56945        fn _vrhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
56946    }
56947    unsafe { _vrhaddq_u16(a, b) }
56948}
56949#[doc = "Rounding halving add"]
56950#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u32)"]
56951#[inline(always)]
56952#[target_feature(enable = "neon")]
56953#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56954#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
56955#[cfg_attr(
56956    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56957    assert_instr(urhadd)
56958)]
56959#[cfg_attr(
56960    not(target_arch = "arm"),
56961    stable(feature = "neon_intrinsics", since = "1.59.0")
56962)]
56963#[cfg_attr(
56964    target_arch = "arm",
56965    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56966)]
56967pub fn vrhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
56968    unsafe extern "unadjusted" {
56969        #[cfg_attr(
56970            any(target_arch = "aarch64", target_arch = "arm64ec"),
56971            link_name = "llvm.aarch64.neon.urhadd.v2i32"
56972        )]
56973        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v2i32")]
56974        fn _vrhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
56975    }
56976    unsafe { _vrhadd_u32(a, b) }
56977}
56978#[doc = "Rounding halving add"]
56979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u32)"]
56980#[inline(always)]
56981#[target_feature(enable = "neon")]
56982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
56983#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
56984#[cfg_attr(
56985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
56986    assert_instr(urhadd)
56987)]
56988#[cfg_attr(
56989    not(target_arch = "arm"),
56990    stable(feature = "neon_intrinsics", since = "1.59.0")
56991)]
56992#[cfg_attr(
56993    target_arch = "arm",
56994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
56995)]
56996pub fn vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
56997    unsafe extern "unadjusted" {
56998        #[cfg_attr(
56999            any(target_arch = "aarch64", target_arch = "arm64ec"),
57000            link_name = "llvm.aarch64.neon.urhadd.v4i32"
57001        )]
57002        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i32")]
57003        fn _vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
57004    }
57005    unsafe { _vrhaddq_u32(a, b) }
57006}
57007#[doc = "Floating-point round to integral, to nearest with ties to even"]
57008#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndn_f16)"]
57009#[inline(always)]
57010#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
57011#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
57012#[cfg_attr(
57013    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57014    assert_instr(frintn)
57015)]
57016#[target_feature(enable = "neon,fp16")]
57017#[cfg_attr(
57018    not(target_arch = "arm"),
57019    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
57020)]
57021#[cfg_attr(
57022    target_arch = "arm",
57023    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57024)]
57025#[cfg(not(target_arch = "arm64ec"))]
57026pub fn vrndn_f16(a: float16x4_t) -> float16x4_t {
57027    unsafe extern "unadjusted" {
57028        #[cfg_attr(
57029            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
57030            link_name = "llvm.roundeven.v4f16"
57031        )]
57032        fn _vrndn_f16(a: float16x4_t) -> float16x4_t;
57033    }
57034    unsafe { _vrndn_f16(a) }
57035}
57036#[doc = "Floating-point round to integral, to nearest with ties to even"]
57037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndnq_f16)"]
57038#[inline(always)]
57039#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
57040#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
57041#[cfg_attr(
57042    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57043    assert_instr(frintn)
57044)]
57045#[target_feature(enable = "neon,fp16")]
57046#[cfg_attr(
57047    not(target_arch = "arm"),
57048    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
57049)]
57050#[cfg_attr(
57051    target_arch = "arm",
57052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57053)]
57054#[cfg(not(target_arch = "arm64ec"))]
57055pub fn vrndnq_f16(a: float16x8_t) -> float16x8_t {
57056    unsafe extern "unadjusted" {
57057        #[cfg_attr(
57058            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
57059            link_name = "llvm.roundeven.v8f16"
57060        )]
57061        fn _vrndnq_f16(a: float16x8_t) -> float16x8_t;
57062    }
57063    unsafe { _vrndnq_f16(a) }
57064}
57065#[doc = "Floating-point round to integral, to nearest with ties to even"]
57066#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndn_f32)"]
57067#[inline(always)]
57068#[target_feature(enable = "neon")]
57069#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
57070#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
57071#[cfg_attr(
57072    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57073    assert_instr(frintn)
57074)]
57075#[cfg_attr(
57076    not(target_arch = "arm"),
57077    stable(feature = "neon_intrinsics", since = "1.59.0")
57078)]
57079#[cfg_attr(
57080    target_arch = "arm",
57081    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57082)]
57083pub fn vrndn_f32(a: float32x2_t) -> float32x2_t {
57084    unsafe extern "unadjusted" {
57085        #[cfg_attr(
57086            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
57087            link_name = "llvm.roundeven.v2f32"
57088        )]
57089        fn _vrndn_f32(a: float32x2_t) -> float32x2_t;
57090    }
57091    unsafe { _vrndn_f32(a) }
57092}
57093#[doc = "Floating-point round to integral, to nearest with ties to even"]
57094#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndnq_f32)"]
57095#[inline(always)]
57096#[target_feature(enable = "neon")]
57097#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
57098#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
57099#[cfg_attr(
57100    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57101    assert_instr(frintn)
57102)]
57103#[cfg_attr(
57104    not(target_arch = "arm"),
57105    stable(feature = "neon_intrinsics", since = "1.59.0")
57106)]
57107#[cfg_attr(
57108    target_arch = "arm",
57109    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57110)]
57111pub fn vrndnq_f32(a: float32x4_t) -> float32x4_t {
57112    unsafe extern "unadjusted" {
57113        #[cfg_attr(
57114            any(target_arch = "aarch64", target_arch = "arm64ec", target_arch = "arm"),
57115            link_name = "llvm.roundeven.v4f32"
57116        )]
57117        fn _vrndnq_f32(a: float32x4_t) -> float32x4_t;
57118    }
57119    unsafe { _vrndnq_f32(a) }
57120}
57121#[doc = "Signed rounding shift left"]
57122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s8)"]
57123#[inline(always)]
57124#[target_feature(enable = "neon")]
57125#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57126#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57127#[cfg_attr(
57128    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57129    assert_instr(srshl)
57130)]
57131#[cfg_attr(
57132    not(target_arch = "arm"),
57133    stable(feature = "neon_intrinsics", since = "1.59.0")
57134)]
57135#[cfg_attr(
57136    target_arch = "arm",
57137    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57138)]
57139pub fn vrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
57140    unsafe extern "unadjusted" {
57141        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i8")]
57142        #[cfg_attr(
57143            any(target_arch = "aarch64", target_arch = "arm64ec"),
57144            link_name = "llvm.aarch64.neon.srshl.v8i8"
57145        )]
57146        fn _vrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
57147    }
57148    unsafe { _vrshl_s8(a, b) }
57149}
57150#[doc = "Signed rounding shift left"]
57151#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s8)"]
57152#[inline(always)]
57153#[target_feature(enable = "neon")]
57154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57155#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57156#[cfg_attr(
57157    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57158    assert_instr(srshl)
57159)]
57160#[cfg_attr(
57161    not(target_arch = "arm"),
57162    stable(feature = "neon_intrinsics", since = "1.59.0")
57163)]
57164#[cfg_attr(
57165    target_arch = "arm",
57166    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57167)]
57168pub fn vrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
57169    unsafe extern "unadjusted" {
57170        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v16i8")]
57171        #[cfg_attr(
57172            any(target_arch = "aarch64", target_arch = "arm64ec"),
57173            link_name = "llvm.aarch64.neon.srshl.v16i8"
57174        )]
57175        fn _vrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
57176    }
57177    unsafe { _vrshlq_s8(a, b) }
57178}
57179#[doc = "Signed rounding shift left"]
57180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s16)"]
57181#[inline(always)]
57182#[target_feature(enable = "neon")]
57183#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57184#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57185#[cfg_attr(
57186    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57187    assert_instr(srshl)
57188)]
57189#[cfg_attr(
57190    not(target_arch = "arm"),
57191    stable(feature = "neon_intrinsics", since = "1.59.0")
57192)]
57193#[cfg_attr(
57194    target_arch = "arm",
57195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57196)]
57197pub fn vrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
57198    unsafe extern "unadjusted" {
57199        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i16")]
57200        #[cfg_attr(
57201            any(target_arch = "aarch64", target_arch = "arm64ec"),
57202            link_name = "llvm.aarch64.neon.srshl.v4i16"
57203        )]
57204        fn _vrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
57205    }
57206    unsafe { _vrshl_s16(a, b) }
57207}
57208#[doc = "Signed rounding shift left"]
57209#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s16)"]
57210#[inline(always)]
57211#[target_feature(enable = "neon")]
57212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57214#[cfg_attr(
57215    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57216    assert_instr(srshl)
57217)]
57218#[cfg_attr(
57219    not(target_arch = "arm"),
57220    stable(feature = "neon_intrinsics", since = "1.59.0")
57221)]
57222#[cfg_attr(
57223    target_arch = "arm",
57224    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57225)]
57226pub fn vrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
57227    unsafe extern "unadjusted" {
57228        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i16")]
57229        #[cfg_attr(
57230            any(target_arch = "aarch64", target_arch = "arm64ec"),
57231            link_name = "llvm.aarch64.neon.srshl.v8i16"
57232        )]
57233        fn _vrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
57234    }
57235    unsafe { _vrshlq_s16(a, b) }
57236}
57237#[doc = "Signed rounding shift left"]
57238#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s32)"]
57239#[inline(always)]
57240#[target_feature(enable = "neon")]
57241#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57242#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57243#[cfg_attr(
57244    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57245    assert_instr(srshl)
57246)]
57247#[cfg_attr(
57248    not(target_arch = "arm"),
57249    stable(feature = "neon_intrinsics", since = "1.59.0")
57250)]
57251#[cfg_attr(
57252    target_arch = "arm",
57253    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57254)]
57255pub fn vrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
57256    unsafe extern "unadjusted" {
57257        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i32")]
57258        #[cfg_attr(
57259            any(target_arch = "aarch64", target_arch = "arm64ec"),
57260            link_name = "llvm.aarch64.neon.srshl.v2i32"
57261        )]
57262        fn _vrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
57263    }
57264    unsafe { _vrshl_s32(a, b) }
57265}
57266#[doc = "Signed rounding shift left"]
57267#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s32)"]
57268#[inline(always)]
57269#[target_feature(enable = "neon")]
57270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57272#[cfg_attr(
57273    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57274    assert_instr(srshl)
57275)]
57276#[cfg_attr(
57277    not(target_arch = "arm"),
57278    stable(feature = "neon_intrinsics", since = "1.59.0")
57279)]
57280#[cfg_attr(
57281    target_arch = "arm",
57282    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57283)]
57284pub fn vrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
57285    unsafe extern "unadjusted" {
57286        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i32")]
57287        #[cfg_attr(
57288            any(target_arch = "aarch64", target_arch = "arm64ec"),
57289            link_name = "llvm.aarch64.neon.srshl.v4i32"
57290        )]
57291        fn _vrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
57292    }
57293    unsafe { _vrshlq_s32(a, b) }
57294}
57295#[doc = "Signed rounding shift left"]
57296#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s64)"]
57297#[inline(always)]
57298#[target_feature(enable = "neon")]
57299#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57300#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57301#[cfg_attr(
57302    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57303    assert_instr(srshl)
57304)]
57305#[cfg_attr(
57306    not(target_arch = "arm"),
57307    stable(feature = "neon_intrinsics", since = "1.59.0")
57308)]
57309#[cfg_attr(
57310    target_arch = "arm",
57311    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57312)]
57313pub fn vrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
57314    unsafe extern "unadjusted" {
57315        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v1i64")]
57316        #[cfg_attr(
57317            any(target_arch = "aarch64", target_arch = "arm64ec"),
57318            link_name = "llvm.aarch64.neon.srshl.v1i64"
57319        )]
57320        fn _vrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
57321    }
57322    unsafe { _vrshl_s64(a, b) }
57323}
57324#[doc = "Signed rounding shift left"]
57325#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s64)"]
57326#[inline(always)]
57327#[target_feature(enable = "neon")]
57328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57329#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57330#[cfg_attr(
57331    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57332    assert_instr(srshl)
57333)]
57334#[cfg_attr(
57335    not(target_arch = "arm"),
57336    stable(feature = "neon_intrinsics", since = "1.59.0")
57337)]
57338#[cfg_attr(
57339    target_arch = "arm",
57340    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57341)]
57342pub fn vrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
57343    unsafe extern "unadjusted" {
57344        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i64")]
57345        #[cfg_attr(
57346            any(target_arch = "aarch64", target_arch = "arm64ec"),
57347            link_name = "llvm.aarch64.neon.srshl.v2i64"
57348        )]
57349        fn _vrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
57350    }
57351    unsafe { _vrshlq_s64(a, b) }
57352}
57353#[doc = "Unsigned rounding shift left"]
57354#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u8)"]
57355#[inline(always)]
57356#[target_feature(enable = "neon")]
57357#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57358#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57359#[cfg_attr(
57360    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57361    assert_instr(urshl)
57362)]
57363#[cfg_attr(
57364    not(target_arch = "arm"),
57365    stable(feature = "neon_intrinsics", since = "1.59.0")
57366)]
57367#[cfg_attr(
57368    target_arch = "arm",
57369    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57370)]
57371pub fn vrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
57372    unsafe extern "unadjusted" {
57373        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i8")]
57374        #[cfg_attr(
57375            any(target_arch = "aarch64", target_arch = "arm64ec"),
57376            link_name = "llvm.aarch64.neon.urshl.v8i8"
57377        )]
57378        fn _vrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
57379    }
57380    unsafe { _vrshl_u8(a, b) }
57381}
57382#[doc = "Unsigned rounding shift left"]
57383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u8)"]
57384#[inline(always)]
57385#[target_feature(enable = "neon")]
57386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57388#[cfg_attr(
57389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57390    assert_instr(urshl)
57391)]
57392#[cfg_attr(
57393    not(target_arch = "arm"),
57394    stable(feature = "neon_intrinsics", since = "1.59.0")
57395)]
57396#[cfg_attr(
57397    target_arch = "arm",
57398    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57399)]
57400pub fn vrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
57401    unsafe extern "unadjusted" {
57402        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v16i8")]
57403        #[cfg_attr(
57404            any(target_arch = "aarch64", target_arch = "arm64ec"),
57405            link_name = "llvm.aarch64.neon.urshl.v16i8"
57406        )]
57407        fn _vrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
57408    }
57409    unsafe { _vrshlq_u8(a, b) }
57410}
57411#[doc = "Unsigned rounding shift left"]
57412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u16)"]
57413#[inline(always)]
57414#[target_feature(enable = "neon")]
57415#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57416#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57417#[cfg_attr(
57418    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57419    assert_instr(urshl)
57420)]
57421#[cfg_attr(
57422    not(target_arch = "arm"),
57423    stable(feature = "neon_intrinsics", since = "1.59.0")
57424)]
57425#[cfg_attr(
57426    target_arch = "arm",
57427    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57428)]
57429pub fn vrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
57430    unsafe extern "unadjusted" {
57431        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i16")]
57432        #[cfg_attr(
57433            any(target_arch = "aarch64", target_arch = "arm64ec"),
57434            link_name = "llvm.aarch64.neon.urshl.v4i16"
57435        )]
57436        fn _vrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
57437    }
57438    unsafe { _vrshl_u16(a, b) }
57439}
57440#[doc = "Unsigned rounding shift left"]
57441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u16)"]
57442#[inline(always)]
57443#[target_feature(enable = "neon")]
57444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57446#[cfg_attr(
57447    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57448    assert_instr(urshl)
57449)]
57450#[cfg_attr(
57451    not(target_arch = "arm"),
57452    stable(feature = "neon_intrinsics", since = "1.59.0")
57453)]
57454#[cfg_attr(
57455    target_arch = "arm",
57456    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57457)]
57458pub fn vrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
57459    unsafe extern "unadjusted" {
57460        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i16")]
57461        #[cfg_attr(
57462            any(target_arch = "aarch64", target_arch = "arm64ec"),
57463            link_name = "llvm.aarch64.neon.urshl.v8i16"
57464        )]
57465        fn _vrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
57466    }
57467    unsafe { _vrshlq_u16(a, b) }
57468}
57469#[doc = "Unsigned rounding shift left"]
57470#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u32)"]
57471#[inline(always)]
57472#[target_feature(enable = "neon")]
57473#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57474#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57475#[cfg_attr(
57476    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57477    assert_instr(urshl)
57478)]
57479#[cfg_attr(
57480    not(target_arch = "arm"),
57481    stable(feature = "neon_intrinsics", since = "1.59.0")
57482)]
57483#[cfg_attr(
57484    target_arch = "arm",
57485    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57486)]
57487pub fn vrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
57488    unsafe extern "unadjusted" {
57489        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i32")]
57490        #[cfg_attr(
57491            any(target_arch = "aarch64", target_arch = "arm64ec"),
57492            link_name = "llvm.aarch64.neon.urshl.v2i32"
57493        )]
57494        fn _vrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
57495    }
57496    unsafe { _vrshl_u32(a, b) }
57497}
57498#[doc = "Unsigned rounding shift left"]
57499#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u32)"]
57500#[inline(always)]
57501#[target_feature(enable = "neon")]
57502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57503#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57504#[cfg_attr(
57505    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57506    assert_instr(urshl)
57507)]
57508#[cfg_attr(
57509    not(target_arch = "arm"),
57510    stable(feature = "neon_intrinsics", since = "1.59.0")
57511)]
57512#[cfg_attr(
57513    target_arch = "arm",
57514    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57515)]
57516pub fn vrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
57517    unsafe extern "unadjusted" {
57518        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i32")]
57519        #[cfg_attr(
57520            any(target_arch = "aarch64", target_arch = "arm64ec"),
57521            link_name = "llvm.aarch64.neon.urshl.v4i32"
57522        )]
57523        fn _vrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
57524    }
57525    unsafe { _vrshlq_u32(a, b) }
57526}
57527#[doc = "Unsigned rounding shift left"]
57528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u64)"]
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(vrshl))]
57533#[cfg_attr(
57534    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57535    assert_instr(urshl)
57536)]
57537#[cfg_attr(
57538    not(target_arch = "arm"),
57539    stable(feature = "neon_intrinsics", since = "1.59.0")
57540)]
57541#[cfg_attr(
57542    target_arch = "arm",
57543    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57544)]
57545pub fn vrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
57546    unsafe extern "unadjusted" {
57547        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v1i64")]
57548        #[cfg_attr(
57549            any(target_arch = "aarch64", target_arch = "arm64ec"),
57550            link_name = "llvm.aarch64.neon.urshl.v1i64"
57551        )]
57552        fn _vrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
57553    }
57554    unsafe { _vrshl_u64(a, b) }
57555}
57556#[doc = "Unsigned rounding shift left"]
57557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u64)"]
57558#[inline(always)]
57559#[target_feature(enable = "neon")]
57560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
57562#[cfg_attr(
57563    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57564    assert_instr(urshl)
57565)]
57566#[cfg_attr(
57567    not(target_arch = "arm"),
57568    stable(feature = "neon_intrinsics", since = "1.59.0")
57569)]
57570#[cfg_attr(
57571    target_arch = "arm",
57572    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57573)]
57574pub fn vrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
57575    unsafe extern "unadjusted" {
57576        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i64")]
57577        #[cfg_attr(
57578            any(target_arch = "aarch64", target_arch = "arm64ec"),
57579            link_name = "llvm.aarch64.neon.urshl.v2i64"
57580        )]
57581        fn _vrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
57582    }
57583    unsafe { _vrshlq_u64(a, b) }
57584}
57585#[doc = "Signed rounding shift right"]
57586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s8)"]
57587#[inline(always)]
57588#[target_feature(enable = "neon")]
57589#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57590#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57591#[cfg_attr(
57592    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57593    assert_instr(srshr, N = 2)
57594)]
57595#[rustc_legacy_const_generics(1)]
57596#[cfg_attr(
57597    not(target_arch = "arm"),
57598    stable(feature = "neon_intrinsics", since = "1.59.0")
57599)]
57600#[cfg_attr(
57601    target_arch = "arm",
57602    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57603)]
57604pub fn vrshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
57605    static_assert!(N >= 1 && N <= 8);
57606    vrshl_s8(a, vdup_n_s8(-N as _))
57607}
57608#[doc = "Signed rounding shift right"]
57609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s8)"]
57610#[inline(always)]
57611#[target_feature(enable = "neon")]
57612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57613#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57614#[cfg_attr(
57615    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57616    assert_instr(srshr, N = 2)
57617)]
57618#[rustc_legacy_const_generics(1)]
57619#[cfg_attr(
57620    not(target_arch = "arm"),
57621    stable(feature = "neon_intrinsics", since = "1.59.0")
57622)]
57623#[cfg_attr(
57624    target_arch = "arm",
57625    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57626)]
57627pub fn vrshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
57628    static_assert!(N >= 1 && N <= 8);
57629    vrshlq_s8(a, vdupq_n_s8(-N as _))
57630}
57631#[doc = "Signed rounding shift right"]
57632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s16)"]
57633#[inline(always)]
57634#[target_feature(enable = "neon")]
57635#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57636#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57637#[cfg_attr(
57638    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57639    assert_instr(srshr, N = 2)
57640)]
57641#[rustc_legacy_const_generics(1)]
57642#[cfg_attr(
57643    not(target_arch = "arm"),
57644    stable(feature = "neon_intrinsics", since = "1.59.0")
57645)]
57646#[cfg_attr(
57647    target_arch = "arm",
57648    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57649)]
57650pub fn vrshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
57651    static_assert!(N >= 1 && N <= 16);
57652    vrshl_s16(a, vdup_n_s16(-N as _))
57653}
57654#[doc = "Signed rounding shift right"]
57655#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s16)"]
57656#[inline(always)]
57657#[target_feature(enable = "neon")]
57658#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57659#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57660#[cfg_attr(
57661    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57662    assert_instr(srshr, N = 2)
57663)]
57664#[rustc_legacy_const_generics(1)]
57665#[cfg_attr(
57666    not(target_arch = "arm"),
57667    stable(feature = "neon_intrinsics", since = "1.59.0")
57668)]
57669#[cfg_attr(
57670    target_arch = "arm",
57671    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57672)]
57673pub fn vrshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
57674    static_assert!(N >= 1 && N <= 16);
57675    vrshlq_s16(a, vdupq_n_s16(-N as _))
57676}
57677#[doc = "Signed rounding shift right"]
57678#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s32)"]
57679#[inline(always)]
57680#[target_feature(enable = "neon")]
57681#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57682#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57683#[cfg_attr(
57684    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57685    assert_instr(srshr, N = 2)
57686)]
57687#[rustc_legacy_const_generics(1)]
57688#[cfg_attr(
57689    not(target_arch = "arm"),
57690    stable(feature = "neon_intrinsics", since = "1.59.0")
57691)]
57692#[cfg_attr(
57693    target_arch = "arm",
57694    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57695)]
57696pub fn vrshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
57697    static_assert!(N >= 1 && N <= 32);
57698    vrshl_s32(a, vdup_n_s32(-N as _))
57699}
57700#[doc = "Signed rounding shift right"]
57701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s32)"]
57702#[inline(always)]
57703#[target_feature(enable = "neon")]
57704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57706#[cfg_attr(
57707    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57708    assert_instr(srshr, N = 2)
57709)]
57710#[rustc_legacy_const_generics(1)]
57711#[cfg_attr(
57712    not(target_arch = "arm"),
57713    stable(feature = "neon_intrinsics", since = "1.59.0")
57714)]
57715#[cfg_attr(
57716    target_arch = "arm",
57717    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57718)]
57719pub fn vrshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
57720    static_assert!(N >= 1 && N <= 32);
57721    vrshlq_s32(a, vdupq_n_s32(-N as _))
57722}
57723#[doc = "Signed rounding shift right"]
57724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s64)"]
57725#[inline(always)]
57726#[target_feature(enable = "neon")]
57727#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57728#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57729#[cfg_attr(
57730    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57731    assert_instr(srshr, N = 2)
57732)]
57733#[rustc_legacy_const_generics(1)]
57734#[cfg_attr(
57735    not(target_arch = "arm"),
57736    stable(feature = "neon_intrinsics", since = "1.59.0")
57737)]
57738#[cfg_attr(
57739    target_arch = "arm",
57740    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57741)]
57742pub fn vrshr_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
57743    static_assert!(N >= 1 && N <= 64);
57744    vrshl_s64(a, vdup_n_s64(-N as _))
57745}
57746#[doc = "Signed rounding shift right"]
57747#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s64)"]
57748#[inline(always)]
57749#[target_feature(enable = "neon")]
57750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57751#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57752#[cfg_attr(
57753    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57754    assert_instr(srshr, N = 2)
57755)]
57756#[rustc_legacy_const_generics(1)]
57757#[cfg_attr(
57758    not(target_arch = "arm"),
57759    stable(feature = "neon_intrinsics", since = "1.59.0")
57760)]
57761#[cfg_attr(
57762    target_arch = "arm",
57763    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57764)]
57765pub fn vrshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
57766    static_assert!(N >= 1 && N <= 64);
57767    vrshlq_s64(a, vdupq_n_s64(-N as _))
57768}
57769#[doc = "Unsigned rounding shift right"]
57770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u8)"]
57771#[inline(always)]
57772#[target_feature(enable = "neon")]
57773#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57774#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57775#[cfg_attr(
57776    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57777    assert_instr(urshr, N = 2)
57778)]
57779#[rustc_legacy_const_generics(1)]
57780#[cfg_attr(
57781    not(target_arch = "arm"),
57782    stable(feature = "neon_intrinsics", since = "1.59.0")
57783)]
57784#[cfg_attr(
57785    target_arch = "arm",
57786    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57787)]
57788pub fn vrshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
57789    static_assert!(N >= 1 && N <= 8);
57790    vrshl_u8(a, vdup_n_s8(-N as _))
57791}
57792#[doc = "Unsigned rounding shift right"]
57793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u8)"]
57794#[inline(always)]
57795#[target_feature(enable = "neon")]
57796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57798#[cfg_attr(
57799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57800    assert_instr(urshr, N = 2)
57801)]
57802#[rustc_legacy_const_generics(1)]
57803#[cfg_attr(
57804    not(target_arch = "arm"),
57805    stable(feature = "neon_intrinsics", since = "1.59.0")
57806)]
57807#[cfg_attr(
57808    target_arch = "arm",
57809    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57810)]
57811pub fn vrshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
57812    static_assert!(N >= 1 && N <= 8);
57813    vrshlq_u8(a, vdupq_n_s8(-N as _))
57814}
57815#[doc = "Unsigned rounding shift right"]
57816#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u16)"]
57817#[inline(always)]
57818#[target_feature(enable = "neon")]
57819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57820#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57821#[cfg_attr(
57822    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57823    assert_instr(urshr, N = 2)
57824)]
57825#[rustc_legacy_const_generics(1)]
57826#[cfg_attr(
57827    not(target_arch = "arm"),
57828    stable(feature = "neon_intrinsics", since = "1.59.0")
57829)]
57830#[cfg_attr(
57831    target_arch = "arm",
57832    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57833)]
57834pub fn vrshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
57835    static_assert!(N >= 1 && N <= 16);
57836    vrshl_u16(a, vdup_n_s16(-N as _))
57837}
57838#[doc = "Unsigned rounding shift right"]
57839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u16)"]
57840#[inline(always)]
57841#[target_feature(enable = "neon")]
57842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57844#[cfg_attr(
57845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57846    assert_instr(urshr, N = 2)
57847)]
57848#[rustc_legacy_const_generics(1)]
57849#[cfg_attr(
57850    not(target_arch = "arm"),
57851    stable(feature = "neon_intrinsics", since = "1.59.0")
57852)]
57853#[cfg_attr(
57854    target_arch = "arm",
57855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57856)]
57857pub fn vrshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
57858    static_assert!(N >= 1 && N <= 16);
57859    vrshlq_u16(a, vdupq_n_s16(-N as _))
57860}
57861#[doc = "Unsigned rounding shift right"]
57862#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u32)"]
57863#[inline(always)]
57864#[target_feature(enable = "neon")]
57865#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57866#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57867#[cfg_attr(
57868    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57869    assert_instr(urshr, N = 2)
57870)]
57871#[rustc_legacy_const_generics(1)]
57872#[cfg_attr(
57873    not(target_arch = "arm"),
57874    stable(feature = "neon_intrinsics", since = "1.59.0")
57875)]
57876#[cfg_attr(
57877    target_arch = "arm",
57878    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57879)]
57880pub fn vrshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
57881    static_assert!(N >= 1 && N <= 32);
57882    vrshl_u32(a, vdup_n_s32(-N as _))
57883}
57884#[doc = "Unsigned rounding shift right"]
57885#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u32)"]
57886#[inline(always)]
57887#[target_feature(enable = "neon")]
57888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57890#[cfg_attr(
57891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57892    assert_instr(urshr, N = 2)
57893)]
57894#[rustc_legacy_const_generics(1)]
57895#[cfg_attr(
57896    not(target_arch = "arm"),
57897    stable(feature = "neon_intrinsics", since = "1.59.0")
57898)]
57899#[cfg_attr(
57900    target_arch = "arm",
57901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57902)]
57903pub fn vrshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
57904    static_assert!(N >= 1 && N <= 32);
57905    vrshlq_u32(a, vdupq_n_s32(-N as _))
57906}
57907#[doc = "Unsigned rounding shift right"]
57908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u64)"]
57909#[inline(always)]
57910#[target_feature(enable = "neon")]
57911#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57912#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57913#[cfg_attr(
57914    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57915    assert_instr(urshr, N = 2)
57916)]
57917#[rustc_legacy_const_generics(1)]
57918#[cfg_attr(
57919    not(target_arch = "arm"),
57920    stable(feature = "neon_intrinsics", since = "1.59.0")
57921)]
57922#[cfg_attr(
57923    target_arch = "arm",
57924    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57925)]
57926pub fn vrshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
57927    static_assert!(N >= 1 && N <= 64);
57928    vrshl_u64(a, vdup_n_s64(-N as _))
57929}
57930#[doc = "Unsigned rounding shift right"]
57931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u64)"]
57932#[inline(always)]
57933#[target_feature(enable = "neon")]
57934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
57935#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
57936#[cfg_attr(
57937    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
57938    assert_instr(urshr, N = 2)
57939)]
57940#[rustc_legacy_const_generics(1)]
57941#[cfg_attr(
57942    not(target_arch = "arm"),
57943    stable(feature = "neon_intrinsics", since = "1.59.0")
57944)]
57945#[cfg_attr(
57946    target_arch = "arm",
57947    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
57948)]
57949pub fn vrshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
57950    static_assert!(N >= 1 && N <= 64);
57951    vrshlq_u64(a, vdupq_n_s64(-N as _))
57952}
57953#[doc = "Rounding shift right narrow"]
57954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"]
57955#[inline(always)]
57956#[cfg(target_arch = "arm")]
57957#[target_feature(enable = "neon,v7")]
57958#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
57959#[rustc_legacy_const_generics(1)]
57960#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57961pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
57962    static_assert!(N >= 1 && N <= 8);
57963    unsafe extern "unadjusted" {
57964        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v8i8")]
57965        fn _vrshrn_n_s16(a: int16x8_t, n: int16x8_t) -> int8x8_t;
57966    }
57967    unsafe { _vrshrn_n_s16(a, const { int16x8_t([-N as i16; 8]) }) }
57968}
57969#[doc = "Rounding shift right narrow"]
57970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"]
57971#[inline(always)]
57972#[cfg(target_arch = "arm")]
57973#[target_feature(enable = "neon,v7")]
57974#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
57975#[rustc_legacy_const_generics(1)]
57976#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57977pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
57978    static_assert!(N >= 1 && N <= 16);
57979    unsafe extern "unadjusted" {
57980        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v4i16")]
57981        fn _vrshrn_n_s32(a: int32x4_t, n: int32x4_t) -> int16x4_t;
57982    }
57983    unsafe { _vrshrn_n_s32(a, const { int32x4_t([-N; 4]) }) }
57984}
57985#[doc = "Rounding shift right narrow"]
57986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"]
57987#[inline(always)]
57988#[cfg(target_arch = "arm")]
57989#[target_feature(enable = "neon,v7")]
57990#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
57991#[rustc_legacy_const_generics(1)]
57992#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
57993pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
57994    static_assert!(N >= 1 && N <= 32);
57995    unsafe extern "unadjusted" {
57996        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v2i32")]
57997        fn _vrshrn_n_s64(a: int64x2_t, n: int64x2_t) -> int32x2_t;
57998    }
57999    unsafe { _vrshrn_n_s64(a, const { int64x2_t([-N as i64; 2]) }) }
58000}
58001#[doc = "Rounding shift right narrow"]
58002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)"]
58003#[inline(always)]
58004#[target_feature(enable = "neon")]
58005#[cfg(not(target_arch = "arm"))]
58006#[cfg_attr(test, assert_instr(rshrn, N = 2))]
58007#[rustc_legacy_const_generics(1)]
58008#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58009pub fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
58010    static_assert!(N >= 1 && N <= 8);
58011    unsafe extern "unadjusted" {
58012        #[cfg_attr(
58013            any(target_arch = "aarch64", target_arch = "arm64ec"),
58014            link_name = "llvm.aarch64.neon.rshrn.v8i8"
58015        )]
58016        fn _vrshrn_n_s16(a: int16x8_t, n: i32) -> int8x8_t;
58017    }
58018    unsafe { _vrshrn_n_s16(a, N) }
58019}
58020#[doc = "Rounding shift right narrow"]
58021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)"]
58022#[inline(always)]
58023#[target_feature(enable = "neon")]
58024#[cfg(not(target_arch = "arm"))]
58025#[cfg_attr(test, assert_instr(rshrn, N = 2))]
58026#[rustc_legacy_const_generics(1)]
58027#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58028pub fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
58029    static_assert!(N >= 1 && N <= 16);
58030    unsafe extern "unadjusted" {
58031        #[cfg_attr(
58032            any(target_arch = "aarch64", target_arch = "arm64ec"),
58033            link_name = "llvm.aarch64.neon.rshrn.v4i16"
58034        )]
58035        fn _vrshrn_n_s32(a: int32x4_t, n: i32) -> int16x4_t;
58036    }
58037    unsafe { _vrshrn_n_s32(a, N) }
58038}
58039#[doc = "Rounding shift right narrow"]
58040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)"]
58041#[inline(always)]
58042#[target_feature(enable = "neon")]
58043#[cfg(not(target_arch = "arm"))]
58044#[cfg_attr(test, assert_instr(rshrn, N = 2))]
58045#[rustc_legacy_const_generics(1)]
58046#[stable(feature = "neon_intrinsics", since = "1.59.0")]
58047pub fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
58048    static_assert!(N >= 1 && N <= 32);
58049    unsafe extern "unadjusted" {
58050        #[cfg_attr(
58051            any(target_arch = "aarch64", target_arch = "arm64ec"),
58052            link_name = "llvm.aarch64.neon.rshrn.v2i32"
58053        )]
58054        fn _vrshrn_n_s64(a: int64x2_t, n: i32) -> int32x2_t;
58055    }
58056    unsafe { _vrshrn_n_s64(a, N) }
58057}
58058#[doc = "Rounding shift right narrow"]
58059#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u16)"]
58060#[inline(always)]
58061#[target_feature(enable = "neon")]
58062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58063#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
58064#[cfg_attr(
58065    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58066    assert_instr(rshrn, N = 2)
58067)]
58068#[rustc_legacy_const_generics(1)]
58069#[cfg_attr(
58070    not(target_arch = "arm"),
58071    stable(feature = "neon_intrinsics", since = "1.59.0")
58072)]
58073#[cfg_attr(
58074    target_arch = "arm",
58075    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58076)]
58077pub fn vrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
58078    static_assert!(N >= 1 && N <= 8);
58079    unsafe { transmute(vrshrn_n_s16::<N>(transmute(a))) }
58080}
58081#[doc = "Rounding shift right narrow"]
58082#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u32)"]
58083#[inline(always)]
58084#[target_feature(enable = "neon")]
58085#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58086#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
58087#[cfg_attr(
58088    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58089    assert_instr(rshrn, N = 2)
58090)]
58091#[rustc_legacy_const_generics(1)]
58092#[cfg_attr(
58093    not(target_arch = "arm"),
58094    stable(feature = "neon_intrinsics", since = "1.59.0")
58095)]
58096#[cfg_attr(
58097    target_arch = "arm",
58098    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58099)]
58100pub fn vrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
58101    static_assert!(N >= 1 && N <= 16);
58102    unsafe { transmute(vrshrn_n_s32::<N>(transmute(a))) }
58103}
58104#[doc = "Rounding shift right narrow"]
58105#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u64)"]
58106#[inline(always)]
58107#[target_feature(enable = "neon")]
58108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
58110#[cfg_attr(
58111    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58112    assert_instr(rshrn, N = 2)
58113)]
58114#[rustc_legacy_const_generics(1)]
58115#[cfg_attr(
58116    not(target_arch = "arm"),
58117    stable(feature = "neon_intrinsics", since = "1.59.0")
58118)]
58119#[cfg_attr(
58120    target_arch = "arm",
58121    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58122)]
58123pub fn vrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
58124    static_assert!(N >= 1 && N <= 32);
58125    unsafe { transmute(vrshrn_n_s64::<N>(transmute(a))) }
58126}
58127#[doc = "Reciprocal square-root estimate."]
58128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_f16)"]
58129#[inline(always)]
58130#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58131#[target_feature(enable = "neon,fp16")]
58132#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58133#[cfg_attr(
58134    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58135    assert_instr(frsqrte)
58136)]
58137#[cfg_attr(
58138    not(target_arch = "arm"),
58139    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
58140)]
58141#[cfg_attr(
58142    target_arch = "arm",
58143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58144)]
58145#[cfg(not(target_arch = "arm64ec"))]
58146pub fn vrsqrte_f16(a: float16x4_t) -> float16x4_t {
58147    unsafe extern "unadjusted" {
58148        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4f16")]
58149        #[cfg_attr(
58150            any(target_arch = "aarch64", target_arch = "arm64ec"),
58151            link_name = "llvm.aarch64.neon.frsqrte.v4f16"
58152        )]
58153        fn _vrsqrte_f16(a: float16x4_t) -> float16x4_t;
58154    }
58155    unsafe { _vrsqrte_f16(a) }
58156}
58157#[doc = "Reciprocal square-root estimate."]
58158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_f16)"]
58159#[inline(always)]
58160#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58161#[target_feature(enable = "neon,fp16")]
58162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58163#[cfg_attr(
58164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58165    assert_instr(frsqrte)
58166)]
58167#[cfg_attr(
58168    not(target_arch = "arm"),
58169    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
58170)]
58171#[cfg_attr(
58172    target_arch = "arm",
58173    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58174)]
58175#[cfg(not(target_arch = "arm64ec"))]
58176pub fn vrsqrteq_f16(a: float16x8_t) -> float16x8_t {
58177    unsafe extern "unadjusted" {
58178        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v8f16")]
58179        #[cfg_attr(
58180            any(target_arch = "aarch64", target_arch = "arm64ec"),
58181            link_name = "llvm.aarch64.neon.frsqrte.v8f16"
58182        )]
58183        fn _vrsqrteq_f16(a: float16x8_t) -> float16x8_t;
58184    }
58185    unsafe { _vrsqrteq_f16(a) }
58186}
58187#[doc = "Reciprocal square-root estimate."]
58188#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_f32)"]
58189#[inline(always)]
58190#[target_feature(enable = "neon")]
58191#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58192#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58193#[cfg_attr(
58194    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58195    assert_instr(frsqrte)
58196)]
58197#[cfg_attr(
58198    not(target_arch = "arm"),
58199    stable(feature = "neon_intrinsics", since = "1.59.0")
58200)]
58201#[cfg_attr(
58202    target_arch = "arm",
58203    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58204)]
58205pub fn vrsqrte_f32(a: float32x2_t) -> float32x2_t {
58206    unsafe extern "unadjusted" {
58207        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2f32")]
58208        #[cfg_attr(
58209            any(target_arch = "aarch64", target_arch = "arm64ec"),
58210            link_name = "llvm.aarch64.neon.frsqrte.v2f32"
58211        )]
58212        fn _vrsqrte_f32(a: float32x2_t) -> float32x2_t;
58213    }
58214    unsafe { _vrsqrte_f32(a) }
58215}
58216#[doc = "Reciprocal square-root estimate."]
58217#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_f32)"]
58218#[inline(always)]
58219#[target_feature(enable = "neon")]
58220#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58221#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58222#[cfg_attr(
58223    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58224    assert_instr(frsqrte)
58225)]
58226#[cfg_attr(
58227    not(target_arch = "arm"),
58228    stable(feature = "neon_intrinsics", since = "1.59.0")
58229)]
58230#[cfg_attr(
58231    target_arch = "arm",
58232    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58233)]
58234pub fn vrsqrteq_f32(a: float32x4_t) -> float32x4_t {
58235    unsafe extern "unadjusted" {
58236        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4f32")]
58237        #[cfg_attr(
58238            any(target_arch = "aarch64", target_arch = "arm64ec"),
58239            link_name = "llvm.aarch64.neon.frsqrte.v4f32"
58240        )]
58241        fn _vrsqrteq_f32(a: float32x4_t) -> float32x4_t;
58242    }
58243    unsafe { _vrsqrteq_f32(a) }
58244}
58245#[doc = "Unsigned reciprocal square root estimate"]
58246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_u32)"]
58247#[inline(always)]
58248#[target_feature(enable = "neon")]
58249#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58250#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58251#[cfg_attr(
58252    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58253    assert_instr(ursqrte)
58254)]
58255#[cfg_attr(
58256    not(target_arch = "arm"),
58257    stable(feature = "neon_intrinsics", since = "1.59.0")
58258)]
58259#[cfg_attr(
58260    target_arch = "arm",
58261    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58262)]
58263pub fn vrsqrte_u32(a: uint32x2_t) -> uint32x2_t {
58264    unsafe extern "unadjusted" {
58265        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2i32")]
58266        #[cfg_attr(
58267            any(target_arch = "aarch64", target_arch = "arm64ec"),
58268            link_name = "llvm.aarch64.neon.ursqrte.v2i32"
58269        )]
58270        fn _vrsqrte_u32(a: uint32x2_t) -> uint32x2_t;
58271    }
58272    unsafe { _vrsqrte_u32(a) }
58273}
58274#[doc = "Unsigned reciprocal square root estimate"]
58275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_u32)"]
58276#[inline(always)]
58277#[target_feature(enable = "neon")]
58278#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58279#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
58280#[cfg_attr(
58281    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58282    assert_instr(ursqrte)
58283)]
58284#[cfg_attr(
58285    not(target_arch = "arm"),
58286    stable(feature = "neon_intrinsics", since = "1.59.0")
58287)]
58288#[cfg_attr(
58289    target_arch = "arm",
58290    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58291)]
58292pub fn vrsqrteq_u32(a: uint32x4_t) -> uint32x4_t {
58293    unsafe extern "unadjusted" {
58294        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4i32")]
58295        #[cfg_attr(
58296            any(target_arch = "aarch64", target_arch = "arm64ec"),
58297            link_name = "llvm.aarch64.neon.ursqrte.v4i32"
58298        )]
58299        fn _vrsqrteq_u32(a: uint32x4_t) -> uint32x4_t;
58300    }
58301    unsafe { _vrsqrteq_u32(a) }
58302}
58303#[doc = "Floating-point reciprocal square root step"]
58304#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrts_f16)"]
58305#[inline(always)]
58306#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58307#[target_feature(enable = "neon,fp16")]
58308#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
58309#[cfg_attr(
58310    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58311    assert_instr(frsqrts)
58312)]
58313#[cfg_attr(
58314    not(target_arch = "arm"),
58315    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
58316)]
58317#[cfg_attr(
58318    target_arch = "arm",
58319    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58320)]
58321#[cfg(not(target_arch = "arm64ec"))]
58322pub fn vrsqrts_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
58323    unsafe extern "unadjusted" {
58324        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v4f16")]
58325        #[cfg_attr(
58326            any(target_arch = "aarch64", target_arch = "arm64ec"),
58327            link_name = "llvm.aarch64.neon.frsqrts.v4f16"
58328        )]
58329        fn _vrsqrts_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t;
58330    }
58331    unsafe { _vrsqrts_f16(a, b) }
58332}
58333#[doc = "Floating-point reciprocal square root step"]
58334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrtsq_f16)"]
58335#[inline(always)]
58336#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
58337#[target_feature(enable = "neon,fp16")]
58338#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
58339#[cfg_attr(
58340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58341    assert_instr(frsqrts)
58342)]
58343#[cfg_attr(
58344    not(target_arch = "arm"),
58345    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
58346)]
58347#[cfg_attr(
58348    target_arch = "arm",
58349    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58350)]
58351#[cfg(not(target_arch = "arm64ec"))]
58352pub fn vrsqrtsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
58353    unsafe extern "unadjusted" {
58354        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v8f16")]
58355        #[cfg_attr(
58356            any(target_arch = "aarch64", target_arch = "arm64ec"),
58357            link_name = "llvm.aarch64.neon.frsqrts.v8f16"
58358        )]
58359        fn _vrsqrtsq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t;
58360    }
58361    unsafe { _vrsqrtsq_f16(a, b) }
58362}
58363#[doc = "Floating-point reciprocal square root step"]
58364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrts_f32)"]
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(vrsqrts))]
58369#[cfg_attr(
58370    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58371    assert_instr(frsqrts)
58372)]
58373#[cfg_attr(
58374    not(target_arch = "arm"),
58375    stable(feature = "neon_intrinsics", since = "1.59.0")
58376)]
58377#[cfg_attr(
58378    target_arch = "arm",
58379    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58380)]
58381pub fn vrsqrts_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
58382    unsafe extern "unadjusted" {
58383        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v2f32")]
58384        #[cfg_attr(
58385            any(target_arch = "aarch64", target_arch = "arm64ec"),
58386            link_name = "llvm.aarch64.neon.frsqrts.v2f32"
58387        )]
58388        fn _vrsqrts_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
58389    }
58390    unsafe { _vrsqrts_f32(a, b) }
58391}
58392#[doc = "Floating-point reciprocal square root step"]
58393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrtsq_f32)"]
58394#[inline(always)]
58395#[target_feature(enable = "neon")]
58396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
58398#[cfg_attr(
58399    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58400    assert_instr(frsqrts)
58401)]
58402#[cfg_attr(
58403    not(target_arch = "arm"),
58404    stable(feature = "neon_intrinsics", since = "1.59.0")
58405)]
58406#[cfg_attr(
58407    target_arch = "arm",
58408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58409)]
58410pub fn vrsqrtsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
58411    unsafe extern "unadjusted" {
58412        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v4f32")]
58413        #[cfg_attr(
58414            any(target_arch = "aarch64", target_arch = "arm64ec"),
58415            link_name = "llvm.aarch64.neon.frsqrts.v4f32"
58416        )]
58417        fn _vrsqrtsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
58418    }
58419    unsafe { _vrsqrtsq_f32(a, b) }
58420}
58421#[doc = "Signed rounding shift right and accumulate"]
58422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s8)"]
58423#[inline(always)]
58424#[target_feature(enable = "neon")]
58425#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58426#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58427#[cfg_attr(
58428    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58429    assert_instr(srsra, N = 2)
58430)]
58431#[rustc_legacy_const_generics(2)]
58432#[cfg_attr(
58433    not(target_arch = "arm"),
58434    stable(feature = "neon_intrinsics", since = "1.59.0")
58435)]
58436#[cfg_attr(
58437    target_arch = "arm",
58438    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58439)]
58440pub fn vrsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
58441    static_assert!(N >= 1 && N <= 8);
58442    unsafe { simd_add(a, vrshr_n_s8::<N>(b)) }
58443}
58444#[doc = "Signed rounding shift right and accumulate"]
58445#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s8)"]
58446#[inline(always)]
58447#[target_feature(enable = "neon")]
58448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58450#[cfg_attr(
58451    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58452    assert_instr(srsra, N = 2)
58453)]
58454#[rustc_legacy_const_generics(2)]
58455#[cfg_attr(
58456    not(target_arch = "arm"),
58457    stable(feature = "neon_intrinsics", since = "1.59.0")
58458)]
58459#[cfg_attr(
58460    target_arch = "arm",
58461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58462)]
58463pub fn vrsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
58464    static_assert!(N >= 1 && N <= 8);
58465    unsafe { simd_add(a, vrshrq_n_s8::<N>(b)) }
58466}
58467#[doc = "Signed rounding shift right and accumulate"]
58468#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s16)"]
58469#[inline(always)]
58470#[target_feature(enable = "neon")]
58471#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58472#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58473#[cfg_attr(
58474    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58475    assert_instr(srsra, N = 2)
58476)]
58477#[rustc_legacy_const_generics(2)]
58478#[cfg_attr(
58479    not(target_arch = "arm"),
58480    stable(feature = "neon_intrinsics", since = "1.59.0")
58481)]
58482#[cfg_attr(
58483    target_arch = "arm",
58484    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58485)]
58486pub fn vrsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
58487    static_assert!(N >= 1 && N <= 16);
58488    unsafe { simd_add(a, vrshr_n_s16::<N>(b)) }
58489}
58490#[doc = "Signed rounding shift right and accumulate"]
58491#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s16)"]
58492#[inline(always)]
58493#[target_feature(enable = "neon")]
58494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58495#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58496#[cfg_attr(
58497    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58498    assert_instr(srsra, N = 2)
58499)]
58500#[rustc_legacy_const_generics(2)]
58501#[cfg_attr(
58502    not(target_arch = "arm"),
58503    stable(feature = "neon_intrinsics", since = "1.59.0")
58504)]
58505#[cfg_attr(
58506    target_arch = "arm",
58507    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58508)]
58509pub fn vrsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
58510    static_assert!(N >= 1 && N <= 16);
58511    unsafe { simd_add(a, vrshrq_n_s16::<N>(b)) }
58512}
58513#[doc = "Signed rounding shift right and accumulate"]
58514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s32)"]
58515#[inline(always)]
58516#[target_feature(enable = "neon")]
58517#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58518#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58519#[cfg_attr(
58520    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58521    assert_instr(srsra, N = 2)
58522)]
58523#[rustc_legacy_const_generics(2)]
58524#[cfg_attr(
58525    not(target_arch = "arm"),
58526    stable(feature = "neon_intrinsics", since = "1.59.0")
58527)]
58528#[cfg_attr(
58529    target_arch = "arm",
58530    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58531)]
58532pub fn vrsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
58533    static_assert!(N >= 1 && N <= 32);
58534    unsafe { simd_add(a, vrshr_n_s32::<N>(b)) }
58535}
58536#[doc = "Signed rounding shift right and accumulate"]
58537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s32)"]
58538#[inline(always)]
58539#[target_feature(enable = "neon")]
58540#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58541#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58542#[cfg_attr(
58543    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58544    assert_instr(srsra, N = 2)
58545)]
58546#[rustc_legacy_const_generics(2)]
58547#[cfg_attr(
58548    not(target_arch = "arm"),
58549    stable(feature = "neon_intrinsics", since = "1.59.0")
58550)]
58551#[cfg_attr(
58552    target_arch = "arm",
58553    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58554)]
58555pub fn vrsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
58556    static_assert!(N >= 1 && N <= 32);
58557    unsafe { simd_add(a, vrshrq_n_s32::<N>(b)) }
58558}
58559#[doc = "Signed rounding shift right and accumulate"]
58560#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s64)"]
58561#[inline(always)]
58562#[target_feature(enable = "neon")]
58563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58564#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58565#[cfg_attr(
58566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58567    assert_instr(srsra, N = 2)
58568)]
58569#[rustc_legacy_const_generics(2)]
58570#[cfg_attr(
58571    not(target_arch = "arm"),
58572    stable(feature = "neon_intrinsics", since = "1.59.0")
58573)]
58574#[cfg_attr(
58575    target_arch = "arm",
58576    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58577)]
58578pub fn vrsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
58579    static_assert!(N >= 1 && N <= 64);
58580    unsafe { simd_add(a, vrshr_n_s64::<N>(b)) }
58581}
58582#[doc = "Signed rounding shift right and accumulate"]
58583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s64)"]
58584#[inline(always)]
58585#[target_feature(enable = "neon")]
58586#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58588#[cfg_attr(
58589    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58590    assert_instr(srsra, N = 2)
58591)]
58592#[rustc_legacy_const_generics(2)]
58593#[cfg_attr(
58594    not(target_arch = "arm"),
58595    stable(feature = "neon_intrinsics", since = "1.59.0")
58596)]
58597#[cfg_attr(
58598    target_arch = "arm",
58599    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58600)]
58601pub fn vrsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
58602    static_assert!(N >= 1 && N <= 64);
58603    unsafe { simd_add(a, vrshrq_n_s64::<N>(b)) }
58604}
58605#[doc = "Unsigned rounding shift right and accumulate"]
58606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u8)"]
58607#[inline(always)]
58608#[target_feature(enable = "neon")]
58609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58611#[cfg_attr(
58612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58613    assert_instr(ursra, N = 2)
58614)]
58615#[rustc_legacy_const_generics(2)]
58616#[cfg_attr(
58617    not(target_arch = "arm"),
58618    stable(feature = "neon_intrinsics", since = "1.59.0")
58619)]
58620#[cfg_attr(
58621    target_arch = "arm",
58622    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58623)]
58624pub fn vrsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
58625    static_assert!(N >= 1 && N <= 8);
58626    unsafe { simd_add(a, vrshr_n_u8::<N>(b)) }
58627}
58628#[doc = "Unsigned rounding shift right and accumulate"]
58629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u8)"]
58630#[inline(always)]
58631#[target_feature(enable = "neon")]
58632#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58633#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58634#[cfg_attr(
58635    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58636    assert_instr(ursra, N = 2)
58637)]
58638#[rustc_legacy_const_generics(2)]
58639#[cfg_attr(
58640    not(target_arch = "arm"),
58641    stable(feature = "neon_intrinsics", since = "1.59.0")
58642)]
58643#[cfg_attr(
58644    target_arch = "arm",
58645    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58646)]
58647pub fn vrsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
58648    static_assert!(N >= 1 && N <= 8);
58649    unsafe { simd_add(a, vrshrq_n_u8::<N>(b)) }
58650}
58651#[doc = "Unsigned rounding shift right and accumulate"]
58652#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u16)"]
58653#[inline(always)]
58654#[target_feature(enable = "neon")]
58655#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58656#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58657#[cfg_attr(
58658    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58659    assert_instr(ursra, N = 2)
58660)]
58661#[rustc_legacy_const_generics(2)]
58662#[cfg_attr(
58663    not(target_arch = "arm"),
58664    stable(feature = "neon_intrinsics", since = "1.59.0")
58665)]
58666#[cfg_attr(
58667    target_arch = "arm",
58668    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58669)]
58670pub fn vrsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
58671    static_assert!(N >= 1 && N <= 16);
58672    unsafe { simd_add(a, vrshr_n_u16::<N>(b)) }
58673}
58674#[doc = "Unsigned rounding shift right and accumulate"]
58675#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u16)"]
58676#[inline(always)]
58677#[target_feature(enable = "neon")]
58678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58680#[cfg_attr(
58681    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58682    assert_instr(ursra, N = 2)
58683)]
58684#[rustc_legacy_const_generics(2)]
58685#[cfg_attr(
58686    not(target_arch = "arm"),
58687    stable(feature = "neon_intrinsics", since = "1.59.0")
58688)]
58689#[cfg_attr(
58690    target_arch = "arm",
58691    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58692)]
58693pub fn vrsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
58694    static_assert!(N >= 1 && N <= 16);
58695    unsafe { simd_add(a, vrshrq_n_u16::<N>(b)) }
58696}
58697#[doc = "Unsigned rounding shift right and accumulate"]
58698#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u32)"]
58699#[inline(always)]
58700#[target_feature(enable = "neon")]
58701#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58702#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58703#[cfg_attr(
58704    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58705    assert_instr(ursra, N = 2)
58706)]
58707#[rustc_legacy_const_generics(2)]
58708#[cfg_attr(
58709    not(target_arch = "arm"),
58710    stable(feature = "neon_intrinsics", since = "1.59.0")
58711)]
58712#[cfg_attr(
58713    target_arch = "arm",
58714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58715)]
58716pub fn vrsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
58717    static_assert!(N >= 1 && N <= 32);
58718    unsafe { simd_add(a, vrshr_n_u32::<N>(b)) }
58719}
58720#[doc = "Unsigned rounding shift right and accumulate"]
58721#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u32)"]
58722#[inline(always)]
58723#[target_feature(enable = "neon")]
58724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58726#[cfg_attr(
58727    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58728    assert_instr(ursra, N = 2)
58729)]
58730#[rustc_legacy_const_generics(2)]
58731#[cfg_attr(
58732    not(target_arch = "arm"),
58733    stable(feature = "neon_intrinsics", since = "1.59.0")
58734)]
58735#[cfg_attr(
58736    target_arch = "arm",
58737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58738)]
58739pub fn vrsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
58740    static_assert!(N >= 1 && N <= 32);
58741    unsafe { simd_add(a, vrshrq_n_u32::<N>(b)) }
58742}
58743#[doc = "Unsigned rounding shift right and accumulate"]
58744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u64)"]
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(vrsra, N = 2))]
58749#[cfg_attr(
58750    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58751    assert_instr(ursra, N = 2)
58752)]
58753#[rustc_legacy_const_generics(2)]
58754#[cfg_attr(
58755    not(target_arch = "arm"),
58756    stable(feature = "neon_intrinsics", since = "1.59.0")
58757)]
58758#[cfg_attr(
58759    target_arch = "arm",
58760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58761)]
58762pub fn vrsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
58763    static_assert!(N >= 1 && N <= 64);
58764    unsafe { simd_add(a, vrshr_n_u64::<N>(b)) }
58765}
58766#[doc = "Unsigned rounding shift right and accumulate"]
58767#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u64)"]
58768#[inline(always)]
58769#[target_feature(enable = "neon")]
58770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
58772#[cfg_attr(
58773    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58774    assert_instr(ursra, N = 2)
58775)]
58776#[rustc_legacy_const_generics(2)]
58777#[cfg_attr(
58778    not(target_arch = "arm"),
58779    stable(feature = "neon_intrinsics", since = "1.59.0")
58780)]
58781#[cfg_attr(
58782    target_arch = "arm",
58783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58784)]
58785pub fn vrsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
58786    static_assert!(N >= 1 && N <= 64);
58787    unsafe { simd_add(a, vrshrq_n_u64::<N>(b)) }
58788}
58789#[doc = "Rounding subtract returning high narrow"]
58790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s16)"]
58791#[inline(always)]
58792#[target_feature(enable = "neon")]
58793#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58794#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58795#[cfg_attr(
58796    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58797    assert_instr(rsubhn)
58798)]
58799#[cfg_attr(
58800    not(target_arch = "arm"),
58801    stable(feature = "neon_intrinsics", since = "1.59.0")
58802)]
58803#[cfg_attr(
58804    target_arch = "arm",
58805    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58806)]
58807pub fn vrsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
58808    unsafe extern "unadjusted" {
58809        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v8i8")]
58810        #[cfg_attr(
58811            any(target_arch = "aarch64", target_arch = "arm64ec"),
58812            link_name = "llvm.aarch64.neon.rsubhn.v8i8"
58813        )]
58814        fn _vrsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t;
58815    }
58816    unsafe { _vrsubhn_s16(a, b) }
58817}
58818#[doc = "Rounding subtract returning high narrow"]
58819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s32)"]
58820#[inline(always)]
58821#[target_feature(enable = "neon")]
58822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58824#[cfg_attr(
58825    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58826    assert_instr(rsubhn)
58827)]
58828#[cfg_attr(
58829    not(target_arch = "arm"),
58830    stable(feature = "neon_intrinsics", since = "1.59.0")
58831)]
58832#[cfg_attr(
58833    target_arch = "arm",
58834    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58835)]
58836pub fn vrsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
58837    unsafe extern "unadjusted" {
58838        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v4i16")]
58839        #[cfg_attr(
58840            any(target_arch = "aarch64", target_arch = "arm64ec"),
58841            link_name = "llvm.aarch64.neon.rsubhn.v4i16"
58842        )]
58843        fn _vrsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t;
58844    }
58845    unsafe { _vrsubhn_s32(a, b) }
58846}
58847#[doc = "Rounding subtract returning high narrow"]
58848#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s64)"]
58849#[inline(always)]
58850#[target_feature(enable = "neon")]
58851#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58852#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58853#[cfg_attr(
58854    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58855    assert_instr(rsubhn)
58856)]
58857#[cfg_attr(
58858    not(target_arch = "arm"),
58859    stable(feature = "neon_intrinsics", since = "1.59.0")
58860)]
58861#[cfg_attr(
58862    target_arch = "arm",
58863    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58864)]
58865pub fn vrsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
58866    unsafe extern "unadjusted" {
58867        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v2i32")]
58868        #[cfg_attr(
58869            any(target_arch = "aarch64", target_arch = "arm64ec"),
58870            link_name = "llvm.aarch64.neon.rsubhn.v2i32"
58871        )]
58872        fn _vrsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t;
58873    }
58874    unsafe { _vrsubhn_s64(a, b) }
58875}
58876#[doc = "Rounding subtract returning high narrow"]
58877#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u16)"]
58878#[inline(always)]
58879#[cfg(target_endian = "little")]
58880#[target_feature(enable = "neon")]
58881#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58882#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58883#[cfg_attr(
58884    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58885    assert_instr(rsubhn)
58886)]
58887#[cfg_attr(
58888    not(target_arch = "arm"),
58889    stable(feature = "neon_intrinsics", since = "1.59.0")
58890)]
58891#[cfg_attr(
58892    target_arch = "arm",
58893    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58894)]
58895pub fn vrsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
58896    unsafe { transmute(vrsubhn_s16(transmute(a), transmute(b))) }
58897}
58898#[doc = "Rounding subtract returning high narrow"]
58899#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u16)"]
58900#[inline(always)]
58901#[cfg(target_endian = "big")]
58902#[target_feature(enable = "neon")]
58903#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58904#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58905#[cfg_attr(
58906    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58907    assert_instr(rsubhn)
58908)]
58909#[cfg_attr(
58910    not(target_arch = "arm"),
58911    stable(feature = "neon_intrinsics", since = "1.59.0")
58912)]
58913#[cfg_attr(
58914    target_arch = "arm",
58915    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58916)]
58917pub fn vrsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
58918    let a: uint16x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
58919    let b: uint16x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
58920    unsafe {
58921        let ret_val: uint8x8_t = transmute(vrsubhn_s16(transmute(a), transmute(b)));
58922        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
58923    }
58924}
58925#[doc = "Rounding subtract returning high narrow"]
58926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u32)"]
58927#[inline(always)]
58928#[cfg(target_endian = "little")]
58929#[target_feature(enable = "neon")]
58930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58932#[cfg_attr(
58933    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58934    assert_instr(rsubhn)
58935)]
58936#[cfg_attr(
58937    not(target_arch = "arm"),
58938    stable(feature = "neon_intrinsics", since = "1.59.0")
58939)]
58940#[cfg_attr(
58941    target_arch = "arm",
58942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58943)]
58944pub fn vrsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
58945    unsafe { transmute(vrsubhn_s32(transmute(a), transmute(b))) }
58946}
58947#[doc = "Rounding subtract returning high narrow"]
58948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u32)"]
58949#[inline(always)]
58950#[cfg(target_endian = "big")]
58951#[target_feature(enable = "neon")]
58952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58954#[cfg_attr(
58955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58956    assert_instr(rsubhn)
58957)]
58958#[cfg_attr(
58959    not(target_arch = "arm"),
58960    stable(feature = "neon_intrinsics", since = "1.59.0")
58961)]
58962#[cfg_attr(
58963    target_arch = "arm",
58964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58965)]
58966pub fn vrsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
58967    let a: uint32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
58968    let b: uint32x4_t = unsafe { simd_shuffle!(b, b, [3, 2, 1, 0]) };
58969    unsafe {
58970        let ret_val: uint16x4_t = transmute(vrsubhn_s32(transmute(a), transmute(b)));
58971        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
58972    }
58973}
58974#[doc = "Rounding subtract returning high narrow"]
58975#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u64)"]
58976#[inline(always)]
58977#[cfg(target_endian = "little")]
58978#[target_feature(enable = "neon")]
58979#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
58980#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
58981#[cfg_attr(
58982    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
58983    assert_instr(rsubhn)
58984)]
58985#[cfg_attr(
58986    not(target_arch = "arm"),
58987    stable(feature = "neon_intrinsics", since = "1.59.0")
58988)]
58989#[cfg_attr(
58990    target_arch = "arm",
58991    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
58992)]
58993pub fn vrsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
58994    unsafe { transmute(vrsubhn_s64(transmute(a), transmute(b))) }
58995}
58996#[doc = "Rounding subtract returning high narrow"]
58997#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u64)"]
58998#[inline(always)]
58999#[cfg(target_endian = "big")]
59000#[target_feature(enable = "neon")]
59001#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59002#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
59003#[cfg_attr(
59004    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59005    assert_instr(rsubhn)
59006)]
59007#[cfg_attr(
59008    not(target_arch = "arm"),
59009    stable(feature = "neon_intrinsics", since = "1.59.0")
59010)]
59011#[cfg_attr(
59012    target_arch = "arm",
59013    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59014)]
59015pub fn vrsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
59016    let a: uint64x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
59017    let b: uint64x2_t = unsafe { simd_shuffle!(b, b, [1, 0]) };
59018    unsafe {
59019        let ret_val: uint32x2_t = transmute(vrsubhn_s64(transmute(a), transmute(b)));
59020        simd_shuffle!(ret_val, ret_val, [1, 0])
59021    }
59022}
59023#[doc = "Insert vector element from another vector element"]
59024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_f16)"]
59025#[inline(always)]
59026#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
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#[target_feature(enable = "neon,fp16")]
59034#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
59035#[cfg(not(target_arch = "arm64ec"))]
59036pub fn vset_lane_f16<const LANE: i32>(a: f16, b: float16x4_t) -> float16x4_t {
59037    static_assert_uimm_bits!(LANE, 2);
59038    unsafe { simd_insert!(b, LANE as u32, a) }
59039}
59040#[doc = "Insert vector element from another vector element"]
59041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_f16)"]
59042#[inline(always)]
59043#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59044#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59045#[cfg_attr(
59046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59047    assert_instr(nop, LANE = 0)
59048)]
59049#[rustc_legacy_const_generics(2)]
59050#[target_feature(enable = "neon,fp16")]
59051#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
59052#[cfg(not(target_arch = "arm64ec"))]
59053pub fn vsetq_lane_f16<const LANE: i32>(a: f16, b: float16x8_t) -> float16x8_t {
59054    static_assert_uimm_bits!(LANE, 3);
59055    unsafe { simd_insert!(b, LANE as u32, a) }
59056}
59057#[doc = "Insert vector element from another vector element"]
59058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_f32)"]
59059#[inline(always)]
59060#[target_feature(enable = "neon")]
59061#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59062#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59063#[cfg_attr(
59064    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59065    assert_instr(nop, LANE = 0)
59066)]
59067#[rustc_legacy_const_generics(2)]
59068#[cfg_attr(
59069    not(target_arch = "arm"),
59070    stable(feature = "neon_intrinsics", since = "1.59.0")
59071)]
59072#[cfg_attr(
59073    target_arch = "arm",
59074    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59075)]
59076pub fn vset_lane_f32<const LANE: i32>(a: f32, b: float32x2_t) -> float32x2_t {
59077    static_assert_uimm_bits!(LANE, 1);
59078    unsafe { simd_insert!(b, LANE as u32, a) }
59079}
59080#[doc = "Insert vector element from another vector element"]
59081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_f32)"]
59082#[inline(always)]
59083#[target_feature(enable = "neon")]
59084#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59085#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59086#[cfg_attr(
59087    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59088    assert_instr(nop, LANE = 0)
59089)]
59090#[rustc_legacy_const_generics(2)]
59091#[cfg_attr(
59092    not(target_arch = "arm"),
59093    stable(feature = "neon_intrinsics", since = "1.59.0")
59094)]
59095#[cfg_attr(
59096    target_arch = "arm",
59097    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59098)]
59099pub fn vsetq_lane_f32<const LANE: i32>(a: f32, b: float32x4_t) -> float32x4_t {
59100    static_assert_uimm_bits!(LANE, 2);
59101    unsafe { simd_insert!(b, LANE as u32, a) }
59102}
59103#[doc = "Insert vector element from another vector element"]
59104#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s8)"]
59105#[inline(always)]
59106#[target_feature(enable = "neon")]
59107#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59108#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59109#[cfg_attr(
59110    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59111    assert_instr(nop, LANE = 0)
59112)]
59113#[rustc_legacy_const_generics(2)]
59114#[cfg_attr(
59115    not(target_arch = "arm"),
59116    stable(feature = "neon_intrinsics", since = "1.59.0")
59117)]
59118#[cfg_attr(
59119    target_arch = "arm",
59120    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59121)]
59122pub fn vset_lane_s8<const LANE: i32>(a: i8, b: int8x8_t) -> int8x8_t {
59123    static_assert_uimm_bits!(LANE, 3);
59124    unsafe { simd_insert!(b, LANE as u32, a) }
59125}
59126#[doc = "Insert vector element from another vector element"]
59127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s8)"]
59128#[inline(always)]
59129#[target_feature(enable = "neon")]
59130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59132#[cfg_attr(
59133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59134    assert_instr(nop, LANE = 0)
59135)]
59136#[rustc_legacy_const_generics(2)]
59137#[cfg_attr(
59138    not(target_arch = "arm"),
59139    stable(feature = "neon_intrinsics", since = "1.59.0")
59140)]
59141#[cfg_attr(
59142    target_arch = "arm",
59143    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59144)]
59145pub fn vsetq_lane_s8<const LANE: i32>(a: i8, b: int8x16_t) -> int8x16_t {
59146    static_assert_uimm_bits!(LANE, 4);
59147    unsafe { simd_insert!(b, LANE as u32, a) }
59148}
59149#[doc = "Insert vector element from another vector element"]
59150#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s16)"]
59151#[inline(always)]
59152#[target_feature(enable = "neon")]
59153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59154#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59155#[cfg_attr(
59156    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59157    assert_instr(nop, LANE = 0)
59158)]
59159#[rustc_legacy_const_generics(2)]
59160#[cfg_attr(
59161    not(target_arch = "arm"),
59162    stable(feature = "neon_intrinsics", since = "1.59.0")
59163)]
59164#[cfg_attr(
59165    target_arch = "arm",
59166    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59167)]
59168pub fn vset_lane_s16<const LANE: i32>(a: i16, b: int16x4_t) -> int16x4_t {
59169    static_assert_uimm_bits!(LANE, 2);
59170    unsafe { simd_insert!(b, LANE as u32, a) }
59171}
59172#[doc = "Insert vector element from another vector element"]
59173#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s16)"]
59174#[inline(always)]
59175#[target_feature(enable = "neon")]
59176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59177#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59178#[cfg_attr(
59179    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59180    assert_instr(nop, LANE = 0)
59181)]
59182#[rustc_legacy_const_generics(2)]
59183#[cfg_attr(
59184    not(target_arch = "arm"),
59185    stable(feature = "neon_intrinsics", since = "1.59.0")
59186)]
59187#[cfg_attr(
59188    target_arch = "arm",
59189    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59190)]
59191pub fn vsetq_lane_s16<const LANE: i32>(a: i16, b: int16x8_t) -> int16x8_t {
59192    static_assert_uimm_bits!(LANE, 3);
59193    unsafe { simd_insert!(b, LANE as u32, a) }
59194}
59195#[doc = "Insert vector element from another vector element"]
59196#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s32)"]
59197#[inline(always)]
59198#[target_feature(enable = "neon")]
59199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59200#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59201#[cfg_attr(
59202    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59203    assert_instr(nop, LANE = 0)
59204)]
59205#[rustc_legacy_const_generics(2)]
59206#[cfg_attr(
59207    not(target_arch = "arm"),
59208    stable(feature = "neon_intrinsics", since = "1.59.0")
59209)]
59210#[cfg_attr(
59211    target_arch = "arm",
59212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59213)]
59214pub fn vset_lane_s32<const LANE: i32>(a: i32, b: int32x2_t) -> int32x2_t {
59215    static_assert_uimm_bits!(LANE, 1);
59216    unsafe { simd_insert!(b, LANE as u32, a) }
59217}
59218#[doc = "Insert vector element from another vector element"]
59219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s32)"]
59220#[inline(always)]
59221#[target_feature(enable = "neon")]
59222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59223#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59224#[cfg_attr(
59225    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59226    assert_instr(nop, LANE = 0)
59227)]
59228#[rustc_legacy_const_generics(2)]
59229#[cfg_attr(
59230    not(target_arch = "arm"),
59231    stable(feature = "neon_intrinsics", since = "1.59.0")
59232)]
59233#[cfg_attr(
59234    target_arch = "arm",
59235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59236)]
59237pub fn vsetq_lane_s32<const LANE: i32>(a: i32, b: int32x4_t) -> int32x4_t {
59238    static_assert_uimm_bits!(LANE, 2);
59239    unsafe { simd_insert!(b, LANE as u32, a) }
59240}
59241#[doc = "Insert vector element from another vector element"]
59242#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s64)"]
59243#[inline(always)]
59244#[target_feature(enable = "neon")]
59245#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59246#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59247#[cfg_attr(
59248    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59249    assert_instr(nop, LANE = 0)
59250)]
59251#[rustc_legacy_const_generics(2)]
59252#[cfg_attr(
59253    not(target_arch = "arm"),
59254    stable(feature = "neon_intrinsics", since = "1.59.0")
59255)]
59256#[cfg_attr(
59257    target_arch = "arm",
59258    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59259)]
59260pub fn vsetq_lane_s64<const LANE: i32>(a: i64, b: int64x2_t) -> int64x2_t {
59261    static_assert_uimm_bits!(LANE, 1);
59262    unsafe { simd_insert!(b, LANE as u32, a) }
59263}
59264#[doc = "Insert vector element from another vector element"]
59265#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u8)"]
59266#[inline(always)]
59267#[target_feature(enable = "neon")]
59268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59269#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59270#[cfg_attr(
59271    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59272    assert_instr(nop, LANE = 0)
59273)]
59274#[rustc_legacy_const_generics(2)]
59275#[cfg_attr(
59276    not(target_arch = "arm"),
59277    stable(feature = "neon_intrinsics", since = "1.59.0")
59278)]
59279#[cfg_attr(
59280    target_arch = "arm",
59281    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59282)]
59283pub fn vset_lane_u8<const LANE: i32>(a: u8, b: uint8x8_t) -> uint8x8_t {
59284    static_assert_uimm_bits!(LANE, 3);
59285    unsafe { simd_insert!(b, LANE as u32, a) }
59286}
59287#[doc = "Insert vector element from another vector element"]
59288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u8)"]
59289#[inline(always)]
59290#[target_feature(enable = "neon")]
59291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59292#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59293#[cfg_attr(
59294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59295    assert_instr(nop, LANE = 0)
59296)]
59297#[rustc_legacy_const_generics(2)]
59298#[cfg_attr(
59299    not(target_arch = "arm"),
59300    stable(feature = "neon_intrinsics", since = "1.59.0")
59301)]
59302#[cfg_attr(
59303    target_arch = "arm",
59304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59305)]
59306pub fn vsetq_lane_u8<const LANE: i32>(a: u8, b: uint8x16_t) -> uint8x16_t {
59307    static_assert_uimm_bits!(LANE, 4);
59308    unsafe { simd_insert!(b, LANE as u32, a) }
59309}
59310#[doc = "Insert vector element from another vector element"]
59311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u16)"]
59312#[inline(always)]
59313#[target_feature(enable = "neon")]
59314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59315#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59316#[cfg_attr(
59317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59318    assert_instr(nop, LANE = 0)
59319)]
59320#[rustc_legacy_const_generics(2)]
59321#[cfg_attr(
59322    not(target_arch = "arm"),
59323    stable(feature = "neon_intrinsics", since = "1.59.0")
59324)]
59325#[cfg_attr(
59326    target_arch = "arm",
59327    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59328)]
59329pub fn vset_lane_u16<const LANE: i32>(a: u16, b: uint16x4_t) -> uint16x4_t {
59330    static_assert_uimm_bits!(LANE, 2);
59331    unsafe { simd_insert!(b, LANE as u32, a) }
59332}
59333#[doc = "Insert vector element from another vector element"]
59334#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u16)"]
59335#[inline(always)]
59336#[target_feature(enable = "neon")]
59337#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59338#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59339#[cfg_attr(
59340    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59341    assert_instr(nop, LANE = 0)
59342)]
59343#[rustc_legacy_const_generics(2)]
59344#[cfg_attr(
59345    not(target_arch = "arm"),
59346    stable(feature = "neon_intrinsics", since = "1.59.0")
59347)]
59348#[cfg_attr(
59349    target_arch = "arm",
59350    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59351)]
59352pub fn vsetq_lane_u16<const LANE: i32>(a: u16, b: uint16x8_t) -> uint16x8_t {
59353    static_assert_uimm_bits!(LANE, 3);
59354    unsafe { simd_insert!(b, LANE as u32, a) }
59355}
59356#[doc = "Insert vector element from another vector element"]
59357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u32)"]
59358#[inline(always)]
59359#[target_feature(enable = "neon")]
59360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59362#[cfg_attr(
59363    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59364    assert_instr(nop, LANE = 0)
59365)]
59366#[rustc_legacy_const_generics(2)]
59367#[cfg_attr(
59368    not(target_arch = "arm"),
59369    stable(feature = "neon_intrinsics", since = "1.59.0")
59370)]
59371#[cfg_attr(
59372    target_arch = "arm",
59373    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59374)]
59375pub fn vset_lane_u32<const LANE: i32>(a: u32, b: uint32x2_t) -> uint32x2_t {
59376    static_assert_uimm_bits!(LANE, 1);
59377    unsafe { simd_insert!(b, LANE as u32, a) }
59378}
59379#[doc = "Insert vector element from another vector element"]
59380#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u32)"]
59381#[inline(always)]
59382#[target_feature(enable = "neon")]
59383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59384#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59385#[cfg_attr(
59386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59387    assert_instr(nop, LANE = 0)
59388)]
59389#[rustc_legacy_const_generics(2)]
59390#[cfg_attr(
59391    not(target_arch = "arm"),
59392    stable(feature = "neon_intrinsics", since = "1.59.0")
59393)]
59394#[cfg_attr(
59395    target_arch = "arm",
59396    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59397)]
59398pub fn vsetq_lane_u32<const LANE: i32>(a: u32, b: uint32x4_t) -> uint32x4_t {
59399    static_assert_uimm_bits!(LANE, 2);
59400    unsafe { simd_insert!(b, LANE as u32, a) }
59401}
59402#[doc = "Insert vector element from another vector element"]
59403#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u64)"]
59404#[inline(always)]
59405#[target_feature(enable = "neon")]
59406#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59407#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59408#[cfg_attr(
59409    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59410    assert_instr(nop, LANE = 0)
59411)]
59412#[rustc_legacy_const_generics(2)]
59413#[cfg_attr(
59414    not(target_arch = "arm"),
59415    stable(feature = "neon_intrinsics", since = "1.59.0")
59416)]
59417#[cfg_attr(
59418    target_arch = "arm",
59419    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59420)]
59421pub fn vsetq_lane_u64<const LANE: i32>(a: u64, b: uint64x2_t) -> uint64x2_t {
59422    static_assert_uimm_bits!(LANE, 1);
59423    unsafe { simd_insert!(b, LANE as u32, a) }
59424}
59425#[doc = "Insert vector element from another vector element"]
59426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p8)"]
59427#[inline(always)]
59428#[target_feature(enable = "neon")]
59429#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59430#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59431#[cfg_attr(
59432    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59433    assert_instr(nop, LANE = 0)
59434)]
59435#[rustc_legacy_const_generics(2)]
59436#[cfg_attr(
59437    not(target_arch = "arm"),
59438    stable(feature = "neon_intrinsics", since = "1.59.0")
59439)]
59440#[cfg_attr(
59441    target_arch = "arm",
59442    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59443)]
59444pub fn vset_lane_p8<const LANE: i32>(a: p8, b: poly8x8_t) -> poly8x8_t {
59445    static_assert_uimm_bits!(LANE, 3);
59446    unsafe { simd_insert!(b, LANE as u32, a) }
59447}
59448#[doc = "Insert vector element from another vector element"]
59449#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p8)"]
59450#[inline(always)]
59451#[target_feature(enable = "neon")]
59452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59454#[cfg_attr(
59455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59456    assert_instr(nop, LANE = 0)
59457)]
59458#[rustc_legacy_const_generics(2)]
59459#[cfg_attr(
59460    not(target_arch = "arm"),
59461    stable(feature = "neon_intrinsics", since = "1.59.0")
59462)]
59463#[cfg_attr(
59464    target_arch = "arm",
59465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59466)]
59467pub fn vsetq_lane_p8<const LANE: i32>(a: p8, b: poly8x16_t) -> poly8x16_t {
59468    static_assert_uimm_bits!(LANE, 4);
59469    unsafe { simd_insert!(b, LANE as u32, a) }
59470}
59471#[doc = "Insert vector element from another vector element"]
59472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p16)"]
59473#[inline(always)]
59474#[target_feature(enable = "neon")]
59475#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59476#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59477#[cfg_attr(
59478    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59479    assert_instr(nop, LANE = 0)
59480)]
59481#[rustc_legacy_const_generics(2)]
59482#[cfg_attr(
59483    not(target_arch = "arm"),
59484    stable(feature = "neon_intrinsics", since = "1.59.0")
59485)]
59486#[cfg_attr(
59487    target_arch = "arm",
59488    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59489)]
59490pub fn vset_lane_p16<const LANE: i32>(a: p16, b: poly16x4_t) -> poly16x4_t {
59491    static_assert_uimm_bits!(LANE, 2);
59492    unsafe { simd_insert!(b, LANE as u32, a) }
59493}
59494#[doc = "Insert vector element from another vector element"]
59495#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p16)"]
59496#[inline(always)]
59497#[target_feature(enable = "neon")]
59498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59500#[cfg_attr(
59501    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59502    assert_instr(nop, LANE = 0)
59503)]
59504#[rustc_legacy_const_generics(2)]
59505#[cfg_attr(
59506    not(target_arch = "arm"),
59507    stable(feature = "neon_intrinsics", since = "1.59.0")
59508)]
59509#[cfg_attr(
59510    target_arch = "arm",
59511    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59512)]
59513pub fn vsetq_lane_p16<const LANE: i32>(a: p16, b: poly16x8_t) -> poly16x8_t {
59514    static_assert_uimm_bits!(LANE, 3);
59515    unsafe { simd_insert!(b, LANE as u32, a) }
59516}
59517#[doc = "Insert vector element from another vector element"]
59518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p64)"]
59519#[inline(always)]
59520#[target_feature(enable = "neon,aes")]
59521#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59522#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59523#[cfg_attr(
59524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59525    assert_instr(nop, LANE = 0)
59526)]
59527#[rustc_legacy_const_generics(2)]
59528#[cfg_attr(
59529    not(target_arch = "arm"),
59530    stable(feature = "neon_intrinsics", since = "1.59.0")
59531)]
59532#[cfg_attr(
59533    target_arch = "arm",
59534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59535)]
59536pub fn vset_lane_p64<const LANE: i32>(a: p64, b: poly64x1_t) -> poly64x1_t {
59537    static_assert!(LANE == 0);
59538    unsafe { simd_insert!(b, LANE as u32, a) }
59539}
59540#[doc = "Insert vector element from another vector element"]
59541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s64)"]
59542#[inline(always)]
59543#[target_feature(enable = "neon")]
59544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59546#[cfg_attr(
59547    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59548    assert_instr(nop, LANE = 0)
59549)]
59550#[rustc_legacy_const_generics(2)]
59551#[cfg_attr(
59552    not(target_arch = "arm"),
59553    stable(feature = "neon_intrinsics", since = "1.59.0")
59554)]
59555#[cfg_attr(
59556    target_arch = "arm",
59557    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59558)]
59559pub fn vset_lane_s64<const LANE: i32>(a: i64, b: int64x1_t) -> int64x1_t {
59560    static_assert!(LANE == 0);
59561    unsafe { simd_insert!(b, LANE as u32, a) }
59562}
59563#[doc = "Insert vector element from another vector element"]
59564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u64)"]
59565#[inline(always)]
59566#[target_feature(enable = "neon")]
59567#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59568#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59569#[cfg_attr(
59570    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59571    assert_instr(nop, LANE = 0)
59572)]
59573#[rustc_legacy_const_generics(2)]
59574#[cfg_attr(
59575    not(target_arch = "arm"),
59576    stable(feature = "neon_intrinsics", since = "1.59.0")
59577)]
59578#[cfg_attr(
59579    target_arch = "arm",
59580    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59581)]
59582pub fn vset_lane_u64<const LANE: i32>(a: u64, b: uint64x1_t) -> uint64x1_t {
59583    static_assert!(LANE == 0);
59584    unsafe { simd_insert!(b, LANE as u32, a) }
59585}
59586#[doc = "Insert vector element from another vector element"]
59587#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p64)"]
59588#[inline(always)]
59589#[target_feature(enable = "neon,aes")]
59590#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59591#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
59592#[cfg_attr(
59593    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
59594    assert_instr(nop, LANE = 0)
59595)]
59596#[rustc_legacy_const_generics(2)]
59597#[cfg_attr(
59598    not(target_arch = "arm"),
59599    stable(feature = "neon_intrinsics", since = "1.59.0")
59600)]
59601#[cfg_attr(
59602    target_arch = "arm",
59603    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59604)]
59605pub fn vsetq_lane_p64<const LANE: i32>(a: p64, b: poly64x2_t) -> poly64x2_t {
59606    static_assert_uimm_bits!(LANE, 1);
59607    unsafe { simd_insert!(b, LANE as u32, a) }
59608}
59609#[doc = "SHA1 hash update accelerator, choose."]
59610#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1cq_u32)"]
59611#[inline(always)]
59612#[target_feature(enable = "sha2")]
59613#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59614#[cfg_attr(test, assert_instr(sha1c))]
59615#[cfg_attr(
59616    target_arch = "arm",
59617    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59618)]
59619#[cfg_attr(
59620    not(target_arch = "arm"),
59621    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59622)]
59623pub fn vsha1cq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
59624    unsafe extern "unadjusted" {
59625        #[cfg_attr(
59626            any(target_arch = "aarch64", target_arch = "arm64ec"),
59627            link_name = "llvm.aarch64.crypto.sha1c"
59628        )]
59629        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1c")]
59630        fn _vsha1cq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
59631    }
59632    unsafe { _vsha1cq_u32(hash_abcd, hash_e, wk) }
59633}
59634#[doc = "SHA1 fixed rotate."]
59635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1h_u32)"]
59636#[inline(always)]
59637#[target_feature(enable = "sha2")]
59638#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59639#[cfg_attr(test, assert_instr(sha1h))]
59640#[cfg_attr(
59641    target_arch = "arm",
59642    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59643)]
59644#[cfg_attr(
59645    not(target_arch = "arm"),
59646    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59647)]
59648pub fn vsha1h_u32(hash_e: u32) -> u32 {
59649    unsafe extern "unadjusted" {
59650        #[cfg_attr(
59651            any(target_arch = "aarch64", target_arch = "arm64ec"),
59652            link_name = "llvm.aarch64.crypto.sha1h"
59653        )]
59654        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1h")]
59655        fn _vsha1h_u32(hash_e: u32) -> u32;
59656    }
59657    unsafe { _vsha1h_u32(hash_e) }
59658}
59659#[doc = "SHA1 hash update accelerator, majority"]
59660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1mq_u32)"]
59661#[inline(always)]
59662#[target_feature(enable = "sha2")]
59663#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59664#[cfg_attr(test, assert_instr(sha1m))]
59665#[cfg_attr(
59666    target_arch = "arm",
59667    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59668)]
59669#[cfg_attr(
59670    not(target_arch = "arm"),
59671    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59672)]
59673pub fn vsha1mq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t {
59674    unsafe extern "unadjusted" {
59675        #[cfg_attr(
59676            any(target_arch = "aarch64", target_arch = "arm64ec"),
59677            link_name = "llvm.aarch64.crypto.sha1m"
59678        )]
59679        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1m")]
59680        fn _vsha1mq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
59681    }
59682    unsafe { _vsha1mq_u32(hash_abcd, hash_e, wk) }
59683}
59684#[doc = "SHA1 hash update accelerator, parity"]
59685#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1pq_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(sha1p))]
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 vsha1pq_u32(hash_abcd: uint32x4_t, hash_e: u32, 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.sha1p"
59703        )]
59704        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1p")]
59705        fn _vsha1pq_u32(hash_abcd: uint32x4_t, hash_e: u32, wk: uint32x4_t) -> uint32x4_t;
59706    }
59707    unsafe { _vsha1pq_u32(hash_abcd, hash_e, wk) }
59708}
59709#[doc = "SHA1 schedule update accelerator, first part."]
59710#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su0q_u32)"]
59711#[inline(always)]
59712#[target_feature(enable = "sha2")]
59713#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59714#[cfg_attr(test, assert_instr(sha1su0))]
59715#[cfg_attr(
59716    target_arch = "arm",
59717    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59718)]
59719#[cfg_attr(
59720    not(target_arch = "arm"),
59721    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59722)]
59723pub fn vsha1su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t, w8_11: uint32x4_t) -> uint32x4_t {
59724    unsafe extern "unadjusted" {
59725        #[cfg_attr(
59726            any(target_arch = "aarch64", target_arch = "arm64ec"),
59727            link_name = "llvm.aarch64.crypto.sha1su0"
59728        )]
59729        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1su0")]
59730        fn _vsha1su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t, w8_11: uint32x4_t) -> uint32x4_t;
59731    }
59732    unsafe { _vsha1su0q_u32(w0_3, w4_7, w8_11) }
59733}
59734#[doc = "SHA1 schedule update accelerator, second part."]
59735#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha1su1q_u32)"]
59736#[inline(always)]
59737#[target_feature(enable = "sha2")]
59738#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59739#[cfg_attr(test, assert_instr(sha1su1))]
59740#[cfg_attr(
59741    target_arch = "arm",
59742    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59743)]
59744#[cfg_attr(
59745    not(target_arch = "arm"),
59746    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59747)]
59748pub fn vsha1su1q_u32(tw0_3: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t {
59749    unsafe extern "unadjusted" {
59750        #[cfg_attr(
59751            any(target_arch = "aarch64", target_arch = "arm64ec"),
59752            link_name = "llvm.aarch64.crypto.sha1su1"
59753        )]
59754        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha1su1")]
59755        fn _vsha1su1q_u32(tw0_3: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t;
59756    }
59757    unsafe { _vsha1su1q_u32(tw0_3, w12_15) }
59758}
59759#[doc = "SHA1 schedule update accelerator, upper part."]
59760#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256h2q_u32)"]
59761#[inline(always)]
59762#[target_feature(enable = "sha2")]
59763#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59764#[cfg_attr(test, assert_instr(sha256h2))]
59765#[cfg_attr(
59766    target_arch = "arm",
59767    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59768)]
59769#[cfg_attr(
59770    not(target_arch = "arm"),
59771    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59772)]
59773pub fn vsha256h2q_u32(hash_abcd: uint32x4_t, hash_efgh: uint32x4_t, wk: uint32x4_t) -> uint32x4_t {
59774    unsafe extern "unadjusted" {
59775        #[cfg_attr(
59776            any(target_arch = "aarch64", target_arch = "arm64ec"),
59777            link_name = "llvm.aarch64.crypto.sha256h2"
59778        )]
59779        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256h2")]
59780        fn _vsha256h2q_u32(
59781            hash_abcd: uint32x4_t,
59782            hash_efgh: uint32x4_t,
59783            wk: uint32x4_t,
59784        ) -> uint32x4_t;
59785    }
59786    unsafe { _vsha256h2q_u32(hash_abcd, hash_efgh, wk) }
59787}
59788#[doc = "SHA1 schedule update accelerator, first part."]
59789#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256hq_u32)"]
59790#[inline(always)]
59791#[target_feature(enable = "sha2")]
59792#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59793#[cfg_attr(test, assert_instr(sha256h))]
59794#[cfg_attr(
59795    target_arch = "arm",
59796    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59797)]
59798#[cfg_attr(
59799    not(target_arch = "arm"),
59800    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59801)]
59802pub fn vsha256hq_u32(hash_abcd: uint32x4_t, hash_efgh: uint32x4_t, wk: uint32x4_t) -> uint32x4_t {
59803    unsafe extern "unadjusted" {
59804        #[cfg_attr(
59805            any(target_arch = "aarch64", target_arch = "arm64ec"),
59806            link_name = "llvm.aarch64.crypto.sha256h"
59807        )]
59808        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256h")]
59809        fn _vsha256hq_u32(
59810            hash_abcd: uint32x4_t,
59811            hash_efgh: uint32x4_t,
59812            wk: uint32x4_t,
59813        ) -> uint32x4_t;
59814    }
59815    unsafe { _vsha256hq_u32(hash_abcd, hash_efgh, wk) }
59816}
59817#[doc = "SHA256 schedule update accelerator, first part."]
59818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su0q_u32)"]
59819#[inline(always)]
59820#[target_feature(enable = "sha2")]
59821#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59822#[cfg_attr(test, assert_instr(sha256su0))]
59823#[cfg_attr(
59824    target_arch = "arm",
59825    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59826)]
59827#[cfg_attr(
59828    not(target_arch = "arm"),
59829    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59830)]
59831pub fn vsha256su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t) -> uint32x4_t {
59832    unsafe extern "unadjusted" {
59833        #[cfg_attr(
59834            any(target_arch = "aarch64", target_arch = "arm64ec"),
59835            link_name = "llvm.aarch64.crypto.sha256su0"
59836        )]
59837        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256su0")]
59838        fn _vsha256su0q_u32(w0_3: uint32x4_t, w4_7: uint32x4_t) -> uint32x4_t;
59839    }
59840    unsafe { _vsha256su0q_u32(w0_3, w4_7) }
59841}
59842#[doc = "SHA256 schedule update accelerator, second part."]
59843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsha256su1q_u32)"]
59844#[inline(always)]
59845#[target_feature(enable = "sha2")]
59846#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
59847#[cfg_attr(test, assert_instr(sha256su1))]
59848#[cfg_attr(
59849    target_arch = "arm",
59850    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
59851)]
59852#[cfg_attr(
59853    not(target_arch = "arm"),
59854    stable(feature = "aarch64_neon_crypto_intrinsics", since = "1.72.0")
59855)]
59856pub fn vsha256su1q_u32(tw0_3: uint32x4_t, w8_11: uint32x4_t, w12_15: uint32x4_t) -> uint32x4_t {
59857    unsafe extern "unadjusted" {
59858        #[cfg_attr(
59859            any(target_arch = "aarch64", target_arch = "arm64ec"),
59860            link_name = "llvm.aarch64.crypto.sha256su1"
59861        )]
59862        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sha256su1")]
59863        fn _vsha256su1q_u32(tw0_3: uint32x4_t, w8_11: uint32x4_t, w12_15: uint32x4_t)
59864            -> uint32x4_t;
59865    }
59866    unsafe { _vsha256su1q_u32(tw0_3, w8_11, w12_15) }
59867}
59868#[inline(always)]
59869#[target_feature(enable = "neon")]
59870#[cfg(target_arch = "arm")]
59871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59872#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59873#[rustc_legacy_const_generics(2)]
59874fn vshiftlins_v16i8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
59875    unsafe extern "unadjusted" {
59876        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v16i8")]
59877        fn _vshiftlins_v16i8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t;
59878    }
59879    unsafe { _vshiftlins_v16i8(a, b, const { int8x16_t([N as i8; 16]) }) }
59880}
59881#[inline(always)]
59882#[target_feature(enable = "neon")]
59883#[cfg(target_arch = "arm")]
59884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59885#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59886#[rustc_legacy_const_generics(2)]
59887fn vshiftlins_v1i64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
59888    unsafe extern "unadjusted" {
59889        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v1i64")]
59890        fn _vshiftlins_v1i64(a: int64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t;
59891    }
59892    unsafe { _vshiftlins_v1i64(a, b, const { int64x1_t([N as i64; 1]) }) }
59893}
59894#[inline(always)]
59895#[target_feature(enable = "neon")]
59896#[cfg(target_arch = "arm")]
59897#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59898#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59899#[rustc_legacy_const_generics(2)]
59900fn vshiftlins_v2i32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
59901    unsafe extern "unadjusted" {
59902        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i32")]
59903        fn _vshiftlins_v2i32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t;
59904    }
59905    unsafe { _vshiftlins_v2i32(a, b, const { int32x2_t([N; 2]) }) }
59906}
59907#[inline(always)]
59908#[target_feature(enable = "neon")]
59909#[cfg(target_arch = "arm")]
59910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59911#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59912#[rustc_legacy_const_generics(2)]
59913fn vshiftlins_v2i64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
59914    unsafe extern "unadjusted" {
59915        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i64")]
59916        fn _vshiftlins_v2i64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t;
59917    }
59918    unsafe { _vshiftlins_v2i64(a, b, const { int64x2_t([N as i64; 2]) }) }
59919}
59920#[inline(always)]
59921#[target_feature(enable = "neon")]
59922#[cfg(target_arch = "arm")]
59923#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59924#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59925#[rustc_legacy_const_generics(2)]
59926fn vshiftlins_v4i16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
59927    unsafe extern "unadjusted" {
59928        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i16")]
59929        fn _vshiftlins_v4i16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t;
59930    }
59931    unsafe { _vshiftlins_v4i16(a, b, const { int16x4_t([N as i16; 4]) }) }
59932}
59933#[inline(always)]
59934#[target_feature(enable = "neon")]
59935#[cfg(target_arch = "arm")]
59936#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59937#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59938#[rustc_legacy_const_generics(2)]
59939fn vshiftlins_v4i32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
59940    unsafe extern "unadjusted" {
59941        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i32")]
59942        fn _vshiftlins_v4i32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t;
59943    }
59944    unsafe { _vshiftlins_v4i32(a, b, const { int32x4_t([N; 4]) }) }
59945}
59946#[inline(always)]
59947#[target_feature(enable = "neon")]
59948#[cfg(target_arch = "arm")]
59949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59950#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59951#[rustc_legacy_const_generics(2)]
59952fn vshiftlins_v8i16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
59953    unsafe extern "unadjusted" {
59954        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i16")]
59955        fn _vshiftlins_v8i16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t;
59956    }
59957    unsafe { _vshiftlins_v8i16(a, b, const { int16x8_t([N as i16; 8]) }) }
59958}
59959#[inline(always)]
59960#[target_feature(enable = "neon")]
59961#[cfg(target_arch = "arm")]
59962#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59963#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59964#[rustc_legacy_const_generics(2)]
59965fn vshiftlins_v8i8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
59966    unsafe extern "unadjusted" {
59967        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i8")]
59968        fn _vshiftlins_v8i8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
59969    }
59970    unsafe { _vshiftlins_v8i8(a, b, const { int8x8_t([N as i8; 8]) }) }
59971}
59972#[doc = "Shift Right and Insert (immediate)"]
59973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v16i8)"]
59974#[inline(always)]
59975#[target_feature(enable = "neon")]
59976#[cfg(target_arch = "arm")]
59977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59978#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59979#[rustc_legacy_const_generics(2)]
59980fn vshiftrins_v16i8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
59981    unsafe extern "unadjusted" {
59982        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v16i8")]
59983        fn _vshiftrins_v16i8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t;
59984    }
59985    unsafe { _vshiftrins_v16i8(a, b, const { int8x16_t([-N as i8; 16]) }) }
59986}
59987#[doc = "Shift Right and Insert (immediate)"]
59988#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v1i64)"]
59989#[inline(always)]
59990#[target_feature(enable = "neon")]
59991#[cfg(target_arch = "arm")]
59992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
59993#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
59994#[rustc_legacy_const_generics(2)]
59995fn vshiftrins_v1i64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
59996    unsafe extern "unadjusted" {
59997        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v1i64")]
59998        fn _vshiftrins_v1i64(a: int64x1_t, b: int64x1_t, c: int64x1_t) -> int64x1_t;
59999    }
60000    unsafe { _vshiftrins_v1i64(a, b, const { int64x1_t([-N as i64; 1]) }) }
60001}
60002#[doc = "Shift Right and Insert (immediate)"]
60003#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v2i32)"]
60004#[inline(always)]
60005#[target_feature(enable = "neon")]
60006#[cfg(target_arch = "arm")]
60007#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60008#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60009#[rustc_legacy_const_generics(2)]
60010fn vshiftrins_v2i32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
60011    unsafe extern "unadjusted" {
60012        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i32")]
60013        fn _vshiftrins_v2i32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t;
60014    }
60015    unsafe { _vshiftrins_v2i32(a, b, const { int32x2_t([-N; 2]) }) }
60016}
60017#[doc = "Shift Right and Insert (immediate)"]
60018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v2i64)"]
60019#[inline(always)]
60020#[target_feature(enable = "neon")]
60021#[cfg(target_arch = "arm")]
60022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60023#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60024#[rustc_legacy_const_generics(2)]
60025fn vshiftrins_v2i64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
60026    unsafe extern "unadjusted" {
60027        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v2i64")]
60028        fn _vshiftrins_v2i64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t;
60029    }
60030    unsafe { _vshiftrins_v2i64(a, b, const { int64x2_t([-N as i64; 2]) }) }
60031}
60032#[doc = "Shift Right and Insert (immediate)"]
60033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v4i16)"]
60034#[inline(always)]
60035#[target_feature(enable = "neon")]
60036#[cfg(target_arch = "arm")]
60037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60038#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60039#[rustc_legacy_const_generics(2)]
60040fn vshiftrins_v4i16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
60041    unsafe extern "unadjusted" {
60042        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i16")]
60043        fn _vshiftrins_v4i16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t;
60044    }
60045    unsafe { _vshiftrins_v4i16(a, b, const { int16x4_t([-N as i16; 4]) }) }
60046}
60047#[doc = "Shift Right and Insert (immediate)"]
60048#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v4i32)"]
60049#[inline(always)]
60050#[target_feature(enable = "neon")]
60051#[cfg(target_arch = "arm")]
60052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60053#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60054#[rustc_legacy_const_generics(2)]
60055fn vshiftrins_v4i32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
60056    unsafe extern "unadjusted" {
60057        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v4i32")]
60058        fn _vshiftrins_v4i32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t;
60059    }
60060    unsafe { _vshiftrins_v4i32(a, b, const { int32x4_t([-N; 4]) }) }
60061}
60062#[doc = "Shift Right and Insert (immediate)"]
60063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v8i16)"]
60064#[inline(always)]
60065#[target_feature(enable = "neon")]
60066#[cfg(target_arch = "arm")]
60067#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60068#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60069#[rustc_legacy_const_generics(2)]
60070fn vshiftrins_v8i16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
60071    unsafe extern "unadjusted" {
60072        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i16")]
60073        fn _vshiftrins_v8i16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t;
60074    }
60075    unsafe { _vshiftrins_v8i16(a, b, const { int16x8_t([-N as i16; 8]) }) }
60076}
60077#[doc = "Shift Right and Insert (immediate)"]
60078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshiftrins_v8i8)"]
60079#[inline(always)]
60080#[target_feature(enable = "neon")]
60081#[cfg(target_arch = "arm")]
60082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60083#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
60084#[rustc_legacy_const_generics(2)]
60085fn vshiftrins_v8i8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
60086    unsafe extern "unadjusted" {
60087        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftins.v8i8")]
60088        fn _vshiftrins_v8i8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
60089    }
60090    unsafe { _vshiftrins_v8i8(a, b, const { int8x8_t([-N as i8; 8]) }) }
60091}
60092#[doc = "Shift left"]
60093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s8)"]
60094#[inline(always)]
60095#[target_feature(enable = "neon")]
60096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60097#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60098#[cfg_attr(
60099    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60100    assert_instr(shl, N = 2)
60101)]
60102#[rustc_legacy_const_generics(1)]
60103#[cfg_attr(
60104    not(target_arch = "arm"),
60105    stable(feature = "neon_intrinsics", since = "1.59.0")
60106)]
60107#[cfg_attr(
60108    target_arch = "arm",
60109    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60110)]
60111pub fn vshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
60112    static_assert_uimm_bits!(N, 3);
60113    unsafe { simd_shl(a, vdup_n_s8(N as _)) }
60114}
60115#[doc = "Shift left"]
60116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s8)"]
60117#[inline(always)]
60118#[target_feature(enable = "neon")]
60119#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60120#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60121#[cfg_attr(
60122    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60123    assert_instr(shl, N = 2)
60124)]
60125#[rustc_legacy_const_generics(1)]
60126#[cfg_attr(
60127    not(target_arch = "arm"),
60128    stable(feature = "neon_intrinsics", since = "1.59.0")
60129)]
60130#[cfg_attr(
60131    target_arch = "arm",
60132    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60133)]
60134pub fn vshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
60135    static_assert_uimm_bits!(N, 3);
60136    unsafe { simd_shl(a, vdupq_n_s8(N as _)) }
60137}
60138#[doc = "Shift left"]
60139#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s16)"]
60140#[inline(always)]
60141#[target_feature(enable = "neon")]
60142#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60143#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60144#[cfg_attr(
60145    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60146    assert_instr(shl, N = 2)
60147)]
60148#[rustc_legacy_const_generics(1)]
60149#[cfg_attr(
60150    not(target_arch = "arm"),
60151    stable(feature = "neon_intrinsics", since = "1.59.0")
60152)]
60153#[cfg_attr(
60154    target_arch = "arm",
60155    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60156)]
60157pub fn vshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
60158    static_assert_uimm_bits!(N, 4);
60159    unsafe { simd_shl(a, vdup_n_s16(N as _)) }
60160}
60161#[doc = "Shift left"]
60162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s16)"]
60163#[inline(always)]
60164#[target_feature(enable = "neon")]
60165#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60166#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60167#[cfg_attr(
60168    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60169    assert_instr(shl, N = 2)
60170)]
60171#[rustc_legacy_const_generics(1)]
60172#[cfg_attr(
60173    not(target_arch = "arm"),
60174    stable(feature = "neon_intrinsics", since = "1.59.0")
60175)]
60176#[cfg_attr(
60177    target_arch = "arm",
60178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60179)]
60180pub fn vshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
60181    static_assert_uimm_bits!(N, 4);
60182    unsafe { simd_shl(a, vdupq_n_s16(N as _)) }
60183}
60184#[doc = "Shift left"]
60185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s32)"]
60186#[inline(always)]
60187#[target_feature(enable = "neon")]
60188#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60189#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60190#[cfg_attr(
60191    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60192    assert_instr(shl, N = 2)
60193)]
60194#[rustc_legacy_const_generics(1)]
60195#[cfg_attr(
60196    not(target_arch = "arm"),
60197    stable(feature = "neon_intrinsics", since = "1.59.0")
60198)]
60199#[cfg_attr(
60200    target_arch = "arm",
60201    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60202)]
60203pub fn vshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
60204    static_assert_uimm_bits!(N, 5);
60205    unsafe { simd_shl(a, vdup_n_s32(N as _)) }
60206}
60207#[doc = "Shift left"]
60208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s32)"]
60209#[inline(always)]
60210#[target_feature(enable = "neon")]
60211#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60212#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60213#[cfg_attr(
60214    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60215    assert_instr(shl, N = 2)
60216)]
60217#[rustc_legacy_const_generics(1)]
60218#[cfg_attr(
60219    not(target_arch = "arm"),
60220    stable(feature = "neon_intrinsics", since = "1.59.0")
60221)]
60222#[cfg_attr(
60223    target_arch = "arm",
60224    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60225)]
60226pub fn vshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
60227    static_assert_uimm_bits!(N, 5);
60228    unsafe { simd_shl(a, vdupq_n_s32(N as _)) }
60229}
60230#[doc = "Shift left"]
60231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s64)"]
60232#[inline(always)]
60233#[target_feature(enable = "neon")]
60234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60235#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60236#[cfg_attr(
60237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60238    assert_instr(shl, N = 2)
60239)]
60240#[rustc_legacy_const_generics(1)]
60241#[cfg_attr(
60242    not(target_arch = "arm"),
60243    stable(feature = "neon_intrinsics", since = "1.59.0")
60244)]
60245#[cfg_attr(
60246    target_arch = "arm",
60247    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60248)]
60249pub fn vshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
60250    static_assert_uimm_bits!(N, 6);
60251    unsafe { simd_shl(a, vdup_n_s64(N as _)) }
60252}
60253#[doc = "Shift left"]
60254#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s64)"]
60255#[inline(always)]
60256#[target_feature(enable = "neon")]
60257#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60258#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60259#[cfg_attr(
60260    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60261    assert_instr(shl, N = 2)
60262)]
60263#[rustc_legacy_const_generics(1)]
60264#[cfg_attr(
60265    not(target_arch = "arm"),
60266    stable(feature = "neon_intrinsics", since = "1.59.0")
60267)]
60268#[cfg_attr(
60269    target_arch = "arm",
60270    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60271)]
60272pub fn vshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
60273    static_assert_uimm_bits!(N, 6);
60274    unsafe { simd_shl(a, vdupq_n_s64(N as _)) }
60275}
60276#[doc = "Shift left"]
60277#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u8)"]
60278#[inline(always)]
60279#[target_feature(enable = "neon")]
60280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60281#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60282#[cfg_attr(
60283    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60284    assert_instr(shl, N = 2)
60285)]
60286#[rustc_legacy_const_generics(1)]
60287#[cfg_attr(
60288    not(target_arch = "arm"),
60289    stable(feature = "neon_intrinsics", since = "1.59.0")
60290)]
60291#[cfg_attr(
60292    target_arch = "arm",
60293    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60294)]
60295pub fn vshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
60296    static_assert_uimm_bits!(N, 3);
60297    unsafe { simd_shl(a, vdup_n_u8(N as _)) }
60298}
60299#[doc = "Shift left"]
60300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u8)"]
60301#[inline(always)]
60302#[target_feature(enable = "neon")]
60303#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60304#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60305#[cfg_attr(
60306    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60307    assert_instr(shl, N = 2)
60308)]
60309#[rustc_legacy_const_generics(1)]
60310#[cfg_attr(
60311    not(target_arch = "arm"),
60312    stable(feature = "neon_intrinsics", since = "1.59.0")
60313)]
60314#[cfg_attr(
60315    target_arch = "arm",
60316    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60317)]
60318pub fn vshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
60319    static_assert_uimm_bits!(N, 3);
60320    unsafe { simd_shl(a, vdupq_n_u8(N as _)) }
60321}
60322#[doc = "Shift left"]
60323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u16)"]
60324#[inline(always)]
60325#[target_feature(enable = "neon")]
60326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60327#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60328#[cfg_attr(
60329    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60330    assert_instr(shl, N = 2)
60331)]
60332#[rustc_legacy_const_generics(1)]
60333#[cfg_attr(
60334    not(target_arch = "arm"),
60335    stable(feature = "neon_intrinsics", since = "1.59.0")
60336)]
60337#[cfg_attr(
60338    target_arch = "arm",
60339    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60340)]
60341pub fn vshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
60342    static_assert_uimm_bits!(N, 4);
60343    unsafe { simd_shl(a, vdup_n_u16(N as _)) }
60344}
60345#[doc = "Shift left"]
60346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u16)"]
60347#[inline(always)]
60348#[target_feature(enable = "neon")]
60349#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60350#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60351#[cfg_attr(
60352    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60353    assert_instr(shl, N = 2)
60354)]
60355#[rustc_legacy_const_generics(1)]
60356#[cfg_attr(
60357    not(target_arch = "arm"),
60358    stable(feature = "neon_intrinsics", since = "1.59.0")
60359)]
60360#[cfg_attr(
60361    target_arch = "arm",
60362    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60363)]
60364pub fn vshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
60365    static_assert_uimm_bits!(N, 4);
60366    unsafe { simd_shl(a, vdupq_n_u16(N as _)) }
60367}
60368#[doc = "Shift left"]
60369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u32)"]
60370#[inline(always)]
60371#[target_feature(enable = "neon")]
60372#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60373#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60374#[cfg_attr(
60375    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60376    assert_instr(shl, N = 2)
60377)]
60378#[rustc_legacy_const_generics(1)]
60379#[cfg_attr(
60380    not(target_arch = "arm"),
60381    stable(feature = "neon_intrinsics", since = "1.59.0")
60382)]
60383#[cfg_attr(
60384    target_arch = "arm",
60385    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60386)]
60387pub fn vshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
60388    static_assert_uimm_bits!(N, 5);
60389    unsafe { simd_shl(a, vdup_n_u32(N as _)) }
60390}
60391#[doc = "Shift left"]
60392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u32)"]
60393#[inline(always)]
60394#[target_feature(enable = "neon")]
60395#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60396#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60397#[cfg_attr(
60398    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60399    assert_instr(shl, N = 2)
60400)]
60401#[rustc_legacy_const_generics(1)]
60402#[cfg_attr(
60403    not(target_arch = "arm"),
60404    stable(feature = "neon_intrinsics", since = "1.59.0")
60405)]
60406#[cfg_attr(
60407    target_arch = "arm",
60408    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60409)]
60410pub fn vshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
60411    static_assert_uimm_bits!(N, 5);
60412    unsafe { simd_shl(a, vdupq_n_u32(N as _)) }
60413}
60414#[doc = "Shift left"]
60415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u64)"]
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, N = 2))]
60420#[cfg_attr(
60421    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60422    assert_instr(shl, N = 2)
60423)]
60424#[rustc_legacy_const_generics(1)]
60425#[cfg_attr(
60426    not(target_arch = "arm"),
60427    stable(feature = "neon_intrinsics", since = "1.59.0")
60428)]
60429#[cfg_attr(
60430    target_arch = "arm",
60431    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60432)]
60433pub fn vshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
60434    static_assert_uimm_bits!(N, 6);
60435    unsafe { simd_shl(a, vdup_n_u64(N as _)) }
60436}
60437#[doc = "Shift left"]
60438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u64)"]
60439#[inline(always)]
60440#[target_feature(enable = "neon")]
60441#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60442#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
60443#[cfg_attr(
60444    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60445    assert_instr(shl, N = 2)
60446)]
60447#[rustc_legacy_const_generics(1)]
60448#[cfg_attr(
60449    not(target_arch = "arm"),
60450    stable(feature = "neon_intrinsics", since = "1.59.0")
60451)]
60452#[cfg_attr(
60453    target_arch = "arm",
60454    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60455)]
60456pub fn vshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
60457    static_assert_uimm_bits!(N, 6);
60458    unsafe { simd_shl(a, vdupq_n_u64(N as _)) }
60459}
60460#[doc = "Signed Shift left"]
60461#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s8)"]
60462#[inline(always)]
60463#[target_feature(enable = "neon")]
60464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60465#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60466#[cfg_attr(
60467    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60468    assert_instr(sshl)
60469)]
60470#[cfg_attr(
60471    not(target_arch = "arm"),
60472    stable(feature = "neon_intrinsics", since = "1.59.0")
60473)]
60474#[cfg_attr(
60475    target_arch = "arm",
60476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60477)]
60478pub fn vshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
60479    unsafe extern "unadjusted" {
60480        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i8")]
60481        #[cfg_attr(
60482            any(target_arch = "aarch64", target_arch = "arm64ec"),
60483            link_name = "llvm.aarch64.neon.sshl.v8i8"
60484        )]
60485        fn _vshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t;
60486    }
60487    unsafe { _vshl_s8(a, b) }
60488}
60489#[doc = "Signed Shift left"]
60490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s8)"]
60491#[inline(always)]
60492#[target_feature(enable = "neon")]
60493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60495#[cfg_attr(
60496    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60497    assert_instr(sshl)
60498)]
60499#[cfg_attr(
60500    not(target_arch = "arm"),
60501    stable(feature = "neon_intrinsics", since = "1.59.0")
60502)]
60503#[cfg_attr(
60504    target_arch = "arm",
60505    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60506)]
60507pub fn vshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
60508    unsafe extern "unadjusted" {
60509        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v16i8")]
60510        #[cfg_attr(
60511            any(target_arch = "aarch64", target_arch = "arm64ec"),
60512            link_name = "llvm.aarch64.neon.sshl.v16i8"
60513        )]
60514        fn _vshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t;
60515    }
60516    unsafe { _vshlq_s8(a, b) }
60517}
60518#[doc = "Signed Shift left"]
60519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s16)"]
60520#[inline(always)]
60521#[target_feature(enable = "neon")]
60522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60523#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60524#[cfg_attr(
60525    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60526    assert_instr(sshl)
60527)]
60528#[cfg_attr(
60529    not(target_arch = "arm"),
60530    stable(feature = "neon_intrinsics", since = "1.59.0")
60531)]
60532#[cfg_attr(
60533    target_arch = "arm",
60534    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60535)]
60536pub fn vshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
60537    unsafe extern "unadjusted" {
60538        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i16")]
60539        #[cfg_attr(
60540            any(target_arch = "aarch64", target_arch = "arm64ec"),
60541            link_name = "llvm.aarch64.neon.sshl.v4i16"
60542        )]
60543        fn _vshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t;
60544    }
60545    unsafe { _vshl_s16(a, b) }
60546}
60547#[doc = "Signed Shift left"]
60548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s16)"]
60549#[inline(always)]
60550#[target_feature(enable = "neon")]
60551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60552#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60553#[cfg_attr(
60554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60555    assert_instr(sshl)
60556)]
60557#[cfg_attr(
60558    not(target_arch = "arm"),
60559    stable(feature = "neon_intrinsics", since = "1.59.0")
60560)]
60561#[cfg_attr(
60562    target_arch = "arm",
60563    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60564)]
60565pub fn vshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
60566    unsafe extern "unadjusted" {
60567        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i16")]
60568        #[cfg_attr(
60569            any(target_arch = "aarch64", target_arch = "arm64ec"),
60570            link_name = "llvm.aarch64.neon.sshl.v8i16"
60571        )]
60572        fn _vshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t;
60573    }
60574    unsafe { _vshlq_s16(a, b) }
60575}
60576#[doc = "Signed Shift left"]
60577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s32)"]
60578#[inline(always)]
60579#[target_feature(enable = "neon")]
60580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60582#[cfg_attr(
60583    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60584    assert_instr(sshl)
60585)]
60586#[cfg_attr(
60587    not(target_arch = "arm"),
60588    stable(feature = "neon_intrinsics", since = "1.59.0")
60589)]
60590#[cfg_attr(
60591    target_arch = "arm",
60592    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60593)]
60594pub fn vshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
60595    unsafe extern "unadjusted" {
60596        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i32")]
60597        #[cfg_attr(
60598            any(target_arch = "aarch64", target_arch = "arm64ec"),
60599            link_name = "llvm.aarch64.neon.sshl.v2i32"
60600        )]
60601        fn _vshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t;
60602    }
60603    unsafe { _vshl_s32(a, b) }
60604}
60605#[doc = "Signed Shift left"]
60606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s32)"]
60607#[inline(always)]
60608#[target_feature(enable = "neon")]
60609#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60610#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60611#[cfg_attr(
60612    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60613    assert_instr(sshl)
60614)]
60615#[cfg_attr(
60616    not(target_arch = "arm"),
60617    stable(feature = "neon_intrinsics", since = "1.59.0")
60618)]
60619#[cfg_attr(
60620    target_arch = "arm",
60621    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60622)]
60623pub fn vshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
60624    unsafe extern "unadjusted" {
60625        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i32")]
60626        #[cfg_attr(
60627            any(target_arch = "aarch64", target_arch = "arm64ec"),
60628            link_name = "llvm.aarch64.neon.sshl.v4i32"
60629        )]
60630        fn _vshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t;
60631    }
60632    unsafe { _vshlq_s32(a, b) }
60633}
60634#[doc = "Signed Shift left"]
60635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s64)"]
60636#[inline(always)]
60637#[target_feature(enable = "neon")]
60638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60640#[cfg_attr(
60641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60642    assert_instr(sshl)
60643)]
60644#[cfg_attr(
60645    not(target_arch = "arm"),
60646    stable(feature = "neon_intrinsics", since = "1.59.0")
60647)]
60648#[cfg_attr(
60649    target_arch = "arm",
60650    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60651)]
60652pub fn vshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
60653    unsafe extern "unadjusted" {
60654        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v1i64")]
60655        #[cfg_attr(
60656            any(target_arch = "aarch64", target_arch = "arm64ec"),
60657            link_name = "llvm.aarch64.neon.sshl.v1i64"
60658        )]
60659        fn _vshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t;
60660    }
60661    unsafe { _vshl_s64(a, b) }
60662}
60663#[doc = "Signed Shift left"]
60664#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s64)"]
60665#[inline(always)]
60666#[target_feature(enable = "neon")]
60667#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60668#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60669#[cfg_attr(
60670    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60671    assert_instr(sshl)
60672)]
60673#[cfg_attr(
60674    not(target_arch = "arm"),
60675    stable(feature = "neon_intrinsics", since = "1.59.0")
60676)]
60677#[cfg_attr(
60678    target_arch = "arm",
60679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60680)]
60681pub fn vshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
60682    unsafe extern "unadjusted" {
60683        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i64")]
60684        #[cfg_attr(
60685            any(target_arch = "aarch64", target_arch = "arm64ec"),
60686            link_name = "llvm.aarch64.neon.sshl.v2i64"
60687        )]
60688        fn _vshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t;
60689    }
60690    unsafe { _vshlq_s64(a, b) }
60691}
60692#[doc = "Unsigned Shift left"]
60693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u8)"]
60694#[inline(always)]
60695#[target_feature(enable = "neon")]
60696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60698#[cfg_attr(
60699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60700    assert_instr(ushl)
60701)]
60702#[cfg_attr(
60703    not(target_arch = "arm"),
60704    stable(feature = "neon_intrinsics", since = "1.59.0")
60705)]
60706#[cfg_attr(
60707    target_arch = "arm",
60708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60709)]
60710pub fn vshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
60711    unsafe extern "unadjusted" {
60712        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i8")]
60713        #[cfg_attr(
60714            any(target_arch = "aarch64", target_arch = "arm64ec"),
60715            link_name = "llvm.aarch64.neon.ushl.v8i8"
60716        )]
60717        fn _vshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
60718    }
60719    unsafe { _vshl_u8(a, b) }
60720}
60721#[doc = "Unsigned Shift left"]
60722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u8)"]
60723#[inline(always)]
60724#[target_feature(enable = "neon")]
60725#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60726#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60727#[cfg_attr(
60728    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60729    assert_instr(ushl)
60730)]
60731#[cfg_attr(
60732    not(target_arch = "arm"),
60733    stable(feature = "neon_intrinsics", since = "1.59.0")
60734)]
60735#[cfg_attr(
60736    target_arch = "arm",
60737    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60738)]
60739pub fn vshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
60740    unsafe extern "unadjusted" {
60741        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v16i8")]
60742        #[cfg_attr(
60743            any(target_arch = "aarch64", target_arch = "arm64ec"),
60744            link_name = "llvm.aarch64.neon.ushl.v16i8"
60745        )]
60746        fn _vshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
60747    }
60748    unsafe { _vshlq_u8(a, b) }
60749}
60750#[doc = "Unsigned Shift left"]
60751#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u16)"]
60752#[inline(always)]
60753#[target_feature(enable = "neon")]
60754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60755#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60756#[cfg_attr(
60757    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60758    assert_instr(ushl)
60759)]
60760#[cfg_attr(
60761    not(target_arch = "arm"),
60762    stable(feature = "neon_intrinsics", since = "1.59.0")
60763)]
60764#[cfg_attr(
60765    target_arch = "arm",
60766    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60767)]
60768pub fn vshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
60769    unsafe extern "unadjusted" {
60770        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i16")]
60771        #[cfg_attr(
60772            any(target_arch = "aarch64", target_arch = "arm64ec"),
60773            link_name = "llvm.aarch64.neon.ushl.v4i16"
60774        )]
60775        fn _vshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
60776    }
60777    unsafe { _vshl_u16(a, b) }
60778}
60779#[doc = "Unsigned Shift left"]
60780#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u16)"]
60781#[inline(always)]
60782#[target_feature(enable = "neon")]
60783#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60784#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60785#[cfg_attr(
60786    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60787    assert_instr(ushl)
60788)]
60789#[cfg_attr(
60790    not(target_arch = "arm"),
60791    stable(feature = "neon_intrinsics", since = "1.59.0")
60792)]
60793#[cfg_attr(
60794    target_arch = "arm",
60795    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60796)]
60797pub fn vshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
60798    unsafe extern "unadjusted" {
60799        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i16")]
60800        #[cfg_attr(
60801            any(target_arch = "aarch64", target_arch = "arm64ec"),
60802            link_name = "llvm.aarch64.neon.ushl.v8i16"
60803        )]
60804        fn _vshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
60805    }
60806    unsafe { _vshlq_u16(a, b) }
60807}
60808#[doc = "Unsigned Shift left"]
60809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u32)"]
60810#[inline(always)]
60811#[target_feature(enable = "neon")]
60812#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60813#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60814#[cfg_attr(
60815    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60816    assert_instr(ushl)
60817)]
60818#[cfg_attr(
60819    not(target_arch = "arm"),
60820    stable(feature = "neon_intrinsics", since = "1.59.0")
60821)]
60822#[cfg_attr(
60823    target_arch = "arm",
60824    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60825)]
60826pub fn vshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
60827    unsafe extern "unadjusted" {
60828        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i32")]
60829        #[cfg_attr(
60830            any(target_arch = "aarch64", target_arch = "arm64ec"),
60831            link_name = "llvm.aarch64.neon.ushl.v2i32"
60832        )]
60833        fn _vshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
60834    }
60835    unsafe { _vshl_u32(a, b) }
60836}
60837#[doc = "Unsigned Shift left"]
60838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u32)"]
60839#[inline(always)]
60840#[target_feature(enable = "neon")]
60841#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60842#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60843#[cfg_attr(
60844    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60845    assert_instr(ushl)
60846)]
60847#[cfg_attr(
60848    not(target_arch = "arm"),
60849    stable(feature = "neon_intrinsics", since = "1.59.0")
60850)]
60851#[cfg_attr(
60852    target_arch = "arm",
60853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60854)]
60855pub fn vshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
60856    unsafe extern "unadjusted" {
60857        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i32")]
60858        #[cfg_attr(
60859            any(target_arch = "aarch64", target_arch = "arm64ec"),
60860            link_name = "llvm.aarch64.neon.ushl.v4i32"
60861        )]
60862        fn _vshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
60863    }
60864    unsafe { _vshlq_u32(a, b) }
60865}
60866#[doc = "Unsigned Shift left"]
60867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u64)"]
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(vshl))]
60872#[cfg_attr(
60873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60874    assert_instr(ushl)
60875)]
60876#[cfg_attr(
60877    not(target_arch = "arm"),
60878    stable(feature = "neon_intrinsics", since = "1.59.0")
60879)]
60880#[cfg_attr(
60881    target_arch = "arm",
60882    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60883)]
60884pub fn vshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
60885    unsafe extern "unadjusted" {
60886        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v1i64")]
60887        #[cfg_attr(
60888            any(target_arch = "aarch64", target_arch = "arm64ec"),
60889            link_name = "llvm.aarch64.neon.ushl.v1i64"
60890        )]
60891        fn _vshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
60892    }
60893    unsafe { _vshl_u64(a, b) }
60894}
60895#[doc = "Unsigned Shift left"]
60896#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u64)"]
60897#[inline(always)]
60898#[target_feature(enable = "neon")]
60899#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60900#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
60901#[cfg_attr(
60902    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60903    assert_instr(ushl)
60904)]
60905#[cfg_attr(
60906    not(target_arch = "arm"),
60907    stable(feature = "neon_intrinsics", since = "1.59.0")
60908)]
60909#[cfg_attr(
60910    target_arch = "arm",
60911    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60912)]
60913pub fn vshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
60914    unsafe extern "unadjusted" {
60915        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i64")]
60916        #[cfg_attr(
60917            any(target_arch = "aarch64", target_arch = "arm64ec"),
60918            link_name = "llvm.aarch64.neon.ushl.v2i64"
60919        )]
60920        fn _vshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
60921    }
60922    unsafe { _vshlq_u64(a, b) }
60923}
60924#[doc = "Signed shift left long"]
60925#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s16)"]
60926#[inline(always)]
60927#[target_feature(enable = "neon")]
60928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60929#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s16", N = 2))]
60930#[cfg_attr(
60931    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60932    assert_instr(sshll, N = 2)
60933)]
60934#[rustc_legacy_const_generics(1)]
60935#[cfg_attr(
60936    not(target_arch = "arm"),
60937    stable(feature = "neon_intrinsics", since = "1.59.0")
60938)]
60939#[cfg_attr(
60940    target_arch = "arm",
60941    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60942)]
60943pub fn vshll_n_s16<const N: i32>(a: int16x4_t) -> int32x4_t {
60944    static_assert!(N >= 0 && N <= 16);
60945    unsafe { simd_shl(simd_cast(a), vdupq_n_s32(N as _)) }
60946}
60947#[doc = "Signed shift left long"]
60948#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s32)"]
60949#[inline(always)]
60950#[target_feature(enable = "neon")]
60951#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60952#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s32", N = 2))]
60953#[cfg_attr(
60954    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60955    assert_instr(sshll, N = 2)
60956)]
60957#[rustc_legacy_const_generics(1)]
60958#[cfg_attr(
60959    not(target_arch = "arm"),
60960    stable(feature = "neon_intrinsics", since = "1.59.0")
60961)]
60962#[cfg_attr(
60963    target_arch = "arm",
60964    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60965)]
60966pub fn vshll_n_s32<const N: i32>(a: int32x2_t) -> int64x2_t {
60967    static_assert!(N >= 0 && N <= 32);
60968    unsafe { simd_shl(simd_cast(a), vdupq_n_s64(N as _)) }
60969}
60970#[doc = "Signed shift left long"]
60971#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s8)"]
60972#[inline(always)]
60973#[target_feature(enable = "neon")]
60974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60975#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s8", N = 2))]
60976#[cfg_attr(
60977    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
60978    assert_instr(sshll, N = 2)
60979)]
60980#[rustc_legacy_const_generics(1)]
60981#[cfg_attr(
60982    not(target_arch = "arm"),
60983    stable(feature = "neon_intrinsics", since = "1.59.0")
60984)]
60985#[cfg_attr(
60986    target_arch = "arm",
60987    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
60988)]
60989pub fn vshll_n_s8<const N: i32>(a: int8x8_t) -> int16x8_t {
60990    static_assert!(N >= 0 && N <= 8);
60991    unsafe { simd_shl(simd_cast(a), vdupq_n_s16(N as _)) }
60992}
60993#[doc = "Signed shift left long"]
60994#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u16)"]
60995#[inline(always)]
60996#[target_feature(enable = "neon")]
60997#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60998#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u16", N = 2))]
60999#[cfg_attr(
61000    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61001    assert_instr(ushll, N = 2)
61002)]
61003#[rustc_legacy_const_generics(1)]
61004#[cfg_attr(
61005    not(target_arch = "arm"),
61006    stable(feature = "neon_intrinsics", since = "1.59.0")
61007)]
61008#[cfg_attr(
61009    target_arch = "arm",
61010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61011)]
61012pub fn vshll_n_u16<const N: i32>(a: uint16x4_t) -> uint32x4_t {
61013    static_assert!(N >= 0 && N <= 16);
61014    unsafe { simd_shl(simd_cast(a), vdupq_n_u32(N as _)) }
61015}
61016#[doc = "Signed shift left long"]
61017#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u32)"]
61018#[inline(always)]
61019#[target_feature(enable = "neon")]
61020#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61021#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u32", N = 2))]
61022#[cfg_attr(
61023    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61024    assert_instr(ushll, N = 2)
61025)]
61026#[rustc_legacy_const_generics(1)]
61027#[cfg_attr(
61028    not(target_arch = "arm"),
61029    stable(feature = "neon_intrinsics", since = "1.59.0")
61030)]
61031#[cfg_attr(
61032    target_arch = "arm",
61033    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61034)]
61035pub fn vshll_n_u32<const N: i32>(a: uint32x2_t) -> uint64x2_t {
61036    static_assert!(N >= 0 && N <= 32);
61037    unsafe { simd_shl(simd_cast(a), vdupq_n_u64(N as _)) }
61038}
61039#[doc = "Signed shift left long"]
61040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u8)"]
61041#[inline(always)]
61042#[target_feature(enable = "neon")]
61043#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61044#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u8", N = 2))]
61045#[cfg_attr(
61046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61047    assert_instr(ushll, N = 2)
61048)]
61049#[rustc_legacy_const_generics(1)]
61050#[cfg_attr(
61051    not(target_arch = "arm"),
61052    stable(feature = "neon_intrinsics", since = "1.59.0")
61053)]
61054#[cfg_attr(
61055    target_arch = "arm",
61056    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61057)]
61058pub fn vshll_n_u8<const N: i32>(a: uint8x8_t) -> uint16x8_t {
61059    static_assert!(N >= 0 && N <= 8);
61060    unsafe { simd_shl(simd_cast(a), vdupq_n_u16(N as _)) }
61061}
61062#[doc = "Shift right"]
61063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s8)"]
61064#[inline(always)]
61065#[target_feature(enable = "neon")]
61066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61067#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
61068#[cfg_attr(
61069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61070    assert_instr(sshr, N = 2)
61071)]
61072#[rustc_legacy_const_generics(1)]
61073#[cfg_attr(
61074    not(target_arch = "arm"),
61075    stable(feature = "neon_intrinsics", since = "1.59.0")
61076)]
61077#[cfg_attr(
61078    target_arch = "arm",
61079    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61080)]
61081pub fn vshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
61082    static_assert!(N >= 1 && N <= 8);
61083    let n: i32 = if N == 8 { 7 } else { N };
61084    unsafe { simd_shr(a, vdup_n_s8(n as _)) }
61085}
61086#[doc = "Shift right"]
61087#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s8)"]
61088#[inline(always)]
61089#[target_feature(enable = "neon")]
61090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61091#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
61092#[cfg_attr(
61093    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61094    assert_instr(sshr, N = 2)
61095)]
61096#[rustc_legacy_const_generics(1)]
61097#[cfg_attr(
61098    not(target_arch = "arm"),
61099    stable(feature = "neon_intrinsics", since = "1.59.0")
61100)]
61101#[cfg_attr(
61102    target_arch = "arm",
61103    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61104)]
61105pub fn vshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
61106    static_assert!(N >= 1 && N <= 8);
61107    let n: i32 = if N == 8 { 7 } else { N };
61108    unsafe { simd_shr(a, vdupq_n_s8(n as _)) }
61109}
61110#[doc = "Shift right"]
61111#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s16)"]
61112#[inline(always)]
61113#[target_feature(enable = "neon")]
61114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61115#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
61116#[cfg_attr(
61117    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61118    assert_instr(sshr, N = 2)
61119)]
61120#[rustc_legacy_const_generics(1)]
61121#[cfg_attr(
61122    not(target_arch = "arm"),
61123    stable(feature = "neon_intrinsics", since = "1.59.0")
61124)]
61125#[cfg_attr(
61126    target_arch = "arm",
61127    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61128)]
61129pub fn vshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
61130    static_assert!(N >= 1 && N <= 16);
61131    let n: i32 = if N == 16 { 15 } else { N };
61132    unsafe { simd_shr(a, vdup_n_s16(n as _)) }
61133}
61134#[doc = "Shift right"]
61135#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s16)"]
61136#[inline(always)]
61137#[target_feature(enable = "neon")]
61138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61139#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
61140#[cfg_attr(
61141    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61142    assert_instr(sshr, N = 2)
61143)]
61144#[rustc_legacy_const_generics(1)]
61145#[cfg_attr(
61146    not(target_arch = "arm"),
61147    stable(feature = "neon_intrinsics", since = "1.59.0")
61148)]
61149#[cfg_attr(
61150    target_arch = "arm",
61151    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61152)]
61153pub fn vshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
61154    static_assert!(N >= 1 && N <= 16);
61155    let n: i32 = if N == 16 { 15 } else { N };
61156    unsafe { simd_shr(a, vdupq_n_s16(n as _)) }
61157}
61158#[doc = "Shift right"]
61159#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s32)"]
61160#[inline(always)]
61161#[target_feature(enable = "neon")]
61162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61163#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s32", N = 2))]
61164#[cfg_attr(
61165    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61166    assert_instr(sshr, N = 2)
61167)]
61168#[rustc_legacy_const_generics(1)]
61169#[cfg_attr(
61170    not(target_arch = "arm"),
61171    stable(feature = "neon_intrinsics", since = "1.59.0")
61172)]
61173#[cfg_attr(
61174    target_arch = "arm",
61175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61176)]
61177pub fn vshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
61178    static_assert!(N >= 1 && N <= 32);
61179    let n: i32 = if N == 32 { 31 } else { N };
61180    unsafe { simd_shr(a, vdup_n_s32(n as _)) }
61181}
61182#[doc = "Shift right"]
61183#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s32)"]
61184#[inline(always)]
61185#[target_feature(enable = "neon")]
61186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61187#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s32", N = 2))]
61188#[cfg_attr(
61189    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61190    assert_instr(sshr, N = 2)
61191)]
61192#[rustc_legacy_const_generics(1)]
61193#[cfg_attr(
61194    not(target_arch = "arm"),
61195    stable(feature = "neon_intrinsics", since = "1.59.0")
61196)]
61197#[cfg_attr(
61198    target_arch = "arm",
61199    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61200)]
61201pub fn vshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
61202    static_assert!(N >= 1 && N <= 32);
61203    let n: i32 = if N == 32 { 31 } else { N };
61204    unsafe { simd_shr(a, vdupq_n_s32(n as _)) }
61205}
61206#[doc = "Shift right"]
61207#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s64)"]
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.s64", N = 2))]
61212#[cfg_attr(
61213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61214    assert_instr(sshr, 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_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
61226    static_assert!(N >= 1 && N <= 64);
61227    let n: i32 = if N == 64 { 63 } else { N };
61228    unsafe { simd_shr(a, vdup_n_s64(n as _)) }
61229}
61230#[doc = "Shift right"]
61231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s64)"]
61232#[inline(always)]
61233#[target_feature(enable = "neon")]
61234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61235#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s64", N = 2))]
61236#[cfg_attr(
61237    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61238    assert_instr(sshr, N = 2)
61239)]
61240#[rustc_legacy_const_generics(1)]
61241#[cfg_attr(
61242    not(target_arch = "arm"),
61243    stable(feature = "neon_intrinsics", since = "1.59.0")
61244)]
61245#[cfg_attr(
61246    target_arch = "arm",
61247    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61248)]
61249pub fn vshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
61250    static_assert!(N >= 1 && N <= 64);
61251    let n: i32 = if N == 64 { 63 } else { N };
61252    unsafe { simd_shr(a, vdupq_n_s64(n as _)) }
61253}
61254#[doc = "Shift right"]
61255#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u8)"]
61256#[inline(always)]
61257#[target_feature(enable = "neon")]
61258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61259#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
61260#[cfg_attr(
61261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61262    assert_instr(ushr, N = 2)
61263)]
61264#[rustc_legacy_const_generics(1)]
61265#[cfg_attr(
61266    not(target_arch = "arm"),
61267    stable(feature = "neon_intrinsics", since = "1.59.0")
61268)]
61269#[cfg_attr(
61270    target_arch = "arm",
61271    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61272)]
61273pub fn vshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
61274    static_assert!(N >= 1 && N <= 8);
61275    let n: i32 = if N == 8 {
61276        return vdup_n_u8(0);
61277    } else {
61278        N
61279    };
61280    unsafe { simd_shr(a, vdup_n_u8(n as _)) }
61281}
61282#[doc = "Shift right"]
61283#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u8)"]
61284#[inline(always)]
61285#[target_feature(enable = "neon")]
61286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61287#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
61288#[cfg_attr(
61289    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61290    assert_instr(ushr, N = 2)
61291)]
61292#[rustc_legacy_const_generics(1)]
61293#[cfg_attr(
61294    not(target_arch = "arm"),
61295    stable(feature = "neon_intrinsics", since = "1.59.0")
61296)]
61297#[cfg_attr(
61298    target_arch = "arm",
61299    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61300)]
61301pub fn vshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
61302    static_assert!(N >= 1 && N <= 8);
61303    let n: i32 = if N == 8 {
61304        return vdupq_n_u8(0);
61305    } else {
61306        N
61307    };
61308    unsafe { simd_shr(a, vdupq_n_u8(n as _)) }
61309}
61310#[doc = "Shift right"]
61311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u16)"]
61312#[inline(always)]
61313#[target_feature(enable = "neon")]
61314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61315#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
61316#[cfg_attr(
61317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61318    assert_instr(ushr, N = 2)
61319)]
61320#[rustc_legacy_const_generics(1)]
61321#[cfg_attr(
61322    not(target_arch = "arm"),
61323    stable(feature = "neon_intrinsics", since = "1.59.0")
61324)]
61325#[cfg_attr(
61326    target_arch = "arm",
61327    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61328)]
61329pub fn vshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
61330    static_assert!(N >= 1 && N <= 16);
61331    let n: i32 = if N == 16 {
61332        return vdup_n_u16(0);
61333    } else {
61334        N
61335    };
61336    unsafe { simd_shr(a, vdup_n_u16(n as _)) }
61337}
61338#[doc = "Shift right"]
61339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u16)"]
61340#[inline(always)]
61341#[target_feature(enable = "neon")]
61342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61343#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
61344#[cfg_attr(
61345    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61346    assert_instr(ushr, N = 2)
61347)]
61348#[rustc_legacy_const_generics(1)]
61349#[cfg_attr(
61350    not(target_arch = "arm"),
61351    stable(feature = "neon_intrinsics", since = "1.59.0")
61352)]
61353#[cfg_attr(
61354    target_arch = "arm",
61355    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61356)]
61357pub fn vshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
61358    static_assert!(N >= 1 && N <= 16);
61359    let n: i32 = if N == 16 {
61360        return vdupq_n_u16(0);
61361    } else {
61362        N
61363    };
61364    unsafe { simd_shr(a, vdupq_n_u16(n as _)) }
61365}
61366#[doc = "Shift right"]
61367#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u32)"]
61368#[inline(always)]
61369#[target_feature(enable = "neon")]
61370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61371#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
61372#[cfg_attr(
61373    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61374    assert_instr(ushr, N = 2)
61375)]
61376#[rustc_legacy_const_generics(1)]
61377#[cfg_attr(
61378    not(target_arch = "arm"),
61379    stable(feature = "neon_intrinsics", since = "1.59.0")
61380)]
61381#[cfg_attr(
61382    target_arch = "arm",
61383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61384)]
61385pub fn vshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
61386    static_assert!(N >= 1 && N <= 32);
61387    let n: i32 = if N == 32 {
61388        return vdup_n_u32(0);
61389    } else {
61390        N
61391    };
61392    unsafe { simd_shr(a, vdup_n_u32(n as _)) }
61393}
61394#[doc = "Shift right"]
61395#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u32)"]
61396#[inline(always)]
61397#[target_feature(enable = "neon")]
61398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61399#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
61400#[cfg_attr(
61401    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61402    assert_instr(ushr, N = 2)
61403)]
61404#[rustc_legacy_const_generics(1)]
61405#[cfg_attr(
61406    not(target_arch = "arm"),
61407    stable(feature = "neon_intrinsics", since = "1.59.0")
61408)]
61409#[cfg_attr(
61410    target_arch = "arm",
61411    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61412)]
61413pub fn vshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
61414    static_assert!(N >= 1 && N <= 32);
61415    let n: i32 = if N == 32 {
61416        return vdupq_n_u32(0);
61417    } else {
61418        N
61419    };
61420    unsafe { simd_shr(a, vdupq_n_u32(n as _)) }
61421}
61422#[doc = "Shift right"]
61423#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u64)"]
61424#[inline(always)]
61425#[target_feature(enable = "neon")]
61426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
61428#[cfg_attr(
61429    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61430    assert_instr(ushr, N = 2)
61431)]
61432#[rustc_legacy_const_generics(1)]
61433#[cfg_attr(
61434    not(target_arch = "arm"),
61435    stable(feature = "neon_intrinsics", since = "1.59.0")
61436)]
61437#[cfg_attr(
61438    target_arch = "arm",
61439    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61440)]
61441pub fn vshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
61442    static_assert!(N >= 1 && N <= 64);
61443    let n: i32 = if N == 64 {
61444        return vdup_n_u64(0);
61445    } else {
61446        N
61447    };
61448    unsafe { simd_shr(a, vdup_n_u64(n as _)) }
61449}
61450#[doc = "Shift right"]
61451#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u64)"]
61452#[inline(always)]
61453#[target_feature(enable = "neon")]
61454#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61455#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
61456#[cfg_attr(
61457    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61458    assert_instr(ushr, N = 2)
61459)]
61460#[rustc_legacy_const_generics(1)]
61461#[cfg_attr(
61462    not(target_arch = "arm"),
61463    stable(feature = "neon_intrinsics", since = "1.59.0")
61464)]
61465#[cfg_attr(
61466    target_arch = "arm",
61467    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61468)]
61469pub fn vshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
61470    static_assert!(N >= 1 && N <= 64);
61471    let n: i32 = if N == 64 {
61472        return vdupq_n_u64(0);
61473    } else {
61474        N
61475    };
61476    unsafe { simd_shr(a, vdupq_n_u64(n as _)) }
61477}
61478#[doc = "Shift right narrow"]
61479#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s16)"]
61480#[inline(always)]
61481#[target_feature(enable = "neon")]
61482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61483#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i16", N = 2))]
61484#[cfg_attr(
61485    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61486    assert_instr(shrn, N = 2)
61487)]
61488#[rustc_legacy_const_generics(1)]
61489#[cfg_attr(
61490    not(target_arch = "arm"),
61491    stable(feature = "neon_intrinsics", since = "1.59.0")
61492)]
61493#[cfg_attr(
61494    target_arch = "arm",
61495    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61496)]
61497pub fn vshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
61498    static_assert!(N >= 1 && N <= 8);
61499    unsafe { simd_cast(simd_shr(a, vdupq_n_s16(N as _))) }
61500}
61501#[doc = "Shift right narrow"]
61502#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s32)"]
61503#[inline(always)]
61504#[target_feature(enable = "neon")]
61505#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61506#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
61507#[cfg_attr(
61508    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61509    assert_instr(shrn, N = 2)
61510)]
61511#[rustc_legacy_const_generics(1)]
61512#[cfg_attr(
61513    not(target_arch = "arm"),
61514    stable(feature = "neon_intrinsics", since = "1.59.0")
61515)]
61516#[cfg_attr(
61517    target_arch = "arm",
61518    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61519)]
61520pub fn vshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
61521    static_assert!(N >= 1 && N <= 16);
61522    unsafe { simd_cast(simd_shr(a, vdupq_n_s32(N as _))) }
61523}
61524#[doc = "Shift right narrow"]
61525#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s64)"]
61526#[inline(always)]
61527#[target_feature(enable = "neon")]
61528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61529#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
61530#[cfg_attr(
61531    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61532    assert_instr(shrn, N = 2)
61533)]
61534#[rustc_legacy_const_generics(1)]
61535#[cfg_attr(
61536    not(target_arch = "arm"),
61537    stable(feature = "neon_intrinsics", since = "1.59.0")
61538)]
61539#[cfg_attr(
61540    target_arch = "arm",
61541    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61542)]
61543pub fn vshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
61544    static_assert!(N >= 1 && N <= 32);
61545    unsafe { simd_cast(simd_shr(a, vdupq_n_s64(N as _))) }
61546}
61547#[doc = "Shift right narrow"]
61548#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u16)"]
61549#[inline(always)]
61550#[target_feature(enable = "neon")]
61551#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61552#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i16", N = 2))]
61553#[cfg_attr(
61554    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61555    assert_instr(shrn, N = 2)
61556)]
61557#[rustc_legacy_const_generics(1)]
61558#[cfg_attr(
61559    not(target_arch = "arm"),
61560    stable(feature = "neon_intrinsics", since = "1.59.0")
61561)]
61562#[cfg_attr(
61563    target_arch = "arm",
61564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61565)]
61566pub fn vshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
61567    static_assert!(N >= 1 && N <= 8);
61568    unsafe { simd_cast(simd_shr(a, vdupq_n_u16(N as _))) }
61569}
61570#[doc = "Shift right narrow"]
61571#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u32)"]
61572#[inline(always)]
61573#[target_feature(enable = "neon")]
61574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61575#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
61576#[cfg_attr(
61577    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61578    assert_instr(shrn, N = 2)
61579)]
61580#[rustc_legacy_const_generics(1)]
61581#[cfg_attr(
61582    not(target_arch = "arm"),
61583    stable(feature = "neon_intrinsics", since = "1.59.0")
61584)]
61585#[cfg_attr(
61586    target_arch = "arm",
61587    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61588)]
61589pub fn vshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
61590    static_assert!(N >= 1 && N <= 16);
61591    unsafe { simd_cast(simd_shr(a, vdupq_n_u32(N as _))) }
61592}
61593#[doc = "Shift right narrow"]
61594#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u64)"]
61595#[inline(always)]
61596#[target_feature(enable = "neon")]
61597#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61598#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
61599#[cfg_attr(
61600    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61601    assert_instr(shrn, N = 2)
61602)]
61603#[rustc_legacy_const_generics(1)]
61604#[cfg_attr(
61605    not(target_arch = "arm"),
61606    stable(feature = "neon_intrinsics", since = "1.59.0")
61607)]
61608#[cfg_attr(
61609    target_arch = "arm",
61610    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61611)]
61612pub fn vshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
61613    static_assert!(N >= 1 && N <= 32);
61614    unsafe { simd_cast(simd_shr(a, vdupq_n_u64(N as _))) }
61615}
61616#[doc = "Shift Left and Insert (immediate)"]
61617#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s8)"]
61618#[inline(always)]
61619#[cfg(target_arch = "arm")]
61620#[target_feature(enable = "neon,v7")]
61621#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61622#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61623#[rustc_legacy_const_generics(2)]
61624pub fn vsli_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
61625    static_assert_uimm_bits!(N, 3);
61626    vshiftlins_v8i8::<N>(a, b)
61627}
61628#[doc = "Shift Left and Insert (immediate)"]
61629#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s8)"]
61630#[inline(always)]
61631#[cfg(target_arch = "arm")]
61632#[target_feature(enable = "neon,v7")]
61633#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61634#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61635#[rustc_legacy_const_generics(2)]
61636pub fn vsliq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
61637    static_assert_uimm_bits!(N, 3);
61638    vshiftlins_v16i8::<N>(a, b)
61639}
61640#[doc = "Shift Left and Insert (immediate)"]
61641#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s16)"]
61642#[inline(always)]
61643#[cfg(target_arch = "arm")]
61644#[target_feature(enable = "neon,v7")]
61645#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61646#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61647#[rustc_legacy_const_generics(2)]
61648pub fn vsli_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
61649    static_assert_uimm_bits!(N, 4);
61650    vshiftlins_v4i16::<N>(a, b)
61651}
61652#[doc = "Shift Left and Insert (immediate)"]
61653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s16)"]
61654#[inline(always)]
61655#[cfg(target_arch = "arm")]
61656#[target_feature(enable = "neon,v7")]
61657#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61658#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61659#[rustc_legacy_const_generics(2)]
61660pub fn vsliq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
61661    static_assert_uimm_bits!(N, 4);
61662    vshiftlins_v8i16::<N>(a, b)
61663}
61664#[doc = "Shift Left and Insert (immediate)"]
61665#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s32)"]
61666#[inline(always)]
61667#[cfg(target_arch = "arm")]
61668#[target_feature(enable = "neon,v7")]
61669#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61670#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
61671#[rustc_legacy_const_generics(2)]
61672pub fn vsli_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
61673    static_assert!(N >= 0 && N <= 31);
61674    vshiftlins_v2i32::<N>(a, b)
61675}
61676#[doc = "Shift Left and Insert (immediate)"]
61677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s32)"]
61678#[inline(always)]
61679#[cfg(target_arch = "arm")]
61680#[target_feature(enable = "neon,v7")]
61681#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61682#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
61683#[rustc_legacy_const_generics(2)]
61684pub fn vsliq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
61685    static_assert!(N >= 0 && N <= 31);
61686    vshiftlins_v4i32::<N>(a, b)
61687}
61688#[doc = "Shift Left and Insert (immediate)"]
61689#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_s64)"]
61690#[inline(always)]
61691#[cfg(target_arch = "arm")]
61692#[target_feature(enable = "neon,v7")]
61693#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61694#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
61695#[rustc_legacy_const_generics(2)]
61696pub fn vsli_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
61697    static_assert!(N >= 0 && N <= 63);
61698    vshiftlins_v1i64::<N>(a, b)
61699}
61700#[doc = "Shift Left and Insert (immediate)"]
61701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_s64)"]
61702#[inline(always)]
61703#[cfg(target_arch = "arm")]
61704#[target_feature(enable = "neon,v7")]
61705#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61706#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
61707#[rustc_legacy_const_generics(2)]
61708pub fn vsliq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
61709    static_assert!(N >= 0 && N <= 63);
61710    vshiftlins_v2i64::<N>(a, b)
61711}
61712#[doc = "Shift Left and Insert (immediate)"]
61713#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u8)"]
61714#[inline(always)]
61715#[cfg(target_arch = "arm")]
61716#[target_feature(enable = "neon,v7")]
61717#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61718#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61719#[rustc_legacy_const_generics(2)]
61720pub fn vsli_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
61721    static_assert_uimm_bits!(N, 3);
61722    unsafe { transmute(vshiftlins_v8i8::<N>(transmute(a), transmute(b))) }
61723}
61724#[doc = "Shift Left and Insert (immediate)"]
61725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u8)"]
61726#[inline(always)]
61727#[cfg(target_arch = "arm")]
61728#[target_feature(enable = "neon,v7")]
61729#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61730#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61731#[rustc_legacy_const_generics(2)]
61732pub fn vsliq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
61733    static_assert_uimm_bits!(N, 3);
61734    unsafe { transmute(vshiftlins_v16i8::<N>(transmute(a), transmute(b))) }
61735}
61736#[doc = "Shift Left and Insert (immediate)"]
61737#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u16)"]
61738#[inline(always)]
61739#[cfg(target_arch = "arm")]
61740#[target_feature(enable = "neon,v7")]
61741#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61742#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61743#[rustc_legacy_const_generics(2)]
61744pub fn vsli_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
61745    static_assert_uimm_bits!(N, 4);
61746    unsafe { transmute(vshiftlins_v4i16::<N>(transmute(a), transmute(b))) }
61747}
61748#[doc = "Shift Left and Insert (immediate)"]
61749#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u16)"]
61750#[inline(always)]
61751#[cfg(target_arch = "arm")]
61752#[target_feature(enable = "neon,v7")]
61753#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61754#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61755#[rustc_legacy_const_generics(2)]
61756pub fn vsliq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
61757    static_assert_uimm_bits!(N, 4);
61758    unsafe { transmute(vshiftlins_v8i16::<N>(transmute(a), transmute(b))) }
61759}
61760#[doc = "Shift Left and Insert (immediate)"]
61761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u32)"]
61762#[inline(always)]
61763#[cfg(target_arch = "arm")]
61764#[target_feature(enable = "neon,v7")]
61765#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61766#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
61767#[rustc_legacy_const_generics(2)]
61768pub fn vsli_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
61769    static_assert!(N >= 0 && N <= 31);
61770    unsafe { transmute(vshiftlins_v2i32::<N>(transmute(a), transmute(b))) }
61771}
61772#[doc = "Shift Left and Insert (immediate)"]
61773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u32)"]
61774#[inline(always)]
61775#[cfg(target_arch = "arm")]
61776#[target_feature(enable = "neon,v7")]
61777#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61778#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.32", N = 1))]
61779#[rustc_legacy_const_generics(2)]
61780pub fn vsliq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
61781    static_assert!(N >= 0 && N <= 31);
61782    unsafe { transmute(vshiftlins_v4i32::<N>(transmute(a), transmute(b))) }
61783}
61784#[doc = "Shift Left and Insert (immediate)"]
61785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_u64)"]
61786#[inline(always)]
61787#[cfg(target_arch = "arm")]
61788#[target_feature(enable = "neon,v7")]
61789#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61790#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
61791#[rustc_legacy_const_generics(2)]
61792pub fn vsli_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
61793    static_assert!(N >= 0 && N <= 63);
61794    unsafe { transmute(vshiftlins_v1i64::<N>(transmute(a), transmute(b))) }
61795}
61796#[doc = "Shift Left and Insert (immediate)"]
61797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_u64)"]
61798#[inline(always)]
61799#[cfg(target_arch = "arm")]
61800#[target_feature(enable = "neon,v7")]
61801#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61802#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.64", N = 1))]
61803#[rustc_legacy_const_generics(2)]
61804pub fn vsliq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
61805    static_assert!(N >= 0 && N <= 63);
61806    unsafe { transmute(vshiftlins_v2i64::<N>(transmute(a), transmute(b))) }
61807}
61808#[doc = "Shift Left and Insert (immediate)"]
61809#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_p8)"]
61810#[inline(always)]
61811#[cfg(target_arch = "arm")]
61812#[target_feature(enable = "neon,v7")]
61813#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61814#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61815#[rustc_legacy_const_generics(2)]
61816pub fn vsli_n_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
61817    static_assert_uimm_bits!(N, 3);
61818    unsafe { transmute(vshiftlins_v8i8::<N>(transmute(a), transmute(b))) }
61819}
61820#[doc = "Shift Left and Insert (immediate)"]
61821#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_p8)"]
61822#[inline(always)]
61823#[cfg(target_arch = "arm")]
61824#[target_feature(enable = "neon,v7")]
61825#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61826#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.8", N = 1))]
61827#[rustc_legacy_const_generics(2)]
61828pub fn vsliq_n_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
61829    static_assert_uimm_bits!(N, 3);
61830    unsafe { transmute(vshiftlins_v16i8::<N>(transmute(a), transmute(b))) }
61831}
61832#[doc = "Shift Left and Insert (immediate)"]
61833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsli_n_p16)"]
61834#[inline(always)]
61835#[cfg(target_arch = "arm")]
61836#[target_feature(enable = "neon,v7")]
61837#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61838#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61839#[rustc_legacy_const_generics(2)]
61840pub fn vsli_n_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
61841    static_assert_uimm_bits!(N, 4);
61842    unsafe { transmute(vshiftlins_v4i16::<N>(transmute(a), transmute(b))) }
61843}
61844#[doc = "Shift Left and Insert (immediate)"]
61845#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsliq_n_p16)"]
61846#[inline(always)]
61847#[cfg(target_arch = "arm")]
61848#[target_feature(enable = "neon,v7")]
61849#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
61850#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsli.16", N = 1))]
61851#[rustc_legacy_const_generics(2)]
61852pub fn vsliq_n_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
61853    static_assert_uimm_bits!(N, 4);
61854    unsafe { transmute(vshiftlins_v8i16::<N>(transmute(a), transmute(b))) }
61855}
61856#[doc = "Signed shift right and accumulate"]
61857#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s8)"]
61858#[inline(always)]
61859#[target_feature(enable = "neon")]
61860#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61861#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61862#[cfg_attr(
61863    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61864    assert_instr(ssra, N = 2)
61865)]
61866#[rustc_legacy_const_generics(2)]
61867#[cfg_attr(
61868    not(target_arch = "arm"),
61869    stable(feature = "neon_intrinsics", since = "1.59.0")
61870)]
61871#[cfg_attr(
61872    target_arch = "arm",
61873    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61874)]
61875pub fn vsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
61876    static_assert!(N >= 1 && N <= 8);
61877    unsafe { simd_add(a, vshr_n_s8::<N>(b)) }
61878}
61879#[doc = "Signed shift right and accumulate"]
61880#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s8)"]
61881#[inline(always)]
61882#[target_feature(enable = "neon")]
61883#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61884#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61885#[cfg_attr(
61886    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61887    assert_instr(ssra, N = 2)
61888)]
61889#[rustc_legacy_const_generics(2)]
61890#[cfg_attr(
61891    not(target_arch = "arm"),
61892    stable(feature = "neon_intrinsics", since = "1.59.0")
61893)]
61894#[cfg_attr(
61895    target_arch = "arm",
61896    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61897)]
61898pub fn vsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
61899    static_assert!(N >= 1 && N <= 8);
61900    unsafe { simd_add(a, vshrq_n_s8::<N>(b)) }
61901}
61902#[doc = "Signed shift right and accumulate"]
61903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s16)"]
61904#[inline(always)]
61905#[target_feature(enable = "neon")]
61906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61908#[cfg_attr(
61909    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61910    assert_instr(ssra, N = 2)
61911)]
61912#[rustc_legacy_const_generics(2)]
61913#[cfg_attr(
61914    not(target_arch = "arm"),
61915    stable(feature = "neon_intrinsics", since = "1.59.0")
61916)]
61917#[cfg_attr(
61918    target_arch = "arm",
61919    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61920)]
61921pub fn vsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
61922    static_assert!(N >= 1 && N <= 16);
61923    unsafe { simd_add(a, vshr_n_s16::<N>(b)) }
61924}
61925#[doc = "Signed shift right and accumulate"]
61926#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s16)"]
61927#[inline(always)]
61928#[target_feature(enable = "neon")]
61929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61930#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61931#[cfg_attr(
61932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61933    assert_instr(ssra, N = 2)
61934)]
61935#[rustc_legacy_const_generics(2)]
61936#[cfg_attr(
61937    not(target_arch = "arm"),
61938    stable(feature = "neon_intrinsics", since = "1.59.0")
61939)]
61940#[cfg_attr(
61941    target_arch = "arm",
61942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61943)]
61944pub fn vsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
61945    static_assert!(N >= 1 && N <= 16);
61946    unsafe { simd_add(a, vshrq_n_s16::<N>(b)) }
61947}
61948#[doc = "Signed shift right and accumulate"]
61949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s32)"]
61950#[inline(always)]
61951#[target_feature(enable = "neon")]
61952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61954#[cfg_attr(
61955    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61956    assert_instr(ssra, N = 2)
61957)]
61958#[rustc_legacy_const_generics(2)]
61959#[cfg_attr(
61960    not(target_arch = "arm"),
61961    stable(feature = "neon_intrinsics", since = "1.59.0")
61962)]
61963#[cfg_attr(
61964    target_arch = "arm",
61965    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61966)]
61967pub fn vsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
61968    static_assert!(N >= 1 && N <= 32);
61969    unsafe { simd_add(a, vshr_n_s32::<N>(b)) }
61970}
61971#[doc = "Signed shift right and accumulate"]
61972#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s32)"]
61973#[inline(always)]
61974#[target_feature(enable = "neon")]
61975#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61976#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
61977#[cfg_attr(
61978    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
61979    assert_instr(ssra, N = 2)
61980)]
61981#[rustc_legacy_const_generics(2)]
61982#[cfg_attr(
61983    not(target_arch = "arm"),
61984    stable(feature = "neon_intrinsics", since = "1.59.0")
61985)]
61986#[cfg_attr(
61987    target_arch = "arm",
61988    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
61989)]
61990pub fn vsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
61991    static_assert!(N >= 1 && N <= 32);
61992    unsafe { simd_add(a, vshrq_n_s32::<N>(b)) }
61993}
61994#[doc = "Signed shift right and accumulate"]
61995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s64)"]
61996#[inline(always)]
61997#[target_feature(enable = "neon")]
61998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
61999#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62000#[cfg_attr(
62001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62002    assert_instr(ssra, N = 2)
62003)]
62004#[rustc_legacy_const_generics(2)]
62005#[cfg_attr(
62006    not(target_arch = "arm"),
62007    stable(feature = "neon_intrinsics", since = "1.59.0")
62008)]
62009#[cfg_attr(
62010    target_arch = "arm",
62011    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62012)]
62013pub fn vsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
62014    static_assert!(N >= 1 && N <= 64);
62015    unsafe { simd_add(a, vshr_n_s64::<N>(b)) }
62016}
62017#[doc = "Signed shift right and accumulate"]
62018#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s64)"]
62019#[inline(always)]
62020#[target_feature(enable = "neon")]
62021#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62022#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62023#[cfg_attr(
62024    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62025    assert_instr(ssra, N = 2)
62026)]
62027#[rustc_legacy_const_generics(2)]
62028#[cfg_attr(
62029    not(target_arch = "arm"),
62030    stable(feature = "neon_intrinsics", since = "1.59.0")
62031)]
62032#[cfg_attr(
62033    target_arch = "arm",
62034    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62035)]
62036pub fn vsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
62037    static_assert!(N >= 1 && N <= 64);
62038    unsafe { simd_add(a, vshrq_n_s64::<N>(b)) }
62039}
62040#[doc = "Unsigned shift right and accumulate"]
62041#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u8)"]
62042#[inline(always)]
62043#[target_feature(enable = "neon")]
62044#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62045#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62046#[cfg_attr(
62047    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62048    assert_instr(usra, N = 2)
62049)]
62050#[rustc_legacy_const_generics(2)]
62051#[cfg_attr(
62052    not(target_arch = "arm"),
62053    stable(feature = "neon_intrinsics", since = "1.59.0")
62054)]
62055#[cfg_attr(
62056    target_arch = "arm",
62057    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62058)]
62059pub fn vsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
62060    static_assert!(N >= 1 && N <= 8);
62061    unsafe { simd_add(a, vshr_n_u8::<N>(b)) }
62062}
62063#[doc = "Unsigned shift right and accumulate"]
62064#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u8)"]
62065#[inline(always)]
62066#[target_feature(enable = "neon")]
62067#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62068#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62069#[cfg_attr(
62070    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62071    assert_instr(usra, N = 2)
62072)]
62073#[rustc_legacy_const_generics(2)]
62074#[cfg_attr(
62075    not(target_arch = "arm"),
62076    stable(feature = "neon_intrinsics", since = "1.59.0")
62077)]
62078#[cfg_attr(
62079    target_arch = "arm",
62080    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62081)]
62082pub fn vsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
62083    static_assert!(N >= 1 && N <= 8);
62084    unsafe { simd_add(a, vshrq_n_u8::<N>(b)) }
62085}
62086#[doc = "Unsigned shift right and accumulate"]
62087#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u16)"]
62088#[inline(always)]
62089#[target_feature(enable = "neon")]
62090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62091#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62092#[cfg_attr(
62093    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62094    assert_instr(usra, N = 2)
62095)]
62096#[rustc_legacy_const_generics(2)]
62097#[cfg_attr(
62098    not(target_arch = "arm"),
62099    stable(feature = "neon_intrinsics", since = "1.59.0")
62100)]
62101#[cfg_attr(
62102    target_arch = "arm",
62103    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62104)]
62105pub fn vsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
62106    static_assert!(N >= 1 && N <= 16);
62107    unsafe { simd_add(a, vshr_n_u16::<N>(b)) }
62108}
62109#[doc = "Unsigned shift right and accumulate"]
62110#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u16)"]
62111#[inline(always)]
62112#[target_feature(enable = "neon")]
62113#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62114#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62115#[cfg_attr(
62116    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62117    assert_instr(usra, N = 2)
62118)]
62119#[rustc_legacy_const_generics(2)]
62120#[cfg_attr(
62121    not(target_arch = "arm"),
62122    stable(feature = "neon_intrinsics", since = "1.59.0")
62123)]
62124#[cfg_attr(
62125    target_arch = "arm",
62126    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62127)]
62128pub fn vsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
62129    static_assert!(N >= 1 && N <= 16);
62130    unsafe { simd_add(a, vshrq_n_u16::<N>(b)) }
62131}
62132#[doc = "Unsigned shift right and accumulate"]
62133#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u32)"]
62134#[inline(always)]
62135#[target_feature(enable = "neon")]
62136#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62137#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62138#[cfg_attr(
62139    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62140    assert_instr(usra, N = 2)
62141)]
62142#[rustc_legacy_const_generics(2)]
62143#[cfg_attr(
62144    not(target_arch = "arm"),
62145    stable(feature = "neon_intrinsics", since = "1.59.0")
62146)]
62147#[cfg_attr(
62148    target_arch = "arm",
62149    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62150)]
62151pub fn vsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
62152    static_assert!(N >= 1 && N <= 32);
62153    unsafe { simd_add(a, vshr_n_u32::<N>(b)) }
62154}
62155#[doc = "Unsigned shift right and accumulate"]
62156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u32)"]
62157#[inline(always)]
62158#[target_feature(enable = "neon")]
62159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62161#[cfg_attr(
62162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62163    assert_instr(usra, N = 2)
62164)]
62165#[rustc_legacy_const_generics(2)]
62166#[cfg_attr(
62167    not(target_arch = "arm"),
62168    stable(feature = "neon_intrinsics", since = "1.59.0")
62169)]
62170#[cfg_attr(
62171    target_arch = "arm",
62172    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62173)]
62174pub fn vsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
62175    static_assert!(N >= 1 && N <= 32);
62176    unsafe { simd_add(a, vshrq_n_u32::<N>(b)) }
62177}
62178#[doc = "Unsigned shift right and accumulate"]
62179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u64)"]
62180#[inline(always)]
62181#[target_feature(enable = "neon")]
62182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62184#[cfg_attr(
62185    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62186    assert_instr(usra, N = 2)
62187)]
62188#[rustc_legacy_const_generics(2)]
62189#[cfg_attr(
62190    not(target_arch = "arm"),
62191    stable(feature = "neon_intrinsics", since = "1.59.0")
62192)]
62193#[cfg_attr(
62194    target_arch = "arm",
62195    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62196)]
62197pub fn vsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
62198    static_assert!(N >= 1 && N <= 64);
62199    unsafe { simd_add(a, vshr_n_u64::<N>(b)) }
62200}
62201#[doc = "Unsigned shift right and accumulate"]
62202#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u64)"]
62203#[inline(always)]
62204#[target_feature(enable = "neon")]
62205#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62206#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
62207#[cfg_attr(
62208    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
62209    assert_instr(usra, N = 2)
62210)]
62211#[rustc_legacy_const_generics(2)]
62212#[cfg_attr(
62213    not(target_arch = "arm"),
62214    stable(feature = "neon_intrinsics", since = "1.59.0")
62215)]
62216#[cfg_attr(
62217    target_arch = "arm",
62218    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
62219)]
62220pub fn vsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
62221    static_assert!(N >= 1 && N <= 64);
62222    unsafe { simd_add(a, vshrq_n_u64::<N>(b)) }
62223}
62224#[doc = "Shift Right and Insert (immediate)"]
62225#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s8)"]
62226#[inline(always)]
62227#[target_feature(enable = "neon,v7")]
62228#[cfg(target_arch = "arm")]
62229#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62230#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62231#[rustc_legacy_const_generics(2)]
62232pub fn vsri_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
62233    static_assert!(1 <= N && N <= 8);
62234    vshiftrins_v8i8::<N>(a, b)
62235}
62236#[doc = "Shift Right and Insert (immediate)"]
62237#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s8)"]
62238#[inline(always)]
62239#[target_feature(enable = "neon,v7")]
62240#[cfg(target_arch = "arm")]
62241#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62242#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62243#[rustc_legacy_const_generics(2)]
62244pub fn vsriq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
62245    static_assert!(1 <= N && N <= 8);
62246    vshiftrins_v16i8::<N>(a, b)
62247}
62248#[doc = "Shift Right and Insert (immediate)"]
62249#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s16)"]
62250#[inline(always)]
62251#[target_feature(enable = "neon,v7")]
62252#[cfg(target_arch = "arm")]
62253#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62254#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62255#[rustc_legacy_const_generics(2)]
62256pub fn vsri_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
62257    static_assert!(1 <= N && N <= 16);
62258    vshiftrins_v4i16::<N>(a, b)
62259}
62260#[doc = "Shift Right and Insert (immediate)"]
62261#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s16)"]
62262#[inline(always)]
62263#[target_feature(enable = "neon,v7")]
62264#[cfg(target_arch = "arm")]
62265#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62266#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62267#[rustc_legacy_const_generics(2)]
62268pub fn vsriq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
62269    static_assert!(1 <= N && N <= 16);
62270    vshiftrins_v8i16::<N>(a, b)
62271}
62272#[doc = "Shift Right and Insert (immediate)"]
62273#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s32)"]
62274#[inline(always)]
62275#[target_feature(enable = "neon,v7")]
62276#[cfg(target_arch = "arm")]
62277#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62278#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
62279#[rustc_legacy_const_generics(2)]
62280pub fn vsri_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
62281    static_assert!(1 <= N && N <= 32);
62282    vshiftrins_v2i32::<N>(a, b)
62283}
62284#[doc = "Shift Right and Insert (immediate)"]
62285#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s32)"]
62286#[inline(always)]
62287#[target_feature(enable = "neon,v7")]
62288#[cfg(target_arch = "arm")]
62289#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62290#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
62291#[rustc_legacy_const_generics(2)]
62292pub fn vsriq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
62293    static_assert!(1 <= N && N <= 32);
62294    vshiftrins_v4i32::<N>(a, b)
62295}
62296#[doc = "Shift Right and Insert (immediate)"]
62297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_s64)"]
62298#[inline(always)]
62299#[target_feature(enable = "neon,v7")]
62300#[cfg(target_arch = "arm")]
62301#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62302#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
62303#[rustc_legacy_const_generics(2)]
62304pub fn vsri_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
62305    static_assert!(1 <= N && N <= 64);
62306    vshiftrins_v1i64::<N>(a, b)
62307}
62308#[doc = "Shift Right and Insert (immediate)"]
62309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_s64)"]
62310#[inline(always)]
62311#[target_feature(enable = "neon,v7")]
62312#[cfg(target_arch = "arm")]
62313#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62314#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
62315#[rustc_legacy_const_generics(2)]
62316pub fn vsriq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
62317    static_assert!(1 <= N && N <= 64);
62318    vshiftrins_v2i64::<N>(a, b)
62319}
62320#[doc = "Shift Right and Insert (immediate)"]
62321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u8)"]
62322#[inline(always)]
62323#[cfg(target_arch = "arm")]
62324#[target_feature(enable = "neon,v7")]
62325#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62326#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62327#[rustc_legacy_const_generics(2)]
62328pub fn vsri_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
62329    static_assert!(1 <= N && N <= 8);
62330    unsafe { transmute(vshiftrins_v8i8::<N>(transmute(a), transmute(b))) }
62331}
62332#[doc = "Shift Right and Insert (immediate)"]
62333#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u8)"]
62334#[inline(always)]
62335#[cfg(target_arch = "arm")]
62336#[target_feature(enable = "neon,v7")]
62337#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62338#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62339#[rustc_legacy_const_generics(2)]
62340pub fn vsriq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
62341    static_assert!(1 <= N && N <= 8);
62342    unsafe { transmute(vshiftrins_v16i8::<N>(transmute(a), transmute(b))) }
62343}
62344#[doc = "Shift Right and Insert (immediate)"]
62345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u16)"]
62346#[inline(always)]
62347#[cfg(target_arch = "arm")]
62348#[target_feature(enable = "neon,v7")]
62349#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62350#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62351#[rustc_legacy_const_generics(2)]
62352pub fn vsri_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
62353    static_assert!(1 <= N && N <= 16);
62354    unsafe { transmute(vshiftrins_v4i16::<N>(transmute(a), transmute(b))) }
62355}
62356#[doc = "Shift Right and Insert (immediate)"]
62357#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u16)"]
62358#[inline(always)]
62359#[cfg(target_arch = "arm")]
62360#[target_feature(enable = "neon,v7")]
62361#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62362#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62363#[rustc_legacy_const_generics(2)]
62364pub fn vsriq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
62365    static_assert!(1 <= N && N <= 16);
62366    unsafe { transmute(vshiftrins_v8i16::<N>(transmute(a), transmute(b))) }
62367}
62368#[doc = "Shift Right and Insert (immediate)"]
62369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u32)"]
62370#[inline(always)]
62371#[cfg(target_arch = "arm")]
62372#[target_feature(enable = "neon,v7")]
62373#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62374#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
62375#[rustc_legacy_const_generics(2)]
62376pub fn vsri_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
62377    static_assert!(1 <= N && N <= 32);
62378    unsafe { transmute(vshiftrins_v2i32::<N>(transmute(a), transmute(b))) }
62379}
62380#[doc = "Shift Right and Insert (immediate)"]
62381#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u32)"]
62382#[inline(always)]
62383#[cfg(target_arch = "arm")]
62384#[target_feature(enable = "neon,v7")]
62385#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62386#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.32", N = 1))]
62387#[rustc_legacy_const_generics(2)]
62388pub fn vsriq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
62389    static_assert!(1 <= N && N <= 32);
62390    unsafe { transmute(vshiftrins_v4i32::<N>(transmute(a), transmute(b))) }
62391}
62392#[doc = "Shift Right and Insert (immediate)"]
62393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_u64)"]
62394#[inline(always)]
62395#[cfg(target_arch = "arm")]
62396#[target_feature(enable = "neon,v7")]
62397#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62398#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
62399#[rustc_legacy_const_generics(2)]
62400pub fn vsri_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
62401    static_assert!(1 <= N && N <= 64);
62402    unsafe { transmute(vshiftrins_v1i64::<N>(transmute(a), transmute(b))) }
62403}
62404#[doc = "Shift Right and Insert (immediate)"]
62405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_u64)"]
62406#[inline(always)]
62407#[cfg(target_arch = "arm")]
62408#[target_feature(enable = "neon,v7")]
62409#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62410#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.64", N = 1))]
62411#[rustc_legacy_const_generics(2)]
62412pub fn vsriq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
62413    static_assert!(1 <= N && N <= 64);
62414    unsafe { transmute(vshiftrins_v2i64::<N>(transmute(a), transmute(b))) }
62415}
62416#[doc = "Shift Right and Insert (immediate)"]
62417#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_p8)"]
62418#[inline(always)]
62419#[cfg(target_arch = "arm")]
62420#[target_feature(enable = "neon,v7")]
62421#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62422#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62423#[rustc_legacy_const_generics(2)]
62424pub fn vsri_n_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
62425    static_assert!(1 <= N && N <= 8);
62426    unsafe { transmute(vshiftrins_v8i8::<N>(transmute(a), transmute(b))) }
62427}
62428#[doc = "Shift Right and Insert (immediate)"]
62429#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_p8)"]
62430#[inline(always)]
62431#[cfg(target_arch = "arm")]
62432#[target_feature(enable = "neon,v7")]
62433#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62434#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.8", N = 1))]
62435#[rustc_legacy_const_generics(2)]
62436pub fn vsriq_n_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
62437    static_assert!(1 <= N && N <= 8);
62438    unsafe { transmute(vshiftrins_v16i8::<N>(transmute(a), transmute(b))) }
62439}
62440#[doc = "Shift Right and Insert (immediate)"]
62441#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsri_n_p16)"]
62442#[inline(always)]
62443#[cfg(target_arch = "arm")]
62444#[target_feature(enable = "neon,v7")]
62445#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62446#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62447#[rustc_legacy_const_generics(2)]
62448pub fn vsri_n_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
62449    static_assert!(1 <= N && N <= 16);
62450    unsafe { transmute(vshiftrins_v4i16::<N>(transmute(a), transmute(b))) }
62451}
62452#[doc = "Shift Right and Insert (immediate)"]
62453#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsriq_n_p16)"]
62454#[inline(always)]
62455#[cfg(target_arch = "arm")]
62456#[target_feature(enable = "neon,v7")]
62457#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62458#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsri.16", N = 1))]
62459#[rustc_legacy_const_generics(2)]
62460pub fn vsriq_n_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
62461    static_assert!(1 <= N && N <= 16);
62462    unsafe { transmute(vshiftrins_v8i16::<N>(transmute(a), transmute(b))) }
62463}
62464#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62465#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16)"]
62466#[doc = "## Safety"]
62467#[doc = "  * Neon intrinsic unsafe"]
62468#[inline(always)]
62469#[cfg(target_arch = "arm")]
62470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62471#[target_feature(enable = "neon,fp16")]
62472#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62473#[cfg(not(target_arch = "arm64ec"))]
62474#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62475pub unsafe fn vst1_f16(ptr: *mut f16, a: float16x4_t) {
62476    vst1_v4f16(
62477        ptr as *const i8,
62478        transmute(a),
62479        crate::mem::align_of::<f16>() as i32,
62480    )
62481}
62482#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16)"]
62484#[doc = "## Safety"]
62485#[doc = "  * Neon intrinsic unsafe"]
62486#[inline(always)]
62487#[cfg(target_arch = "arm")]
62488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62489#[target_feature(enable = "neon,fp16")]
62490#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62491#[cfg(not(target_arch = "arm64ec"))]
62492#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62493pub unsafe fn vst1q_f16(ptr: *mut f16, a: float16x8_t) {
62494    vst1q_v8f16(
62495        ptr as *const i8,
62496        transmute(a),
62497        crate::mem::align_of::<f16>() as i32,
62498    )
62499}
62500#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62501#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x2)"]
62502#[doc = "## Safety"]
62503#[doc = "  * Neon intrinsic unsafe"]
62504#[inline(always)]
62505#[cfg(target_arch = "arm")]
62506#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62507#[cfg_attr(test, assert_instr(vst1))]
62508#[target_feature(enable = "neon,fp16")]
62509#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62510#[cfg(not(target_arch = "arm64ec"))]
62511pub unsafe fn vst1_f16_x2(a: *mut f16, b: float16x4x2_t) {
62512    unsafe extern "unadjusted" {
62513        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0.v4f16")]
62514        fn _vst1_f16_x2(ptr: *mut f16, a: float16x4_t, b: float16x4_t);
62515    }
62516    _vst1_f16_x2(a, b.0, b.1)
62517}
62518#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62519#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x2)"]
62520#[doc = "## Safety"]
62521#[doc = "  * Neon intrinsic unsafe"]
62522#[inline(always)]
62523#[cfg(target_arch = "arm")]
62524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62525#[cfg_attr(test, assert_instr(vst1))]
62526#[target_feature(enable = "neon,fp16")]
62527#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62528#[cfg(not(target_arch = "arm64ec"))]
62529pub unsafe fn vst1q_f16_x2(a: *mut f16, b: float16x8x2_t) {
62530    unsafe extern "unadjusted" {
62531        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0.v8f16")]
62532        fn _vst1q_f16_x2(ptr: *mut f16, a: float16x8_t, b: float16x8_t);
62533    }
62534    _vst1q_f16_x2(a, b.0, b.1)
62535}
62536#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62537#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x2)"]
62538#[doc = "## Safety"]
62539#[doc = "  * Neon intrinsic unsafe"]
62540#[inline(always)]
62541#[cfg(not(target_arch = "arm"))]
62542#[cfg_attr(test, assert_instr(st1))]
62543#[target_feature(enable = "neon,fp16")]
62544#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62545#[cfg(not(target_arch = "arm64ec"))]
62546pub unsafe fn vst1_f16_x2(a: *mut f16, b: float16x4x2_t) {
62547    unsafe extern "unadjusted" {
62548        #[cfg_attr(
62549            any(target_arch = "aarch64", target_arch = "arm64ec"),
62550            link_name = "llvm.aarch64.neon.st1x2.v4f16.p0"
62551        )]
62552        fn _vst1_f16_x2(a: float16x4_t, b: float16x4_t, ptr: *mut f16);
62553    }
62554    _vst1_f16_x2(b.0, b.1, a)
62555}
62556#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62557#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x2)"]
62558#[doc = "## Safety"]
62559#[doc = "  * Neon intrinsic unsafe"]
62560#[inline(always)]
62561#[cfg(not(target_arch = "arm"))]
62562#[cfg_attr(test, assert_instr(st1))]
62563#[target_feature(enable = "neon,fp16")]
62564#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62565#[cfg(not(target_arch = "arm64ec"))]
62566pub unsafe fn vst1q_f16_x2(a: *mut f16, b: float16x8x2_t) {
62567    unsafe extern "unadjusted" {
62568        #[cfg_attr(
62569            any(target_arch = "aarch64", target_arch = "arm64ec"),
62570            link_name = "llvm.aarch64.neon.st1x2.v8f16.p0"
62571        )]
62572        fn _vst1q_f16_x2(a: float16x8_t, b: float16x8_t, ptr: *mut f16);
62573    }
62574    _vst1q_f16_x2(b.0, b.1, a)
62575}
62576#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62577#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x3)"]
62578#[doc = "## Safety"]
62579#[doc = "  * Neon intrinsic unsafe"]
62580#[inline(always)]
62581#[cfg(target_arch = "arm")]
62582#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62583#[cfg_attr(test, assert_instr(vst1))]
62584#[target_feature(enable = "neon,fp16")]
62585#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62586#[cfg(not(target_arch = "arm64ec"))]
62587pub unsafe fn vst1_f16_x3(a: *mut f16, b: float16x4x3_t) {
62588    unsafe extern "unadjusted" {
62589        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4f16")]
62590        fn _vst1_f16_x3(ptr: *mut f16, a: float16x4_t, b: float16x4_t, c: float16x4_t);
62591    }
62592    _vst1_f16_x3(a, b.0, b.1, b.2)
62593}
62594#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62595#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x3)"]
62596#[doc = "## Safety"]
62597#[doc = "  * Neon intrinsic unsafe"]
62598#[inline(always)]
62599#[cfg(target_arch = "arm")]
62600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62601#[cfg_attr(test, assert_instr(vst1))]
62602#[target_feature(enable = "neon,fp16")]
62603#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62604#[cfg(not(target_arch = "arm64ec"))]
62605pub unsafe fn vst1q_f16_x3(a: *mut f16, b: float16x8x3_t) {
62606    unsafe extern "unadjusted" {
62607        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8f16")]
62608        fn _vst1q_f16_x3(ptr: *mut f16, a: float16x8_t, b: float16x8_t, c: float16x8_t);
62609    }
62610    _vst1q_f16_x3(a, b.0, b.1, b.2)
62611}
62612#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62613#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x3)"]
62614#[doc = "## Safety"]
62615#[doc = "  * Neon intrinsic unsafe"]
62616#[inline(always)]
62617#[cfg(not(target_arch = "arm"))]
62618#[cfg_attr(test, assert_instr(st1))]
62619#[target_feature(enable = "neon,fp16")]
62620#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62621#[cfg(not(target_arch = "arm64ec"))]
62622pub unsafe fn vst1_f16_x3(a: *mut f16, b: float16x4x3_t) {
62623    unsafe extern "unadjusted" {
62624        #[cfg_attr(
62625            any(target_arch = "aarch64", target_arch = "arm64ec"),
62626            link_name = "llvm.aarch64.neon.st1x3.v4f16.p0"
62627        )]
62628        fn _vst1_f16_x3(a: float16x4_t, b: float16x4_t, c: float16x4_t, ptr: *mut f16);
62629    }
62630    _vst1_f16_x3(b.0, b.1, b.2, a)
62631}
62632#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x3)"]
62634#[doc = "## Safety"]
62635#[doc = "  * Neon intrinsic unsafe"]
62636#[inline(always)]
62637#[cfg(not(target_arch = "arm"))]
62638#[cfg_attr(test, assert_instr(st1))]
62639#[target_feature(enable = "neon,fp16")]
62640#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62641#[cfg(not(target_arch = "arm64ec"))]
62642pub unsafe fn vst1q_f16_x3(a: *mut f16, b: float16x8x3_t) {
62643    unsafe extern "unadjusted" {
62644        #[cfg_attr(
62645            any(target_arch = "aarch64", target_arch = "arm64ec"),
62646            link_name = "llvm.aarch64.neon.st1x3.v8f16.p0"
62647        )]
62648        fn _vst1q_f16_x3(a: float16x8_t, b: float16x8_t, c: float16x8_t, ptr: *mut f16);
62649    }
62650    _vst1q_f16_x3(b.0, b.1, b.2, a)
62651}
62652#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x4)"]
62654#[doc = "## Safety"]
62655#[doc = "  * Neon intrinsic unsafe"]
62656#[inline(always)]
62657#[target_feature(enable = "neon")]
62658#[cfg(target_arch = "arm")]
62659#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62660#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
62661#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62662#[cfg(not(target_arch = "arm64ec"))]
62663#[cfg_attr(test, assert_instr(vst1))]
62664pub unsafe fn vst1_f16_x4(a: *mut f16, b: float16x4x4_t) {
62665    unsafe extern "unadjusted" {
62666        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4f16")]
62667        fn _vst1_f16_x4(
62668            ptr: *mut f16,
62669            a: float16x4_t,
62670            b: float16x4_t,
62671            c: float16x4_t,
62672            d: float16x4_t,
62673        );
62674    }
62675    _vst1_f16_x4(a, b.0, b.1, b.2, b.3)
62676}
62677#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62678#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x4)"]
62679#[doc = "## Safety"]
62680#[doc = "  * Neon intrinsic unsafe"]
62681#[inline(always)]
62682#[target_feature(enable = "neon")]
62683#[cfg(target_arch = "arm")]
62684#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62685#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
62686#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62687#[cfg(not(target_arch = "arm64ec"))]
62688#[cfg_attr(test, assert_instr(vst1))]
62689pub unsafe fn vst1q_f16_x4(a: *mut f16, b: float16x8x4_t) {
62690    unsafe extern "unadjusted" {
62691        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8f16")]
62692        fn _vst1q_f16_x4(
62693            ptr: *mut f16,
62694            a: float16x8_t,
62695            b: float16x8_t,
62696            c: float16x8_t,
62697            d: float16x8_t,
62698        );
62699    }
62700    _vst1q_f16_x4(a, b.0, b.1, b.2, b.3)
62701}
62702#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62703#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f16_x4)"]
62704#[doc = "## Safety"]
62705#[doc = "  * Neon intrinsic unsafe"]
62706#[inline(always)]
62707#[cfg(not(target_arch = "arm"))]
62708#[cfg_attr(test, assert_instr(st1))]
62709#[target_feature(enable = "neon,fp16")]
62710#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62711#[cfg(not(target_arch = "arm64ec"))]
62712pub unsafe fn vst1_f16_x4(a: *mut f16, b: float16x4x4_t) {
62713    unsafe extern "unadjusted" {
62714        #[cfg_attr(
62715            any(target_arch = "aarch64", target_arch = "arm64ec"),
62716            link_name = "llvm.aarch64.neon.st1x4.v4f16.p0"
62717        )]
62718        fn _vst1_f16_x4(
62719            a: float16x4_t,
62720            b: float16x4_t,
62721            c: float16x4_t,
62722            d: float16x4_t,
62723            ptr: *mut f16,
62724        );
62725    }
62726    _vst1_f16_x4(b.0, b.1, b.2, b.3, a)
62727}
62728#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
62729#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f16_x4)"]
62730#[doc = "## Safety"]
62731#[doc = "  * Neon intrinsic unsafe"]
62732#[inline(always)]
62733#[cfg(not(target_arch = "arm"))]
62734#[cfg_attr(test, assert_instr(st1))]
62735#[target_feature(enable = "neon,fp16")]
62736#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
62737#[cfg(not(target_arch = "arm64ec"))]
62738pub unsafe fn vst1q_f16_x4(a: *mut f16, b: float16x8x4_t) {
62739    unsafe extern "unadjusted" {
62740        #[cfg_attr(
62741            any(target_arch = "aarch64", target_arch = "arm64ec"),
62742            link_name = "llvm.aarch64.neon.st1x4.v8f16.p0"
62743        )]
62744        fn _vst1q_f16_x4(
62745            a: float16x8_t,
62746            b: float16x8_t,
62747            c: float16x8_t,
62748            d: float16x8_t,
62749            ptr: *mut f16,
62750        );
62751    }
62752    _vst1q_f16_x4(b.0, b.1, b.2, b.3, a)
62753}
62754#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62755#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32)"]
62756#[doc = "## Safety"]
62757#[doc = "  * Neon intrinsic unsafe"]
62758#[inline(always)]
62759#[target_feature(enable = "neon")]
62760#[cfg(target_arch = "arm")]
62761#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62762#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62763#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62764pub unsafe fn vst1_f32(ptr: *mut f32, a: float32x2_t) {
62765    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
62766    vst1_v2f32::<ALIGN>(ptr as *const i8, transmute(a))
62767}
62768#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62769#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32)"]
62770#[doc = "## Safety"]
62771#[doc = "  * Neon intrinsic unsafe"]
62772#[inline(always)]
62773#[target_feature(enable = "neon")]
62774#[cfg(target_arch = "arm")]
62775#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62776#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62777#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62778pub unsafe fn vst1q_f32(ptr: *mut f32, a: float32x4_t) {
62779    const ALIGN: i32 = crate::mem::align_of::<f32>() as i32;
62780    vst1q_v4f32::<ALIGN>(ptr as *const i8, transmute(a))
62781}
62782#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8)"]
62784#[doc = "## Safety"]
62785#[doc = "  * Neon intrinsic unsafe"]
62786#[inline(always)]
62787#[target_feature(enable = "neon")]
62788#[cfg(target_arch = "arm")]
62789#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62790#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62791#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62792pub unsafe fn vst1_s8(ptr: *mut i8, a: int8x8_t) {
62793    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
62794    vst1_v8i8::<ALIGN>(ptr as *const i8, a)
62795}
62796#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62797#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8)"]
62798#[doc = "## Safety"]
62799#[doc = "  * Neon intrinsic unsafe"]
62800#[inline(always)]
62801#[target_feature(enable = "neon")]
62802#[cfg(target_arch = "arm")]
62803#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62804#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62805#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62806pub unsafe fn vst1q_s8(ptr: *mut i8, a: int8x16_t) {
62807    const ALIGN: i32 = crate::mem::align_of::<i8>() as i32;
62808    vst1q_v16i8::<ALIGN>(ptr as *const i8, a)
62809}
62810#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16)"]
62812#[doc = "## Safety"]
62813#[doc = "  * Neon intrinsic unsafe"]
62814#[inline(always)]
62815#[target_feature(enable = "neon")]
62816#[cfg(target_arch = "arm")]
62817#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62818#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62819#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62820pub unsafe fn vst1_s16(ptr: *mut i16, a: int16x4_t) {
62821    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
62822    vst1_v4i16::<ALIGN>(ptr as *const i8, a)
62823}
62824#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62825#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16)"]
62826#[doc = "## Safety"]
62827#[doc = "  * Neon intrinsic unsafe"]
62828#[inline(always)]
62829#[target_feature(enable = "neon")]
62830#[cfg(target_arch = "arm")]
62831#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62832#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62833#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62834pub unsafe fn vst1q_s16(ptr: *mut i16, a: int16x8_t) {
62835    const ALIGN: i32 = crate::mem::align_of::<i16>() as i32;
62836    vst1q_v8i16::<ALIGN>(ptr as *const i8, a)
62837}
62838#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32)"]
62840#[doc = "## Safety"]
62841#[doc = "  * Neon intrinsic unsafe"]
62842#[inline(always)]
62843#[target_feature(enable = "neon")]
62844#[cfg(target_arch = "arm")]
62845#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62846#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62847#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62848pub unsafe fn vst1_s32(ptr: *mut i32, a: int32x2_t) {
62849    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
62850    vst1_v2i32::<ALIGN>(ptr as *const i8, a)
62851}
62852#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62853#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32)"]
62854#[doc = "## Safety"]
62855#[doc = "  * Neon intrinsic unsafe"]
62856#[inline(always)]
62857#[target_feature(enable = "neon")]
62858#[cfg(target_arch = "arm")]
62859#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62860#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62861#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62862pub unsafe fn vst1q_s32(ptr: *mut i32, a: int32x4_t) {
62863    const ALIGN: i32 = crate::mem::align_of::<i32>() as i32;
62864    vst1q_v4i32::<ALIGN>(ptr as *const i8, a)
62865}
62866#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62867#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64)"]
62868#[doc = "## Safety"]
62869#[doc = "  * Neon intrinsic unsafe"]
62870#[inline(always)]
62871#[target_feature(enable = "neon")]
62872#[cfg(target_arch = "arm")]
62873#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62874#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62875#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
62876pub unsafe fn vst1_s64(ptr: *mut i64, a: int64x1_t) {
62877    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
62878    vst1_v1i64::<ALIGN>(ptr as *const i8, a)
62879}
62880#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64)"]
62882#[doc = "## Safety"]
62883#[doc = "  * Neon intrinsic unsafe"]
62884#[inline(always)]
62885#[target_feature(enable = "neon")]
62886#[cfg(target_arch = "arm")]
62887#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62888#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62889#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
62890pub unsafe fn vst1q_s64(ptr: *mut i64, a: int64x2_t) {
62891    const ALIGN: i32 = crate::mem::align_of::<i64>() as i32;
62892    vst1q_v2i64::<ALIGN>(ptr as *const i8, a)
62893}
62894#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8)"]
62896#[doc = "## Safety"]
62897#[doc = "  * Neon intrinsic unsafe"]
62898#[inline(always)]
62899#[target_feature(enable = "neon")]
62900#[cfg(target_arch = "arm")]
62901#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62902#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62903#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62904pub unsafe fn vst1_u8(ptr: *mut u8, a: uint8x8_t) {
62905    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
62906    vst1_v8i8::<ALIGN>(ptr as *const i8, transmute(a))
62907}
62908#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8)"]
62910#[doc = "## Safety"]
62911#[doc = "  * Neon intrinsic unsafe"]
62912#[inline(always)]
62913#[target_feature(enable = "neon")]
62914#[cfg(target_arch = "arm")]
62915#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62916#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62917#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
62918pub unsafe fn vst1q_u8(ptr: *mut u8, a: uint8x16_t) {
62919    const ALIGN: i32 = crate::mem::align_of::<u8>() as i32;
62920    vst1q_v16i8::<ALIGN>(ptr as *const i8, transmute(a))
62921}
62922#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62923#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16)"]
62924#[doc = "## Safety"]
62925#[doc = "  * Neon intrinsic unsafe"]
62926#[inline(always)]
62927#[target_feature(enable = "neon")]
62928#[cfg(target_arch = "arm")]
62929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62930#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62931#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62932pub unsafe fn vst1_u16(ptr: *mut u16, a: uint16x4_t) {
62933    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
62934    vst1_v4i16::<ALIGN>(ptr as *const i8, transmute(a))
62935}
62936#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62937#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16)"]
62938#[doc = "## Safety"]
62939#[doc = "  * Neon intrinsic unsafe"]
62940#[inline(always)]
62941#[target_feature(enable = "neon")]
62942#[cfg(target_arch = "arm")]
62943#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62944#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62945#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
62946pub unsafe fn vst1q_u16(ptr: *mut u16, a: uint16x8_t) {
62947    const ALIGN: i32 = crate::mem::align_of::<u16>() as i32;
62948    vst1q_v8i16::<ALIGN>(ptr as *const i8, transmute(a))
62949}
62950#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62951#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32)"]
62952#[doc = "## Safety"]
62953#[doc = "  * Neon intrinsic unsafe"]
62954#[inline(always)]
62955#[target_feature(enable = "neon")]
62956#[cfg(target_arch = "arm")]
62957#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62958#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62959#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62960pub unsafe fn vst1_u32(ptr: *mut u32, a: uint32x2_t) {
62961    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
62962    vst1_v2i32::<ALIGN>(ptr as *const i8, transmute(a))
62963}
62964#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62965#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32)"]
62966#[doc = "## Safety"]
62967#[doc = "  * Neon intrinsic unsafe"]
62968#[inline(always)]
62969#[target_feature(enable = "neon")]
62970#[cfg(target_arch = "arm")]
62971#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62972#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62973#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32"))]
62974pub unsafe fn vst1q_u32(ptr: *mut u32, a: uint32x4_t) {
62975    const ALIGN: i32 = crate::mem::align_of::<u32>() as i32;
62976    vst1q_v4i32::<ALIGN>(ptr as *const i8, transmute(a))
62977}
62978#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62979#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64)"]
62980#[doc = "## Safety"]
62981#[doc = "  * Neon intrinsic unsafe"]
62982#[inline(always)]
62983#[target_feature(enable = "neon")]
62984#[cfg(target_arch = "arm")]
62985#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
62986#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
62987#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
62988pub unsafe fn vst1_u64(ptr: *mut u64, a: uint64x1_t) {
62989    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
62990    vst1_v1i64::<ALIGN>(ptr as *const i8, transmute(a))
62991}
62992#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
62993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64)"]
62994#[doc = "## Safety"]
62995#[doc = "  * Neon intrinsic unsafe"]
62996#[inline(always)]
62997#[target_feature(enable = "neon")]
62998#[cfg(target_arch = "arm")]
62999#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63000#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63001#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
63002pub unsafe fn vst1q_u64(ptr: *mut u64, a: uint64x2_t) {
63003    const ALIGN: i32 = crate::mem::align_of::<u64>() as i32;
63004    vst1q_v2i64::<ALIGN>(ptr as *const i8, transmute(a))
63005}
63006#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
63007#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8)"]
63008#[doc = "## Safety"]
63009#[doc = "  * Neon intrinsic unsafe"]
63010#[inline(always)]
63011#[target_feature(enable = "neon")]
63012#[cfg(target_arch = "arm")]
63013#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63014#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63015#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
63016pub unsafe fn vst1_p8(ptr: *mut p8, a: poly8x8_t) {
63017    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
63018    vst1_v8i8::<ALIGN>(ptr as *const i8, transmute(a))
63019}
63020#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
63021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8)"]
63022#[doc = "## Safety"]
63023#[doc = "  * Neon intrinsic unsafe"]
63024#[inline(always)]
63025#[target_feature(enable = "neon")]
63026#[cfg(target_arch = "arm")]
63027#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63028#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63029#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8"))]
63030pub unsafe fn vst1q_p8(ptr: *mut p8, a: poly8x16_t) {
63031    const ALIGN: i32 = crate::mem::align_of::<p8>() as i32;
63032    vst1q_v16i8::<ALIGN>(ptr as *const i8, transmute(a))
63033}
63034#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
63035#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16)"]
63036#[doc = "## Safety"]
63037#[doc = "  * Neon intrinsic unsafe"]
63038#[inline(always)]
63039#[target_feature(enable = "neon")]
63040#[cfg(target_arch = "arm")]
63041#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63042#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63043#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
63044pub unsafe fn vst1_p16(ptr: *mut p16, a: poly16x4_t) {
63045    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
63046    vst1_v4i16::<ALIGN>(ptr as *const i8, transmute(a))
63047}
63048#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
63049#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16)"]
63050#[doc = "## Safety"]
63051#[doc = "  * Neon intrinsic unsafe"]
63052#[inline(always)]
63053#[target_feature(enable = "neon")]
63054#[cfg(target_arch = "arm")]
63055#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63056#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63057#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
63058pub unsafe fn vst1q_p16(ptr: *mut p16, a: poly16x8_t) {
63059    const ALIGN: i32 = crate::mem::align_of::<p16>() as i32;
63060    vst1q_v8i16::<ALIGN>(ptr as *const i8, transmute(a))
63061}
63062#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
63063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64)"]
63064#[doc = "## Safety"]
63065#[doc = "  * Neon intrinsic unsafe"]
63066#[inline(always)]
63067#[target_feature(enable = "neon")]
63068#[cfg(target_arch = "arm")]
63069#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63070#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63071#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
63072pub unsafe fn vst1_p64(ptr: *mut p64, a: poly64x1_t) {
63073    const ALIGN: i32 = crate::mem::align_of::<p64>() as i32;
63074    vst1_v1i64::<ALIGN>(ptr as *const i8, transmute(a))
63075}
63076#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
63077#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64)"]
63078#[doc = "## Safety"]
63079#[doc = "  * Neon intrinsic unsafe"]
63080#[inline(always)]
63081#[target_feature(enable = "neon")]
63082#[cfg(target_arch = "arm")]
63083#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63084#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63085#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64"))]
63086pub unsafe fn vst1q_p64(ptr: *mut p64, a: poly64x2_t) {
63087    const ALIGN: i32 = crate::mem::align_of::<p64>() as i32;
63088    vst1q_v2i64::<ALIGN>(ptr as *const i8, transmute(a))
63089}
63090#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63091#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)"]
63092#[doc = "## Safety"]
63093#[doc = "  * Neon intrinsic unsafe"]
63094#[inline(always)]
63095#[cfg(target_arch = "arm")]
63096#[target_feature(enable = "neon,v7")]
63097#[cfg_attr(test, assert_instr(vst1))]
63098#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63099pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
63100    unsafe extern "unadjusted" {
63101        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2f32.p0")]
63102        fn _vst1_f32_x2(ptr: *mut f32, a: float32x2_t, b: float32x2_t);
63103    }
63104    _vst1_f32_x2(a, b.0, b.1)
63105}
63106#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63107#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)"]
63108#[doc = "## Safety"]
63109#[doc = "  * Neon intrinsic unsafe"]
63110#[inline(always)]
63111#[cfg(target_arch = "arm")]
63112#[target_feature(enable = "neon,v7")]
63113#[cfg_attr(test, assert_instr(vst1))]
63114#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63115pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
63116    unsafe extern "unadjusted" {
63117        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4f32.p0")]
63118        fn _vst1q_f32_x2(ptr: *mut f32, a: float32x4_t, b: float32x4_t);
63119    }
63120    _vst1q_f32_x2(a, b.0, b.1)
63121}
63122#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63123#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)"]
63124#[doc = "## Safety"]
63125#[doc = "  * Neon intrinsic unsafe"]
63126#[inline(always)]
63127#[target_feature(enable = "neon")]
63128#[cfg(not(target_arch = "arm"))]
63129#[cfg_attr(test, assert_instr(st1))]
63130#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63131pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
63132    unsafe extern "unadjusted" {
63133        #[cfg_attr(
63134            any(target_arch = "aarch64", target_arch = "arm64ec"),
63135            link_name = "llvm.aarch64.neon.st1x2.v2f32.p0"
63136        )]
63137        fn _vst1_f32_x2(a: float32x2_t, b: float32x2_t, ptr: *mut f32);
63138    }
63139    _vst1_f32_x2(b.0, b.1, a)
63140}
63141#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)"]
63143#[doc = "## Safety"]
63144#[doc = "  * Neon intrinsic unsafe"]
63145#[inline(always)]
63146#[target_feature(enable = "neon")]
63147#[cfg(not(target_arch = "arm"))]
63148#[cfg_attr(test, assert_instr(st1))]
63149#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63150pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
63151    unsafe extern "unadjusted" {
63152        #[cfg_attr(
63153            any(target_arch = "aarch64", target_arch = "arm64ec"),
63154            link_name = "llvm.aarch64.neon.st1x2.v4f32.p0"
63155        )]
63156        fn _vst1q_f32_x2(a: float32x4_t, b: float32x4_t, ptr: *mut f32);
63157    }
63158    _vst1q_f32_x2(b.0, b.1, a)
63159}
63160#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63161#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x3)"]
63162#[doc = "## Safety"]
63163#[doc = "  * Neon intrinsic unsafe"]
63164#[inline(always)]
63165#[target_feature(enable = "neon")]
63166#[cfg(not(target_arch = "arm"))]
63167#[cfg_attr(test, assert_instr(st1))]
63168#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63169pub unsafe fn vst1_f32_x3(a: *mut f32, b: float32x2x3_t) {
63170    unsafe extern "unadjusted" {
63171        #[cfg_attr(
63172            any(target_arch = "aarch64", target_arch = "arm64ec"),
63173            link_name = "llvm.aarch64.neon.st1x3.v2f32.p0"
63174        )]
63175        fn _vst1_f32_x3(a: float32x2_t, b: float32x2_t, c: float32x2_t, ptr: *mut f32);
63176    }
63177    _vst1_f32_x3(b.0, b.1, b.2, a)
63178}
63179#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63180#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x3)"]
63181#[doc = "## Safety"]
63182#[doc = "  * Neon intrinsic unsafe"]
63183#[inline(always)]
63184#[target_feature(enable = "neon")]
63185#[cfg(not(target_arch = "arm"))]
63186#[cfg_attr(test, assert_instr(st1))]
63187#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63188pub unsafe fn vst1q_f32_x3(a: *mut f32, b: float32x4x3_t) {
63189    unsafe extern "unadjusted" {
63190        #[cfg_attr(
63191            any(target_arch = "aarch64", target_arch = "arm64ec"),
63192            link_name = "llvm.aarch64.neon.st1x3.v4f32.p0"
63193        )]
63194        fn _vst1q_f32_x3(a: float32x4_t, b: float32x4_t, c: float32x4_t, ptr: *mut f32);
63195    }
63196    _vst1q_f32_x3(b.0, b.1, b.2, a)
63197}
63198#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63199#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)"]
63200#[doc = "## Safety"]
63201#[doc = "  * Neon intrinsic unsafe"]
63202#[inline(always)]
63203#[cfg(target_arch = "arm")]
63204#[target_feature(enable = "neon,v7")]
63205#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63206#[cfg_attr(test, assert_instr(vst1))]
63207pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
63208    unsafe extern "unadjusted" {
63209        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2f32.p0")]
63210        fn _vst1_f32_x4(
63211            ptr: *mut f32,
63212            a: float32x2_t,
63213            b: float32x2_t,
63214            c: float32x2_t,
63215            d: float32x2_t,
63216        );
63217    }
63218    _vst1_f32_x4(a, b.0, b.1, b.2, b.3)
63219}
63220#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63221#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)"]
63222#[doc = "## Safety"]
63223#[doc = "  * Neon intrinsic unsafe"]
63224#[inline(always)]
63225#[cfg(target_arch = "arm")]
63226#[target_feature(enable = "neon,v7")]
63227#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
63228#[cfg_attr(test, assert_instr(vst1))]
63229pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
63230    unsafe extern "unadjusted" {
63231        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4f32.p0")]
63232        fn _vst1q_f32_x4(
63233            ptr: *mut f32,
63234            a: float32x4_t,
63235            b: float32x4_t,
63236            c: float32x4_t,
63237            d: float32x4_t,
63238        );
63239    }
63240    _vst1q_f32_x4(a, b.0, b.1, b.2, b.3)
63241}
63242#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)"]
63244#[doc = "## Safety"]
63245#[doc = "  * Neon intrinsic unsafe"]
63246#[inline(always)]
63247#[target_feature(enable = "neon")]
63248#[cfg(not(target_arch = "arm"))]
63249#[cfg_attr(test, assert_instr(st1))]
63250#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63251pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
63252    unsafe extern "unadjusted" {
63253        #[cfg_attr(
63254            any(target_arch = "aarch64", target_arch = "arm64ec"),
63255            link_name = "llvm.aarch64.neon.st1x4.v2f32.p0"
63256        )]
63257        fn _vst1_f32_x4(
63258            a: float32x2_t,
63259            b: float32x2_t,
63260            c: float32x2_t,
63261            d: float32x2_t,
63262            ptr: *mut f32,
63263        );
63264    }
63265    _vst1_f32_x4(b.0, b.1, b.2, b.3, a)
63266}
63267#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)"]
63269#[doc = "## Safety"]
63270#[doc = "  * Neon intrinsic unsafe"]
63271#[inline(always)]
63272#[target_feature(enable = "neon")]
63273#[cfg(not(target_arch = "arm"))]
63274#[cfg_attr(test, assert_instr(st1))]
63275#[stable(feature = "neon_intrinsics", since = "1.59.0")]
63276pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
63277    unsafe extern "unadjusted" {
63278        #[cfg_attr(
63279            any(target_arch = "aarch64", target_arch = "arm64ec"),
63280            link_name = "llvm.aarch64.neon.st1x4.v4f32.p0"
63281        )]
63282        fn _vst1q_f32_x4(
63283            a: float32x4_t,
63284            b: float32x4_t,
63285            c: float32x4_t,
63286            d: float32x4_t,
63287            ptr: *mut f32,
63288        );
63289    }
63290    _vst1q_f32_x4(b.0, b.1, b.2, b.3, a)
63291}
63292#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63293#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_f16)"]
63294#[doc = "## Safety"]
63295#[doc = "  * Neon intrinsic unsafe"]
63296#[inline(always)]
63297#[target_feature(enable = "neon")]
63298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63300#[cfg_attr(
63301    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63302    assert_instr(nop, LANE = 0)
63303)]
63304#[rustc_legacy_const_generics(2)]
63305#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
63306#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
63307#[cfg(not(target_arch = "arm64ec"))]
63308pub unsafe fn vst1_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4_t) {
63309    static_assert_uimm_bits!(LANE, 2);
63310    *a = simd_extract!(b, LANE as u32);
63311}
63312#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63313#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_f16)"]
63314#[doc = "## Safety"]
63315#[doc = "  * Neon intrinsic unsafe"]
63316#[inline(always)]
63317#[target_feature(enable = "neon")]
63318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63320#[cfg_attr(
63321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63322    assert_instr(nop, LANE = 0)
63323)]
63324#[rustc_legacy_const_generics(2)]
63325#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
63326#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
63327#[cfg(not(target_arch = "arm64ec"))]
63328pub unsafe fn vst1q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8_t) {
63329    static_assert_uimm_bits!(LANE, 3);
63330    *a = simd_extract!(b, LANE as u32);
63331}
63332#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63333#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_f32)"]
63334#[doc = "## Safety"]
63335#[doc = "  * Neon intrinsic unsafe"]
63336#[inline(always)]
63337#[target_feature(enable = "neon")]
63338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63339#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63340#[cfg_attr(
63341    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63342    assert_instr(nop, LANE = 0)
63343)]
63344#[rustc_legacy_const_generics(2)]
63345#[cfg_attr(
63346    not(target_arch = "arm"),
63347    stable(feature = "neon_intrinsics", since = "1.59.0")
63348)]
63349#[cfg_attr(
63350    target_arch = "arm",
63351    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63352)]
63353pub unsafe fn vst1_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2_t) {
63354    static_assert_uimm_bits!(LANE, 1);
63355    *a = simd_extract!(b, LANE as u32);
63356}
63357#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63358#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_f32)"]
63359#[doc = "## Safety"]
63360#[doc = "  * Neon intrinsic unsafe"]
63361#[inline(always)]
63362#[target_feature(enable = "neon")]
63363#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63364#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63365#[cfg_attr(
63366    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63367    assert_instr(nop, LANE = 0)
63368)]
63369#[rustc_legacy_const_generics(2)]
63370#[cfg_attr(
63371    not(target_arch = "arm"),
63372    stable(feature = "neon_intrinsics", since = "1.59.0")
63373)]
63374#[cfg_attr(
63375    target_arch = "arm",
63376    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63377)]
63378pub unsafe fn vst1q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4_t) {
63379    static_assert_uimm_bits!(LANE, 2);
63380    *a = simd_extract!(b, LANE as u32);
63381}
63382#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s8)"]
63384#[doc = "## Safety"]
63385#[doc = "  * Neon intrinsic unsafe"]
63386#[inline(always)]
63387#[target_feature(enable = "neon")]
63388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63390#[cfg_attr(
63391    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63392    assert_instr(nop, LANE = 0)
63393)]
63394#[rustc_legacy_const_generics(2)]
63395#[cfg_attr(
63396    not(target_arch = "arm"),
63397    stable(feature = "neon_intrinsics", since = "1.59.0")
63398)]
63399#[cfg_attr(
63400    target_arch = "arm",
63401    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63402)]
63403pub unsafe fn vst1_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8_t) {
63404    static_assert_uimm_bits!(LANE, 3);
63405    *a = simd_extract!(b, LANE as u32);
63406}
63407#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63408#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s8)"]
63409#[doc = "## Safety"]
63410#[doc = "  * Neon intrinsic unsafe"]
63411#[inline(always)]
63412#[target_feature(enable = "neon")]
63413#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63414#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63415#[cfg_attr(
63416    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63417    assert_instr(nop, LANE = 0)
63418)]
63419#[rustc_legacy_const_generics(2)]
63420#[cfg_attr(
63421    not(target_arch = "arm"),
63422    stable(feature = "neon_intrinsics", since = "1.59.0")
63423)]
63424#[cfg_attr(
63425    target_arch = "arm",
63426    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63427)]
63428pub unsafe fn vst1q_lane_s8<const LANE: i32>(a: *mut i8, b: int8x16_t) {
63429    static_assert_uimm_bits!(LANE, 4);
63430    *a = simd_extract!(b, LANE as u32);
63431}
63432#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63433#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s16)"]
63434#[doc = "## Safety"]
63435#[doc = "  * Neon intrinsic unsafe"]
63436#[inline(always)]
63437#[target_feature(enable = "neon")]
63438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63440#[cfg_attr(
63441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63442    assert_instr(nop, LANE = 0)
63443)]
63444#[rustc_legacy_const_generics(2)]
63445#[cfg_attr(
63446    not(target_arch = "arm"),
63447    stable(feature = "neon_intrinsics", since = "1.59.0")
63448)]
63449#[cfg_attr(
63450    target_arch = "arm",
63451    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63452)]
63453pub unsafe fn vst1_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4_t) {
63454    static_assert_uimm_bits!(LANE, 2);
63455    *a = simd_extract!(b, LANE as u32);
63456}
63457#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s16)"]
63459#[doc = "## Safety"]
63460#[doc = "  * Neon intrinsic unsafe"]
63461#[inline(always)]
63462#[target_feature(enable = "neon")]
63463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63464#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63465#[cfg_attr(
63466    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63467    assert_instr(nop, LANE = 0)
63468)]
63469#[rustc_legacy_const_generics(2)]
63470#[cfg_attr(
63471    not(target_arch = "arm"),
63472    stable(feature = "neon_intrinsics", since = "1.59.0")
63473)]
63474#[cfg_attr(
63475    target_arch = "arm",
63476    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63477)]
63478pub unsafe fn vst1q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8_t) {
63479    static_assert_uimm_bits!(LANE, 3);
63480    *a = simd_extract!(b, LANE as u32);
63481}
63482#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s32)"]
63484#[doc = "## Safety"]
63485#[doc = "  * Neon intrinsic unsafe"]
63486#[inline(always)]
63487#[target_feature(enable = "neon")]
63488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63489#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63490#[cfg_attr(
63491    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63492    assert_instr(nop, LANE = 0)
63493)]
63494#[rustc_legacy_const_generics(2)]
63495#[cfg_attr(
63496    not(target_arch = "arm"),
63497    stable(feature = "neon_intrinsics", since = "1.59.0")
63498)]
63499#[cfg_attr(
63500    target_arch = "arm",
63501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63502)]
63503pub unsafe fn vst1_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2_t) {
63504    static_assert_uimm_bits!(LANE, 1);
63505    *a = simd_extract!(b, LANE as u32);
63506}
63507#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s32)"]
63509#[doc = "## Safety"]
63510#[doc = "  * Neon intrinsic unsafe"]
63511#[inline(always)]
63512#[target_feature(enable = "neon")]
63513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63514#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63515#[cfg_attr(
63516    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63517    assert_instr(nop, LANE = 0)
63518)]
63519#[rustc_legacy_const_generics(2)]
63520#[cfg_attr(
63521    not(target_arch = "arm"),
63522    stable(feature = "neon_intrinsics", since = "1.59.0")
63523)]
63524#[cfg_attr(
63525    target_arch = "arm",
63526    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63527)]
63528pub unsafe fn vst1q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4_t) {
63529    static_assert_uimm_bits!(LANE, 2);
63530    *a = simd_extract!(b, LANE as u32);
63531}
63532#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63533#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s64)"]
63534#[doc = "## Safety"]
63535#[doc = "  * Neon intrinsic unsafe"]
63536#[inline(always)]
63537#[target_feature(enable = "neon")]
63538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63540#[cfg_attr(
63541    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63542    assert_instr(nop, LANE = 0)
63543)]
63544#[rustc_legacy_const_generics(2)]
63545#[cfg_attr(
63546    not(target_arch = "arm"),
63547    stable(feature = "neon_intrinsics", since = "1.59.0")
63548)]
63549#[cfg_attr(
63550    target_arch = "arm",
63551    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63552)]
63553pub unsafe fn vst1q_lane_s64<const LANE: i32>(a: *mut i64, b: int64x2_t) {
63554    static_assert_uimm_bits!(LANE, 1);
63555    *a = simd_extract!(b, LANE as u32);
63556}
63557#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u8)"]
63559#[doc = "## Safety"]
63560#[doc = "  * Neon intrinsic unsafe"]
63561#[inline(always)]
63562#[target_feature(enable = "neon")]
63563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63564#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63565#[cfg_attr(
63566    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63567    assert_instr(nop, LANE = 0)
63568)]
63569#[rustc_legacy_const_generics(2)]
63570#[cfg_attr(
63571    not(target_arch = "arm"),
63572    stable(feature = "neon_intrinsics", since = "1.59.0")
63573)]
63574#[cfg_attr(
63575    target_arch = "arm",
63576    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63577)]
63578pub unsafe fn vst1_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8_t) {
63579    static_assert_uimm_bits!(LANE, 3);
63580    *a = simd_extract!(b, LANE as u32);
63581}
63582#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63583#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u8)"]
63584#[doc = "## Safety"]
63585#[doc = "  * Neon intrinsic unsafe"]
63586#[inline(always)]
63587#[target_feature(enable = "neon")]
63588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63589#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63590#[cfg_attr(
63591    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63592    assert_instr(nop, LANE = 0)
63593)]
63594#[rustc_legacy_const_generics(2)]
63595#[cfg_attr(
63596    not(target_arch = "arm"),
63597    stable(feature = "neon_intrinsics", since = "1.59.0")
63598)]
63599#[cfg_attr(
63600    target_arch = "arm",
63601    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63602)]
63603pub unsafe fn vst1q_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x16_t) {
63604    static_assert_uimm_bits!(LANE, 4);
63605    *a = simd_extract!(b, LANE as u32);
63606}
63607#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u16)"]
63609#[doc = "## Safety"]
63610#[doc = "  * Neon intrinsic unsafe"]
63611#[inline(always)]
63612#[target_feature(enable = "neon")]
63613#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63614#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63615#[cfg_attr(
63616    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63617    assert_instr(nop, LANE = 0)
63618)]
63619#[rustc_legacy_const_generics(2)]
63620#[cfg_attr(
63621    not(target_arch = "arm"),
63622    stable(feature = "neon_intrinsics", since = "1.59.0")
63623)]
63624#[cfg_attr(
63625    target_arch = "arm",
63626    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63627)]
63628pub unsafe fn vst1_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4_t) {
63629    static_assert_uimm_bits!(LANE, 2);
63630    *a = simd_extract!(b, LANE as u32);
63631}
63632#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63633#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u16)"]
63634#[doc = "## Safety"]
63635#[doc = "  * Neon intrinsic unsafe"]
63636#[inline(always)]
63637#[target_feature(enable = "neon")]
63638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63639#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63640#[cfg_attr(
63641    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63642    assert_instr(nop, LANE = 0)
63643)]
63644#[rustc_legacy_const_generics(2)]
63645#[cfg_attr(
63646    not(target_arch = "arm"),
63647    stable(feature = "neon_intrinsics", since = "1.59.0")
63648)]
63649#[cfg_attr(
63650    target_arch = "arm",
63651    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63652)]
63653pub unsafe fn vst1q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8_t) {
63654    static_assert_uimm_bits!(LANE, 3);
63655    *a = simd_extract!(b, LANE as u32);
63656}
63657#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63658#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u32)"]
63659#[doc = "## Safety"]
63660#[doc = "  * Neon intrinsic unsafe"]
63661#[inline(always)]
63662#[target_feature(enable = "neon")]
63663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63664#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63665#[cfg_attr(
63666    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63667    assert_instr(nop, LANE = 0)
63668)]
63669#[rustc_legacy_const_generics(2)]
63670#[cfg_attr(
63671    not(target_arch = "arm"),
63672    stable(feature = "neon_intrinsics", since = "1.59.0")
63673)]
63674#[cfg_attr(
63675    target_arch = "arm",
63676    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63677)]
63678pub unsafe fn vst1_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2_t) {
63679    static_assert_uimm_bits!(LANE, 1);
63680    *a = simd_extract!(b, LANE as u32);
63681}
63682#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u32)"]
63684#[doc = "## Safety"]
63685#[doc = "  * Neon intrinsic unsafe"]
63686#[inline(always)]
63687#[target_feature(enable = "neon")]
63688#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63689#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63690#[cfg_attr(
63691    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63692    assert_instr(nop, LANE = 0)
63693)]
63694#[rustc_legacy_const_generics(2)]
63695#[cfg_attr(
63696    not(target_arch = "arm"),
63697    stable(feature = "neon_intrinsics", since = "1.59.0")
63698)]
63699#[cfg_attr(
63700    target_arch = "arm",
63701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63702)]
63703pub unsafe fn vst1q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4_t) {
63704    static_assert_uimm_bits!(LANE, 2);
63705    *a = simd_extract!(b, LANE as u32);
63706}
63707#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63708#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u64)"]
63709#[doc = "## Safety"]
63710#[doc = "  * Neon intrinsic unsafe"]
63711#[inline(always)]
63712#[target_feature(enable = "neon")]
63713#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63714#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63715#[cfg_attr(
63716    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63717    assert_instr(nop, LANE = 0)
63718)]
63719#[rustc_legacy_const_generics(2)]
63720#[cfg_attr(
63721    not(target_arch = "arm"),
63722    stable(feature = "neon_intrinsics", since = "1.59.0")
63723)]
63724#[cfg_attr(
63725    target_arch = "arm",
63726    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63727)]
63728pub unsafe fn vst1q_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x2_t) {
63729    static_assert_uimm_bits!(LANE, 1);
63730    *a = simd_extract!(b, LANE as u32);
63731}
63732#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63733#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p8)"]
63734#[doc = "## Safety"]
63735#[doc = "  * Neon intrinsic unsafe"]
63736#[inline(always)]
63737#[target_feature(enable = "neon")]
63738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63739#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63740#[cfg_attr(
63741    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63742    assert_instr(nop, LANE = 0)
63743)]
63744#[rustc_legacy_const_generics(2)]
63745#[cfg_attr(
63746    not(target_arch = "arm"),
63747    stable(feature = "neon_intrinsics", since = "1.59.0")
63748)]
63749#[cfg_attr(
63750    target_arch = "arm",
63751    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63752)]
63753pub unsafe fn vst1_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8_t) {
63754    static_assert_uimm_bits!(LANE, 3);
63755    *a = simd_extract!(b, LANE as u32);
63756}
63757#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p8)"]
63759#[doc = "## Safety"]
63760#[doc = "  * Neon intrinsic unsafe"]
63761#[inline(always)]
63762#[target_feature(enable = "neon")]
63763#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63764#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63765#[cfg_attr(
63766    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63767    assert_instr(nop, LANE = 0)
63768)]
63769#[rustc_legacy_const_generics(2)]
63770#[cfg_attr(
63771    not(target_arch = "arm"),
63772    stable(feature = "neon_intrinsics", since = "1.59.0")
63773)]
63774#[cfg_attr(
63775    target_arch = "arm",
63776    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63777)]
63778pub unsafe fn vst1q_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x16_t) {
63779    static_assert_uimm_bits!(LANE, 4);
63780    *a = simd_extract!(b, LANE as u32);
63781}
63782#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63783#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p16)"]
63784#[doc = "## Safety"]
63785#[doc = "  * Neon intrinsic unsafe"]
63786#[inline(always)]
63787#[target_feature(enable = "neon")]
63788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63790#[cfg_attr(
63791    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63792    assert_instr(nop, LANE = 0)
63793)]
63794#[rustc_legacy_const_generics(2)]
63795#[cfg_attr(
63796    not(target_arch = "arm"),
63797    stable(feature = "neon_intrinsics", since = "1.59.0")
63798)]
63799#[cfg_attr(
63800    target_arch = "arm",
63801    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63802)]
63803pub unsafe fn vst1_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4_t) {
63804    static_assert_uimm_bits!(LANE, 2);
63805    *a = simd_extract!(b, LANE as u32);
63806}
63807#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63808#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p16)"]
63809#[doc = "## Safety"]
63810#[doc = "  * Neon intrinsic unsafe"]
63811#[inline(always)]
63812#[target_feature(enable = "neon")]
63813#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63814#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63815#[cfg_attr(
63816    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63817    assert_instr(nop, LANE = 0)
63818)]
63819#[rustc_legacy_const_generics(2)]
63820#[cfg_attr(
63821    not(target_arch = "arm"),
63822    stable(feature = "neon_intrinsics", since = "1.59.0")
63823)]
63824#[cfg_attr(
63825    target_arch = "arm",
63826    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63827)]
63828pub unsafe fn vst1q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8_t) {
63829    static_assert_uimm_bits!(LANE, 3);
63830    *a = simd_extract!(b, LANE as u32);
63831}
63832#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63833#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p64)"]
63834#[doc = "## Safety"]
63835#[doc = "  * Neon intrinsic unsafe"]
63836#[inline(always)]
63837#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63838#[target_feature(enable = "neon,aes")]
63839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63840#[cfg_attr(
63841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63842    assert_instr(nop, LANE = 0)
63843)]
63844#[rustc_legacy_const_generics(2)]
63845#[cfg_attr(
63846    not(target_arch = "arm"),
63847    stable(feature = "neon_intrinsics", since = "1.59.0")
63848)]
63849#[cfg_attr(
63850    target_arch = "arm",
63851    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63852)]
63853pub unsafe fn vst1_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x1_t) {
63854    static_assert!(LANE == 0);
63855    *a = simd_extract!(b, LANE as u32);
63856}
63857#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63858#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s64)"]
63859#[doc = "## Safety"]
63860#[doc = "  * Neon intrinsic unsafe"]
63861#[inline(always)]
63862#[target_feature(enable = "neon")]
63863#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63864#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63865#[cfg_attr(
63866    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63867    assert_instr(nop, LANE = 0)
63868)]
63869#[rustc_legacy_const_generics(2)]
63870#[cfg_attr(
63871    not(target_arch = "arm"),
63872    stable(feature = "neon_intrinsics", since = "1.59.0")
63873)]
63874#[cfg_attr(
63875    target_arch = "arm",
63876    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63877)]
63878pub unsafe fn vst1_lane_s64<const LANE: i32>(a: *mut i64, b: int64x1_t) {
63879    static_assert!(LANE == 0);
63880    *a = simd_extract!(b, LANE as u32);
63881}
63882#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
63883#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u64)"]
63884#[doc = "## Safety"]
63885#[doc = "  * Neon intrinsic unsafe"]
63886#[inline(always)]
63887#[target_feature(enable = "neon")]
63888#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
63889#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
63890#[cfg_attr(
63891    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63892    assert_instr(nop, LANE = 0)
63893)]
63894#[rustc_legacy_const_generics(2)]
63895#[cfg_attr(
63896    not(target_arch = "arm"),
63897    stable(feature = "neon_intrinsics", since = "1.59.0")
63898)]
63899#[cfg_attr(
63900    target_arch = "arm",
63901    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63902)]
63903pub unsafe fn vst1_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x1_t) {
63904    static_assert!(LANE == 0);
63905    *a = simd_extract!(b, LANE as u32);
63906}
63907#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63908#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x2)"]
63909#[doc = "## Safety"]
63910#[doc = "  * Neon intrinsic unsafe"]
63911#[inline(always)]
63912#[target_feature(enable = "neon,aes")]
63913#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63914#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
63915#[cfg_attr(
63916    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63917    assert_instr(st1)
63918)]
63919#[cfg_attr(
63920    not(target_arch = "arm"),
63921    stable(feature = "neon_intrinsics", since = "1.59.0")
63922)]
63923#[cfg_attr(
63924    target_arch = "arm",
63925    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63926)]
63927pub unsafe fn vst1_p64_x2(a: *mut p64, b: poly64x1x2_t) {
63928    vst1_s64_x2(transmute(a), transmute(b))
63929}
63930#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x3)"]
63932#[doc = "## Safety"]
63933#[doc = "  * Neon intrinsic unsafe"]
63934#[inline(always)]
63935#[target_feature(enable = "neon,aes")]
63936#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63937#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
63938#[cfg_attr(
63939    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63940    assert_instr(st1)
63941)]
63942#[cfg_attr(
63943    not(target_arch = "arm"),
63944    stable(feature = "neon_intrinsics", since = "1.59.0")
63945)]
63946#[cfg_attr(
63947    target_arch = "arm",
63948    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63949)]
63950pub unsafe fn vst1_p64_x3(a: *mut p64, b: poly64x1x3_t) {
63951    vst1_s64_x3(transmute(a), transmute(b))
63952}
63953#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63954#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x4)"]
63955#[doc = "## Safety"]
63956#[doc = "  * Neon intrinsic unsafe"]
63957#[inline(always)]
63958#[target_feature(enable = "neon,aes")]
63959#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63960#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
63961#[cfg_attr(
63962    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63963    assert_instr(st1)
63964)]
63965#[cfg_attr(
63966    not(target_arch = "arm"),
63967    stable(feature = "neon_intrinsics", since = "1.59.0")
63968)]
63969#[cfg_attr(
63970    target_arch = "arm",
63971    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63972)]
63973pub unsafe fn vst1_p64_x4(a: *mut p64, b: poly64x1x4_t) {
63974    vst1_s64_x4(transmute(a), transmute(b))
63975}
63976#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
63977#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x2)"]
63978#[doc = "## Safety"]
63979#[doc = "  * Neon intrinsic unsafe"]
63980#[inline(always)]
63981#[target_feature(enable = "neon,aes")]
63982#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
63983#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
63984#[cfg_attr(
63985    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
63986    assert_instr(st1)
63987)]
63988#[cfg_attr(
63989    not(target_arch = "arm"),
63990    stable(feature = "neon_intrinsics", since = "1.59.0")
63991)]
63992#[cfg_attr(
63993    target_arch = "arm",
63994    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
63995)]
63996pub unsafe fn vst1q_p64_x2(a: *mut p64, b: poly64x2x2_t) {
63997    vst1q_s64_x2(transmute(a), transmute(b))
63998}
63999#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64000#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x3)"]
64001#[doc = "## Safety"]
64002#[doc = "  * Neon intrinsic unsafe"]
64003#[inline(always)]
64004#[target_feature(enable = "neon,aes")]
64005#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
64006#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
64007#[cfg_attr(
64008    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64009    assert_instr(st1)
64010)]
64011#[cfg_attr(
64012    not(target_arch = "arm"),
64013    stable(feature = "neon_intrinsics", since = "1.59.0")
64014)]
64015#[cfg_attr(
64016    target_arch = "arm",
64017    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64018)]
64019pub unsafe fn vst1q_p64_x3(a: *mut p64, b: poly64x2x3_t) {
64020    vst1q_s64_x3(transmute(a), transmute(b))
64021}
64022#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64023#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x4)"]
64024#[doc = "## Safety"]
64025#[doc = "  * Neon intrinsic unsafe"]
64026#[inline(always)]
64027#[target_feature(enable = "neon,aes")]
64028#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
64029#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
64030#[cfg_attr(
64031    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64032    assert_instr(st1)
64033)]
64034#[cfg_attr(
64035    not(target_arch = "arm"),
64036    stable(feature = "neon_intrinsics", since = "1.59.0")
64037)]
64038#[cfg_attr(
64039    target_arch = "arm",
64040    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64041)]
64042pub unsafe fn vst1q_p64_x4(a: *mut p64, b: poly64x2x4_t) {
64043    vst1q_s64_x4(transmute(a), transmute(b))
64044}
64045#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64046#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)"]
64047#[doc = "## Safety"]
64048#[doc = "  * Neon intrinsic unsafe"]
64049#[inline(always)]
64050#[target_feature(enable = "neon")]
64051#[cfg(not(target_arch = "arm"))]
64052#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64053#[cfg_attr(test, assert_instr(st1))]
64054pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
64055    unsafe extern "unadjusted" {
64056        #[cfg_attr(
64057            any(target_arch = "aarch64", target_arch = "arm64ec"),
64058            link_name = "llvm.aarch64.neon.st1x2.v8i8.p0"
64059        )]
64060        fn _vst1_s8_x2(a: int8x8_t, b: int8x8_t, ptr: *mut i8);
64061    }
64062    _vst1_s8_x2(b.0, b.1, a)
64063}
64064#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64065#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)"]
64066#[doc = "## Safety"]
64067#[doc = "  * Neon intrinsic unsafe"]
64068#[inline(always)]
64069#[target_feature(enable = "neon")]
64070#[cfg(not(target_arch = "arm"))]
64071#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64072#[cfg_attr(test, assert_instr(st1))]
64073pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
64074    unsafe extern "unadjusted" {
64075        #[cfg_attr(
64076            any(target_arch = "aarch64", target_arch = "arm64ec"),
64077            link_name = "llvm.aarch64.neon.st1x2.v16i8.p0"
64078        )]
64079        fn _vst1q_s8_x2(a: int8x16_t, b: int8x16_t, ptr: *mut i8);
64080    }
64081    _vst1q_s8_x2(b.0, b.1, a)
64082}
64083#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64084#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)"]
64085#[doc = "## Safety"]
64086#[doc = "  * Neon intrinsic unsafe"]
64087#[inline(always)]
64088#[target_feature(enable = "neon")]
64089#[cfg(not(target_arch = "arm"))]
64090#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64091#[cfg_attr(test, assert_instr(st1))]
64092pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
64093    unsafe extern "unadjusted" {
64094        #[cfg_attr(
64095            any(target_arch = "aarch64", target_arch = "arm64ec"),
64096            link_name = "llvm.aarch64.neon.st1x2.v4i16.p0"
64097        )]
64098        fn _vst1_s16_x2(a: int16x4_t, b: int16x4_t, ptr: *mut i16);
64099    }
64100    _vst1_s16_x2(b.0, b.1, a)
64101}
64102#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64103#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)"]
64104#[doc = "## Safety"]
64105#[doc = "  * Neon intrinsic unsafe"]
64106#[inline(always)]
64107#[target_feature(enable = "neon")]
64108#[cfg(not(target_arch = "arm"))]
64109#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64110#[cfg_attr(test, assert_instr(st1))]
64111pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
64112    unsafe extern "unadjusted" {
64113        #[cfg_attr(
64114            any(target_arch = "aarch64", target_arch = "arm64ec"),
64115            link_name = "llvm.aarch64.neon.st1x2.v8i16.p0"
64116        )]
64117        fn _vst1q_s16_x2(a: int16x8_t, b: int16x8_t, ptr: *mut i16);
64118    }
64119    _vst1q_s16_x2(b.0, b.1, a)
64120}
64121#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64122#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)"]
64123#[doc = "## Safety"]
64124#[doc = "  * Neon intrinsic unsafe"]
64125#[inline(always)]
64126#[target_feature(enable = "neon")]
64127#[cfg(not(target_arch = "arm"))]
64128#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64129#[cfg_attr(test, assert_instr(st1))]
64130pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
64131    unsafe extern "unadjusted" {
64132        #[cfg_attr(
64133            any(target_arch = "aarch64", target_arch = "arm64ec"),
64134            link_name = "llvm.aarch64.neon.st1x2.v2i32.p0"
64135        )]
64136        fn _vst1_s32_x2(a: int32x2_t, b: int32x2_t, ptr: *mut i32);
64137    }
64138    _vst1_s32_x2(b.0, b.1, a)
64139}
64140#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64141#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)"]
64142#[doc = "## Safety"]
64143#[doc = "  * Neon intrinsic unsafe"]
64144#[inline(always)]
64145#[target_feature(enable = "neon")]
64146#[cfg(not(target_arch = "arm"))]
64147#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64148#[cfg_attr(test, assert_instr(st1))]
64149pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
64150    unsafe extern "unadjusted" {
64151        #[cfg_attr(
64152            any(target_arch = "aarch64", target_arch = "arm64ec"),
64153            link_name = "llvm.aarch64.neon.st1x2.v4i32.p0"
64154        )]
64155        fn _vst1q_s32_x2(a: int32x4_t, b: int32x4_t, ptr: *mut i32);
64156    }
64157    _vst1q_s32_x2(b.0, b.1, a)
64158}
64159#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64160#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)"]
64161#[doc = "## Safety"]
64162#[doc = "  * Neon intrinsic unsafe"]
64163#[inline(always)]
64164#[target_feature(enable = "neon")]
64165#[cfg(not(target_arch = "arm"))]
64166#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64167#[cfg_attr(test, assert_instr(st1))]
64168pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
64169    unsafe extern "unadjusted" {
64170        #[cfg_attr(
64171            any(target_arch = "aarch64", target_arch = "arm64ec"),
64172            link_name = "llvm.aarch64.neon.st1x2.v1i64.p0"
64173        )]
64174        fn _vst1_s64_x2(a: int64x1_t, b: int64x1_t, ptr: *mut i64);
64175    }
64176    _vst1_s64_x2(b.0, b.1, a)
64177}
64178#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)"]
64180#[doc = "## Safety"]
64181#[doc = "  * Neon intrinsic unsafe"]
64182#[inline(always)]
64183#[target_feature(enable = "neon")]
64184#[cfg(not(target_arch = "arm"))]
64185#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64186#[cfg_attr(test, assert_instr(st1))]
64187pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
64188    unsafe extern "unadjusted" {
64189        #[cfg_attr(
64190            any(target_arch = "aarch64", target_arch = "arm64ec"),
64191            link_name = "llvm.aarch64.neon.st1x2.v2i64.p0"
64192        )]
64193        fn _vst1q_s64_x2(a: int64x2_t, b: int64x2_t, ptr: *mut i64);
64194    }
64195    _vst1q_s64_x2(b.0, b.1, a)
64196}
64197#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64198#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)"]
64199#[doc = "## Safety"]
64200#[doc = "  * Neon intrinsic unsafe"]
64201#[inline(always)]
64202#[target_feature(enable = "neon,v7")]
64203#[cfg(target_arch = "arm")]
64204#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64205#[cfg_attr(test, assert_instr(vst1))]
64206pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
64207    unsafe extern "unadjusted" {
64208        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v8i8.p0")]
64209        fn _vst1_s8_x2(ptr: *mut i8, a: int8x8_t, b: int8x8_t);
64210    }
64211    _vst1_s8_x2(a, b.0, b.1)
64212}
64213#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)"]
64215#[doc = "## Safety"]
64216#[doc = "  * Neon intrinsic unsafe"]
64217#[inline(always)]
64218#[target_feature(enable = "neon,v7")]
64219#[cfg(target_arch = "arm")]
64220#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64221#[cfg_attr(test, assert_instr(vst1))]
64222pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
64223    unsafe extern "unadjusted" {
64224        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v16i8.p0")]
64225        fn _vst1q_s8_x2(ptr: *mut i8, a: int8x16_t, b: int8x16_t);
64226    }
64227    _vst1q_s8_x2(a, b.0, b.1)
64228}
64229#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)"]
64231#[doc = "## Safety"]
64232#[doc = "  * Neon intrinsic unsafe"]
64233#[inline(always)]
64234#[target_feature(enable = "neon,v7")]
64235#[cfg(target_arch = "arm")]
64236#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64237#[cfg_attr(test, assert_instr(vst1))]
64238pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
64239    unsafe extern "unadjusted" {
64240        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4i16.p0")]
64241        fn _vst1_s16_x2(ptr: *mut i16, a: int16x4_t, b: int16x4_t);
64242    }
64243    _vst1_s16_x2(a, b.0, b.1)
64244}
64245#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64246#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)"]
64247#[doc = "## Safety"]
64248#[doc = "  * Neon intrinsic unsafe"]
64249#[inline(always)]
64250#[target_feature(enable = "neon,v7")]
64251#[cfg(target_arch = "arm")]
64252#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64253#[cfg_attr(test, assert_instr(vst1))]
64254pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
64255    unsafe extern "unadjusted" {
64256        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v8i16.p0")]
64257        fn _vst1q_s16_x2(ptr: *mut i16, a: int16x8_t, b: int16x8_t);
64258    }
64259    _vst1q_s16_x2(a, b.0, b.1)
64260}
64261#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64262#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)"]
64263#[doc = "## Safety"]
64264#[doc = "  * Neon intrinsic unsafe"]
64265#[inline(always)]
64266#[target_feature(enable = "neon,v7")]
64267#[cfg(target_arch = "arm")]
64268#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64269#[cfg_attr(test, assert_instr(vst1))]
64270pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
64271    unsafe extern "unadjusted" {
64272        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2i32.p0")]
64273        fn _vst1_s32_x2(ptr: *mut i32, a: int32x2_t, b: int32x2_t);
64274    }
64275    _vst1_s32_x2(a, b.0, b.1)
64276}
64277#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64278#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)"]
64279#[doc = "## Safety"]
64280#[doc = "  * Neon intrinsic unsafe"]
64281#[inline(always)]
64282#[target_feature(enable = "neon,v7")]
64283#[cfg(target_arch = "arm")]
64284#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64285#[cfg_attr(test, assert_instr(vst1))]
64286pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
64287    unsafe extern "unadjusted" {
64288        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v4i32.p0")]
64289        fn _vst1q_s32_x2(ptr: *mut i32, a: int32x4_t, b: int32x4_t);
64290    }
64291    _vst1q_s32_x2(a, b.0, b.1)
64292}
64293#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64294#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)"]
64295#[doc = "## Safety"]
64296#[doc = "  * Neon intrinsic unsafe"]
64297#[inline(always)]
64298#[target_feature(enable = "neon,v7")]
64299#[cfg(target_arch = "arm")]
64300#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64301#[cfg_attr(test, assert_instr(vst1))]
64302pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
64303    unsafe extern "unadjusted" {
64304        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v1i64.p0")]
64305        fn _vst1_s64_x2(ptr: *mut i64, a: int64x1_t, b: int64x1_t);
64306    }
64307    _vst1_s64_x2(a, b.0, b.1)
64308}
64309#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)"]
64311#[doc = "## Safety"]
64312#[doc = "  * Neon intrinsic unsafe"]
64313#[inline(always)]
64314#[target_feature(enable = "neon,v7")]
64315#[cfg(target_arch = "arm")]
64316#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64317#[cfg_attr(test, assert_instr(vst1))]
64318pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
64319    unsafe extern "unadjusted" {
64320        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.v2i64.p0")]
64321        fn _vst1q_s64_x2(ptr: *mut i64, a: int64x2_t, b: int64x2_t);
64322    }
64323    _vst1q_s64_x2(a, b.0, b.1)
64324}
64325#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)"]
64327#[doc = "## Safety"]
64328#[doc = "  * Neon intrinsic unsafe"]
64329#[inline(always)]
64330#[target_feature(enable = "neon")]
64331#[cfg(not(target_arch = "arm"))]
64332#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64333#[cfg_attr(test, assert_instr(st1))]
64334pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
64335    unsafe extern "unadjusted" {
64336        #[cfg_attr(
64337            any(target_arch = "aarch64", target_arch = "arm64ec"),
64338            link_name = "llvm.aarch64.neon.st1x3.v8i8.p0"
64339        )]
64340        fn _vst1_s8_x3(a: int8x8_t, b: int8x8_t, c: int8x8_t, ptr: *mut i8);
64341    }
64342    _vst1_s8_x3(b.0, b.1, b.2, a)
64343}
64344#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64345#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)"]
64346#[doc = "## Safety"]
64347#[doc = "  * Neon intrinsic unsafe"]
64348#[inline(always)]
64349#[target_feature(enable = "neon")]
64350#[cfg(not(target_arch = "arm"))]
64351#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64352#[cfg_attr(test, assert_instr(st1))]
64353pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
64354    unsafe extern "unadjusted" {
64355        #[cfg_attr(
64356            any(target_arch = "aarch64", target_arch = "arm64ec"),
64357            link_name = "llvm.aarch64.neon.st1x3.v16i8.p0"
64358        )]
64359        fn _vst1q_s8_x3(a: int8x16_t, b: int8x16_t, c: int8x16_t, ptr: *mut i8);
64360    }
64361    _vst1q_s8_x3(b.0, b.1, b.2, a)
64362}
64363#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64364#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)"]
64365#[doc = "## Safety"]
64366#[doc = "  * Neon intrinsic unsafe"]
64367#[inline(always)]
64368#[target_feature(enable = "neon")]
64369#[cfg(not(target_arch = "arm"))]
64370#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64371#[cfg_attr(test, assert_instr(st1))]
64372pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
64373    unsafe extern "unadjusted" {
64374        #[cfg_attr(
64375            any(target_arch = "aarch64", target_arch = "arm64ec"),
64376            link_name = "llvm.aarch64.neon.st1x3.v4i16.p0"
64377        )]
64378        fn _vst1_s16_x3(a: int16x4_t, b: int16x4_t, c: int16x4_t, ptr: *mut i16);
64379    }
64380    _vst1_s16_x3(b.0, b.1, b.2, a)
64381}
64382#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)"]
64384#[doc = "## Safety"]
64385#[doc = "  * Neon intrinsic unsafe"]
64386#[inline(always)]
64387#[target_feature(enable = "neon")]
64388#[cfg(not(target_arch = "arm"))]
64389#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64390#[cfg_attr(test, assert_instr(st1))]
64391pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
64392    unsafe extern "unadjusted" {
64393        #[cfg_attr(
64394            any(target_arch = "aarch64", target_arch = "arm64ec"),
64395            link_name = "llvm.aarch64.neon.st1x3.v8i16.p0"
64396        )]
64397        fn _vst1q_s16_x3(a: int16x8_t, b: int16x8_t, c: int16x8_t, ptr: *mut i16);
64398    }
64399    _vst1q_s16_x3(b.0, b.1, b.2, a)
64400}
64401#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64402#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)"]
64403#[doc = "## Safety"]
64404#[doc = "  * Neon intrinsic unsafe"]
64405#[inline(always)]
64406#[target_feature(enable = "neon")]
64407#[cfg(not(target_arch = "arm"))]
64408#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64409#[cfg_attr(test, assert_instr(st1))]
64410pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
64411    unsafe extern "unadjusted" {
64412        #[cfg_attr(
64413            any(target_arch = "aarch64", target_arch = "arm64ec"),
64414            link_name = "llvm.aarch64.neon.st1x3.v2i32.p0"
64415        )]
64416        fn _vst1_s32_x3(a: int32x2_t, b: int32x2_t, c: int32x2_t, ptr: *mut i32);
64417    }
64418    _vst1_s32_x3(b.0, b.1, b.2, a)
64419}
64420#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64421#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)"]
64422#[doc = "## Safety"]
64423#[doc = "  * Neon intrinsic unsafe"]
64424#[inline(always)]
64425#[target_feature(enable = "neon")]
64426#[cfg(not(target_arch = "arm"))]
64427#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64428#[cfg_attr(test, assert_instr(st1))]
64429pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
64430    unsafe extern "unadjusted" {
64431        #[cfg_attr(
64432            any(target_arch = "aarch64", target_arch = "arm64ec"),
64433            link_name = "llvm.aarch64.neon.st1x3.v4i32.p0"
64434        )]
64435        fn _vst1q_s32_x3(a: int32x4_t, b: int32x4_t, c: int32x4_t, ptr: *mut i32);
64436    }
64437    _vst1q_s32_x3(b.0, b.1, b.2, a)
64438}
64439#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64440#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)"]
64441#[doc = "## Safety"]
64442#[doc = "  * Neon intrinsic unsafe"]
64443#[inline(always)]
64444#[target_feature(enable = "neon")]
64445#[cfg(not(target_arch = "arm"))]
64446#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64447#[cfg_attr(test, assert_instr(st1))]
64448pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
64449    unsafe extern "unadjusted" {
64450        #[cfg_attr(
64451            any(target_arch = "aarch64", target_arch = "arm64ec"),
64452            link_name = "llvm.aarch64.neon.st1x3.v1i64.p0"
64453        )]
64454        fn _vst1_s64_x3(a: int64x1_t, b: int64x1_t, c: int64x1_t, ptr: *mut i64);
64455    }
64456    _vst1_s64_x3(b.0, b.1, b.2, a)
64457}
64458#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64459#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)"]
64460#[doc = "## Safety"]
64461#[doc = "  * Neon intrinsic unsafe"]
64462#[inline(always)]
64463#[target_feature(enable = "neon")]
64464#[cfg(not(target_arch = "arm"))]
64465#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64466#[cfg_attr(test, assert_instr(st1))]
64467pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
64468    unsafe extern "unadjusted" {
64469        #[cfg_attr(
64470            any(target_arch = "aarch64", target_arch = "arm64ec"),
64471            link_name = "llvm.aarch64.neon.st1x3.v2i64.p0"
64472        )]
64473        fn _vst1q_s64_x3(a: int64x2_t, b: int64x2_t, c: int64x2_t, ptr: *mut i64);
64474    }
64475    _vst1q_s64_x3(b.0, b.1, b.2, a)
64476}
64477#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64478#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)"]
64479#[doc = "## Safety"]
64480#[doc = "  * Neon intrinsic unsafe"]
64481#[inline(always)]
64482#[target_feature(enable = "neon,v7")]
64483#[cfg(target_arch = "arm")]
64484#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64485#[cfg_attr(test, assert_instr(vst1))]
64486pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
64487    unsafe extern "unadjusted" {
64488        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8i8.p0")]
64489        fn _vst1_s8_x3(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t);
64490    }
64491    _vst1_s8_x3(a, b.0, b.1, b.2)
64492}
64493#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64494#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)"]
64495#[doc = "## Safety"]
64496#[doc = "  * Neon intrinsic unsafe"]
64497#[inline(always)]
64498#[target_feature(enable = "neon,v7")]
64499#[cfg(target_arch = "arm")]
64500#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64501#[cfg_attr(test, assert_instr(vst1))]
64502pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
64503    unsafe extern "unadjusted" {
64504        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v16i8.p0")]
64505        fn _vst1q_s8_x3(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t);
64506    }
64507    _vst1q_s8_x3(a, b.0, b.1, b.2)
64508}
64509#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)"]
64511#[doc = "## Safety"]
64512#[doc = "  * Neon intrinsic unsafe"]
64513#[inline(always)]
64514#[target_feature(enable = "neon,v7")]
64515#[cfg(target_arch = "arm")]
64516#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64517#[cfg_attr(test, assert_instr(vst1))]
64518pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
64519    unsafe extern "unadjusted" {
64520        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4i16.p0")]
64521        fn _vst1_s16_x3(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t);
64522    }
64523    _vst1_s16_x3(a, b.0, b.1, b.2)
64524}
64525#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64526#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)"]
64527#[doc = "## Safety"]
64528#[doc = "  * Neon intrinsic unsafe"]
64529#[inline(always)]
64530#[target_feature(enable = "neon,v7")]
64531#[cfg(target_arch = "arm")]
64532#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64533#[cfg_attr(test, assert_instr(vst1))]
64534pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
64535    unsafe extern "unadjusted" {
64536        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v8i16.p0")]
64537        fn _vst1q_s16_x3(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t);
64538    }
64539    _vst1q_s16_x3(a, b.0, b.1, b.2)
64540}
64541#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)"]
64543#[doc = "## Safety"]
64544#[doc = "  * Neon intrinsic unsafe"]
64545#[inline(always)]
64546#[target_feature(enable = "neon,v7")]
64547#[cfg(target_arch = "arm")]
64548#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64549#[cfg_attr(test, assert_instr(vst1))]
64550pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
64551    unsafe extern "unadjusted" {
64552        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v2i32.p0")]
64553        fn _vst1_s32_x3(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t);
64554    }
64555    _vst1_s32_x3(a, b.0, b.1, b.2)
64556}
64557#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)"]
64559#[doc = "## Safety"]
64560#[doc = "  * Neon intrinsic unsafe"]
64561#[inline(always)]
64562#[target_feature(enable = "neon,v7")]
64563#[cfg(target_arch = "arm")]
64564#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64565#[cfg_attr(test, assert_instr(vst1))]
64566pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
64567    unsafe extern "unadjusted" {
64568        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v4i32.p0")]
64569        fn _vst1q_s32_x3(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t);
64570    }
64571    _vst1q_s32_x3(a, b.0, b.1, b.2)
64572}
64573#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64574#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)"]
64575#[doc = "## Safety"]
64576#[doc = "  * Neon intrinsic unsafe"]
64577#[inline(always)]
64578#[target_feature(enable = "neon,v7")]
64579#[cfg(target_arch = "arm")]
64580#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64581#[cfg_attr(test, assert_instr(vst1))]
64582pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
64583    unsafe extern "unadjusted" {
64584        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v1i64.p0")]
64585        fn _vst1_s64_x3(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t);
64586    }
64587    _vst1_s64_x3(a, b.0, b.1, b.2)
64588}
64589#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64590#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)"]
64591#[doc = "## Safety"]
64592#[doc = "  * Neon intrinsic unsafe"]
64593#[inline(always)]
64594#[target_feature(enable = "neon,v7")]
64595#[cfg(target_arch = "arm")]
64596#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64597#[cfg_attr(test, assert_instr(vst1))]
64598pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
64599    unsafe extern "unadjusted" {
64600        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0.v2i64.p0")]
64601        fn _vst1q_s64_x3(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t);
64602    }
64603    _vst1q_s64_x3(a, b.0, b.1, b.2)
64604}
64605#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64606#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)"]
64607#[doc = "## Safety"]
64608#[doc = "  * Neon intrinsic unsafe"]
64609#[inline(always)]
64610#[target_feature(enable = "neon")]
64611#[cfg(not(target_arch = "arm"))]
64612#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64613#[cfg_attr(test, assert_instr(st1))]
64614pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
64615    unsafe extern "unadjusted" {
64616        #[cfg_attr(
64617            any(target_arch = "aarch64", target_arch = "arm64ec"),
64618            link_name = "llvm.aarch64.neon.st1x4.v8i8.p0"
64619        )]
64620        fn _vst1_s8_x4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, ptr: *mut i8);
64621    }
64622    _vst1_s8_x4(b.0, b.1, b.2, b.3, a)
64623}
64624#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64625#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)"]
64626#[doc = "## Safety"]
64627#[doc = "  * Neon intrinsic unsafe"]
64628#[inline(always)]
64629#[target_feature(enable = "neon")]
64630#[cfg(not(target_arch = "arm"))]
64631#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64632#[cfg_attr(test, assert_instr(st1))]
64633pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
64634    unsafe extern "unadjusted" {
64635        #[cfg_attr(
64636            any(target_arch = "aarch64", target_arch = "arm64ec"),
64637            link_name = "llvm.aarch64.neon.st1x4.v16i8.p0"
64638        )]
64639        fn _vst1q_s8_x4(a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, ptr: *mut i8);
64640    }
64641    _vst1q_s8_x4(b.0, b.1, b.2, b.3, a)
64642}
64643#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64644#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)"]
64645#[doc = "## Safety"]
64646#[doc = "  * Neon intrinsic unsafe"]
64647#[inline(always)]
64648#[target_feature(enable = "neon")]
64649#[cfg(not(target_arch = "arm"))]
64650#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64651#[cfg_attr(test, assert_instr(st1))]
64652pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
64653    unsafe extern "unadjusted" {
64654        #[cfg_attr(
64655            any(target_arch = "aarch64", target_arch = "arm64ec"),
64656            link_name = "llvm.aarch64.neon.st1x4.v4i16.p0"
64657        )]
64658        fn _vst1_s16_x4(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, ptr: *mut i16);
64659    }
64660    _vst1_s16_x4(b.0, b.1, b.2, b.3, a)
64661}
64662#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64663#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)"]
64664#[doc = "## Safety"]
64665#[doc = "  * Neon intrinsic unsafe"]
64666#[inline(always)]
64667#[target_feature(enable = "neon")]
64668#[cfg(not(target_arch = "arm"))]
64669#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64670#[cfg_attr(test, assert_instr(st1))]
64671pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
64672    unsafe extern "unadjusted" {
64673        #[cfg_attr(
64674            any(target_arch = "aarch64", target_arch = "arm64ec"),
64675            link_name = "llvm.aarch64.neon.st1x4.v8i16.p0"
64676        )]
64677        fn _vst1q_s16_x4(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, ptr: *mut i16);
64678    }
64679    _vst1q_s16_x4(b.0, b.1, b.2, b.3, a)
64680}
64681#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)"]
64683#[doc = "## Safety"]
64684#[doc = "  * Neon intrinsic unsafe"]
64685#[inline(always)]
64686#[target_feature(enable = "neon")]
64687#[cfg(not(target_arch = "arm"))]
64688#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64689#[cfg_attr(test, assert_instr(st1))]
64690pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
64691    unsafe extern "unadjusted" {
64692        #[cfg_attr(
64693            any(target_arch = "aarch64", target_arch = "arm64ec"),
64694            link_name = "llvm.aarch64.neon.st1x4.v2i32.p0"
64695        )]
64696        fn _vst1_s32_x4(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, ptr: *mut i32);
64697    }
64698    _vst1_s32_x4(b.0, b.1, b.2, b.3, a)
64699}
64700#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64701#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)"]
64702#[doc = "## Safety"]
64703#[doc = "  * Neon intrinsic unsafe"]
64704#[inline(always)]
64705#[target_feature(enable = "neon")]
64706#[cfg(not(target_arch = "arm"))]
64707#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64708#[cfg_attr(test, assert_instr(st1))]
64709pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
64710    unsafe extern "unadjusted" {
64711        #[cfg_attr(
64712            any(target_arch = "aarch64", target_arch = "arm64ec"),
64713            link_name = "llvm.aarch64.neon.st1x4.v4i32.p0"
64714        )]
64715        fn _vst1q_s32_x4(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, ptr: *mut i32);
64716    }
64717    _vst1q_s32_x4(b.0, b.1, b.2, b.3, a)
64718}
64719#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64720#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)"]
64721#[doc = "## Safety"]
64722#[doc = "  * Neon intrinsic unsafe"]
64723#[inline(always)]
64724#[target_feature(enable = "neon")]
64725#[cfg(not(target_arch = "arm"))]
64726#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64727#[cfg_attr(test, assert_instr(st1))]
64728pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
64729    unsafe extern "unadjusted" {
64730        #[cfg_attr(
64731            any(target_arch = "aarch64", target_arch = "arm64ec"),
64732            link_name = "llvm.aarch64.neon.st1x4.v1i64.p0"
64733        )]
64734        fn _vst1_s64_x4(a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, ptr: *mut i64);
64735    }
64736    _vst1_s64_x4(b.0, b.1, b.2, b.3, a)
64737}
64738#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64739#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)"]
64740#[doc = "## Safety"]
64741#[doc = "  * Neon intrinsic unsafe"]
64742#[inline(always)]
64743#[target_feature(enable = "neon")]
64744#[cfg(not(target_arch = "arm"))]
64745#[stable(feature = "neon_intrinsics", since = "1.59.0")]
64746#[cfg_attr(test, assert_instr(st1))]
64747pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
64748    unsafe extern "unadjusted" {
64749        #[cfg_attr(
64750            any(target_arch = "aarch64", target_arch = "arm64ec"),
64751            link_name = "llvm.aarch64.neon.st1x4.v2i64.p0"
64752        )]
64753        fn _vst1q_s64_x4(a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t, ptr: *mut i64);
64754    }
64755    _vst1q_s64_x4(b.0, b.1, b.2, b.3, a)
64756}
64757#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64758#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)"]
64759#[doc = "## Safety"]
64760#[doc = "  * Neon intrinsic unsafe"]
64761#[inline(always)]
64762#[cfg(target_arch = "arm")]
64763#[target_feature(enable = "neon,v7")]
64764#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64765#[cfg_attr(test, assert_instr(vst1))]
64766pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
64767    unsafe extern "unadjusted" {
64768        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8i8.p0")]
64769        fn _vst1_s8_x4(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t);
64770    }
64771    _vst1_s8_x4(a, b.0, b.1, b.2, b.3)
64772}
64773#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64774#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)"]
64775#[doc = "## Safety"]
64776#[doc = "  * Neon intrinsic unsafe"]
64777#[inline(always)]
64778#[cfg(target_arch = "arm")]
64779#[target_feature(enable = "neon,v7")]
64780#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64781#[cfg_attr(test, assert_instr(vst1))]
64782pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
64783    unsafe extern "unadjusted" {
64784        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v16i8.p0")]
64785        fn _vst1q_s8_x4(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t);
64786    }
64787    _vst1q_s8_x4(a, b.0, b.1, b.2, b.3)
64788}
64789#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64790#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)"]
64791#[doc = "## Safety"]
64792#[doc = "  * Neon intrinsic unsafe"]
64793#[inline(always)]
64794#[cfg(target_arch = "arm")]
64795#[target_feature(enable = "neon,v7")]
64796#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64797#[cfg_attr(test, assert_instr(vst1))]
64798pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
64799    unsafe extern "unadjusted" {
64800        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4i16.p0")]
64801        fn _vst1_s16_x4(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t);
64802    }
64803    _vst1_s16_x4(a, b.0, b.1, b.2, b.3)
64804}
64805#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)"]
64807#[doc = "## Safety"]
64808#[doc = "  * Neon intrinsic unsafe"]
64809#[inline(always)]
64810#[cfg(target_arch = "arm")]
64811#[target_feature(enable = "neon,v7")]
64812#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64813#[cfg_attr(test, assert_instr(vst1))]
64814pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
64815    unsafe extern "unadjusted" {
64816        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v8i16.p0")]
64817        fn _vst1q_s16_x4(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t);
64818    }
64819    _vst1q_s16_x4(a, b.0, b.1, b.2, b.3)
64820}
64821#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64822#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)"]
64823#[doc = "## Safety"]
64824#[doc = "  * Neon intrinsic unsafe"]
64825#[inline(always)]
64826#[cfg(target_arch = "arm")]
64827#[target_feature(enable = "neon,v7")]
64828#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64829#[cfg_attr(test, assert_instr(vst1))]
64830pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
64831    unsafe extern "unadjusted" {
64832        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2i32.p0")]
64833        fn _vst1_s32_x4(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t);
64834    }
64835    _vst1_s32_x4(a, b.0, b.1, b.2, b.3)
64836}
64837#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64838#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)"]
64839#[doc = "## Safety"]
64840#[doc = "  * Neon intrinsic unsafe"]
64841#[inline(always)]
64842#[cfg(target_arch = "arm")]
64843#[target_feature(enable = "neon,v7")]
64844#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64845#[cfg_attr(test, assert_instr(vst1))]
64846pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
64847    unsafe extern "unadjusted" {
64848        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v4i32.p0")]
64849        fn _vst1q_s32_x4(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t);
64850    }
64851    _vst1q_s32_x4(a, b.0, b.1, b.2, b.3)
64852}
64853#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)"]
64855#[doc = "## Safety"]
64856#[doc = "  * Neon intrinsic unsafe"]
64857#[inline(always)]
64858#[cfg(target_arch = "arm")]
64859#[target_feature(enable = "neon,v7")]
64860#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64861#[cfg_attr(test, assert_instr(vst1))]
64862pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
64863    unsafe extern "unadjusted" {
64864        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v1i64.p0")]
64865        fn _vst1_s64_x4(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t);
64866    }
64867    _vst1_s64_x4(a, b.0, b.1, b.2, b.3)
64868}
64869#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
64870#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)"]
64871#[doc = "## Safety"]
64872#[doc = "  * Neon intrinsic unsafe"]
64873#[inline(always)]
64874#[cfg(target_arch = "arm")]
64875#[target_feature(enable = "neon,v7")]
64876#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
64877#[cfg_attr(test, assert_instr(vst1))]
64878pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
64879    unsafe extern "unadjusted" {
64880        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0.v2i64.p0")]
64881        fn _vst1q_s64_x4(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t);
64882    }
64883    _vst1q_s64_x4(a, b.0, b.1, b.2, b.3)
64884}
64885#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64886#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x2)"]
64887#[doc = "## Safety"]
64888#[doc = "  * Neon intrinsic unsafe"]
64889#[inline(always)]
64890#[target_feature(enable = "neon")]
64891#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64892#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64893#[cfg_attr(
64894    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64895    assert_instr(st1)
64896)]
64897#[cfg_attr(
64898    not(target_arch = "arm"),
64899    stable(feature = "neon_intrinsics", since = "1.59.0")
64900)]
64901#[cfg_attr(
64902    target_arch = "arm",
64903    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64904)]
64905pub unsafe fn vst1_u8_x2(a: *mut u8, b: uint8x8x2_t) {
64906    vst1_s8_x2(transmute(a), transmute(b))
64907}
64908#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64909#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x3)"]
64910#[doc = "## Safety"]
64911#[doc = "  * Neon intrinsic unsafe"]
64912#[inline(always)]
64913#[target_feature(enable = "neon")]
64914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64916#[cfg_attr(
64917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64918    assert_instr(st1)
64919)]
64920#[cfg_attr(
64921    not(target_arch = "arm"),
64922    stable(feature = "neon_intrinsics", since = "1.59.0")
64923)]
64924#[cfg_attr(
64925    target_arch = "arm",
64926    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64927)]
64928pub unsafe fn vst1_u8_x3(a: *mut u8, b: uint8x8x3_t) {
64929    vst1_s8_x3(transmute(a), transmute(b))
64930}
64931#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x4)"]
64933#[doc = "## Safety"]
64934#[doc = "  * Neon intrinsic unsafe"]
64935#[inline(always)]
64936#[target_feature(enable = "neon")]
64937#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64938#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64939#[cfg_attr(
64940    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64941    assert_instr(st1)
64942)]
64943#[cfg_attr(
64944    not(target_arch = "arm"),
64945    stable(feature = "neon_intrinsics", since = "1.59.0")
64946)]
64947#[cfg_attr(
64948    target_arch = "arm",
64949    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64950)]
64951pub unsafe fn vst1_u8_x4(a: *mut u8, b: uint8x8x4_t) {
64952    vst1_s8_x4(transmute(a), transmute(b))
64953}
64954#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64955#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x2)"]
64956#[doc = "## Safety"]
64957#[doc = "  * Neon intrinsic unsafe"]
64958#[inline(always)]
64959#[target_feature(enable = "neon")]
64960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64962#[cfg_attr(
64963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64964    assert_instr(st1)
64965)]
64966#[cfg_attr(
64967    not(target_arch = "arm"),
64968    stable(feature = "neon_intrinsics", since = "1.59.0")
64969)]
64970#[cfg_attr(
64971    target_arch = "arm",
64972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64973)]
64974pub unsafe fn vst1q_u8_x2(a: *mut u8, b: uint8x16x2_t) {
64975    vst1q_s8_x2(transmute(a), transmute(b))
64976}
64977#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
64978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x3)"]
64979#[doc = "## Safety"]
64980#[doc = "  * Neon intrinsic unsafe"]
64981#[inline(always)]
64982#[target_feature(enable = "neon")]
64983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
64984#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
64985#[cfg_attr(
64986    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
64987    assert_instr(st1)
64988)]
64989#[cfg_attr(
64990    not(target_arch = "arm"),
64991    stable(feature = "neon_intrinsics", since = "1.59.0")
64992)]
64993#[cfg_attr(
64994    target_arch = "arm",
64995    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
64996)]
64997pub unsafe fn vst1q_u8_x3(a: *mut u8, b: uint8x16x3_t) {
64998    vst1q_s8_x3(transmute(a), transmute(b))
64999}
65000#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65001#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x4)"]
65002#[doc = "## Safety"]
65003#[doc = "  * Neon intrinsic unsafe"]
65004#[inline(always)]
65005#[target_feature(enable = "neon")]
65006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65008#[cfg_attr(
65009    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65010    assert_instr(st1)
65011)]
65012#[cfg_attr(
65013    not(target_arch = "arm"),
65014    stable(feature = "neon_intrinsics", since = "1.59.0")
65015)]
65016#[cfg_attr(
65017    target_arch = "arm",
65018    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65019)]
65020pub unsafe fn vst1q_u8_x4(a: *mut u8, b: uint8x16x4_t) {
65021    vst1q_s8_x4(transmute(a), transmute(b))
65022}
65023#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x2)"]
65025#[doc = "## Safety"]
65026#[doc = "  * Neon intrinsic unsafe"]
65027#[inline(always)]
65028#[target_feature(enable = "neon")]
65029#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65030#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65031#[cfg_attr(
65032    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65033    assert_instr(st1)
65034)]
65035#[cfg_attr(
65036    not(target_arch = "arm"),
65037    stable(feature = "neon_intrinsics", since = "1.59.0")
65038)]
65039#[cfg_attr(
65040    target_arch = "arm",
65041    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65042)]
65043pub unsafe fn vst1_u16_x2(a: *mut u16, b: uint16x4x2_t) {
65044    vst1_s16_x2(transmute(a), transmute(b))
65045}
65046#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65047#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x3)"]
65048#[doc = "## Safety"]
65049#[doc = "  * Neon intrinsic unsafe"]
65050#[inline(always)]
65051#[target_feature(enable = "neon")]
65052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65053#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65054#[cfg_attr(
65055    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65056    assert_instr(st1)
65057)]
65058#[cfg_attr(
65059    not(target_arch = "arm"),
65060    stable(feature = "neon_intrinsics", since = "1.59.0")
65061)]
65062#[cfg_attr(
65063    target_arch = "arm",
65064    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65065)]
65066pub unsafe fn vst1_u16_x3(a: *mut u16, b: uint16x4x3_t) {
65067    vst1_s16_x3(transmute(a), transmute(b))
65068}
65069#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65070#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x4)"]
65071#[doc = "## Safety"]
65072#[doc = "  * Neon intrinsic unsafe"]
65073#[inline(always)]
65074#[target_feature(enable = "neon")]
65075#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65076#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65077#[cfg_attr(
65078    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65079    assert_instr(st1)
65080)]
65081#[cfg_attr(
65082    not(target_arch = "arm"),
65083    stable(feature = "neon_intrinsics", since = "1.59.0")
65084)]
65085#[cfg_attr(
65086    target_arch = "arm",
65087    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65088)]
65089pub unsafe fn vst1_u16_x4(a: *mut u16, b: uint16x4x4_t) {
65090    vst1_s16_x4(transmute(a), transmute(b))
65091}
65092#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65093#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x2)"]
65094#[doc = "## Safety"]
65095#[doc = "  * Neon intrinsic unsafe"]
65096#[inline(always)]
65097#[target_feature(enable = "neon")]
65098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65100#[cfg_attr(
65101    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65102    assert_instr(st1)
65103)]
65104#[cfg_attr(
65105    not(target_arch = "arm"),
65106    stable(feature = "neon_intrinsics", since = "1.59.0")
65107)]
65108#[cfg_attr(
65109    target_arch = "arm",
65110    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65111)]
65112pub unsafe fn vst1q_u16_x2(a: *mut u16, b: uint16x8x2_t) {
65113    vst1q_s16_x2(transmute(a), transmute(b))
65114}
65115#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65116#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x3)"]
65117#[doc = "## Safety"]
65118#[doc = "  * Neon intrinsic unsafe"]
65119#[inline(always)]
65120#[target_feature(enable = "neon")]
65121#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65122#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65123#[cfg_attr(
65124    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65125    assert_instr(st1)
65126)]
65127#[cfg_attr(
65128    not(target_arch = "arm"),
65129    stable(feature = "neon_intrinsics", since = "1.59.0")
65130)]
65131#[cfg_attr(
65132    target_arch = "arm",
65133    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65134)]
65135pub unsafe fn vst1q_u16_x3(a: *mut u16, b: uint16x8x3_t) {
65136    vst1q_s16_x3(transmute(a), transmute(b))
65137}
65138#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65139#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x4)"]
65140#[doc = "## Safety"]
65141#[doc = "  * Neon intrinsic unsafe"]
65142#[inline(always)]
65143#[target_feature(enable = "neon")]
65144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65146#[cfg_attr(
65147    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65148    assert_instr(st1)
65149)]
65150#[cfg_attr(
65151    not(target_arch = "arm"),
65152    stable(feature = "neon_intrinsics", since = "1.59.0")
65153)]
65154#[cfg_attr(
65155    target_arch = "arm",
65156    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65157)]
65158pub unsafe fn vst1q_u16_x4(a: *mut u16, b: uint16x8x4_t) {
65159    vst1q_s16_x4(transmute(a), transmute(b))
65160}
65161#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65162#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x2)"]
65163#[doc = "## Safety"]
65164#[doc = "  * Neon intrinsic unsafe"]
65165#[inline(always)]
65166#[target_feature(enable = "neon")]
65167#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65168#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65169#[cfg_attr(
65170    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65171    assert_instr(st1)
65172)]
65173#[cfg_attr(
65174    not(target_arch = "arm"),
65175    stable(feature = "neon_intrinsics", since = "1.59.0")
65176)]
65177#[cfg_attr(
65178    target_arch = "arm",
65179    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65180)]
65181pub unsafe fn vst1_u32_x2(a: *mut u32, b: uint32x2x2_t) {
65182    vst1_s32_x2(transmute(a), transmute(b))
65183}
65184#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x3)"]
65186#[doc = "## Safety"]
65187#[doc = "  * Neon intrinsic unsafe"]
65188#[inline(always)]
65189#[target_feature(enable = "neon")]
65190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65192#[cfg_attr(
65193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65194    assert_instr(st1)
65195)]
65196#[cfg_attr(
65197    not(target_arch = "arm"),
65198    stable(feature = "neon_intrinsics", since = "1.59.0")
65199)]
65200#[cfg_attr(
65201    target_arch = "arm",
65202    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65203)]
65204pub unsafe fn vst1_u32_x3(a: *mut u32, b: uint32x2x3_t) {
65205    vst1_s32_x3(transmute(a), transmute(b))
65206}
65207#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65208#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x4)"]
65209#[doc = "## Safety"]
65210#[doc = "  * Neon intrinsic unsafe"]
65211#[inline(always)]
65212#[target_feature(enable = "neon")]
65213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65214#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65215#[cfg_attr(
65216    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65217    assert_instr(st1)
65218)]
65219#[cfg_attr(
65220    not(target_arch = "arm"),
65221    stable(feature = "neon_intrinsics", since = "1.59.0")
65222)]
65223#[cfg_attr(
65224    target_arch = "arm",
65225    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65226)]
65227pub unsafe fn vst1_u32_x4(a: *mut u32, b: uint32x2x4_t) {
65228    vst1_s32_x4(transmute(a), transmute(b))
65229}
65230#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x2)"]
65232#[doc = "## Safety"]
65233#[doc = "  * Neon intrinsic unsafe"]
65234#[inline(always)]
65235#[target_feature(enable = "neon")]
65236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65237#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65238#[cfg_attr(
65239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65240    assert_instr(st1)
65241)]
65242#[cfg_attr(
65243    not(target_arch = "arm"),
65244    stable(feature = "neon_intrinsics", since = "1.59.0")
65245)]
65246#[cfg_attr(
65247    target_arch = "arm",
65248    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65249)]
65250pub unsafe fn vst1q_u32_x2(a: *mut u32, b: uint32x4x2_t) {
65251    vst1q_s32_x2(transmute(a), transmute(b))
65252}
65253#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65254#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x3)"]
65255#[doc = "## Safety"]
65256#[doc = "  * Neon intrinsic unsafe"]
65257#[inline(always)]
65258#[target_feature(enable = "neon")]
65259#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65260#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65261#[cfg_attr(
65262    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65263    assert_instr(st1)
65264)]
65265#[cfg_attr(
65266    not(target_arch = "arm"),
65267    stable(feature = "neon_intrinsics", since = "1.59.0")
65268)]
65269#[cfg_attr(
65270    target_arch = "arm",
65271    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65272)]
65273pub unsafe fn vst1q_u32_x3(a: *mut u32, b: uint32x4x3_t) {
65274    vst1q_s32_x3(transmute(a), transmute(b))
65275}
65276#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65277#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x4)"]
65278#[doc = "## Safety"]
65279#[doc = "  * Neon intrinsic unsafe"]
65280#[inline(always)]
65281#[target_feature(enable = "neon")]
65282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65284#[cfg_attr(
65285    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65286    assert_instr(st1)
65287)]
65288#[cfg_attr(
65289    not(target_arch = "arm"),
65290    stable(feature = "neon_intrinsics", since = "1.59.0")
65291)]
65292#[cfg_attr(
65293    target_arch = "arm",
65294    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65295)]
65296pub unsafe fn vst1q_u32_x4(a: *mut u32, b: uint32x4x4_t) {
65297    vst1q_s32_x4(transmute(a), transmute(b))
65298}
65299#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x2)"]
65301#[doc = "## Safety"]
65302#[doc = "  * Neon intrinsic unsafe"]
65303#[inline(always)]
65304#[target_feature(enable = "neon")]
65305#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65306#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65307#[cfg_attr(
65308    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65309    assert_instr(st1)
65310)]
65311#[cfg_attr(
65312    not(target_arch = "arm"),
65313    stable(feature = "neon_intrinsics", since = "1.59.0")
65314)]
65315#[cfg_attr(
65316    target_arch = "arm",
65317    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65318)]
65319pub unsafe fn vst1_u64_x2(a: *mut u64, b: uint64x1x2_t) {
65320    vst1_s64_x2(transmute(a), transmute(b))
65321}
65322#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x3)"]
65324#[doc = "## Safety"]
65325#[doc = "  * Neon intrinsic unsafe"]
65326#[inline(always)]
65327#[target_feature(enable = "neon")]
65328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65329#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65330#[cfg_attr(
65331    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65332    assert_instr(st1)
65333)]
65334#[cfg_attr(
65335    not(target_arch = "arm"),
65336    stable(feature = "neon_intrinsics", since = "1.59.0")
65337)]
65338#[cfg_attr(
65339    target_arch = "arm",
65340    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65341)]
65342pub unsafe fn vst1_u64_x3(a: *mut u64, b: uint64x1x3_t) {
65343    vst1_s64_x3(transmute(a), transmute(b))
65344}
65345#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x4)"]
65347#[doc = "## Safety"]
65348#[doc = "  * Neon intrinsic unsafe"]
65349#[inline(always)]
65350#[target_feature(enable = "neon")]
65351#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65352#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65353#[cfg_attr(
65354    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65355    assert_instr(st1)
65356)]
65357#[cfg_attr(
65358    not(target_arch = "arm"),
65359    stable(feature = "neon_intrinsics", since = "1.59.0")
65360)]
65361#[cfg_attr(
65362    target_arch = "arm",
65363    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65364)]
65365pub unsafe fn vst1_u64_x4(a: *mut u64, b: uint64x1x4_t) {
65366    vst1_s64_x4(transmute(a), transmute(b))
65367}
65368#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x2)"]
65370#[doc = "## Safety"]
65371#[doc = "  * Neon intrinsic unsafe"]
65372#[inline(always)]
65373#[target_feature(enable = "neon")]
65374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65376#[cfg_attr(
65377    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65378    assert_instr(st1)
65379)]
65380#[cfg_attr(
65381    not(target_arch = "arm"),
65382    stable(feature = "neon_intrinsics", since = "1.59.0")
65383)]
65384#[cfg_attr(
65385    target_arch = "arm",
65386    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65387)]
65388pub unsafe fn vst1q_u64_x2(a: *mut u64, b: uint64x2x2_t) {
65389    vst1q_s64_x2(transmute(a), transmute(b))
65390}
65391#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65392#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x3)"]
65393#[doc = "## Safety"]
65394#[doc = "  * Neon intrinsic unsafe"]
65395#[inline(always)]
65396#[target_feature(enable = "neon")]
65397#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65398#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65399#[cfg_attr(
65400    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65401    assert_instr(st1)
65402)]
65403#[cfg_attr(
65404    not(target_arch = "arm"),
65405    stable(feature = "neon_intrinsics", since = "1.59.0")
65406)]
65407#[cfg_attr(
65408    target_arch = "arm",
65409    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65410)]
65411pub unsafe fn vst1q_u64_x3(a: *mut u64, b: uint64x2x3_t) {
65412    vst1q_s64_x3(transmute(a), transmute(b))
65413}
65414#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65415#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x4)"]
65416#[doc = "## Safety"]
65417#[doc = "  * Neon intrinsic unsafe"]
65418#[inline(always)]
65419#[target_feature(enable = "neon")]
65420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65422#[cfg_attr(
65423    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65424    assert_instr(st1)
65425)]
65426#[cfg_attr(
65427    not(target_arch = "arm"),
65428    stable(feature = "neon_intrinsics", since = "1.59.0")
65429)]
65430#[cfg_attr(
65431    target_arch = "arm",
65432    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65433)]
65434pub unsafe fn vst1q_u64_x4(a: *mut u64, b: uint64x2x4_t) {
65435    vst1q_s64_x4(transmute(a), transmute(b))
65436}
65437#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65438#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x2)"]
65439#[doc = "## Safety"]
65440#[doc = "  * Neon intrinsic unsafe"]
65441#[inline(always)]
65442#[target_feature(enable = "neon")]
65443#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65444#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65445#[cfg_attr(
65446    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65447    assert_instr(st1)
65448)]
65449#[cfg_attr(
65450    not(target_arch = "arm"),
65451    stable(feature = "neon_intrinsics", since = "1.59.0")
65452)]
65453#[cfg_attr(
65454    target_arch = "arm",
65455    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65456)]
65457pub unsafe fn vst1_p8_x2(a: *mut p8, b: poly8x8x2_t) {
65458    vst1_s8_x2(transmute(a), transmute(b))
65459}
65460#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65461#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x3)"]
65462#[doc = "## Safety"]
65463#[doc = "  * Neon intrinsic unsafe"]
65464#[inline(always)]
65465#[target_feature(enable = "neon")]
65466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65467#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65468#[cfg_attr(
65469    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65470    assert_instr(st1)
65471)]
65472#[cfg_attr(
65473    not(target_arch = "arm"),
65474    stable(feature = "neon_intrinsics", since = "1.59.0")
65475)]
65476#[cfg_attr(
65477    target_arch = "arm",
65478    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65479)]
65480pub unsafe fn vst1_p8_x3(a: *mut p8, b: poly8x8x3_t) {
65481    vst1_s8_x3(transmute(a), transmute(b))
65482}
65483#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65484#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x4)"]
65485#[doc = "## Safety"]
65486#[doc = "  * Neon intrinsic unsafe"]
65487#[inline(always)]
65488#[target_feature(enable = "neon")]
65489#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65490#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65491#[cfg_attr(
65492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65493    assert_instr(st1)
65494)]
65495#[cfg_attr(
65496    not(target_arch = "arm"),
65497    stable(feature = "neon_intrinsics", since = "1.59.0")
65498)]
65499#[cfg_attr(
65500    target_arch = "arm",
65501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65502)]
65503pub unsafe fn vst1_p8_x4(a: *mut p8, b: poly8x8x4_t) {
65504    vst1_s8_x4(transmute(a), transmute(b))
65505}
65506#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x2)"]
65508#[doc = "## Safety"]
65509#[doc = "  * Neon intrinsic unsafe"]
65510#[inline(always)]
65511#[target_feature(enable = "neon")]
65512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65514#[cfg_attr(
65515    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65516    assert_instr(st1)
65517)]
65518#[cfg_attr(
65519    not(target_arch = "arm"),
65520    stable(feature = "neon_intrinsics", since = "1.59.0")
65521)]
65522#[cfg_attr(
65523    target_arch = "arm",
65524    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65525)]
65526pub unsafe fn vst1q_p8_x2(a: *mut p8, b: poly8x16x2_t) {
65527    vst1q_s8_x2(transmute(a), transmute(b))
65528}
65529#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x3)"]
65531#[doc = "## Safety"]
65532#[doc = "  * Neon intrinsic unsafe"]
65533#[inline(always)]
65534#[target_feature(enable = "neon")]
65535#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65536#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65537#[cfg_attr(
65538    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65539    assert_instr(st1)
65540)]
65541#[cfg_attr(
65542    not(target_arch = "arm"),
65543    stable(feature = "neon_intrinsics", since = "1.59.0")
65544)]
65545#[cfg_attr(
65546    target_arch = "arm",
65547    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65548)]
65549pub unsafe fn vst1q_p8_x3(a: *mut p8, b: poly8x16x3_t) {
65550    vst1q_s8_x3(transmute(a), transmute(b))
65551}
65552#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65553#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x4)"]
65554#[doc = "## Safety"]
65555#[doc = "  * Neon intrinsic unsafe"]
65556#[inline(always)]
65557#[target_feature(enable = "neon")]
65558#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65559#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65560#[cfg_attr(
65561    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65562    assert_instr(st1)
65563)]
65564#[cfg_attr(
65565    not(target_arch = "arm"),
65566    stable(feature = "neon_intrinsics", since = "1.59.0")
65567)]
65568#[cfg_attr(
65569    target_arch = "arm",
65570    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65571)]
65572pub unsafe fn vst1q_p8_x4(a: *mut p8, b: poly8x16x4_t) {
65573    vst1q_s8_x4(transmute(a), transmute(b))
65574}
65575#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65576#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x2)"]
65577#[doc = "## Safety"]
65578#[doc = "  * Neon intrinsic unsafe"]
65579#[inline(always)]
65580#[target_feature(enable = "neon")]
65581#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65582#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65583#[cfg_attr(
65584    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65585    assert_instr(st1)
65586)]
65587#[cfg_attr(
65588    not(target_arch = "arm"),
65589    stable(feature = "neon_intrinsics", since = "1.59.0")
65590)]
65591#[cfg_attr(
65592    target_arch = "arm",
65593    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65594)]
65595pub unsafe fn vst1_p16_x2(a: *mut p16, b: poly16x4x2_t) {
65596    vst1_s16_x2(transmute(a), transmute(b))
65597}
65598#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x3)"]
65600#[doc = "## Safety"]
65601#[doc = "  * Neon intrinsic unsafe"]
65602#[inline(always)]
65603#[target_feature(enable = "neon")]
65604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65605#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65606#[cfg_attr(
65607    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65608    assert_instr(st1)
65609)]
65610#[cfg_attr(
65611    not(target_arch = "arm"),
65612    stable(feature = "neon_intrinsics", since = "1.59.0")
65613)]
65614#[cfg_attr(
65615    target_arch = "arm",
65616    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65617)]
65618pub unsafe fn vst1_p16_x3(a: *mut p16, b: poly16x4x3_t) {
65619    vst1_s16_x3(transmute(a), transmute(b))
65620}
65621#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x4)"]
65623#[doc = "## Safety"]
65624#[doc = "  * Neon intrinsic unsafe"]
65625#[inline(always)]
65626#[target_feature(enable = "neon")]
65627#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65628#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65629#[cfg_attr(
65630    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65631    assert_instr(st1)
65632)]
65633#[cfg_attr(
65634    not(target_arch = "arm"),
65635    stable(feature = "neon_intrinsics", since = "1.59.0")
65636)]
65637#[cfg_attr(
65638    target_arch = "arm",
65639    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65640)]
65641pub unsafe fn vst1_p16_x4(a: *mut p16, b: poly16x4x4_t) {
65642    vst1_s16_x4(transmute(a), transmute(b))
65643}
65644#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65645#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x2)"]
65646#[doc = "## Safety"]
65647#[doc = "  * Neon intrinsic unsafe"]
65648#[inline(always)]
65649#[target_feature(enable = "neon")]
65650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65651#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65652#[cfg_attr(
65653    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65654    assert_instr(st1)
65655)]
65656#[cfg_attr(
65657    not(target_arch = "arm"),
65658    stable(feature = "neon_intrinsics", since = "1.59.0")
65659)]
65660#[cfg_attr(
65661    target_arch = "arm",
65662    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65663)]
65664pub unsafe fn vst1q_p16_x2(a: *mut p16, b: poly16x8x2_t) {
65665    vst1q_s16_x2(transmute(a), transmute(b))
65666}
65667#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x3)"]
65669#[doc = "## Safety"]
65670#[doc = "  * Neon intrinsic unsafe"]
65671#[inline(always)]
65672#[target_feature(enable = "neon")]
65673#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65674#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65675#[cfg_attr(
65676    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65677    assert_instr(st1)
65678)]
65679#[cfg_attr(
65680    not(target_arch = "arm"),
65681    stable(feature = "neon_intrinsics", since = "1.59.0")
65682)]
65683#[cfg_attr(
65684    target_arch = "arm",
65685    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65686)]
65687pub unsafe fn vst1q_p16_x3(a: *mut p16, b: poly16x8x3_t) {
65688    vst1q_s16_x3(transmute(a), transmute(b))
65689}
65690#[doc = "Store multiple single-element structures to one, two, three, or four registers"]
65691#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x4)"]
65692#[doc = "## Safety"]
65693#[doc = "  * Neon intrinsic unsafe"]
65694#[inline(always)]
65695#[target_feature(enable = "neon")]
65696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
65698#[cfg_attr(
65699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65700    assert_instr(st1)
65701)]
65702#[cfg_attr(
65703    not(target_arch = "arm"),
65704    stable(feature = "neon_intrinsics", since = "1.59.0")
65705)]
65706#[cfg_attr(
65707    target_arch = "arm",
65708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65709)]
65710pub unsafe fn vst1q_p16_x4(a: *mut p16, b: poly16x8x4_t) {
65711    vst1q_s16_x4(transmute(a), transmute(b))
65712}
65713#[inline(always)]
65714#[target_feature(enable = "neon")]
65715#[cfg(target_arch = "arm")]
65716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65717#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65718#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64", ALIGN = 0))]
65719#[rustc_legacy_const_generics(2)]
65720unsafe fn vst1_v1i64<const ALIGN: i32>(addr: *const i8, val: int64x1_t) {
65721    unsafe extern "unadjusted" {
65722        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v1i64.p0")]
65723        fn _vst1_v1i64(addr: *const i8, val: int64x1_t, align: i32);
65724    }
65725    _vst1_v1i64(addr, val, ALIGN)
65726}
65727#[inline(always)]
65728#[target_feature(enable = "neon")]
65729#[cfg(target_arch = "arm")]
65730#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65731#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65732#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
65733#[rustc_legacy_const_generics(2)]
65734unsafe fn vst1_v2f32<const ALIGN: i32>(addr: *const i8, val: float32x2_t) {
65735    unsafe extern "unadjusted" {
65736        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2f32.p0")]
65737        fn _vst1_v2f32(addr: *const i8, val: float32x2_t, align: i32);
65738    }
65739    _vst1_v2f32(addr, val, ALIGN)
65740}
65741#[inline(always)]
65742#[target_feature(enable = "neon")]
65743#[cfg(target_arch = "arm")]
65744#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65745#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65746#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
65747#[rustc_legacy_const_generics(2)]
65748unsafe fn vst1_v2i32<const ALIGN: i32>(addr: *const i8, val: int32x2_t) {
65749    unsafe extern "unadjusted" {
65750        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2i32.p0")]
65751        fn _vst1_v2i32(addr: *const i8, val: int32x2_t, align: i32);
65752    }
65753    _vst1_v2i32(addr, val, ALIGN)
65754}
65755#[inline(always)]
65756#[target_feature(enable = "neon")]
65757#[cfg(target_arch = "arm")]
65758#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65759#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65760#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16", ALIGN = 0))]
65761#[rustc_legacy_const_generics(2)]
65762unsafe fn vst1_v4i16<const ALIGN: i32>(addr: *const i8, val: int16x4_t) {
65763    unsafe extern "unadjusted" {
65764        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4i16.p0")]
65765        fn _vst1_v4i16(addr: *const i8, val: int16x4_t, align: i32);
65766    }
65767    _vst1_v4i16(addr, val, ALIGN)
65768}
65769#[inline(always)]
65770#[target_feature(enable = "neon")]
65771#[cfg(target_arch = "arm")]
65772#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65773#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65774#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8", ALIGN = 0))]
65775#[rustc_legacy_const_generics(2)]
65776unsafe fn vst1_v8i8<const ALIGN: i32>(addr: *const i8, val: int8x8_t) {
65777    unsafe extern "unadjusted" {
65778        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8i8.p0")]
65779        fn _vst1_v8i8(addr: *const i8, val: int8x8_t, align: i32);
65780    }
65781    _vst1_v8i8(addr, val, ALIGN)
65782}
65783#[inline(always)]
65784#[target_feature(enable = "neon")]
65785#[cfg(target_arch = "arm")]
65786#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65787#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65788#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.8", ALIGN = 0))]
65789#[rustc_legacy_const_generics(2)]
65790unsafe fn vst1q_v16i8<const ALIGN: i32>(addr: *const i8, val: int8x16_t) {
65791    unsafe extern "unadjusted" {
65792        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v16i8.p0")]
65793        fn _vst1q_v16i8(addr: *const i8, val: int8x16_t, align: i32);
65794    }
65795    _vst1q_v16i8(addr, val, ALIGN)
65796}
65797#[inline(always)]
65798#[target_feature(enable = "neon")]
65799#[cfg(target_arch = "arm")]
65800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65801#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65802#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.64", ALIGN = 0))]
65803#[rustc_legacy_const_generics(2)]
65804unsafe fn vst1q_v2i64<const ALIGN: i32>(addr: *const i8, val: int64x2_t) {
65805    unsafe extern "unadjusted" {
65806        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v2i64.p0")]
65807        fn _vst1q_v2i64(addr: *const i8, val: int64x2_t, align: i32);
65808    }
65809    _vst1q_v2i64(addr, val, ALIGN)
65810}
65811#[inline(always)]
65812#[target_feature(enable = "neon")]
65813#[cfg(target_arch = "arm")]
65814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65815#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65816#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
65817#[rustc_legacy_const_generics(2)]
65818unsafe fn vst1q_v4f32<const ALIGN: i32>(addr: *const i8, val: float32x4_t) {
65819    unsafe extern "unadjusted" {
65820        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4f32.p0")]
65821        fn _vst1q_v4f32(addr: *const i8, val: float32x4_t, align: i32);
65822    }
65823    _vst1q_v4f32(addr, val, ALIGN)
65824}
65825#[inline(always)]
65826#[target_feature(enable = "neon")]
65827#[cfg(target_arch = "arm")]
65828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65829#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65830#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.32", ALIGN = 0))]
65831#[rustc_legacy_const_generics(2)]
65832unsafe fn vst1q_v4i32<const ALIGN: i32>(addr: *const i8, val: int32x4_t) {
65833    unsafe extern "unadjusted" {
65834        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4i32.p0")]
65835        fn _vst1q_v4i32(addr: *const i8, val: int32x4_t, align: i32);
65836    }
65837    _vst1q_v4i32(addr, val, ALIGN)
65838}
65839#[inline(always)]
65840#[target_feature(enable = "neon")]
65841#[cfg(target_arch = "arm")]
65842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65843#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65844#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16", ALIGN = 0))]
65845#[rustc_legacy_const_generics(2)]
65846unsafe fn vst1q_v8i16<const ALIGN: i32>(addr: *const i8, val: int16x8_t) {
65847    unsafe extern "unadjusted" {
65848        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8i16.p0")]
65849        fn _vst1q_v8i16(addr: *const i8, val: int16x8_t, align: i32);
65850    }
65851    _vst1q_v8i16(addr, val, ALIGN)
65852}
65853#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65854#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_v4f16)"]
65855#[doc = "## Safety"]
65856#[doc = "  * Neon intrinsic unsafe"]
65857#[inline(always)]
65858#[cfg(target_arch = "arm")]
65859#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65860#[target_feature(enable = "neon,fp16")]
65861#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65862#[cfg(not(target_arch = "arm64ec"))]
65863#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65864unsafe fn vst1_v4f16(addr: *const i8, val: float16x4_t, align: i32) {
65865    unsafe extern "unadjusted" {
65866        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v4f16.p0")]
65867        fn _vst1_v4f16(addr: *const i8, val: float16x4_t, align: i32);
65868    }
65869    _vst1_v4f16(addr, val, align)
65870}
65871#[doc = "Store multiple single-element structures from one, two, three, or four registers."]
65872#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_v8f16)"]
65873#[doc = "## Safety"]
65874#[doc = "  * Neon intrinsic unsafe"]
65875#[inline(always)]
65876#[cfg(target_arch = "arm")]
65877#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65878#[target_feature(enable = "neon,fp16")]
65879#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
65880#[cfg(not(target_arch = "arm64ec"))]
65881#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vst1.16"))]
65882unsafe fn vst1q_v8f16(addr: *const i8, val: float16x8_t, align: i32) {
65883    unsafe extern "unadjusted" {
65884        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1.v8f16.p0")]
65885        fn _vst1q_v8f16(addr: *const i8, val: float16x8_t, align: i32);
65886    }
65887    _vst1q_v8f16(addr, val, align)
65888}
65889#[doc = "Store multiple single-element structures from one, two, three, or four registers"]
65890#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p64)"]
65891#[doc = "## Safety"]
65892#[doc = "  * Neon intrinsic unsafe"]
65893#[inline(always)]
65894#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
65895#[target_feature(enable = "neon,aes")]
65896#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
65897#[cfg_attr(
65898    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
65899    assert_instr(nop, LANE = 0)
65900)]
65901#[rustc_legacy_const_generics(2)]
65902#[cfg_attr(
65903    not(target_arch = "arm"),
65904    stable(feature = "neon_intrinsics", since = "1.59.0")
65905)]
65906#[cfg_attr(
65907    target_arch = "arm",
65908    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
65909)]
65910pub unsafe fn vst1q_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x2_t) {
65911    static_assert_uimm_bits!(LANE, 1);
65912    *a = simd_extract!(b, LANE as u32);
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_f16)"]
65916#[doc = "## Safety"]
65917#[doc = "  * Neon intrinsic unsafe"]
65918#[inline(always)]
65919#[target_feature(enable = "neon")]
65920#[cfg(not(target_arch = "arm"))]
65921#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65922#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65923#[cfg(not(target_arch = "arm64ec"))]
65924#[cfg_attr(test, assert_instr(st2))]
65925pub unsafe fn vst2_f16(a: *mut f16, b: float16x4x2_t) {
65926    unsafe extern "unadjusted" {
65927        #[cfg_attr(
65928            any(target_arch = "aarch64", target_arch = "arm64ec"),
65929            link_name = "llvm.aarch64.neon.st2.v4f16.p0"
65930        )]
65931        fn _vst2_f16(a: float16x4_t, b: float16x4_t, ptr: *mut i8);
65932    }
65933    _vst2_f16(b.0, b.1, a as _)
65934}
65935#[doc = "Store multiple 2-element structures from two registers"]
65936#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f16)"]
65937#[doc = "## Safety"]
65938#[doc = "  * Neon intrinsic unsafe"]
65939#[inline(always)]
65940#[target_feature(enable = "neon")]
65941#[cfg(not(target_arch = "arm"))]
65942#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65943#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65944#[cfg(not(target_arch = "arm64ec"))]
65945#[cfg_attr(test, assert_instr(st2))]
65946pub unsafe fn vst2q_f16(a: *mut f16, b: float16x8x2_t) {
65947    unsafe extern "unadjusted" {
65948        #[cfg_attr(
65949            any(target_arch = "aarch64", target_arch = "arm64ec"),
65950            link_name = "llvm.aarch64.neon.st2.v8f16.p0"
65951        )]
65952        fn _vst2q_f16(a: float16x8_t, b: float16x8_t, ptr: *mut i8);
65953    }
65954    _vst2q_f16(b.0, b.1, a as _)
65955}
65956#[doc = "Store multiple 2-element structures from two registers"]
65957#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f16)"]
65958#[doc = "## Safety"]
65959#[doc = "  * Neon intrinsic unsafe"]
65960#[inline(always)]
65961#[target_feature(enable = "neon")]
65962#[cfg(target_arch = "arm")]
65963#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65964#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65965#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65966#[cfg(not(target_arch = "arm64ec"))]
65967#[cfg_attr(test, assert_instr(vst2))]
65968pub unsafe fn vst2_f16(a: *mut f16, b: float16x4x2_t) {
65969    unsafe extern "unadjusted" {
65970        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0.v4f16")]
65971        fn _vst2_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, size: i32);
65972    }
65973    _vst2_f16(a as _, b.0, b.1, 2)
65974}
65975#[doc = "Store multiple 2-element structures from two registers"]
65976#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f16)"]
65977#[doc = "## Safety"]
65978#[doc = "  * Neon intrinsic unsafe"]
65979#[inline(always)]
65980#[target_feature(enable = "neon")]
65981#[cfg(target_arch = "arm")]
65982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
65983#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
65984#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
65985#[cfg(not(target_arch = "arm64ec"))]
65986#[cfg_attr(test, assert_instr(vst2))]
65987pub unsafe fn vst2q_f16(a: *mut f16, b: float16x8x2_t) {
65988    unsafe extern "unadjusted" {
65989        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0.v8f16")]
65990        fn _vst2q_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, size: i32);
65991    }
65992    _vst2q_f16(a as _, b.0, b.1, 2)
65993}
65994#[doc = "Store multiple 2-element structures from two registers"]
65995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)"]
65996#[doc = "## Safety"]
65997#[doc = "  * Neon intrinsic unsafe"]
65998#[inline(always)]
65999#[target_feature(enable = "neon")]
66000#[cfg(not(target_arch = "arm"))]
66001#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66002#[cfg_attr(test, assert_instr(st2))]
66003pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
66004    unsafe extern "unadjusted" {
66005        #[cfg_attr(
66006            any(target_arch = "aarch64", target_arch = "arm64ec"),
66007            link_name = "llvm.aarch64.neon.st2.v2f32.p0"
66008        )]
66009        fn _vst2_f32(a: float32x2_t, b: float32x2_t, ptr: *mut i8);
66010    }
66011    _vst2_f32(b.0, b.1, a as _)
66012}
66013#[doc = "Store multiple 2-element structures from two registers"]
66014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)"]
66015#[doc = "## Safety"]
66016#[doc = "  * Neon intrinsic unsafe"]
66017#[inline(always)]
66018#[target_feature(enable = "neon")]
66019#[cfg(not(target_arch = "arm"))]
66020#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66021#[cfg_attr(test, assert_instr(st2))]
66022pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
66023    unsafe extern "unadjusted" {
66024        #[cfg_attr(
66025            any(target_arch = "aarch64", target_arch = "arm64ec"),
66026            link_name = "llvm.aarch64.neon.st2.v4f32.p0"
66027        )]
66028        fn _vst2q_f32(a: float32x4_t, b: float32x4_t, ptr: *mut i8);
66029    }
66030    _vst2q_f32(b.0, b.1, a as _)
66031}
66032#[doc = "Store multiple 2-element structures from two registers"]
66033#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)"]
66034#[doc = "## Safety"]
66035#[doc = "  * Neon intrinsic unsafe"]
66036#[inline(always)]
66037#[target_feature(enable = "neon")]
66038#[cfg(not(target_arch = "arm"))]
66039#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66040#[cfg_attr(test, assert_instr(st2))]
66041pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
66042    unsafe extern "unadjusted" {
66043        #[cfg_attr(
66044            any(target_arch = "aarch64", target_arch = "arm64ec"),
66045            link_name = "llvm.aarch64.neon.st2.v8i8.p0"
66046        )]
66047        fn _vst2_s8(a: int8x8_t, b: int8x8_t, ptr: *mut i8);
66048    }
66049    _vst2_s8(b.0, b.1, a as _)
66050}
66051#[doc = "Store multiple 2-element structures from two registers"]
66052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)"]
66053#[doc = "## Safety"]
66054#[doc = "  * Neon intrinsic unsafe"]
66055#[inline(always)]
66056#[target_feature(enable = "neon")]
66057#[cfg(not(target_arch = "arm"))]
66058#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66059#[cfg_attr(test, assert_instr(st2))]
66060pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
66061    unsafe extern "unadjusted" {
66062        #[cfg_attr(
66063            any(target_arch = "aarch64", target_arch = "arm64ec"),
66064            link_name = "llvm.aarch64.neon.st2.v16i8.p0"
66065        )]
66066        fn _vst2q_s8(a: int8x16_t, b: int8x16_t, ptr: *mut i8);
66067    }
66068    _vst2q_s8(b.0, b.1, a as _)
66069}
66070#[doc = "Store multiple 2-element structures from two registers"]
66071#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)"]
66072#[doc = "## Safety"]
66073#[doc = "  * Neon intrinsic unsafe"]
66074#[inline(always)]
66075#[target_feature(enable = "neon")]
66076#[cfg(not(target_arch = "arm"))]
66077#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66078#[cfg_attr(test, assert_instr(st2))]
66079pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
66080    unsafe extern "unadjusted" {
66081        #[cfg_attr(
66082            any(target_arch = "aarch64", target_arch = "arm64ec"),
66083            link_name = "llvm.aarch64.neon.st2.v4i16.p0"
66084        )]
66085        fn _vst2_s16(a: int16x4_t, b: int16x4_t, ptr: *mut i8);
66086    }
66087    _vst2_s16(b.0, b.1, a as _)
66088}
66089#[doc = "Store multiple 2-element structures from two registers"]
66090#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)"]
66091#[doc = "## Safety"]
66092#[doc = "  * Neon intrinsic unsafe"]
66093#[inline(always)]
66094#[target_feature(enable = "neon")]
66095#[cfg(not(target_arch = "arm"))]
66096#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66097#[cfg_attr(test, assert_instr(st2))]
66098pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
66099    unsafe extern "unadjusted" {
66100        #[cfg_attr(
66101            any(target_arch = "aarch64", target_arch = "arm64ec"),
66102            link_name = "llvm.aarch64.neon.st2.v8i16.p0"
66103        )]
66104        fn _vst2q_s16(a: int16x8_t, b: int16x8_t, ptr: *mut i8);
66105    }
66106    _vst2q_s16(b.0, b.1, a as _)
66107}
66108#[doc = "Store multiple 2-element structures from two registers"]
66109#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)"]
66110#[doc = "## Safety"]
66111#[doc = "  * Neon intrinsic unsafe"]
66112#[inline(always)]
66113#[target_feature(enable = "neon")]
66114#[cfg(not(target_arch = "arm"))]
66115#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66116#[cfg_attr(test, assert_instr(st2))]
66117pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
66118    unsafe extern "unadjusted" {
66119        #[cfg_attr(
66120            any(target_arch = "aarch64", target_arch = "arm64ec"),
66121            link_name = "llvm.aarch64.neon.st2.v2i32.p0"
66122        )]
66123        fn _vst2_s32(a: int32x2_t, b: int32x2_t, ptr: *mut i8);
66124    }
66125    _vst2_s32(b.0, b.1, a as _)
66126}
66127#[doc = "Store multiple 2-element structures from two registers"]
66128#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)"]
66129#[doc = "## Safety"]
66130#[doc = "  * Neon intrinsic unsafe"]
66131#[inline(always)]
66132#[target_feature(enable = "neon")]
66133#[cfg(not(target_arch = "arm"))]
66134#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66135#[cfg_attr(test, assert_instr(st2))]
66136pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
66137    unsafe extern "unadjusted" {
66138        #[cfg_attr(
66139            any(target_arch = "aarch64", target_arch = "arm64ec"),
66140            link_name = "llvm.aarch64.neon.st2.v4i32.p0"
66141        )]
66142        fn _vst2q_s32(a: int32x4_t, b: int32x4_t, ptr: *mut i8);
66143    }
66144    _vst2q_s32(b.0, b.1, a as _)
66145}
66146#[doc = "Store multiple 2-element structures from two registers"]
66147#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)"]
66148#[doc = "## Safety"]
66149#[doc = "  * Neon intrinsic unsafe"]
66150#[inline(always)]
66151#[cfg(target_arch = "arm")]
66152#[target_feature(enable = "neon,v7")]
66153#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66154#[cfg_attr(test, assert_instr(vst2))]
66155pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
66156    unsafe extern "unadjusted" {
66157        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v2f32.p0")]
66158        fn _vst2_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, size: i32);
66159    }
66160    _vst2_f32(a as _, b.0, b.1, 4)
66161}
66162#[doc = "Store multiple 2-element structures from two registers"]
66163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)"]
66164#[doc = "## Safety"]
66165#[doc = "  * Neon intrinsic unsafe"]
66166#[inline(always)]
66167#[cfg(target_arch = "arm")]
66168#[target_feature(enable = "neon,v7")]
66169#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66170#[cfg_attr(test, assert_instr(vst2))]
66171pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
66172    unsafe extern "unadjusted" {
66173        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4f32.p0")]
66174        fn _vst2q_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, size: i32);
66175    }
66176    _vst2q_f32(a as _, b.0, b.1, 4)
66177}
66178#[doc = "Store multiple 2-element structures from two registers"]
66179#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)"]
66180#[doc = "## Safety"]
66181#[doc = "  * Neon intrinsic unsafe"]
66182#[inline(always)]
66183#[cfg(target_arch = "arm")]
66184#[target_feature(enable = "neon,v7")]
66185#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66186#[cfg_attr(test, assert_instr(vst2))]
66187pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
66188    unsafe extern "unadjusted" {
66189        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v8i8.p0")]
66190        fn _vst2_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, size: i32);
66191    }
66192    _vst2_s8(a as _, b.0, b.1, 1)
66193}
66194#[doc = "Store multiple 2-element structures from two registers"]
66195#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)"]
66196#[doc = "## Safety"]
66197#[doc = "  * Neon intrinsic unsafe"]
66198#[inline(always)]
66199#[cfg(target_arch = "arm")]
66200#[target_feature(enable = "neon,v7")]
66201#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66202#[cfg_attr(test, assert_instr(vst2))]
66203pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
66204    unsafe extern "unadjusted" {
66205        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v16i8.p0")]
66206        fn _vst2q_s8(ptr: *mut i8, a: int8x16_t, b: int8x16_t, size: i32);
66207    }
66208    _vst2q_s8(a as _, b.0, b.1, 1)
66209}
66210#[doc = "Store multiple 2-element structures from two registers"]
66211#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)"]
66212#[doc = "## Safety"]
66213#[doc = "  * Neon intrinsic unsafe"]
66214#[inline(always)]
66215#[cfg(target_arch = "arm")]
66216#[target_feature(enable = "neon,v7")]
66217#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66218#[cfg_attr(test, assert_instr(vst2))]
66219pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
66220    unsafe extern "unadjusted" {
66221        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4i16.p0")]
66222        fn _vst2_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, size: i32);
66223    }
66224    _vst2_s16(a as _, b.0, b.1, 2)
66225}
66226#[doc = "Store multiple 2-element structures from two registers"]
66227#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)"]
66228#[doc = "## Safety"]
66229#[doc = "  * Neon intrinsic unsafe"]
66230#[inline(always)]
66231#[cfg(target_arch = "arm")]
66232#[target_feature(enable = "neon,v7")]
66233#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66234#[cfg_attr(test, assert_instr(vst2))]
66235pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
66236    unsafe extern "unadjusted" {
66237        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v8i16.p0")]
66238        fn _vst2q_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, size: i32);
66239    }
66240    _vst2q_s16(a as _, b.0, b.1, 2)
66241}
66242#[doc = "Store multiple 2-element structures from two registers"]
66243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)"]
66244#[doc = "## Safety"]
66245#[doc = "  * Neon intrinsic unsafe"]
66246#[inline(always)]
66247#[cfg(target_arch = "arm")]
66248#[target_feature(enable = "neon,v7")]
66249#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66250#[cfg_attr(test, assert_instr(vst2))]
66251pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
66252    unsafe extern "unadjusted" {
66253        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v2i32.p0")]
66254        fn _vst2_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, size: i32);
66255    }
66256    _vst2_s32(a as _, b.0, b.1, 4)
66257}
66258#[doc = "Store multiple 2-element structures from two registers"]
66259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)"]
66260#[doc = "## Safety"]
66261#[doc = "  * Neon intrinsic unsafe"]
66262#[inline(always)]
66263#[cfg(target_arch = "arm")]
66264#[target_feature(enable = "neon,v7")]
66265#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66266#[cfg_attr(test, assert_instr(vst2))]
66267pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
66268    unsafe extern "unadjusted" {
66269        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v4i32.p0")]
66270        fn _vst2q_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, size: i32);
66271    }
66272    _vst2q_s32(a as _, b.0, b.1, 4)
66273}
66274#[doc = "Store multiple 2-element structures from two registers"]
66275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f16)"]
66276#[doc = "## Safety"]
66277#[doc = "  * Neon intrinsic unsafe"]
66278#[inline(always)]
66279#[target_feature(enable = "neon")]
66280#[cfg(not(target_arch = "arm"))]
66281#[rustc_legacy_const_generics(2)]
66282#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66283#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
66284#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66285#[cfg(not(target_arch = "arm64ec"))]
66286pub unsafe fn vst2_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x2_t) {
66287    static_assert_uimm_bits!(LANE, 2);
66288    unsafe extern "unadjusted" {
66289        #[cfg_attr(
66290            any(target_arch = "aarch64", target_arch = "arm64ec"),
66291            link_name = "llvm.aarch64.neon.st2lane.v4f16.p0"
66292        )]
66293        fn _vst2_lane_f16(a: float16x4_t, b: float16x4_t, n: i64, ptr: *mut i8);
66294    }
66295    _vst2_lane_f16(b.0, b.1, LANE as i64, a as _)
66296}
66297#[doc = "Store multiple 2-element structures from two registers"]
66298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f16)"]
66299#[doc = "## Safety"]
66300#[doc = "  * Neon intrinsic unsafe"]
66301#[inline(always)]
66302#[target_feature(enable = "neon")]
66303#[cfg(not(target_arch = "arm"))]
66304#[rustc_legacy_const_generics(2)]
66305#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66306#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
66307#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66308#[cfg(not(target_arch = "arm64ec"))]
66309pub unsafe fn vst2q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x2_t) {
66310    static_assert_uimm_bits!(LANE, 3);
66311    unsafe extern "unadjusted" {
66312        #[cfg_attr(
66313            any(target_arch = "aarch64", target_arch = "arm64ec"),
66314            link_name = "llvm.aarch64.neon.st2lane.v8f16.p0"
66315        )]
66316        fn _vst2q_lane_f16(a: float16x8_t, b: float16x8_t, n: i64, ptr: *mut i8);
66317    }
66318    _vst2q_lane_f16(b.0, b.1, LANE as i64, a as _)
66319}
66320#[doc = "Store multiple 2-element structures from two registers"]
66321#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f16)"]
66322#[doc = "## Safety"]
66323#[doc = "  * Neon intrinsic unsafe"]
66324#[inline(always)]
66325#[target_feature(enable = "neon")]
66326#[cfg(target_arch = "arm")]
66327#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66328#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66329#[rustc_legacy_const_generics(2)]
66330#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
66331#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66332#[cfg(not(target_arch = "arm64ec"))]
66333pub unsafe fn vst2_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x2_t) {
66334    static_assert_uimm_bits!(LANE, 2);
66335    unsafe extern "unadjusted" {
66336        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0.v4f16")]
66337        fn _vst2_lane_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, n: i32, size: i32);
66338    }
66339    _vst2_lane_f16(a as _, b.0, b.1, LANE, 2)
66340}
66341#[doc = "Store multiple 2-element structures from two registers"]
66342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f16)"]
66343#[doc = "## Safety"]
66344#[doc = "  * Neon intrinsic unsafe"]
66345#[inline(always)]
66346#[target_feature(enable = "neon")]
66347#[cfg(target_arch = "arm")]
66348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66349#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66350#[rustc_legacy_const_generics(2)]
66351#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
66352#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
66353#[cfg(not(target_arch = "arm64ec"))]
66354pub unsafe fn vst2q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x2_t) {
66355    static_assert_uimm_bits!(LANE, 1);
66356    unsafe extern "unadjusted" {
66357        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0.v8f16")]
66358        fn _vst2q_lane_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, n: i32, size: i32);
66359    }
66360    _vst2q_lane_f16(a as _, b.0, b.1, LANE, 2)
66361}
66362#[doc = "Store multiple 2-element structures from two registers"]
66363#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)"]
66364#[doc = "## Safety"]
66365#[doc = "  * Neon intrinsic unsafe"]
66366#[inline(always)]
66367#[target_feature(enable = "neon")]
66368#[cfg(not(target_arch = "arm"))]
66369#[rustc_legacy_const_generics(2)]
66370#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66371#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66372pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
66373    static_assert_uimm_bits!(LANE, 1);
66374    unsafe extern "unadjusted" {
66375        #[cfg_attr(
66376            any(target_arch = "aarch64", target_arch = "arm64ec"),
66377            link_name = "llvm.aarch64.neon.st2lane.v2f32.p0"
66378        )]
66379        fn _vst2_lane_f32(a: float32x2_t, b: float32x2_t, n: i64, ptr: *mut i8);
66380    }
66381    _vst2_lane_f32(b.0, b.1, LANE as i64, a as _)
66382}
66383#[doc = "Store multiple 2-element structures from two registers"]
66384#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)"]
66385#[doc = "## Safety"]
66386#[doc = "  * Neon intrinsic unsafe"]
66387#[inline(always)]
66388#[target_feature(enable = "neon")]
66389#[cfg(not(target_arch = "arm"))]
66390#[rustc_legacy_const_generics(2)]
66391#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66392#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66393pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
66394    static_assert_uimm_bits!(LANE, 2);
66395    unsafe extern "unadjusted" {
66396        #[cfg_attr(
66397            any(target_arch = "aarch64", target_arch = "arm64ec"),
66398            link_name = "llvm.aarch64.neon.st2lane.v4f32.p0"
66399        )]
66400        fn _vst2q_lane_f32(a: float32x4_t, b: float32x4_t, n: i64, ptr: *mut i8);
66401    }
66402    _vst2q_lane_f32(b.0, b.1, LANE as i64, a as _)
66403}
66404#[doc = "Store multiple 2-element structures from two registers"]
66405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)"]
66406#[doc = "## Safety"]
66407#[doc = "  * Neon intrinsic unsafe"]
66408#[inline(always)]
66409#[target_feature(enable = "neon")]
66410#[cfg(not(target_arch = "arm"))]
66411#[rustc_legacy_const_generics(2)]
66412#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66413#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66414pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
66415    static_assert_uimm_bits!(LANE, 3);
66416    unsafe extern "unadjusted" {
66417        #[cfg_attr(
66418            any(target_arch = "aarch64", target_arch = "arm64ec"),
66419            link_name = "llvm.aarch64.neon.st2lane.v8i8.p0"
66420        )]
66421        fn _vst2_lane_s8(a: int8x8_t, b: int8x8_t, n: i64, ptr: *mut i8);
66422    }
66423    _vst2_lane_s8(b.0, b.1, LANE as i64, a as _)
66424}
66425#[doc = "Store multiple 2-element structures from two registers"]
66426#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)"]
66427#[doc = "## Safety"]
66428#[doc = "  * Neon intrinsic unsafe"]
66429#[inline(always)]
66430#[target_feature(enable = "neon")]
66431#[cfg(not(target_arch = "arm"))]
66432#[rustc_legacy_const_generics(2)]
66433#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66434#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66435pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
66436    static_assert_uimm_bits!(LANE, 2);
66437    unsafe extern "unadjusted" {
66438        #[cfg_attr(
66439            any(target_arch = "aarch64", target_arch = "arm64ec"),
66440            link_name = "llvm.aarch64.neon.st2lane.v4i16.p0"
66441        )]
66442        fn _vst2_lane_s16(a: int16x4_t, b: int16x4_t, n: i64, ptr: *mut i8);
66443    }
66444    _vst2_lane_s16(b.0, b.1, LANE as i64, a as _)
66445}
66446#[doc = "Store multiple 2-element structures from two registers"]
66447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)"]
66448#[doc = "## Safety"]
66449#[doc = "  * Neon intrinsic unsafe"]
66450#[inline(always)]
66451#[target_feature(enable = "neon")]
66452#[cfg(not(target_arch = "arm"))]
66453#[rustc_legacy_const_generics(2)]
66454#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66455#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66456pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
66457    static_assert_uimm_bits!(LANE, 3);
66458    unsafe extern "unadjusted" {
66459        #[cfg_attr(
66460            any(target_arch = "aarch64", target_arch = "arm64ec"),
66461            link_name = "llvm.aarch64.neon.st2lane.v8i16.p0"
66462        )]
66463        fn _vst2q_lane_s16(a: int16x8_t, b: int16x8_t, n: i64, ptr: *mut i8);
66464    }
66465    _vst2q_lane_s16(b.0, b.1, LANE as i64, a as _)
66466}
66467#[doc = "Store multiple 2-element structures from two registers"]
66468#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)"]
66469#[doc = "## Safety"]
66470#[doc = "  * Neon intrinsic unsafe"]
66471#[inline(always)]
66472#[target_feature(enable = "neon")]
66473#[cfg(not(target_arch = "arm"))]
66474#[rustc_legacy_const_generics(2)]
66475#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66476#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66477pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
66478    static_assert_uimm_bits!(LANE, 1);
66479    unsafe extern "unadjusted" {
66480        #[cfg_attr(
66481            any(target_arch = "aarch64", target_arch = "arm64ec"),
66482            link_name = "llvm.aarch64.neon.st2lane.v2i32.p0"
66483        )]
66484        fn _vst2_lane_s32(a: int32x2_t, b: int32x2_t, n: i64, ptr: *mut i8);
66485    }
66486    _vst2_lane_s32(b.0, b.1, LANE as i64, a as _)
66487}
66488#[doc = "Store multiple 2-element structures from two registers"]
66489#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)"]
66490#[doc = "## Safety"]
66491#[doc = "  * Neon intrinsic unsafe"]
66492#[inline(always)]
66493#[target_feature(enable = "neon")]
66494#[cfg(not(target_arch = "arm"))]
66495#[rustc_legacy_const_generics(2)]
66496#[cfg_attr(test, assert_instr(st2, LANE = 0))]
66497#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66498pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
66499    static_assert_uimm_bits!(LANE, 2);
66500    unsafe extern "unadjusted" {
66501        #[cfg_attr(
66502            any(target_arch = "aarch64", target_arch = "arm64ec"),
66503            link_name = "llvm.aarch64.neon.st2lane.v4i32.p0"
66504        )]
66505        fn _vst2q_lane_s32(a: int32x4_t, b: int32x4_t, n: i64, ptr: *mut i8);
66506    }
66507    _vst2q_lane_s32(b.0, b.1, LANE as i64, a as _)
66508}
66509#[doc = "Store multiple 2-element structures from two registers"]
66510#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)"]
66511#[doc = "## Safety"]
66512#[doc = "  * Neon intrinsic unsafe"]
66513#[inline(always)]
66514#[cfg(target_arch = "arm")]
66515#[target_feature(enable = "neon,v7")]
66516#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66517#[rustc_legacy_const_generics(2)]
66518#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66519pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
66520    static_assert_uimm_bits!(LANE, 1);
66521    unsafe extern "unadjusted" {
66522        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v2f32.p0")]
66523        fn _vst2_lane_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, n: i32, size: i32);
66524    }
66525    _vst2_lane_f32(a as _, b.0, b.1, LANE, 4)
66526}
66527#[doc = "Store multiple 2-element structures from two registers"]
66528#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)"]
66529#[doc = "## Safety"]
66530#[doc = "  * Neon intrinsic unsafe"]
66531#[inline(always)]
66532#[cfg(target_arch = "arm")]
66533#[target_feature(enable = "neon,v7")]
66534#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66535#[rustc_legacy_const_generics(2)]
66536#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66537pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
66538    static_assert_uimm_bits!(LANE, 2);
66539    unsafe extern "unadjusted" {
66540        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4f32.p0")]
66541        fn _vst2q_lane_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, n: i32, size: i32);
66542    }
66543    _vst2q_lane_f32(a as _, b.0, b.1, LANE, 4)
66544}
66545#[doc = "Store multiple 2-element structures from two registers"]
66546#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)"]
66547#[doc = "## Safety"]
66548#[doc = "  * Neon intrinsic unsafe"]
66549#[inline(always)]
66550#[cfg(target_arch = "arm")]
66551#[target_feature(enable = "neon,v7")]
66552#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66553#[rustc_legacy_const_generics(2)]
66554#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66555pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
66556    static_assert_uimm_bits!(LANE, 3);
66557    unsafe extern "unadjusted" {
66558        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v8i8.p0")]
66559        fn _vst2_lane_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32);
66560    }
66561    _vst2_lane_s8(a as _, b.0, b.1, LANE, 1)
66562}
66563#[doc = "Store multiple 2-element structures from two registers"]
66564#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)"]
66565#[doc = "## Safety"]
66566#[doc = "  * Neon intrinsic unsafe"]
66567#[inline(always)]
66568#[cfg(target_arch = "arm")]
66569#[target_feature(enable = "neon,v7")]
66570#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66571#[rustc_legacy_const_generics(2)]
66572#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66573pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
66574    static_assert_uimm_bits!(LANE, 2);
66575    unsafe extern "unadjusted" {
66576        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4i16.p0")]
66577        fn _vst2_lane_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, n: i32, size: i32);
66578    }
66579    _vst2_lane_s16(a as _, b.0, b.1, LANE, 2)
66580}
66581#[doc = "Store multiple 2-element structures from two registers"]
66582#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)"]
66583#[doc = "## Safety"]
66584#[doc = "  * Neon intrinsic unsafe"]
66585#[inline(always)]
66586#[cfg(target_arch = "arm")]
66587#[target_feature(enable = "neon,v7")]
66588#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66589#[rustc_legacy_const_generics(2)]
66590#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66591pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
66592    static_assert_uimm_bits!(LANE, 3);
66593    unsafe extern "unadjusted" {
66594        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v8i16.p0")]
66595        fn _vst2q_lane_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, n: i32, size: i32);
66596    }
66597    _vst2q_lane_s16(a as _, b.0, b.1, LANE, 2)
66598}
66599#[doc = "Store multiple 2-element structures from two registers"]
66600#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)"]
66601#[doc = "## Safety"]
66602#[doc = "  * Neon intrinsic unsafe"]
66603#[inline(always)]
66604#[cfg(target_arch = "arm")]
66605#[target_feature(enable = "neon,v7")]
66606#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66607#[rustc_legacy_const_generics(2)]
66608#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66609pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
66610    static_assert_uimm_bits!(LANE, 1);
66611    unsafe extern "unadjusted" {
66612        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v2i32.p0")]
66613        fn _vst2_lane_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, n: i32, size: i32);
66614    }
66615    _vst2_lane_s32(a as _, b.0, b.1, LANE, 4)
66616}
66617#[doc = "Store multiple 2-element structures from two registers"]
66618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)"]
66619#[doc = "## Safety"]
66620#[doc = "  * Neon intrinsic unsafe"]
66621#[inline(always)]
66622#[cfg(target_arch = "arm")]
66623#[target_feature(enable = "neon,v7")]
66624#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
66625#[rustc_legacy_const_generics(2)]
66626#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66627pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
66628    static_assert_uimm_bits!(LANE, 2);
66629    unsafe extern "unadjusted" {
66630        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.v4i32.p0")]
66631        fn _vst2q_lane_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, n: i32, size: i32);
66632    }
66633    _vst2q_lane_s32(a as _, b.0, b.1, LANE, 4)
66634}
66635#[doc = "Store multiple 2-element structures from two registers"]
66636#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u8)"]
66637#[doc = "## Safety"]
66638#[doc = "  * Neon intrinsic unsafe"]
66639#[inline(always)]
66640#[target_feature(enable = "neon")]
66641#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66642#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66643#[cfg_attr(
66644    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66645    assert_instr(st2, LANE = 0)
66646)]
66647#[rustc_legacy_const_generics(2)]
66648#[cfg_attr(
66649    not(target_arch = "arm"),
66650    stable(feature = "neon_intrinsics", since = "1.59.0")
66651)]
66652#[cfg_attr(
66653    target_arch = "arm",
66654    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66655)]
66656pub unsafe fn vst2_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x2_t) {
66657    static_assert_uimm_bits!(LANE, 3);
66658    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
66659}
66660#[doc = "Store multiple 2-element structures from two registers"]
66661#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u16)"]
66662#[doc = "## Safety"]
66663#[doc = "  * Neon intrinsic unsafe"]
66664#[inline(always)]
66665#[target_feature(enable = "neon")]
66666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66668#[cfg_attr(
66669    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66670    assert_instr(st2, LANE = 0)
66671)]
66672#[rustc_legacy_const_generics(2)]
66673#[cfg_attr(
66674    not(target_arch = "arm"),
66675    stable(feature = "neon_intrinsics", since = "1.59.0")
66676)]
66677#[cfg_attr(
66678    target_arch = "arm",
66679    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66680)]
66681pub unsafe fn vst2_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x2_t) {
66682    static_assert_uimm_bits!(LANE, 2);
66683    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
66684}
66685#[doc = "Store multiple 2-element structures from two registers"]
66686#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u16)"]
66687#[doc = "## Safety"]
66688#[doc = "  * Neon intrinsic unsafe"]
66689#[inline(always)]
66690#[target_feature(enable = "neon")]
66691#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66692#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66693#[cfg_attr(
66694    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66695    assert_instr(st2, LANE = 0)
66696)]
66697#[rustc_legacy_const_generics(2)]
66698#[cfg_attr(
66699    not(target_arch = "arm"),
66700    stable(feature = "neon_intrinsics", since = "1.59.0")
66701)]
66702#[cfg_attr(
66703    target_arch = "arm",
66704    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66705)]
66706pub unsafe fn vst2q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x2_t) {
66707    static_assert_uimm_bits!(LANE, 3);
66708    vst2q_lane_s16::<LANE>(transmute(a), transmute(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_lane_u32)"]
66712#[doc = "## Safety"]
66713#[doc = "  * Neon intrinsic unsafe"]
66714#[inline(always)]
66715#[target_feature(enable = "neon")]
66716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66717#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66718#[cfg_attr(
66719    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66720    assert_instr(st2, LANE = 0)
66721)]
66722#[rustc_legacy_const_generics(2)]
66723#[cfg_attr(
66724    not(target_arch = "arm"),
66725    stable(feature = "neon_intrinsics", since = "1.59.0")
66726)]
66727#[cfg_attr(
66728    target_arch = "arm",
66729    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66730)]
66731pub unsafe fn vst2_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x2_t) {
66732    static_assert_uimm_bits!(LANE, 1);
66733    vst2_lane_s32::<LANE>(transmute(a), transmute(b))
66734}
66735#[doc = "Store multiple 2-element structures from two registers"]
66736#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u32)"]
66737#[doc = "## Safety"]
66738#[doc = "  * Neon intrinsic unsafe"]
66739#[inline(always)]
66740#[target_feature(enable = "neon")]
66741#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66742#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66743#[cfg_attr(
66744    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66745    assert_instr(st2, LANE = 0)
66746)]
66747#[rustc_legacy_const_generics(2)]
66748#[cfg_attr(
66749    not(target_arch = "arm"),
66750    stable(feature = "neon_intrinsics", since = "1.59.0")
66751)]
66752#[cfg_attr(
66753    target_arch = "arm",
66754    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66755)]
66756pub unsafe fn vst2q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x2_t) {
66757    static_assert_uimm_bits!(LANE, 2);
66758    vst2q_lane_s32::<LANE>(transmute(a), transmute(b))
66759}
66760#[doc = "Store multiple 2-element structures from two registers"]
66761#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p8)"]
66762#[doc = "## Safety"]
66763#[doc = "  * Neon intrinsic unsafe"]
66764#[inline(always)]
66765#[target_feature(enable = "neon")]
66766#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66768#[cfg_attr(
66769    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66770    assert_instr(st2, LANE = 0)
66771)]
66772#[rustc_legacy_const_generics(2)]
66773#[cfg_attr(
66774    not(target_arch = "arm"),
66775    stable(feature = "neon_intrinsics", since = "1.59.0")
66776)]
66777#[cfg_attr(
66778    target_arch = "arm",
66779    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66780)]
66781pub unsafe fn vst2_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x2_t) {
66782    static_assert_uimm_bits!(LANE, 3);
66783    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
66784}
66785#[doc = "Store multiple 2-element structures from two registers"]
66786#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p16)"]
66787#[doc = "## Safety"]
66788#[doc = "  * Neon intrinsic unsafe"]
66789#[inline(always)]
66790#[target_feature(enable = "neon")]
66791#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66792#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66793#[cfg_attr(
66794    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66795    assert_instr(st2, LANE = 0)
66796)]
66797#[rustc_legacy_const_generics(2)]
66798#[cfg_attr(
66799    not(target_arch = "arm"),
66800    stable(feature = "neon_intrinsics", since = "1.59.0")
66801)]
66802#[cfg_attr(
66803    target_arch = "arm",
66804    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66805)]
66806pub unsafe fn vst2_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x2_t) {
66807    static_assert_uimm_bits!(LANE, 2);
66808    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
66809}
66810#[doc = "Store multiple 2-element structures from two registers"]
66811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_p16)"]
66812#[doc = "## Safety"]
66813#[doc = "  * Neon intrinsic unsafe"]
66814#[inline(always)]
66815#[target_feature(enable = "neon")]
66816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
66818#[cfg_attr(
66819    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66820    assert_instr(st2, LANE = 0)
66821)]
66822#[rustc_legacy_const_generics(2)]
66823#[cfg_attr(
66824    not(target_arch = "arm"),
66825    stable(feature = "neon_intrinsics", since = "1.59.0")
66826)]
66827#[cfg_attr(
66828    target_arch = "arm",
66829    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66830)]
66831pub unsafe fn vst2q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x2_t) {
66832    static_assert_uimm_bits!(LANE, 3);
66833    vst2q_lane_s16::<LANE>(transmute(a), transmute(b))
66834}
66835#[doc = "Store multiple 2-element structures from two registers"]
66836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p64)"]
66837#[doc = "## Safety"]
66838#[doc = "  * Neon intrinsic unsafe"]
66839#[inline(always)]
66840#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
66841#[target_feature(enable = "neon,aes")]
66842#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
66843#[cfg_attr(
66844    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66845    assert_instr(nop)
66846)]
66847#[cfg_attr(
66848    not(target_arch = "arm"),
66849    stable(feature = "neon_intrinsics", since = "1.59.0")
66850)]
66851#[cfg_attr(
66852    target_arch = "arm",
66853    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66854)]
66855pub unsafe fn vst2_p64(a: *mut p64, b: poly64x1x2_t) {
66856    vst2_s64(transmute(a), transmute(b))
66857}
66858#[doc = "Store multiple 2-element structures from two registers"]
66859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)"]
66860#[doc = "## Safety"]
66861#[doc = "  * Neon intrinsic unsafe"]
66862#[inline(always)]
66863#[cfg(target_arch = "arm")]
66864#[target_feature(enable = "neon,v7")]
66865#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
66866#[cfg_attr(test, assert_instr(nop))]
66867pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
66868    unsafe extern "unadjusted" {
66869        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.v1i64.p0")]
66870        fn _vst2_s64(ptr: *mut i8, a: int64x1_t, b: int64x1_t, size: i32);
66871    }
66872    _vst2_s64(a as _, b.0, b.1, 8)
66873}
66874#[doc = "Store multiple 2-element structures from two registers"]
66875#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)"]
66876#[doc = "## Safety"]
66877#[doc = "  * Neon intrinsic unsafe"]
66878#[inline(always)]
66879#[target_feature(enable = "neon")]
66880#[cfg(not(target_arch = "arm"))]
66881#[stable(feature = "neon_intrinsics", since = "1.59.0")]
66882#[cfg_attr(test, assert_instr(nop))]
66883pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
66884    unsafe extern "unadjusted" {
66885        #[cfg_attr(
66886            any(target_arch = "aarch64", target_arch = "arm64ec"),
66887            link_name = "llvm.aarch64.neon.st2.v1i64.p0"
66888        )]
66889        fn _vst2_s64(a: int64x1_t, b: int64x1_t, ptr: *mut i8);
66890    }
66891    _vst2_s64(b.0, b.1, a as _)
66892}
66893#[doc = "Store multiple 2-element structures from two registers"]
66894#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u64)"]
66895#[doc = "## Safety"]
66896#[doc = "  * Neon intrinsic unsafe"]
66897#[inline(always)]
66898#[target_feature(enable = "neon")]
66899#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66900#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
66901#[cfg_attr(
66902    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66903    assert_instr(nop)
66904)]
66905#[cfg_attr(
66906    not(target_arch = "arm"),
66907    stable(feature = "neon_intrinsics", since = "1.59.0")
66908)]
66909#[cfg_attr(
66910    target_arch = "arm",
66911    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66912)]
66913pub unsafe fn vst2_u64(a: *mut u64, b: uint64x1x2_t) {
66914    vst2_s64(transmute(a), transmute(b))
66915}
66916#[doc = "Store multiple 2-element structures from two registers"]
66917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u8)"]
66918#[doc = "## Safety"]
66919#[doc = "  * Neon intrinsic unsafe"]
66920#[inline(always)]
66921#[target_feature(enable = "neon")]
66922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66924#[cfg_attr(
66925    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66926    assert_instr(st2)
66927)]
66928#[cfg_attr(
66929    not(target_arch = "arm"),
66930    stable(feature = "neon_intrinsics", since = "1.59.0")
66931)]
66932#[cfg_attr(
66933    target_arch = "arm",
66934    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66935)]
66936pub unsafe fn vst2_u8(a: *mut u8, b: uint8x8x2_t) {
66937    vst2_s8(transmute(a), transmute(b))
66938}
66939#[doc = "Store multiple 2-element structures from two registers"]
66940#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u8)"]
66941#[doc = "## Safety"]
66942#[doc = "  * Neon intrinsic unsafe"]
66943#[inline(always)]
66944#[target_feature(enable = "neon")]
66945#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66946#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66947#[cfg_attr(
66948    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66949    assert_instr(st2)
66950)]
66951#[cfg_attr(
66952    not(target_arch = "arm"),
66953    stable(feature = "neon_intrinsics", since = "1.59.0")
66954)]
66955#[cfg_attr(
66956    target_arch = "arm",
66957    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66958)]
66959pub unsafe fn vst2q_u8(a: *mut u8, b: uint8x16x2_t) {
66960    vst2q_s8(transmute(a), transmute(b))
66961}
66962#[doc = "Store multiple 2-element structures from two registers"]
66963#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u16)"]
66964#[doc = "## Safety"]
66965#[doc = "  * Neon intrinsic unsafe"]
66966#[inline(always)]
66967#[target_feature(enable = "neon")]
66968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66970#[cfg_attr(
66971    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66972    assert_instr(st2)
66973)]
66974#[cfg_attr(
66975    not(target_arch = "arm"),
66976    stable(feature = "neon_intrinsics", since = "1.59.0")
66977)]
66978#[cfg_attr(
66979    target_arch = "arm",
66980    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
66981)]
66982pub unsafe fn vst2_u16(a: *mut u16, b: uint16x4x2_t) {
66983    vst2_s16(transmute(a), transmute(b))
66984}
66985#[doc = "Store multiple 2-element structures from two registers"]
66986#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u16)"]
66987#[doc = "## Safety"]
66988#[doc = "  * Neon intrinsic unsafe"]
66989#[inline(always)]
66990#[target_feature(enable = "neon")]
66991#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
66992#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
66993#[cfg_attr(
66994    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
66995    assert_instr(st2)
66996)]
66997#[cfg_attr(
66998    not(target_arch = "arm"),
66999    stable(feature = "neon_intrinsics", since = "1.59.0")
67000)]
67001#[cfg_attr(
67002    target_arch = "arm",
67003    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67004)]
67005pub unsafe fn vst2q_u16(a: *mut u16, b: uint16x8x2_t) {
67006    vst2q_s16(transmute(a), transmute(b))
67007}
67008#[doc = "Store multiple 2-element structures from two registers"]
67009#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u32)"]
67010#[doc = "## Safety"]
67011#[doc = "  * Neon intrinsic unsafe"]
67012#[inline(always)]
67013#[target_feature(enable = "neon")]
67014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
67016#[cfg_attr(
67017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67018    assert_instr(st2)
67019)]
67020#[cfg_attr(
67021    not(target_arch = "arm"),
67022    stable(feature = "neon_intrinsics", since = "1.59.0")
67023)]
67024#[cfg_attr(
67025    target_arch = "arm",
67026    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67027)]
67028pub unsafe fn vst2_u32(a: *mut u32, b: uint32x2x2_t) {
67029    vst2_s32(transmute(a), transmute(b))
67030}
67031#[doc = "Store multiple 2-element structures from two registers"]
67032#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u32)"]
67033#[doc = "## Safety"]
67034#[doc = "  * Neon intrinsic unsafe"]
67035#[inline(always)]
67036#[target_feature(enable = "neon")]
67037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67038#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
67039#[cfg_attr(
67040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67041    assert_instr(st2)
67042)]
67043#[cfg_attr(
67044    not(target_arch = "arm"),
67045    stable(feature = "neon_intrinsics", since = "1.59.0")
67046)]
67047#[cfg_attr(
67048    target_arch = "arm",
67049    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67050)]
67051pub unsafe fn vst2q_u32(a: *mut u32, b: uint32x4x2_t) {
67052    vst2q_s32(transmute(a), transmute(b))
67053}
67054#[doc = "Store multiple 2-element structures from two registers"]
67055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p8)"]
67056#[doc = "## Safety"]
67057#[doc = "  * Neon intrinsic unsafe"]
67058#[inline(always)]
67059#[target_feature(enable = "neon")]
67060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67061#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
67062#[cfg_attr(
67063    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67064    assert_instr(st2)
67065)]
67066#[cfg_attr(
67067    not(target_arch = "arm"),
67068    stable(feature = "neon_intrinsics", since = "1.59.0")
67069)]
67070#[cfg_attr(
67071    target_arch = "arm",
67072    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67073)]
67074pub unsafe fn vst2_p8(a: *mut p8, b: poly8x8x2_t) {
67075    vst2_s8(transmute(a), transmute(b))
67076}
67077#[doc = "Store multiple 2-element structures from two registers"]
67078#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p8)"]
67079#[doc = "## Safety"]
67080#[doc = "  * Neon intrinsic unsafe"]
67081#[inline(always)]
67082#[target_feature(enable = "neon")]
67083#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67084#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
67085#[cfg_attr(
67086    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67087    assert_instr(st2)
67088)]
67089#[cfg_attr(
67090    not(target_arch = "arm"),
67091    stable(feature = "neon_intrinsics", since = "1.59.0")
67092)]
67093#[cfg_attr(
67094    target_arch = "arm",
67095    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67096)]
67097pub unsafe fn vst2q_p8(a: *mut p8, b: poly8x16x2_t) {
67098    vst2q_s8(transmute(a), transmute(b))
67099}
67100#[doc = "Store multiple 2-element structures from two registers"]
67101#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p16)"]
67102#[doc = "## Safety"]
67103#[doc = "  * Neon intrinsic unsafe"]
67104#[inline(always)]
67105#[target_feature(enable = "neon")]
67106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
67108#[cfg_attr(
67109    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67110    assert_instr(st2)
67111)]
67112#[cfg_attr(
67113    not(target_arch = "arm"),
67114    stable(feature = "neon_intrinsics", since = "1.59.0")
67115)]
67116#[cfg_attr(
67117    target_arch = "arm",
67118    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67119)]
67120pub unsafe fn vst2_p16(a: *mut p16, b: poly16x4x2_t) {
67121    vst2_s16(transmute(a), transmute(b))
67122}
67123#[doc = "Store multiple 2-element structures from two registers"]
67124#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p16)"]
67125#[doc = "## Safety"]
67126#[doc = "  * Neon intrinsic unsafe"]
67127#[inline(always)]
67128#[target_feature(enable = "neon")]
67129#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67130#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
67131#[cfg_attr(
67132    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67133    assert_instr(st2)
67134)]
67135#[cfg_attr(
67136    not(target_arch = "arm"),
67137    stable(feature = "neon_intrinsics", since = "1.59.0")
67138)]
67139#[cfg_attr(
67140    target_arch = "arm",
67141    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67142)]
67143pub unsafe fn vst2q_p16(a: *mut p16, b: poly16x8x2_t) {
67144    vst2q_s16(transmute(a), transmute(b))
67145}
67146#[doc = "Store multiple 3-element structures from three registers"]
67147#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f16)"]
67148#[doc = "## Safety"]
67149#[doc = "  * Neon intrinsic unsafe"]
67150#[inline(always)]
67151#[target_feature(enable = "neon")]
67152#[cfg(target_arch = "arm")]
67153#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67154#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67155#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67156#[cfg(not(target_arch = "arm64ec"))]
67157#[cfg_attr(test, assert_instr(vst3))]
67158pub unsafe fn vst3_f16(a: *mut f16, b: float16x4x3_t) {
67159    unsafe extern "unadjusted" {
67160        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4f16")]
67161        fn _vst3_f16(ptr: *mut i8, a: float16x4_t, b: float16x4_t, c: float16x4_t, size: i32);
67162    }
67163    _vst3_f16(a as _, b.0, b.1, b.2, 2)
67164}
67165#[doc = "Store multiple 3-element structures from three registers"]
67166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f16)"]
67167#[doc = "## Safety"]
67168#[doc = "  * Neon intrinsic unsafe"]
67169#[inline(always)]
67170#[target_feature(enable = "neon")]
67171#[cfg(target_arch = "arm")]
67172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67173#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67174#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67175#[cfg(not(target_arch = "arm64ec"))]
67176#[cfg_attr(test, assert_instr(vst3))]
67177pub unsafe fn vst3q_f16(a: *mut f16, b: float16x8x3_t) {
67178    unsafe extern "unadjusted" {
67179        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8f16")]
67180        fn _vst3q_f16(ptr: *mut i8, a: float16x8_t, b: float16x8_t, c: float16x8_t, size: i32);
67181    }
67182    _vst3q_f16(a as _, b.0, b.1, b.2, 2)
67183}
67184#[doc = "Store multiple 3-element structures from three registers"]
67185#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f16)"]
67186#[doc = "## Safety"]
67187#[doc = "  * Neon intrinsic unsafe"]
67188#[inline(always)]
67189#[target_feature(enable = "neon")]
67190#[cfg(not(target_arch = "arm"))]
67191#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67192#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67193#[cfg(not(target_arch = "arm64ec"))]
67194#[cfg_attr(test, assert_instr(st3))]
67195pub unsafe fn vst3_f16(a: *mut f16, b: float16x4x3_t) {
67196    unsafe extern "unadjusted" {
67197        #[cfg_attr(
67198            any(target_arch = "aarch64", target_arch = "arm64ec"),
67199            link_name = "llvm.aarch64.neon.st3.v4f16.p0"
67200        )]
67201        fn _vst3_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, ptr: *mut i8);
67202    }
67203    _vst3_f16(b.0, b.1, b.2, a as _)
67204}
67205#[doc = "Store multiple 3-element structures from three registers"]
67206#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f16)"]
67207#[doc = "## Safety"]
67208#[doc = "  * Neon intrinsic unsafe"]
67209#[inline(always)]
67210#[target_feature(enable = "neon")]
67211#[cfg(not(target_arch = "arm"))]
67212#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67213#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67214#[cfg(not(target_arch = "arm64ec"))]
67215#[cfg_attr(test, assert_instr(st3))]
67216pub unsafe fn vst3q_f16(a: *mut f16, b: float16x8x3_t) {
67217    unsafe extern "unadjusted" {
67218        #[cfg_attr(
67219            any(target_arch = "aarch64", target_arch = "arm64ec"),
67220            link_name = "llvm.aarch64.neon.st3.v8f16.p0"
67221        )]
67222        fn _vst3q_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, ptr: *mut i8);
67223    }
67224    _vst3q_f16(b.0, b.1, b.2, a as _)
67225}
67226#[doc = "Store multiple 3-element structures from three registers"]
67227#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)"]
67228#[doc = "## Safety"]
67229#[doc = "  * Neon intrinsic unsafe"]
67230#[inline(always)]
67231#[cfg(target_arch = "arm")]
67232#[target_feature(enable = "neon,v7")]
67233#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67234#[cfg_attr(test, assert_instr(vst3))]
67235pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
67236    unsafe extern "unadjusted" {
67237        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v2f32")]
67238        fn _vst3_f32(ptr: *mut i8, a: float32x2_t, b: float32x2_t, c: float32x2_t, size: i32);
67239    }
67240    _vst3_f32(a as _, b.0, b.1, b.2, 4)
67241}
67242#[doc = "Store multiple 3-element structures from three registers"]
67243#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)"]
67244#[doc = "## Safety"]
67245#[doc = "  * Neon intrinsic unsafe"]
67246#[inline(always)]
67247#[cfg(target_arch = "arm")]
67248#[target_feature(enable = "neon,v7")]
67249#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67250#[cfg_attr(test, assert_instr(vst3))]
67251pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
67252    unsafe extern "unadjusted" {
67253        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4f32")]
67254        fn _vst3q_f32(ptr: *mut i8, a: float32x4_t, b: float32x4_t, c: float32x4_t, size: i32);
67255    }
67256    _vst3q_f32(a as _, b.0, b.1, b.2, 4)
67257}
67258#[doc = "Store multiple 3-element structures from three registers"]
67259#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)"]
67260#[doc = "## Safety"]
67261#[doc = "  * Neon intrinsic unsafe"]
67262#[inline(always)]
67263#[cfg(target_arch = "arm")]
67264#[target_feature(enable = "neon,v7")]
67265#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67266#[cfg_attr(test, assert_instr(vst3))]
67267pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
67268    unsafe extern "unadjusted" {
67269        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8i8")]
67270        fn _vst3_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, size: i32);
67271    }
67272    _vst3_s8(a as _, b.0, b.1, b.2, 1)
67273}
67274#[doc = "Store multiple 3-element structures from three registers"]
67275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)"]
67276#[doc = "## Safety"]
67277#[doc = "  * Neon intrinsic unsafe"]
67278#[inline(always)]
67279#[cfg(target_arch = "arm")]
67280#[target_feature(enable = "neon,v7")]
67281#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67282#[cfg_attr(test, assert_instr(vst3))]
67283pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
67284    unsafe extern "unadjusted" {
67285        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v16i8")]
67286        fn _vst3q_s8(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, size: i32);
67287    }
67288    _vst3q_s8(a as _, b.0, b.1, b.2, 1)
67289}
67290#[doc = "Store multiple 3-element structures from three registers"]
67291#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)"]
67292#[doc = "## Safety"]
67293#[doc = "  * Neon intrinsic unsafe"]
67294#[inline(always)]
67295#[cfg(target_arch = "arm")]
67296#[target_feature(enable = "neon,v7")]
67297#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67298#[cfg_attr(test, assert_instr(vst3))]
67299pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
67300    unsafe extern "unadjusted" {
67301        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4i16")]
67302        fn _vst3_s16(ptr: *mut i8, a: int16x4_t, b: int16x4_t, c: int16x4_t, size: i32);
67303    }
67304    _vst3_s16(a as _, b.0, b.1, b.2, 2)
67305}
67306#[doc = "Store multiple 3-element structures from three registers"]
67307#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)"]
67308#[doc = "## Safety"]
67309#[doc = "  * Neon intrinsic unsafe"]
67310#[inline(always)]
67311#[cfg(target_arch = "arm")]
67312#[target_feature(enable = "neon,v7")]
67313#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67314#[cfg_attr(test, assert_instr(vst3))]
67315pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
67316    unsafe extern "unadjusted" {
67317        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v8i16")]
67318        fn _vst3q_s16(ptr: *mut i8, a: int16x8_t, b: int16x8_t, c: int16x8_t, size: i32);
67319    }
67320    _vst3q_s16(a as _, b.0, b.1, b.2, 2)
67321}
67322#[doc = "Store multiple 3-element structures from three registers"]
67323#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)"]
67324#[doc = "## Safety"]
67325#[doc = "  * Neon intrinsic unsafe"]
67326#[inline(always)]
67327#[cfg(target_arch = "arm")]
67328#[target_feature(enable = "neon,v7")]
67329#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67330#[cfg_attr(test, assert_instr(vst3))]
67331pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
67332    unsafe extern "unadjusted" {
67333        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v2i32")]
67334        fn _vst3_s32(ptr: *mut i8, a: int32x2_t, b: int32x2_t, c: int32x2_t, size: i32);
67335    }
67336    _vst3_s32(a as _, b.0, b.1, b.2, 4)
67337}
67338#[doc = "Store multiple 3-element structures from three registers"]
67339#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)"]
67340#[doc = "## Safety"]
67341#[doc = "  * Neon intrinsic unsafe"]
67342#[inline(always)]
67343#[cfg(target_arch = "arm")]
67344#[target_feature(enable = "neon,v7")]
67345#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67346#[cfg_attr(test, assert_instr(vst3))]
67347pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
67348    unsafe extern "unadjusted" {
67349        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v4i32")]
67350        fn _vst3q_s32(ptr: *mut i8, a: int32x4_t, b: int32x4_t, c: int32x4_t, size: i32);
67351    }
67352    _vst3q_s32(a as _, b.0, b.1, b.2, 4)
67353}
67354#[doc = "Store multiple 3-element structures from three registers"]
67355#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)"]
67356#[doc = "## Safety"]
67357#[doc = "  * Neon intrinsic unsafe"]
67358#[inline(always)]
67359#[target_feature(enable = "neon")]
67360#[cfg(not(target_arch = "arm"))]
67361#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67362#[cfg_attr(test, assert_instr(st3))]
67363pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
67364    unsafe extern "unadjusted" {
67365        #[cfg_attr(
67366            any(target_arch = "aarch64", target_arch = "arm64ec"),
67367            link_name = "llvm.aarch64.neon.st3.v2f32.p0"
67368        )]
67369        fn _vst3_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, ptr: *mut i8);
67370    }
67371    _vst3_f32(b.0, b.1, b.2, a as _)
67372}
67373#[doc = "Store multiple 3-element structures from three registers"]
67374#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)"]
67375#[doc = "## Safety"]
67376#[doc = "  * Neon intrinsic unsafe"]
67377#[inline(always)]
67378#[target_feature(enable = "neon")]
67379#[cfg(not(target_arch = "arm"))]
67380#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67381#[cfg_attr(test, assert_instr(st3))]
67382pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
67383    unsafe extern "unadjusted" {
67384        #[cfg_attr(
67385            any(target_arch = "aarch64", target_arch = "arm64ec"),
67386            link_name = "llvm.aarch64.neon.st3.v4f32.p0"
67387        )]
67388        fn _vst3q_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, ptr: *mut i8);
67389    }
67390    _vst3q_f32(b.0, b.1, b.2, a as _)
67391}
67392#[doc = "Store multiple 3-element structures from three registers"]
67393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)"]
67394#[doc = "## Safety"]
67395#[doc = "  * Neon intrinsic unsafe"]
67396#[inline(always)]
67397#[target_feature(enable = "neon")]
67398#[cfg(not(target_arch = "arm"))]
67399#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67400#[cfg_attr(test, assert_instr(st3))]
67401pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
67402    unsafe extern "unadjusted" {
67403        #[cfg_attr(
67404            any(target_arch = "aarch64", target_arch = "arm64ec"),
67405            link_name = "llvm.aarch64.neon.st3.v8i8.p0"
67406        )]
67407        fn _vst3_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, ptr: *mut i8);
67408    }
67409    _vst3_s8(b.0, b.1, b.2, a as _)
67410}
67411#[doc = "Store multiple 3-element structures from three registers"]
67412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)"]
67413#[doc = "## Safety"]
67414#[doc = "  * Neon intrinsic unsafe"]
67415#[inline(always)]
67416#[target_feature(enable = "neon")]
67417#[cfg(not(target_arch = "arm"))]
67418#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67419#[cfg_attr(test, assert_instr(st3))]
67420pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
67421    unsafe extern "unadjusted" {
67422        #[cfg_attr(
67423            any(target_arch = "aarch64", target_arch = "arm64ec"),
67424            link_name = "llvm.aarch64.neon.st3.v16i8.p0"
67425        )]
67426        fn _vst3q_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t, ptr: *mut i8);
67427    }
67428    _vst3q_s8(b.0, b.1, b.2, a as _)
67429}
67430#[doc = "Store multiple 3-element structures from three registers"]
67431#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)"]
67432#[doc = "## Safety"]
67433#[doc = "  * Neon intrinsic unsafe"]
67434#[inline(always)]
67435#[target_feature(enable = "neon")]
67436#[cfg(not(target_arch = "arm"))]
67437#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67438#[cfg_attr(test, assert_instr(st3))]
67439pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
67440    unsafe extern "unadjusted" {
67441        #[cfg_attr(
67442            any(target_arch = "aarch64", target_arch = "arm64ec"),
67443            link_name = "llvm.aarch64.neon.st3.v4i16.p0"
67444        )]
67445        fn _vst3_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, ptr: *mut i8);
67446    }
67447    _vst3_s16(b.0, b.1, b.2, a as _)
67448}
67449#[doc = "Store multiple 3-element structures from three registers"]
67450#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)"]
67451#[doc = "## Safety"]
67452#[doc = "  * Neon intrinsic unsafe"]
67453#[inline(always)]
67454#[target_feature(enable = "neon")]
67455#[cfg(not(target_arch = "arm"))]
67456#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67457#[cfg_attr(test, assert_instr(st3))]
67458pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
67459    unsafe extern "unadjusted" {
67460        #[cfg_attr(
67461            any(target_arch = "aarch64", target_arch = "arm64ec"),
67462            link_name = "llvm.aarch64.neon.st3.v8i16.p0"
67463        )]
67464        fn _vst3q_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, ptr: *mut i8);
67465    }
67466    _vst3q_s16(b.0, b.1, b.2, a as _)
67467}
67468#[doc = "Store multiple 3-element structures from three registers"]
67469#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)"]
67470#[doc = "## Safety"]
67471#[doc = "  * Neon intrinsic unsafe"]
67472#[inline(always)]
67473#[target_feature(enable = "neon")]
67474#[cfg(not(target_arch = "arm"))]
67475#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67476#[cfg_attr(test, assert_instr(st3))]
67477pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
67478    unsafe extern "unadjusted" {
67479        #[cfg_attr(
67480            any(target_arch = "aarch64", target_arch = "arm64ec"),
67481            link_name = "llvm.aarch64.neon.st3.v2i32.p0"
67482        )]
67483        fn _vst3_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, ptr: *mut i8);
67484    }
67485    _vst3_s32(b.0, b.1, b.2, a as _)
67486}
67487#[doc = "Store multiple 3-element structures from three registers"]
67488#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)"]
67489#[doc = "## Safety"]
67490#[doc = "  * Neon intrinsic unsafe"]
67491#[inline(always)]
67492#[target_feature(enable = "neon")]
67493#[cfg(not(target_arch = "arm"))]
67494#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67495#[cfg_attr(test, assert_instr(st3))]
67496pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
67497    unsafe extern "unadjusted" {
67498        #[cfg_attr(
67499            any(target_arch = "aarch64", target_arch = "arm64ec"),
67500            link_name = "llvm.aarch64.neon.st3.v4i32.p0"
67501        )]
67502        fn _vst3q_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, ptr: *mut i8);
67503    }
67504    _vst3q_s32(b.0, b.1, b.2, a as _)
67505}
67506#[doc = "Store multiple 3-element structures from three registers"]
67507#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f16)"]
67508#[doc = "## Safety"]
67509#[doc = "  * Neon intrinsic unsafe"]
67510#[inline(always)]
67511#[target_feature(enable = "neon")]
67512#[cfg(target_arch = "arm")]
67513#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67514#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67515#[rustc_legacy_const_generics(2)]
67516#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67517#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67518#[cfg(not(target_arch = "arm64ec"))]
67519pub unsafe fn vst3_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x3_t) {
67520    static_assert_uimm_bits!(LANE, 2);
67521    unsafe extern "unadjusted" {
67522        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4f16")]
67523        fn _vst3_lane_f16(
67524            ptr: *mut i8,
67525            a: float16x4_t,
67526            b: float16x4_t,
67527            c: float16x4_t,
67528            n: i32,
67529            size: i32,
67530        );
67531    }
67532    _vst3_lane_f16(a as _, b.0, b.1, b.2, LANE, 4)
67533}
67534#[doc = "Store multiple 3-element structures from three registers"]
67535#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f16)"]
67536#[doc = "## Safety"]
67537#[doc = "  * Neon intrinsic unsafe"]
67538#[inline(always)]
67539#[target_feature(enable = "neon")]
67540#[cfg(target_arch = "arm")]
67541#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67542#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67543#[rustc_legacy_const_generics(2)]
67544#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67545#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67546#[cfg(not(target_arch = "arm64ec"))]
67547pub unsafe fn vst3q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x3_t) {
67548    static_assert_uimm_bits!(LANE, 3);
67549    unsafe extern "unadjusted" {
67550        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8f16")]
67551        fn _vst3q_lane_f16(
67552            ptr: *mut i8,
67553            a: float16x8_t,
67554            b: float16x8_t,
67555            c: float16x8_t,
67556            n: i32,
67557            size: i32,
67558        );
67559    }
67560    _vst3q_lane_f16(a as _, b.0, b.1, b.2, LANE, 4)
67561}
67562#[doc = "Store multiple 3-element structures from three registers"]
67563#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f16)"]
67564#[doc = "## Safety"]
67565#[doc = "  * Neon intrinsic unsafe"]
67566#[inline(always)]
67567#[target_feature(enable = "neon")]
67568#[cfg(not(target_arch = "arm"))]
67569#[rustc_legacy_const_generics(2)]
67570#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67571#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67572#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67573#[cfg(not(target_arch = "arm64ec"))]
67574pub unsafe fn vst3_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x3_t) {
67575    static_assert_uimm_bits!(LANE, 2);
67576    unsafe extern "unadjusted" {
67577        #[cfg_attr(
67578            any(target_arch = "aarch64", target_arch = "arm64ec"),
67579            link_name = "llvm.aarch64.neon.st3lane.v4f16.p0"
67580        )]
67581        fn _vst3_lane_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, n: i64, ptr: *mut i8);
67582    }
67583    _vst3_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
67584}
67585#[doc = "Store multiple 3-element structures from three registers"]
67586#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f16)"]
67587#[doc = "## Safety"]
67588#[doc = "  * Neon intrinsic unsafe"]
67589#[inline(always)]
67590#[target_feature(enable = "neon")]
67591#[cfg(not(target_arch = "arm"))]
67592#[rustc_legacy_const_generics(2)]
67593#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67594#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
67595#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
67596#[cfg(not(target_arch = "arm64ec"))]
67597pub unsafe fn vst3q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x3_t) {
67598    static_assert_uimm_bits!(LANE, 3);
67599    unsafe extern "unadjusted" {
67600        #[cfg_attr(
67601            any(target_arch = "aarch64", target_arch = "arm64ec"),
67602            link_name = "llvm.aarch64.neon.st3lane.v8f16.p0"
67603        )]
67604        fn _vst3q_lane_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, n: i64, ptr: *mut i8);
67605    }
67606    _vst3q_lane_f16(b.0, b.1, b.2, LANE as i64, a as _)
67607}
67608#[doc = "Store multiple 3-element structures from three registers"]
67609#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)"]
67610#[doc = "## Safety"]
67611#[doc = "  * Neon intrinsic unsafe"]
67612#[inline(always)]
67613#[cfg(target_arch = "arm")]
67614#[target_feature(enable = "neon,v7")]
67615#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67616#[rustc_legacy_const_generics(2)]
67617#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67618pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
67619    static_assert_uimm_bits!(LANE, 1);
67620    unsafe extern "unadjusted" {
67621        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v2f32")]
67622        fn _vst3_lane_f32(
67623            ptr: *mut i8,
67624            a: float32x2_t,
67625            b: float32x2_t,
67626            c: float32x2_t,
67627            n: i32,
67628            size: i32,
67629        );
67630    }
67631    _vst3_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
67632}
67633#[doc = "Store multiple 3-element structures from three registers"]
67634#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)"]
67635#[doc = "## Safety"]
67636#[doc = "  * Neon intrinsic unsafe"]
67637#[inline(always)]
67638#[cfg(target_arch = "arm")]
67639#[target_feature(enable = "neon,v7")]
67640#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67641#[rustc_legacy_const_generics(2)]
67642#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67643pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
67644    static_assert_uimm_bits!(LANE, 2);
67645    unsafe extern "unadjusted" {
67646        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4f32")]
67647        fn _vst3q_lane_f32(
67648            ptr: *mut i8,
67649            a: float32x4_t,
67650            b: float32x4_t,
67651            c: float32x4_t,
67652            n: i32,
67653            size: i32,
67654        );
67655    }
67656    _vst3q_lane_f32(a as _, b.0, b.1, b.2, LANE, 4)
67657}
67658#[doc = "Store multiple 3-element structures from three registers"]
67659#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)"]
67660#[doc = "## Safety"]
67661#[doc = "  * Neon intrinsic unsafe"]
67662#[inline(always)]
67663#[cfg(target_arch = "arm")]
67664#[target_feature(enable = "neon,v7")]
67665#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67666#[rustc_legacy_const_generics(2)]
67667#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67668pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
67669    static_assert_uimm_bits!(LANE, 3);
67670    unsafe extern "unadjusted" {
67671        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8i8")]
67672        fn _vst3_lane_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i32, size: i32);
67673    }
67674    _vst3_lane_s8(a as _, b.0, b.1, b.2, LANE, 1)
67675}
67676#[doc = "Store multiple 3-element structures from three registers"]
67677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)"]
67678#[doc = "## Safety"]
67679#[doc = "  * Neon intrinsic unsafe"]
67680#[inline(always)]
67681#[cfg(target_arch = "arm")]
67682#[target_feature(enable = "neon,v7")]
67683#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67684#[rustc_legacy_const_generics(2)]
67685#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67686pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
67687    static_assert_uimm_bits!(LANE, 2);
67688    unsafe extern "unadjusted" {
67689        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4i16")]
67690        fn _vst3_lane_s16(
67691            ptr: *mut i8,
67692            a: int16x4_t,
67693            b: int16x4_t,
67694            c: int16x4_t,
67695            n: i32,
67696            size: i32,
67697        );
67698    }
67699    _vst3_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
67700}
67701#[doc = "Store multiple 3-element structures from three registers"]
67702#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)"]
67703#[doc = "## Safety"]
67704#[doc = "  * Neon intrinsic unsafe"]
67705#[inline(always)]
67706#[cfg(target_arch = "arm")]
67707#[target_feature(enable = "neon,v7")]
67708#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67709#[rustc_legacy_const_generics(2)]
67710#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67711pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
67712    static_assert_uimm_bits!(LANE, 3);
67713    unsafe extern "unadjusted" {
67714        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v8i16")]
67715        fn _vst3q_lane_s16(
67716            ptr: *mut i8,
67717            a: int16x8_t,
67718            b: int16x8_t,
67719            c: int16x8_t,
67720            n: i32,
67721            size: i32,
67722        );
67723    }
67724    _vst3q_lane_s16(a as _, b.0, b.1, b.2, LANE, 2)
67725}
67726#[doc = "Store multiple 3-element structures from three registers"]
67727#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)"]
67728#[doc = "## Safety"]
67729#[doc = "  * Neon intrinsic unsafe"]
67730#[inline(always)]
67731#[cfg(target_arch = "arm")]
67732#[target_feature(enable = "neon,v7")]
67733#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67734#[rustc_legacy_const_generics(2)]
67735#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67736pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
67737    static_assert_uimm_bits!(LANE, 1);
67738    unsafe extern "unadjusted" {
67739        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v2i32")]
67740        fn _vst3_lane_s32(
67741            ptr: *mut i8,
67742            a: int32x2_t,
67743            b: int32x2_t,
67744            c: int32x2_t,
67745            n: i32,
67746            size: i32,
67747        );
67748    }
67749    _vst3_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
67750}
67751#[doc = "Store multiple 3-element structures from three registers"]
67752#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)"]
67753#[doc = "## Safety"]
67754#[doc = "  * Neon intrinsic unsafe"]
67755#[inline(always)]
67756#[cfg(target_arch = "arm")]
67757#[target_feature(enable = "neon,v7")]
67758#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
67759#[rustc_legacy_const_generics(2)]
67760#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
67761pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
67762    static_assert_uimm_bits!(LANE, 2);
67763    unsafe extern "unadjusted" {
67764        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0.v4i32")]
67765        fn _vst3q_lane_s32(
67766            ptr: *mut i8,
67767            a: int32x4_t,
67768            b: int32x4_t,
67769            c: int32x4_t,
67770            n: i32,
67771            size: i32,
67772        );
67773    }
67774    _vst3q_lane_s32(a as _, b.0, b.1, b.2, LANE, 4)
67775}
67776#[doc = "Store multiple 3-element structures from three registers"]
67777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)"]
67778#[doc = "## Safety"]
67779#[doc = "  * Neon intrinsic unsafe"]
67780#[inline(always)]
67781#[target_feature(enable = "neon")]
67782#[cfg(not(target_arch = "arm"))]
67783#[rustc_legacy_const_generics(2)]
67784#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67785#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67786pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
67787    static_assert_uimm_bits!(LANE, 1);
67788    unsafe extern "unadjusted" {
67789        #[cfg_attr(
67790            any(target_arch = "aarch64", target_arch = "arm64ec"),
67791            link_name = "llvm.aarch64.neon.st3lane.v2f32.p0"
67792        )]
67793        fn _vst3_lane_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, n: i64, ptr: *mut i8);
67794    }
67795    _vst3_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
67796}
67797#[doc = "Store multiple 3-element structures from three registers"]
67798#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)"]
67799#[doc = "## Safety"]
67800#[doc = "  * Neon intrinsic unsafe"]
67801#[inline(always)]
67802#[target_feature(enable = "neon")]
67803#[cfg(not(target_arch = "arm"))]
67804#[rustc_legacy_const_generics(2)]
67805#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67806#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67807pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
67808    static_assert_uimm_bits!(LANE, 2);
67809    unsafe extern "unadjusted" {
67810        #[cfg_attr(
67811            any(target_arch = "aarch64", target_arch = "arm64ec"),
67812            link_name = "llvm.aarch64.neon.st3lane.v4f32.p0"
67813        )]
67814        fn _vst3q_lane_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, n: i64, ptr: *mut i8);
67815    }
67816    _vst3q_lane_f32(b.0, b.1, b.2, LANE as i64, a as _)
67817}
67818#[doc = "Store multiple 3-element structures from three registers"]
67819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)"]
67820#[doc = "## Safety"]
67821#[doc = "  * Neon intrinsic unsafe"]
67822#[inline(always)]
67823#[target_feature(enable = "neon")]
67824#[cfg(not(target_arch = "arm"))]
67825#[rustc_legacy_const_generics(2)]
67826#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67827#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67828pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
67829    static_assert_uimm_bits!(LANE, 3);
67830    unsafe extern "unadjusted" {
67831        #[cfg_attr(
67832            any(target_arch = "aarch64", target_arch = "arm64ec"),
67833            link_name = "llvm.aarch64.neon.st3lane.v8i8.p0"
67834        )]
67835        fn _vst3_lane_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i64, ptr: *mut i8);
67836    }
67837    _vst3_lane_s8(b.0, b.1, b.2, LANE as i64, a as _)
67838}
67839#[doc = "Store multiple 3-element structures from three registers"]
67840#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)"]
67841#[doc = "## Safety"]
67842#[doc = "  * Neon intrinsic unsafe"]
67843#[inline(always)]
67844#[target_feature(enable = "neon")]
67845#[cfg(not(target_arch = "arm"))]
67846#[rustc_legacy_const_generics(2)]
67847#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67848#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67849pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
67850    static_assert_uimm_bits!(LANE, 2);
67851    unsafe extern "unadjusted" {
67852        #[cfg_attr(
67853            any(target_arch = "aarch64", target_arch = "arm64ec"),
67854            link_name = "llvm.aarch64.neon.st3lane.v4i16.p0"
67855        )]
67856        fn _vst3_lane_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, n: i64, ptr: *mut i8);
67857    }
67858    _vst3_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
67859}
67860#[doc = "Store multiple 3-element structures from three registers"]
67861#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)"]
67862#[doc = "## Safety"]
67863#[doc = "  * Neon intrinsic unsafe"]
67864#[inline(always)]
67865#[target_feature(enable = "neon")]
67866#[cfg(not(target_arch = "arm"))]
67867#[rustc_legacy_const_generics(2)]
67868#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67869#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67870pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
67871    static_assert_uimm_bits!(LANE, 3);
67872    unsafe extern "unadjusted" {
67873        #[cfg_attr(
67874            any(target_arch = "aarch64", target_arch = "arm64ec"),
67875            link_name = "llvm.aarch64.neon.st3lane.v8i16.p0"
67876        )]
67877        fn _vst3q_lane_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, n: i64, ptr: *mut i8);
67878    }
67879    _vst3q_lane_s16(b.0, b.1, b.2, LANE as i64, a as _)
67880}
67881#[doc = "Store multiple 3-element structures from three registers"]
67882#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)"]
67883#[doc = "## Safety"]
67884#[doc = "  * Neon intrinsic unsafe"]
67885#[inline(always)]
67886#[target_feature(enable = "neon")]
67887#[cfg(not(target_arch = "arm"))]
67888#[rustc_legacy_const_generics(2)]
67889#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67890#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67891pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
67892    static_assert_uimm_bits!(LANE, 1);
67893    unsafe extern "unadjusted" {
67894        #[cfg_attr(
67895            any(target_arch = "aarch64", target_arch = "arm64ec"),
67896            link_name = "llvm.aarch64.neon.st3lane.v2i32.p0"
67897        )]
67898        fn _vst3_lane_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, n: i64, ptr: *mut i8);
67899    }
67900    _vst3_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
67901}
67902#[doc = "Store multiple 3-element structures from three registers"]
67903#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)"]
67904#[doc = "## Safety"]
67905#[doc = "  * Neon intrinsic unsafe"]
67906#[inline(always)]
67907#[target_feature(enable = "neon")]
67908#[cfg(not(target_arch = "arm"))]
67909#[rustc_legacy_const_generics(2)]
67910#[cfg_attr(test, assert_instr(st3, LANE = 0))]
67911#[stable(feature = "neon_intrinsics", since = "1.59.0")]
67912pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
67913    static_assert_uimm_bits!(LANE, 2);
67914    unsafe extern "unadjusted" {
67915        #[cfg_attr(
67916            any(target_arch = "aarch64", target_arch = "arm64ec"),
67917            link_name = "llvm.aarch64.neon.st3lane.v4i32.p0"
67918        )]
67919        fn _vst3q_lane_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, n: i64, ptr: *mut i8);
67920    }
67921    _vst3q_lane_s32(b.0, b.1, b.2, LANE as i64, a as _)
67922}
67923#[doc = "Store multiple 3-element structures from three registers"]
67924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u8)"]
67925#[doc = "## Safety"]
67926#[doc = "  * Neon intrinsic unsafe"]
67927#[inline(always)]
67928#[target_feature(enable = "neon")]
67929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67930#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67931#[cfg_attr(
67932    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67933    assert_instr(st3, LANE = 0)
67934)]
67935#[rustc_legacy_const_generics(2)]
67936#[cfg_attr(
67937    not(target_arch = "arm"),
67938    stable(feature = "neon_intrinsics", since = "1.59.0")
67939)]
67940#[cfg_attr(
67941    target_arch = "arm",
67942    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67943)]
67944pub unsafe fn vst3_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x3_t) {
67945    static_assert_uimm_bits!(LANE, 3);
67946    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
67947}
67948#[doc = "Store multiple 3-element structures from three registers"]
67949#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u16)"]
67950#[doc = "## Safety"]
67951#[doc = "  * Neon intrinsic unsafe"]
67952#[inline(always)]
67953#[target_feature(enable = "neon")]
67954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67956#[cfg_attr(
67957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67958    assert_instr(st3, LANE = 0)
67959)]
67960#[rustc_legacy_const_generics(2)]
67961#[cfg_attr(
67962    not(target_arch = "arm"),
67963    stable(feature = "neon_intrinsics", since = "1.59.0")
67964)]
67965#[cfg_attr(
67966    target_arch = "arm",
67967    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67968)]
67969pub unsafe fn vst3_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x3_t) {
67970    static_assert_uimm_bits!(LANE, 2);
67971    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
67972}
67973#[doc = "Store multiple 3-element structures from three registers"]
67974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u16)"]
67975#[doc = "## Safety"]
67976#[doc = "  * Neon intrinsic unsafe"]
67977#[inline(always)]
67978#[target_feature(enable = "neon")]
67979#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
67980#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
67981#[cfg_attr(
67982    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
67983    assert_instr(st3, LANE = 0)
67984)]
67985#[rustc_legacy_const_generics(2)]
67986#[cfg_attr(
67987    not(target_arch = "arm"),
67988    stable(feature = "neon_intrinsics", since = "1.59.0")
67989)]
67990#[cfg_attr(
67991    target_arch = "arm",
67992    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
67993)]
67994pub unsafe fn vst3q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x3_t) {
67995    static_assert_uimm_bits!(LANE, 3);
67996    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
67997}
67998#[doc = "Store multiple 3-element structures from three registers"]
67999#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u32)"]
68000#[doc = "## Safety"]
68001#[doc = "  * Neon intrinsic unsafe"]
68002#[inline(always)]
68003#[target_feature(enable = "neon")]
68004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68005#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
68006#[cfg_attr(
68007    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68008    assert_instr(st3, LANE = 0)
68009)]
68010#[rustc_legacy_const_generics(2)]
68011#[cfg_attr(
68012    not(target_arch = "arm"),
68013    stable(feature = "neon_intrinsics", since = "1.59.0")
68014)]
68015#[cfg_attr(
68016    target_arch = "arm",
68017    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68018)]
68019pub unsafe fn vst3_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x3_t) {
68020    static_assert_uimm_bits!(LANE, 1);
68021    vst3_lane_s32::<LANE>(transmute(a), transmute(b))
68022}
68023#[doc = "Store multiple 3-element structures from three registers"]
68024#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u32)"]
68025#[doc = "## Safety"]
68026#[doc = "  * Neon intrinsic unsafe"]
68027#[inline(always)]
68028#[target_feature(enable = "neon")]
68029#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68030#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
68031#[cfg_attr(
68032    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68033    assert_instr(st3, LANE = 0)
68034)]
68035#[rustc_legacy_const_generics(2)]
68036#[cfg_attr(
68037    not(target_arch = "arm"),
68038    stable(feature = "neon_intrinsics", since = "1.59.0")
68039)]
68040#[cfg_attr(
68041    target_arch = "arm",
68042    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68043)]
68044pub unsafe fn vst3q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x3_t) {
68045    static_assert_uimm_bits!(LANE, 2);
68046    vst3q_lane_s32::<LANE>(transmute(a), transmute(b))
68047}
68048#[doc = "Store multiple 3-element structures from three registers"]
68049#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p8)"]
68050#[doc = "## Safety"]
68051#[doc = "  * Neon intrinsic unsafe"]
68052#[inline(always)]
68053#[target_feature(enable = "neon")]
68054#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68055#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
68056#[cfg_attr(
68057    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68058    assert_instr(st3, LANE = 0)
68059)]
68060#[rustc_legacy_const_generics(2)]
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 vst3_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x3_t) {
68070    static_assert_uimm_bits!(LANE, 3);
68071    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
68072}
68073#[doc = "Store multiple 3-element structures from three registers"]
68074#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p16)"]
68075#[doc = "## Safety"]
68076#[doc = "  * Neon intrinsic unsafe"]
68077#[inline(always)]
68078#[target_feature(enable = "neon")]
68079#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68080#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
68081#[cfg_attr(
68082    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68083    assert_instr(st3, LANE = 0)
68084)]
68085#[rustc_legacy_const_generics(2)]
68086#[cfg_attr(
68087    not(target_arch = "arm"),
68088    stable(feature = "neon_intrinsics", since = "1.59.0")
68089)]
68090#[cfg_attr(
68091    target_arch = "arm",
68092    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68093)]
68094pub unsafe fn vst3_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x3_t) {
68095    static_assert_uimm_bits!(LANE, 2);
68096    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
68097}
68098#[doc = "Store multiple 3-element structures from three registers"]
68099#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_p16)"]
68100#[doc = "## Safety"]
68101#[doc = "  * Neon intrinsic unsafe"]
68102#[inline(always)]
68103#[target_feature(enable = "neon")]
68104#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68105#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
68106#[cfg_attr(
68107    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68108    assert_instr(st3, LANE = 0)
68109)]
68110#[rustc_legacy_const_generics(2)]
68111#[cfg_attr(
68112    not(target_arch = "arm"),
68113    stable(feature = "neon_intrinsics", since = "1.59.0")
68114)]
68115#[cfg_attr(
68116    target_arch = "arm",
68117    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68118)]
68119pub unsafe fn vst3q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x3_t) {
68120    static_assert_uimm_bits!(LANE, 3);
68121    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
68122}
68123#[doc = "Store multiple 3-element structures from three registers"]
68124#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p64)"]
68125#[doc = "## Safety"]
68126#[doc = "  * Neon intrinsic unsafe"]
68127#[inline(always)]
68128#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
68129#[target_feature(enable = "neon,aes")]
68130#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
68131#[cfg_attr(
68132    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68133    assert_instr(nop)
68134)]
68135#[cfg_attr(
68136    not(target_arch = "arm"),
68137    stable(feature = "neon_intrinsics", since = "1.59.0")
68138)]
68139#[cfg_attr(
68140    target_arch = "arm",
68141    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68142)]
68143pub unsafe fn vst3_p64(a: *mut p64, b: poly64x1x3_t) {
68144    vst3_s64(transmute(a), transmute(b))
68145}
68146#[doc = "Store multiple 3-element structures from three registers"]
68147#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)"]
68148#[doc = "## Safety"]
68149#[doc = "  * Neon intrinsic unsafe"]
68150#[inline(always)]
68151#[target_feature(enable = "neon")]
68152#[cfg(not(target_arch = "arm"))]
68153#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68154#[cfg_attr(test, assert_instr(nop))]
68155pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
68156    unsafe extern "unadjusted" {
68157        #[cfg_attr(
68158            any(target_arch = "aarch64", target_arch = "arm64ec"),
68159            link_name = "llvm.aarch64.neon.st3.v1i64.p0"
68160        )]
68161        fn _vst3_s64(a: int64x1_t, b: int64x1_t, c: int64x1_t, ptr: *mut i8);
68162    }
68163    _vst3_s64(b.0, b.1, b.2, a as _)
68164}
68165#[doc = "Store multiple 3-element structures from three registers"]
68166#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)"]
68167#[doc = "## Safety"]
68168#[doc = "  * Neon intrinsic unsafe"]
68169#[inline(always)]
68170#[cfg(target_arch = "arm")]
68171#[target_feature(enable = "neon,v7")]
68172#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68173#[cfg_attr(test, assert_instr(nop))]
68174pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
68175    unsafe extern "unadjusted" {
68176        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0.v1i64")]
68177        fn _vst3_s64(ptr: *mut i8, a: int64x1_t, b: int64x1_t, c: int64x1_t, size: i32);
68178    }
68179    _vst3_s64(a as _, b.0, b.1, b.2, 8)
68180}
68181#[doc = "Store multiple 3-element structures from three registers"]
68182#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u64)"]
68183#[doc = "## Safety"]
68184#[doc = "  * Neon intrinsic unsafe"]
68185#[inline(always)]
68186#[target_feature(enable = "neon")]
68187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68188#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
68189#[cfg_attr(
68190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68191    assert_instr(nop)
68192)]
68193#[cfg_attr(
68194    not(target_arch = "arm"),
68195    stable(feature = "neon_intrinsics", since = "1.59.0")
68196)]
68197#[cfg_attr(
68198    target_arch = "arm",
68199    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68200)]
68201pub unsafe fn vst3_u64(a: *mut u64, b: uint64x1x3_t) {
68202    vst3_s64(transmute(a), transmute(b))
68203}
68204#[doc = "Store multiple 3-element structures from three registers"]
68205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u8)"]
68206#[doc = "## Safety"]
68207#[doc = "  * Neon intrinsic unsafe"]
68208#[inline(always)]
68209#[target_feature(enable = "neon")]
68210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68212#[cfg_attr(
68213    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68214    assert_instr(st3)
68215)]
68216#[cfg_attr(
68217    not(target_arch = "arm"),
68218    stable(feature = "neon_intrinsics", since = "1.59.0")
68219)]
68220#[cfg_attr(
68221    target_arch = "arm",
68222    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68223)]
68224pub unsafe fn vst3_u8(a: *mut u8, b: uint8x8x3_t) {
68225    vst3_s8(transmute(a), transmute(b))
68226}
68227#[doc = "Store multiple 3-element structures from three registers"]
68228#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u8)"]
68229#[doc = "## Safety"]
68230#[doc = "  * Neon intrinsic unsafe"]
68231#[inline(always)]
68232#[target_feature(enable = "neon")]
68233#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68234#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68235#[cfg_attr(
68236    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68237    assert_instr(st3)
68238)]
68239#[cfg_attr(
68240    not(target_arch = "arm"),
68241    stable(feature = "neon_intrinsics", since = "1.59.0")
68242)]
68243#[cfg_attr(
68244    target_arch = "arm",
68245    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68246)]
68247pub unsafe fn vst3q_u8(a: *mut u8, b: uint8x16x3_t) {
68248    vst3q_s8(transmute(a), transmute(b))
68249}
68250#[doc = "Store multiple 3-element structures from three registers"]
68251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u16)"]
68252#[doc = "## Safety"]
68253#[doc = "  * Neon intrinsic unsafe"]
68254#[inline(always)]
68255#[target_feature(enable = "neon")]
68256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68257#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68258#[cfg_attr(
68259    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68260    assert_instr(st3)
68261)]
68262#[cfg_attr(
68263    not(target_arch = "arm"),
68264    stable(feature = "neon_intrinsics", since = "1.59.0")
68265)]
68266#[cfg_attr(
68267    target_arch = "arm",
68268    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68269)]
68270pub unsafe fn vst3_u16(a: *mut u16, b: uint16x4x3_t) {
68271    vst3_s16(transmute(a), transmute(b))
68272}
68273#[doc = "Store multiple 3-element structures from three registers"]
68274#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u16)"]
68275#[doc = "## Safety"]
68276#[doc = "  * Neon intrinsic unsafe"]
68277#[inline(always)]
68278#[target_feature(enable = "neon")]
68279#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68280#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68281#[cfg_attr(
68282    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68283    assert_instr(st3)
68284)]
68285#[cfg_attr(
68286    not(target_arch = "arm"),
68287    stable(feature = "neon_intrinsics", since = "1.59.0")
68288)]
68289#[cfg_attr(
68290    target_arch = "arm",
68291    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68292)]
68293pub unsafe fn vst3q_u16(a: *mut u16, b: uint16x8x3_t) {
68294    vst3q_s16(transmute(a), transmute(b))
68295}
68296#[doc = "Store multiple 3-element structures from three registers"]
68297#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u32)"]
68298#[doc = "## Safety"]
68299#[doc = "  * Neon intrinsic unsafe"]
68300#[inline(always)]
68301#[target_feature(enable = "neon")]
68302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68303#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68304#[cfg_attr(
68305    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68306    assert_instr(st3)
68307)]
68308#[cfg_attr(
68309    not(target_arch = "arm"),
68310    stable(feature = "neon_intrinsics", since = "1.59.0")
68311)]
68312#[cfg_attr(
68313    target_arch = "arm",
68314    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68315)]
68316pub unsafe fn vst3_u32(a: *mut u32, b: uint32x2x3_t) {
68317    vst3_s32(transmute(a), transmute(b))
68318}
68319#[doc = "Store multiple 3-element structures from three registers"]
68320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u32)"]
68321#[doc = "## Safety"]
68322#[doc = "  * Neon intrinsic unsafe"]
68323#[inline(always)]
68324#[target_feature(enable = "neon")]
68325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68326#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68327#[cfg_attr(
68328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68329    assert_instr(st3)
68330)]
68331#[cfg_attr(
68332    not(target_arch = "arm"),
68333    stable(feature = "neon_intrinsics", since = "1.59.0")
68334)]
68335#[cfg_attr(
68336    target_arch = "arm",
68337    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68338)]
68339pub unsafe fn vst3q_u32(a: *mut u32, b: uint32x4x3_t) {
68340    vst3q_s32(transmute(a), transmute(b))
68341}
68342#[doc = "Store multiple 3-element structures from three registers"]
68343#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p8)"]
68344#[doc = "## Safety"]
68345#[doc = "  * Neon intrinsic unsafe"]
68346#[inline(always)]
68347#[target_feature(enable = "neon")]
68348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68349#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68350#[cfg_attr(
68351    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68352    assert_instr(st3)
68353)]
68354#[cfg_attr(
68355    not(target_arch = "arm"),
68356    stable(feature = "neon_intrinsics", since = "1.59.0")
68357)]
68358#[cfg_attr(
68359    target_arch = "arm",
68360    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68361)]
68362pub unsafe fn vst3_p8(a: *mut p8, b: poly8x8x3_t) {
68363    vst3_s8(transmute(a), transmute(b))
68364}
68365#[doc = "Store multiple 3-element structures from three registers"]
68366#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p8)"]
68367#[doc = "## Safety"]
68368#[doc = "  * Neon intrinsic unsafe"]
68369#[inline(always)]
68370#[target_feature(enable = "neon")]
68371#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68372#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68373#[cfg_attr(
68374    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68375    assert_instr(st3)
68376)]
68377#[cfg_attr(
68378    not(target_arch = "arm"),
68379    stable(feature = "neon_intrinsics", since = "1.59.0")
68380)]
68381#[cfg_attr(
68382    target_arch = "arm",
68383    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68384)]
68385pub unsafe fn vst3q_p8(a: *mut p8, b: poly8x16x3_t) {
68386    vst3q_s8(transmute(a), transmute(b))
68387}
68388#[doc = "Store multiple 3-element structures from three registers"]
68389#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p16)"]
68390#[doc = "## Safety"]
68391#[doc = "  * Neon intrinsic unsafe"]
68392#[inline(always)]
68393#[target_feature(enable = "neon")]
68394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68396#[cfg_attr(
68397    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68398    assert_instr(st3)
68399)]
68400#[cfg_attr(
68401    not(target_arch = "arm"),
68402    stable(feature = "neon_intrinsics", since = "1.59.0")
68403)]
68404#[cfg_attr(
68405    target_arch = "arm",
68406    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68407)]
68408pub unsafe fn vst3_p16(a: *mut p16, b: poly16x4x3_t) {
68409    vst3_s16(transmute(a), transmute(b))
68410}
68411#[doc = "Store multiple 3-element structures from three registers"]
68412#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p16)"]
68413#[doc = "## Safety"]
68414#[doc = "  * Neon intrinsic unsafe"]
68415#[inline(always)]
68416#[target_feature(enable = "neon")]
68417#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68418#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
68419#[cfg_attr(
68420    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
68421    assert_instr(st3)
68422)]
68423#[cfg_attr(
68424    not(target_arch = "arm"),
68425    stable(feature = "neon_intrinsics", since = "1.59.0")
68426)]
68427#[cfg_attr(
68428    target_arch = "arm",
68429    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
68430)]
68431pub unsafe fn vst3q_p16(a: *mut p16, b: poly16x8x3_t) {
68432    vst3q_s16(transmute(a), transmute(b))
68433}
68434#[doc = "Store multiple 4-element structures from four registers"]
68435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f16)"]
68436#[doc = "## Safety"]
68437#[doc = "  * Neon intrinsic unsafe"]
68438#[inline(always)]
68439#[target_feature(enable = "neon")]
68440#[cfg(target_arch = "arm")]
68441#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68442#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68443#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68444#[cfg(not(target_arch = "arm64ec"))]
68445#[cfg_attr(test, assert_instr(vst4))]
68446pub unsafe fn vst4_f16(a: *mut f16, b: float16x4x4_t) {
68447    unsafe extern "unadjusted" {
68448        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4f16")]
68449        fn _vst4_f16(
68450            ptr: *mut i8,
68451            a: float16x4_t,
68452            b: float16x4_t,
68453            c: float16x4_t,
68454            d: float16x4_t,
68455            size: i32,
68456        );
68457    }
68458    _vst4_f16(a as _, b.0, b.1, b.2, b.3, 2)
68459}
68460#[doc = "Store multiple 4-element structures from four registers"]
68461#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f16)"]
68462#[doc = "## Safety"]
68463#[doc = "  * Neon intrinsic unsafe"]
68464#[inline(always)]
68465#[target_feature(enable = "neon")]
68466#[cfg(target_arch = "arm")]
68467#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68468#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68469#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68470#[cfg(not(target_arch = "arm64ec"))]
68471#[cfg_attr(test, assert_instr(vst4))]
68472pub unsafe fn vst4q_f16(a: *mut f16, b: float16x8x4_t) {
68473    unsafe extern "unadjusted" {
68474        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8f16")]
68475        fn _vst4q_f16(
68476            ptr: *mut i8,
68477            a: float16x8_t,
68478            b: float16x8_t,
68479            c: float16x8_t,
68480            d: float16x8_t,
68481            size: i32,
68482        );
68483    }
68484    _vst4q_f16(a as _, b.0, b.1, b.2, b.3, 2)
68485}
68486#[doc = "Store multiple 4-element structures from four registers"]
68487#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f16)"]
68488#[doc = "## Safety"]
68489#[doc = "  * Neon intrinsic unsafe"]
68490#[inline(always)]
68491#[target_feature(enable = "neon")]
68492#[cfg(not(target_arch = "arm"))]
68493#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68494#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68495#[cfg(not(target_arch = "arm64ec"))]
68496#[cfg_attr(test, assert_instr(st4))]
68497pub unsafe fn vst4_f16(a: *mut f16, b: float16x4x4_t) {
68498    unsafe extern "unadjusted" {
68499        #[cfg_attr(
68500            any(target_arch = "aarch64", target_arch = "arm64ec"),
68501            link_name = "llvm.aarch64.neon.st4.v4f16.p0"
68502        )]
68503        fn _vst4_f16(a: float16x4_t, b: float16x4_t, c: float16x4_t, d: float16x4_t, ptr: *mut i8);
68504    }
68505    _vst4_f16(b.0, b.1, b.2, b.3, a as _)
68506}
68507#[doc = "Store multiple 4-element structures from four registers"]
68508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f16)"]
68509#[doc = "## Safety"]
68510#[doc = "  * Neon intrinsic unsafe"]
68511#[inline(always)]
68512#[target_feature(enable = "neon")]
68513#[cfg(not(target_arch = "arm"))]
68514#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68515#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68516#[cfg(not(target_arch = "arm64ec"))]
68517#[cfg_attr(test, assert_instr(st4))]
68518pub unsafe fn vst4q_f16(a: *mut f16, b: float16x8x4_t) {
68519    unsafe extern "unadjusted" {
68520        #[cfg_attr(
68521            any(target_arch = "aarch64", target_arch = "arm64ec"),
68522            link_name = "llvm.aarch64.neon.st4.v8f16.p0"
68523        )]
68524        fn _vst4q_f16(a: float16x8_t, b: float16x8_t, c: float16x8_t, d: float16x8_t, ptr: *mut i8);
68525    }
68526    _vst4q_f16(b.0, b.1, b.2, b.3, a as _)
68527}
68528#[doc = "Store multiple 4-element structures from four registers"]
68529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)"]
68530#[doc = "## Safety"]
68531#[doc = "  * Neon intrinsic unsafe"]
68532#[inline(always)]
68533#[cfg(target_arch = "arm")]
68534#[target_feature(enable = "neon,v7")]
68535#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68536#[cfg_attr(test, assert_instr(vst4))]
68537pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
68538    unsafe extern "unadjusted" {
68539        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v2f32")]
68540        fn _vst4_f32(
68541            ptr: *mut i8,
68542            a: float32x2_t,
68543            b: float32x2_t,
68544            c: float32x2_t,
68545            d: float32x2_t,
68546            size: i32,
68547        );
68548    }
68549    _vst4_f32(a as _, b.0, b.1, b.2, b.3, 4)
68550}
68551#[doc = "Store multiple 4-element structures from four registers"]
68552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)"]
68553#[doc = "## Safety"]
68554#[doc = "  * Neon intrinsic unsafe"]
68555#[inline(always)]
68556#[cfg(target_arch = "arm")]
68557#[target_feature(enable = "neon,v7")]
68558#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68559#[cfg_attr(test, assert_instr(vst4))]
68560pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
68561    unsafe extern "unadjusted" {
68562        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4f32")]
68563        fn _vst4q_f32(
68564            ptr: *mut i8,
68565            a: float32x4_t,
68566            b: float32x4_t,
68567            c: float32x4_t,
68568            d: float32x4_t,
68569            size: i32,
68570        );
68571    }
68572    _vst4q_f32(a as _, b.0, b.1, b.2, b.3, 4)
68573}
68574#[doc = "Store multiple 4-element structures from four registers"]
68575#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)"]
68576#[doc = "## Safety"]
68577#[doc = "  * Neon intrinsic unsafe"]
68578#[inline(always)]
68579#[cfg(target_arch = "arm")]
68580#[target_feature(enable = "neon,v7")]
68581#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68582#[cfg_attr(test, assert_instr(vst4))]
68583pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
68584    unsafe extern "unadjusted" {
68585        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8i8")]
68586        fn _vst4_s8(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, size: i32);
68587    }
68588    _vst4_s8(a as _, b.0, b.1, b.2, b.3, 1)
68589}
68590#[doc = "Store multiple 4-element structures from four registers"]
68591#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)"]
68592#[doc = "## Safety"]
68593#[doc = "  * Neon intrinsic unsafe"]
68594#[inline(always)]
68595#[cfg(target_arch = "arm")]
68596#[target_feature(enable = "neon,v7")]
68597#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68598#[cfg_attr(test, assert_instr(vst4))]
68599pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
68600    unsafe extern "unadjusted" {
68601        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v16i8")]
68602        fn _vst4q_s8(
68603            ptr: *mut i8,
68604            a: int8x16_t,
68605            b: int8x16_t,
68606            c: int8x16_t,
68607            d: int8x16_t,
68608            size: i32,
68609        );
68610    }
68611    _vst4q_s8(a as _, b.0, b.1, b.2, b.3, 1)
68612}
68613#[doc = "Store multiple 4-element structures from four registers"]
68614#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)"]
68615#[doc = "## Safety"]
68616#[doc = "  * Neon intrinsic unsafe"]
68617#[inline(always)]
68618#[cfg(target_arch = "arm")]
68619#[target_feature(enable = "neon,v7")]
68620#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68621#[cfg_attr(test, assert_instr(vst4))]
68622pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
68623    unsafe extern "unadjusted" {
68624        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4i16")]
68625        fn _vst4_s16(
68626            ptr: *mut i8,
68627            a: int16x4_t,
68628            b: int16x4_t,
68629            c: int16x4_t,
68630            d: int16x4_t,
68631            size: i32,
68632        );
68633    }
68634    _vst4_s16(a as _, b.0, b.1, b.2, b.3, 2)
68635}
68636#[doc = "Store multiple 4-element structures from four registers"]
68637#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)"]
68638#[doc = "## Safety"]
68639#[doc = "  * Neon intrinsic unsafe"]
68640#[inline(always)]
68641#[cfg(target_arch = "arm")]
68642#[target_feature(enable = "neon,v7")]
68643#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68644#[cfg_attr(test, assert_instr(vst4))]
68645pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
68646    unsafe extern "unadjusted" {
68647        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v8i16")]
68648        fn _vst4q_s16(
68649            ptr: *mut i8,
68650            a: int16x8_t,
68651            b: int16x8_t,
68652            c: int16x8_t,
68653            d: int16x8_t,
68654            size: i32,
68655        );
68656    }
68657    _vst4q_s16(a as _, b.0, b.1, b.2, b.3, 2)
68658}
68659#[doc = "Store multiple 4-element structures from four registers"]
68660#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)"]
68661#[doc = "## Safety"]
68662#[doc = "  * Neon intrinsic unsafe"]
68663#[inline(always)]
68664#[cfg(target_arch = "arm")]
68665#[target_feature(enable = "neon,v7")]
68666#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68667#[cfg_attr(test, assert_instr(vst4))]
68668pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
68669    unsafe extern "unadjusted" {
68670        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v2i32")]
68671        fn _vst4_s32(
68672            ptr: *mut i8,
68673            a: int32x2_t,
68674            b: int32x2_t,
68675            c: int32x2_t,
68676            d: int32x2_t,
68677            size: i32,
68678        );
68679    }
68680    _vst4_s32(a as _, b.0, b.1, b.2, b.3, 4)
68681}
68682#[doc = "Store multiple 4-element structures from four registers"]
68683#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)"]
68684#[doc = "## Safety"]
68685#[doc = "  * Neon intrinsic unsafe"]
68686#[inline(always)]
68687#[cfg(target_arch = "arm")]
68688#[target_feature(enable = "neon,v7")]
68689#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68690#[cfg_attr(test, assert_instr(vst4))]
68691pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
68692    unsafe extern "unadjusted" {
68693        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v4i32")]
68694        fn _vst4q_s32(
68695            ptr: *mut i8,
68696            a: int32x4_t,
68697            b: int32x4_t,
68698            c: int32x4_t,
68699            d: int32x4_t,
68700            size: i32,
68701        );
68702    }
68703    _vst4q_s32(a as _, b.0, b.1, b.2, b.3, 4)
68704}
68705#[doc = "Store multiple 4-element structures from four registers"]
68706#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)"]
68707#[doc = "## Safety"]
68708#[doc = "  * Neon intrinsic unsafe"]
68709#[inline(always)]
68710#[target_feature(enable = "neon")]
68711#[cfg(not(target_arch = "arm"))]
68712#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68713#[cfg_attr(test, assert_instr(st4))]
68714pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
68715    unsafe extern "unadjusted" {
68716        #[cfg_attr(
68717            any(target_arch = "aarch64", target_arch = "arm64ec"),
68718            link_name = "llvm.aarch64.neon.st4.v2f32.p0"
68719        )]
68720        fn _vst4_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, ptr: *mut i8);
68721    }
68722    _vst4_f32(b.0, b.1, b.2, b.3, a as _)
68723}
68724#[doc = "Store multiple 4-element structures from four registers"]
68725#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)"]
68726#[doc = "## Safety"]
68727#[doc = "  * Neon intrinsic unsafe"]
68728#[inline(always)]
68729#[target_feature(enable = "neon")]
68730#[cfg(not(target_arch = "arm"))]
68731#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68732#[cfg_attr(test, assert_instr(st4))]
68733pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
68734    unsafe extern "unadjusted" {
68735        #[cfg_attr(
68736            any(target_arch = "aarch64", target_arch = "arm64ec"),
68737            link_name = "llvm.aarch64.neon.st4.v4f32.p0"
68738        )]
68739        fn _vst4q_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, ptr: *mut i8);
68740    }
68741    _vst4q_f32(b.0, b.1, b.2, b.3, a as _)
68742}
68743#[doc = "Store multiple 4-element structures from four registers"]
68744#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)"]
68745#[doc = "## Safety"]
68746#[doc = "  * Neon intrinsic unsafe"]
68747#[inline(always)]
68748#[target_feature(enable = "neon")]
68749#[cfg(not(target_arch = "arm"))]
68750#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68751#[cfg_attr(test, assert_instr(st4))]
68752pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
68753    unsafe extern "unadjusted" {
68754        #[cfg_attr(
68755            any(target_arch = "aarch64", target_arch = "arm64ec"),
68756            link_name = "llvm.aarch64.neon.st4.v8i8.p0"
68757        )]
68758        fn _vst4_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, ptr: *mut i8);
68759    }
68760    _vst4_s8(b.0, b.1, b.2, b.3, a as _)
68761}
68762#[doc = "Store multiple 4-element structures from four registers"]
68763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)"]
68764#[doc = "## Safety"]
68765#[doc = "  * Neon intrinsic unsafe"]
68766#[inline(always)]
68767#[target_feature(enable = "neon")]
68768#[cfg(not(target_arch = "arm"))]
68769#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68770#[cfg_attr(test, assert_instr(st4))]
68771pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
68772    unsafe extern "unadjusted" {
68773        #[cfg_attr(
68774            any(target_arch = "aarch64", target_arch = "arm64ec"),
68775            link_name = "llvm.aarch64.neon.st4.v16i8.p0"
68776        )]
68777        fn _vst4q_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, ptr: *mut i8);
68778    }
68779    _vst4q_s8(b.0, b.1, b.2, b.3, a as _)
68780}
68781#[doc = "Store multiple 4-element structures from four registers"]
68782#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)"]
68783#[doc = "## Safety"]
68784#[doc = "  * Neon intrinsic unsafe"]
68785#[inline(always)]
68786#[target_feature(enable = "neon")]
68787#[cfg(not(target_arch = "arm"))]
68788#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68789#[cfg_attr(test, assert_instr(st4))]
68790pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
68791    unsafe extern "unadjusted" {
68792        #[cfg_attr(
68793            any(target_arch = "aarch64", target_arch = "arm64ec"),
68794            link_name = "llvm.aarch64.neon.st4.v4i16.p0"
68795        )]
68796        fn _vst4_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, ptr: *mut i8);
68797    }
68798    _vst4_s16(b.0, b.1, b.2, b.3, a as _)
68799}
68800#[doc = "Store multiple 4-element structures from four registers"]
68801#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)"]
68802#[doc = "## Safety"]
68803#[doc = "  * Neon intrinsic unsafe"]
68804#[inline(always)]
68805#[target_feature(enable = "neon")]
68806#[cfg(not(target_arch = "arm"))]
68807#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68808#[cfg_attr(test, assert_instr(st4))]
68809pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
68810    unsafe extern "unadjusted" {
68811        #[cfg_attr(
68812            any(target_arch = "aarch64", target_arch = "arm64ec"),
68813            link_name = "llvm.aarch64.neon.st4.v8i16.p0"
68814        )]
68815        fn _vst4q_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, ptr: *mut i8);
68816    }
68817    _vst4q_s16(b.0, b.1, b.2, b.3, a as _)
68818}
68819#[doc = "Store multiple 4-element structures from four registers"]
68820#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)"]
68821#[doc = "## Safety"]
68822#[doc = "  * Neon intrinsic unsafe"]
68823#[inline(always)]
68824#[target_feature(enable = "neon")]
68825#[cfg(not(target_arch = "arm"))]
68826#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68827#[cfg_attr(test, assert_instr(st4))]
68828pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
68829    unsafe extern "unadjusted" {
68830        #[cfg_attr(
68831            any(target_arch = "aarch64", target_arch = "arm64ec"),
68832            link_name = "llvm.aarch64.neon.st4.v2i32.p0"
68833        )]
68834        fn _vst4_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, ptr: *mut i8);
68835    }
68836    _vst4_s32(b.0, b.1, b.2, b.3, a as _)
68837}
68838#[doc = "Store multiple 4-element structures from four registers"]
68839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)"]
68840#[doc = "## Safety"]
68841#[doc = "  * Neon intrinsic unsafe"]
68842#[inline(always)]
68843#[target_feature(enable = "neon")]
68844#[cfg(not(target_arch = "arm"))]
68845#[stable(feature = "neon_intrinsics", since = "1.59.0")]
68846#[cfg_attr(test, assert_instr(st4))]
68847pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
68848    unsafe extern "unadjusted" {
68849        #[cfg_attr(
68850            any(target_arch = "aarch64", target_arch = "arm64ec"),
68851            link_name = "llvm.aarch64.neon.st4.v4i32.p0"
68852        )]
68853        fn _vst4q_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, ptr: *mut i8);
68854    }
68855    _vst4q_s32(b.0, b.1, b.2, b.3, a as _)
68856}
68857#[doc = "Store multiple 4-element structures from four registers"]
68858#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f16)"]
68859#[doc = "## Safety"]
68860#[doc = "  * Neon intrinsic unsafe"]
68861#[inline(always)]
68862#[target_feature(enable = "neon")]
68863#[cfg(target_arch = "arm")]
68864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68865#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68866#[rustc_legacy_const_generics(2)]
68867#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68868#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68869#[cfg(not(target_arch = "arm64ec"))]
68870pub unsafe fn vst4_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x4_t) {
68871    static_assert_uimm_bits!(LANE, 2);
68872    unsafe extern "unadjusted" {
68873        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4f16")]
68874        fn _vst4_lane_f16(
68875            ptr: *mut i8,
68876            a: float16x4_t,
68877            b: float16x4_t,
68878            c: float16x4_t,
68879            d: float16x4_t,
68880            n: i32,
68881            size: i32,
68882        );
68883    }
68884    _vst4_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
68885}
68886#[doc = "Store multiple 4-element structures from four registers"]
68887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f16)"]
68888#[doc = "## Safety"]
68889#[doc = "  * Neon intrinsic unsafe"]
68890#[inline(always)]
68891#[target_feature(enable = "neon")]
68892#[cfg(target_arch = "arm")]
68893#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
68894#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68895#[rustc_legacy_const_generics(2)]
68896#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68897#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68898#[cfg(not(target_arch = "arm64ec"))]
68899pub unsafe fn vst4q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x4_t) {
68900    static_assert_uimm_bits!(LANE, 3);
68901    unsafe extern "unadjusted" {
68902        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8f16")]
68903        fn _vst4q_lane_f16(
68904            ptr: *mut i8,
68905            a: float16x8_t,
68906            b: float16x8_t,
68907            c: float16x8_t,
68908            d: float16x8_t,
68909            n: i32,
68910            size: i32,
68911        );
68912    }
68913    _vst4q_lane_f16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
68914}
68915#[doc = "Store multiple 4-element structures from four registers"]
68916#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f16)"]
68917#[doc = "## Safety"]
68918#[doc = "  * Neon intrinsic unsafe"]
68919#[inline(always)]
68920#[target_feature(enable = "neon")]
68921#[cfg(not(target_arch = "arm"))]
68922#[rustc_legacy_const_generics(2)]
68923#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68924#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68925#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68926#[cfg(not(target_arch = "arm64ec"))]
68927pub unsafe fn vst4_lane_f16<const LANE: i32>(a: *mut f16, b: float16x4x4_t) {
68928    static_assert_uimm_bits!(LANE, 2);
68929    unsafe extern "unadjusted" {
68930        #[cfg_attr(
68931            any(target_arch = "aarch64", target_arch = "arm64ec"),
68932            link_name = "llvm.aarch64.neon.st4lane.v4f16.p0"
68933        )]
68934        fn _vst4_lane_f16(
68935            a: float16x4_t,
68936            b: float16x4_t,
68937            c: float16x4_t,
68938            d: float16x4_t,
68939            n: i64,
68940            ptr: *mut i8,
68941        );
68942    }
68943    _vst4_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68944}
68945#[doc = "Store multiple 4-element structures from four registers"]
68946#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f16)"]
68947#[doc = "## Safety"]
68948#[doc = "  * Neon intrinsic unsafe"]
68949#[inline(always)]
68950#[target_feature(enable = "neon")]
68951#[cfg(not(target_arch = "arm"))]
68952#[rustc_legacy_const_generics(2)]
68953#[cfg_attr(test, assert_instr(st4, LANE = 0))]
68954#[cfg_attr(target_arch = "arm", target_feature(enable = "fp16"))]
68955#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
68956#[cfg(not(target_arch = "arm64ec"))]
68957pub unsafe fn vst4q_lane_f16<const LANE: i32>(a: *mut f16, b: float16x8x4_t) {
68958    static_assert_uimm_bits!(LANE, 3);
68959    unsafe extern "unadjusted" {
68960        #[cfg_attr(
68961            any(target_arch = "aarch64", target_arch = "arm64ec"),
68962            link_name = "llvm.aarch64.neon.st4lane.v8f16.p0"
68963        )]
68964        fn _vst4q_lane_f16(
68965            a: float16x8_t,
68966            b: float16x8_t,
68967            c: float16x8_t,
68968            d: float16x8_t,
68969            n: i64,
68970            ptr: *mut i8,
68971        );
68972    }
68973    _vst4q_lane_f16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
68974}
68975#[doc = "Store multiple 4-element structures from four registers"]
68976#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)"]
68977#[doc = "## Safety"]
68978#[doc = "  * Neon intrinsic unsafe"]
68979#[inline(always)]
68980#[cfg(target_arch = "arm")]
68981#[target_feature(enable = "neon,v7")]
68982#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
68983#[rustc_legacy_const_generics(2)]
68984#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
68985pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
68986    static_assert_uimm_bits!(LANE, 1);
68987    unsafe extern "unadjusted" {
68988        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v2f32")]
68989        fn _vst4_lane_f32(
68990            ptr: *mut i8,
68991            a: float32x2_t,
68992            b: float32x2_t,
68993            c: float32x2_t,
68994            d: float32x2_t,
68995            n: i32,
68996            size: i32,
68997        );
68998    }
68999    _vst4_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
69000}
69001#[doc = "Store multiple 4-element structures from four registers"]
69002#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)"]
69003#[doc = "## Safety"]
69004#[doc = "  * Neon intrinsic unsafe"]
69005#[inline(always)]
69006#[cfg(target_arch = "arm")]
69007#[target_feature(enable = "neon,v7")]
69008#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
69009#[rustc_legacy_const_generics(2)]
69010#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69011pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
69012    static_assert_uimm_bits!(LANE, 2);
69013    unsafe extern "unadjusted" {
69014        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4f32")]
69015        fn _vst4q_lane_f32(
69016            ptr: *mut i8,
69017            a: float32x4_t,
69018            b: float32x4_t,
69019            c: float32x4_t,
69020            d: float32x4_t,
69021            n: i32,
69022            size: i32,
69023        );
69024    }
69025    _vst4q_lane_f32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
69026}
69027#[doc = "Store multiple 4-element structures from four registers"]
69028#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)"]
69029#[doc = "## Safety"]
69030#[doc = "  * Neon intrinsic unsafe"]
69031#[inline(always)]
69032#[cfg(target_arch = "arm")]
69033#[target_feature(enable = "neon,v7")]
69034#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
69035#[rustc_legacy_const_generics(2)]
69036#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69037pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
69038    static_assert_uimm_bits!(LANE, 3);
69039    unsafe extern "unadjusted" {
69040        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8i8")]
69041        fn _vst4_lane_s8(
69042            ptr: *mut i8,
69043            a: int8x8_t,
69044            b: int8x8_t,
69045            c: int8x8_t,
69046            d: int8x8_t,
69047            n: i32,
69048            size: i32,
69049        );
69050    }
69051    _vst4_lane_s8(a as _, b.0, b.1, b.2, b.3, LANE, 1)
69052}
69053#[doc = "Store multiple 4-element structures from four registers"]
69054#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)"]
69055#[doc = "## Safety"]
69056#[doc = "  * Neon intrinsic unsafe"]
69057#[inline(always)]
69058#[cfg(target_arch = "arm")]
69059#[target_feature(enable = "neon,v7")]
69060#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
69061#[rustc_legacy_const_generics(2)]
69062#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69063pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
69064    static_assert_uimm_bits!(LANE, 2);
69065    unsafe extern "unadjusted" {
69066        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4i16")]
69067        fn _vst4_lane_s16(
69068            ptr: *mut i8,
69069            a: int16x4_t,
69070            b: int16x4_t,
69071            c: int16x4_t,
69072            d: int16x4_t,
69073            n: i32,
69074            size: i32,
69075        );
69076    }
69077    _vst4_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
69078}
69079#[doc = "Store multiple 4-element structures from four registers"]
69080#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)"]
69081#[doc = "## Safety"]
69082#[doc = "  * Neon intrinsic unsafe"]
69083#[inline(always)]
69084#[cfg(target_arch = "arm")]
69085#[target_feature(enable = "neon,v7")]
69086#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
69087#[rustc_legacy_const_generics(2)]
69088#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69089pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
69090    static_assert_uimm_bits!(LANE, 3);
69091    unsafe extern "unadjusted" {
69092        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v8i16")]
69093        fn _vst4q_lane_s16(
69094            ptr: *mut i8,
69095            a: int16x8_t,
69096            b: int16x8_t,
69097            c: int16x8_t,
69098            d: int16x8_t,
69099            n: i32,
69100            size: i32,
69101        );
69102    }
69103    _vst4q_lane_s16(a as _, b.0, b.1, b.2, b.3, LANE, 2)
69104}
69105#[doc = "Store multiple 4-element structures from four registers"]
69106#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s32)"]
69107#[doc = "## Safety"]
69108#[doc = "  * Neon intrinsic unsafe"]
69109#[inline(always)]
69110#[cfg(target_arch = "arm")]
69111#[target_feature(enable = "neon,v7")]
69112#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
69113#[rustc_legacy_const_generics(2)]
69114#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69115pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
69116    static_assert_uimm_bits!(LANE, 1);
69117    unsafe extern "unadjusted" {
69118        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v2i32")]
69119        fn _vst4_lane_s32(
69120            ptr: *mut i8,
69121            a: int32x2_t,
69122            b: int32x2_t,
69123            c: int32x2_t,
69124            d: int32x2_t,
69125            n: i32,
69126            size: i32,
69127        );
69128    }
69129    _vst4_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
69130}
69131#[doc = "Store multiple 4-element structures from four registers"]
69132#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)"]
69133#[doc = "## Safety"]
69134#[doc = "  * Neon intrinsic unsafe"]
69135#[inline(always)]
69136#[cfg(target_arch = "arm")]
69137#[target_feature(enable = "neon,v7")]
69138#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
69139#[rustc_legacy_const_generics(2)]
69140#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69141pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
69142    static_assert_uimm_bits!(LANE, 2);
69143    unsafe extern "unadjusted" {
69144        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0.v4i32")]
69145        fn _vst4q_lane_s32(
69146            ptr: *mut i8,
69147            a: int32x4_t,
69148            b: int32x4_t,
69149            c: int32x4_t,
69150            d: int32x4_t,
69151            n: i32,
69152            size: i32,
69153        );
69154    }
69155    _vst4q_lane_s32(a as _, b.0, b.1, b.2, b.3, LANE, 4)
69156}
69157#[doc = "Store multiple 4-element structures from four registers"]
69158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)"]
69159#[doc = "## Safety"]
69160#[doc = "  * Neon intrinsic unsafe"]
69161#[inline(always)]
69162#[target_feature(enable = "neon")]
69163#[cfg(not(target_arch = "arm"))]
69164#[rustc_legacy_const_generics(2)]
69165#[cfg_attr(test, assert_instr(st4, LANE = 0))]
69166#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69167pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
69168    static_assert_uimm_bits!(LANE, 1);
69169    unsafe extern "unadjusted" {
69170        #[cfg_attr(
69171            any(target_arch = "aarch64", target_arch = "arm64ec"),
69172            link_name = "llvm.aarch64.neon.st4lane.v2f32.p0"
69173        )]
69174        fn _vst4_lane_f32(
69175            a: float32x2_t,
69176            b: float32x2_t,
69177            c: float32x2_t,
69178            d: float32x2_t,
69179            n: i64,
69180            ptr: *mut i8,
69181        );
69182    }
69183    _vst4_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
69184}
69185#[doc = "Store multiple 4-element structures from four registers"]
69186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)"]
69187#[doc = "## Safety"]
69188#[doc = "  * Neon intrinsic unsafe"]
69189#[inline(always)]
69190#[target_feature(enable = "neon")]
69191#[cfg(not(target_arch = "arm"))]
69192#[rustc_legacy_const_generics(2)]
69193#[cfg_attr(test, assert_instr(st4, LANE = 0))]
69194#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69195pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
69196    static_assert_uimm_bits!(LANE, 2);
69197    unsafe extern "unadjusted" {
69198        #[cfg_attr(
69199            any(target_arch = "aarch64", target_arch = "arm64ec"),
69200            link_name = "llvm.aarch64.neon.st4lane.v4f32.p0"
69201        )]
69202        fn _vst4q_lane_f32(
69203            a: float32x4_t,
69204            b: float32x4_t,
69205            c: float32x4_t,
69206            d: float32x4_t,
69207            n: i64,
69208            ptr: *mut i8,
69209        );
69210    }
69211    _vst4q_lane_f32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
69212}
69213#[doc = "Store multiple 4-element structures from four registers"]
69214#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)"]
69215#[doc = "## Safety"]
69216#[doc = "  * Neon intrinsic unsafe"]
69217#[inline(always)]
69218#[target_feature(enable = "neon")]
69219#[cfg(not(target_arch = "arm"))]
69220#[rustc_legacy_const_generics(2)]
69221#[cfg_attr(test, assert_instr(st4, LANE = 0))]
69222#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69223pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
69224    static_assert_uimm_bits!(LANE, 3);
69225    unsafe extern "unadjusted" {
69226        #[cfg_attr(
69227            any(target_arch = "aarch64", target_arch = "arm64ec"),
69228            link_name = "llvm.aarch64.neon.st4lane.v8i8.p0"
69229        )]
69230        fn _vst4_lane_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, n: i64, ptr: *mut i8);
69231    }
69232    _vst4_lane_s8(b.0, b.1, b.2, b.3, LANE as i64, a as _)
69233}
69234#[doc = "Store multiple 4-element structures from four registers"]
69235#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)"]
69236#[doc = "## Safety"]
69237#[doc = "  * Neon intrinsic unsafe"]
69238#[inline(always)]
69239#[target_feature(enable = "neon")]
69240#[cfg(not(target_arch = "arm"))]
69241#[rustc_legacy_const_generics(2)]
69242#[cfg_attr(test, assert_instr(st4, LANE = 0))]
69243#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69244pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
69245    static_assert_uimm_bits!(LANE, 2);
69246    unsafe extern "unadjusted" {
69247        #[cfg_attr(
69248            any(target_arch = "aarch64", target_arch = "arm64ec"),
69249            link_name = "llvm.aarch64.neon.st4lane.v4i16.p0"
69250        )]
69251        fn _vst4_lane_s16(
69252            a: int16x4_t,
69253            b: int16x4_t,
69254            c: int16x4_t,
69255            d: int16x4_t,
69256            n: i64,
69257            ptr: *mut i8,
69258        );
69259    }
69260    _vst4_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
69261}
69262#[doc = "Store multiple 4-element structures from four registers"]
69263#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)"]
69264#[doc = "## Safety"]
69265#[doc = "  * Neon intrinsic unsafe"]
69266#[inline(always)]
69267#[target_feature(enable = "neon")]
69268#[cfg(not(target_arch = "arm"))]
69269#[rustc_legacy_const_generics(2)]
69270#[cfg_attr(test, assert_instr(st4, LANE = 0))]
69271#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69272pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
69273    static_assert_uimm_bits!(LANE, 3);
69274    unsafe extern "unadjusted" {
69275        #[cfg_attr(
69276            any(target_arch = "aarch64", target_arch = "arm64ec"),
69277            link_name = "llvm.aarch64.neon.st4lane.v8i16.p0"
69278        )]
69279        fn _vst4q_lane_s16(
69280            a: int16x8_t,
69281            b: int16x8_t,
69282            c: int16x8_t,
69283            d: int16x8_t,
69284            n: i64,
69285            ptr: *mut i8,
69286        );
69287    }
69288    _vst4q_lane_s16(b.0, b.1, b.2, b.3, LANE as i64, a as _)
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_lane_s32)"]
69292#[doc = "## Safety"]
69293#[doc = "  * Neon intrinsic unsafe"]
69294#[inline(always)]
69295#[target_feature(enable = "neon")]
69296#[cfg(not(target_arch = "arm"))]
69297#[rustc_legacy_const_generics(2)]
69298#[cfg_attr(test, assert_instr(st4, LANE = 0))]
69299#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69300pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
69301    static_assert_uimm_bits!(LANE, 1);
69302    unsafe extern "unadjusted" {
69303        #[cfg_attr(
69304            any(target_arch = "aarch64", target_arch = "arm64ec"),
69305            link_name = "llvm.aarch64.neon.st4lane.v2i32.p0"
69306        )]
69307        fn _vst4_lane_s32(
69308            a: int32x2_t,
69309            b: int32x2_t,
69310            c: int32x2_t,
69311            d: int32x2_t,
69312            n: i64,
69313            ptr: *mut i8,
69314        );
69315    }
69316    _vst4_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
69317}
69318#[doc = "Store multiple 4-element structures from four registers"]
69319#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)"]
69320#[doc = "## Safety"]
69321#[doc = "  * Neon intrinsic unsafe"]
69322#[inline(always)]
69323#[target_feature(enable = "neon")]
69324#[cfg(not(target_arch = "arm"))]
69325#[rustc_legacy_const_generics(2)]
69326#[cfg_attr(test, assert_instr(st4, LANE = 0))]
69327#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69328pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
69329    static_assert_uimm_bits!(LANE, 2);
69330    unsafe extern "unadjusted" {
69331        #[cfg_attr(
69332            any(target_arch = "aarch64", target_arch = "arm64ec"),
69333            link_name = "llvm.aarch64.neon.st4lane.v4i32.p0"
69334        )]
69335        fn _vst4q_lane_s32(
69336            a: int32x4_t,
69337            b: int32x4_t,
69338            c: int32x4_t,
69339            d: int32x4_t,
69340            n: i64,
69341            ptr: *mut i8,
69342        );
69343    }
69344    _vst4q_lane_s32(b.0, b.1, b.2, b.3, LANE as i64, a as _)
69345}
69346#[doc = "Store multiple 4-element structures from four registers"]
69347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u8)"]
69348#[doc = "## Safety"]
69349#[doc = "  * Neon intrinsic unsafe"]
69350#[inline(always)]
69351#[target_feature(enable = "neon")]
69352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69354#[cfg_attr(
69355    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69356    assert_instr(st4, LANE = 0)
69357)]
69358#[rustc_legacy_const_generics(2)]
69359#[cfg_attr(
69360    not(target_arch = "arm"),
69361    stable(feature = "neon_intrinsics", since = "1.59.0")
69362)]
69363#[cfg_attr(
69364    target_arch = "arm",
69365    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69366)]
69367pub unsafe fn vst4_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x4_t) {
69368    static_assert_uimm_bits!(LANE, 3);
69369    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
69370}
69371#[doc = "Store multiple 4-element structures from four registers"]
69372#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u16)"]
69373#[doc = "## Safety"]
69374#[doc = "  * Neon intrinsic unsafe"]
69375#[inline(always)]
69376#[target_feature(enable = "neon")]
69377#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69378#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69379#[cfg_attr(
69380    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69381    assert_instr(st4, LANE = 0)
69382)]
69383#[rustc_legacy_const_generics(2)]
69384#[cfg_attr(
69385    not(target_arch = "arm"),
69386    stable(feature = "neon_intrinsics", since = "1.59.0")
69387)]
69388#[cfg_attr(
69389    target_arch = "arm",
69390    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69391)]
69392pub unsafe fn vst4_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x4_t) {
69393    static_assert_uimm_bits!(LANE, 2);
69394    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
69395}
69396#[doc = "Store multiple 4-element structures from four registers"]
69397#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u16)"]
69398#[doc = "## Safety"]
69399#[doc = "  * Neon intrinsic unsafe"]
69400#[inline(always)]
69401#[target_feature(enable = "neon")]
69402#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69403#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69404#[cfg_attr(
69405    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69406    assert_instr(st4, LANE = 0)
69407)]
69408#[rustc_legacy_const_generics(2)]
69409#[cfg_attr(
69410    not(target_arch = "arm"),
69411    stable(feature = "neon_intrinsics", since = "1.59.0")
69412)]
69413#[cfg_attr(
69414    target_arch = "arm",
69415    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69416)]
69417pub unsafe fn vst4q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x4_t) {
69418    static_assert_uimm_bits!(LANE, 3);
69419    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
69420}
69421#[doc = "Store multiple 4-element structures from four registers"]
69422#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u32)"]
69423#[doc = "## Safety"]
69424#[doc = "  * Neon intrinsic unsafe"]
69425#[inline(always)]
69426#[target_feature(enable = "neon")]
69427#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69428#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69429#[cfg_attr(
69430    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69431    assert_instr(st4, LANE = 0)
69432)]
69433#[rustc_legacy_const_generics(2)]
69434#[cfg_attr(
69435    not(target_arch = "arm"),
69436    stable(feature = "neon_intrinsics", since = "1.59.0")
69437)]
69438#[cfg_attr(
69439    target_arch = "arm",
69440    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69441)]
69442pub unsafe fn vst4_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x4_t) {
69443    static_assert_uimm_bits!(LANE, 1);
69444    vst4_lane_s32::<LANE>(transmute(a), transmute(b))
69445}
69446#[doc = "Store multiple 4-element structures from four registers"]
69447#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u32)"]
69448#[doc = "## Safety"]
69449#[doc = "  * Neon intrinsic unsafe"]
69450#[inline(always)]
69451#[target_feature(enable = "neon")]
69452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69454#[cfg_attr(
69455    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69456    assert_instr(st4, LANE = 0)
69457)]
69458#[rustc_legacy_const_generics(2)]
69459#[cfg_attr(
69460    not(target_arch = "arm"),
69461    stable(feature = "neon_intrinsics", since = "1.59.0")
69462)]
69463#[cfg_attr(
69464    target_arch = "arm",
69465    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69466)]
69467pub unsafe fn vst4q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x4_t) {
69468    static_assert_uimm_bits!(LANE, 2);
69469    vst4q_lane_s32::<LANE>(transmute(a), transmute(b))
69470}
69471#[doc = "Store multiple 4-element structures from four registers"]
69472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p8)"]
69473#[doc = "## Safety"]
69474#[doc = "  * Neon intrinsic unsafe"]
69475#[inline(always)]
69476#[target_feature(enable = "neon")]
69477#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69478#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69479#[cfg_attr(
69480    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69481    assert_instr(st4, LANE = 0)
69482)]
69483#[rustc_legacy_const_generics(2)]
69484#[cfg_attr(
69485    not(target_arch = "arm"),
69486    stable(feature = "neon_intrinsics", since = "1.59.0")
69487)]
69488#[cfg_attr(
69489    target_arch = "arm",
69490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69491)]
69492pub unsafe fn vst4_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x4_t) {
69493    static_assert_uimm_bits!(LANE, 3);
69494    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
69495}
69496#[doc = "Store multiple 4-element structures from four registers"]
69497#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p16)"]
69498#[doc = "## Safety"]
69499#[doc = "  * Neon intrinsic unsafe"]
69500#[inline(always)]
69501#[target_feature(enable = "neon")]
69502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69503#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69504#[cfg_attr(
69505    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69506    assert_instr(st4, LANE = 0)
69507)]
69508#[rustc_legacy_const_generics(2)]
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 vst4_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x4_t) {
69518    static_assert_uimm_bits!(LANE, 2);
69519    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
69520}
69521#[doc = "Store multiple 4-element structures from four registers"]
69522#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_p16)"]
69523#[doc = "## Safety"]
69524#[doc = "  * Neon intrinsic unsafe"]
69525#[inline(always)]
69526#[target_feature(enable = "neon")]
69527#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69528#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
69529#[cfg_attr(
69530    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69531    assert_instr(st4, LANE = 0)
69532)]
69533#[rustc_legacy_const_generics(2)]
69534#[cfg_attr(
69535    not(target_arch = "arm"),
69536    stable(feature = "neon_intrinsics", since = "1.59.0")
69537)]
69538#[cfg_attr(
69539    target_arch = "arm",
69540    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69541)]
69542pub unsafe fn vst4q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x4_t) {
69543    static_assert_uimm_bits!(LANE, 3);
69544    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
69545}
69546#[doc = "Store multiple 4-element structures from four registers"]
69547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p64)"]
69548#[doc = "## Safety"]
69549#[doc = "  * Neon intrinsic unsafe"]
69550#[inline(always)]
69551#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
69552#[target_feature(enable = "neon,aes")]
69553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
69554#[cfg_attr(
69555    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69556    assert_instr(nop)
69557)]
69558#[cfg_attr(
69559    not(target_arch = "arm"),
69560    stable(feature = "neon_intrinsics", since = "1.59.0")
69561)]
69562#[cfg_attr(
69563    target_arch = "arm",
69564    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69565)]
69566pub unsafe fn vst4_p64(a: *mut p64, b: poly64x1x4_t) {
69567    vst4_s64(transmute(a), transmute(b))
69568}
69569#[doc = "Store multiple 4-element structures from four registers"]
69570#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)"]
69571#[doc = "## Safety"]
69572#[doc = "  * Neon intrinsic unsafe"]
69573#[inline(always)]
69574#[cfg(target_arch = "arm")]
69575#[target_feature(enable = "neon,v7")]
69576#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
69577#[cfg_attr(test, assert_instr(nop))]
69578pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
69579    unsafe extern "unadjusted" {
69580        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0.v1i64")]
69581        fn _vst4_s64(
69582            ptr: *mut i8,
69583            a: int64x1_t,
69584            b: int64x1_t,
69585            c: int64x1_t,
69586            d: int64x1_t,
69587            size: i32,
69588        );
69589    }
69590    _vst4_s64(a as _, b.0, b.1, b.2, b.3, 8)
69591}
69592#[doc = "Store multiple 4-element structures from four registers"]
69593#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)"]
69594#[doc = "## Safety"]
69595#[doc = "  * Neon intrinsic unsafe"]
69596#[inline(always)]
69597#[target_feature(enable = "neon")]
69598#[cfg(not(target_arch = "arm"))]
69599#[stable(feature = "neon_intrinsics", since = "1.59.0")]
69600#[cfg_attr(test, assert_instr(nop))]
69601pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
69602    unsafe extern "unadjusted" {
69603        #[cfg_attr(
69604            any(target_arch = "aarch64", target_arch = "arm64ec"),
69605            link_name = "llvm.aarch64.neon.st4.v1i64.p0"
69606        )]
69607        fn _vst4_s64(a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, ptr: *mut i8);
69608    }
69609    _vst4_s64(b.0, b.1, b.2, b.3, a as _)
69610}
69611#[doc = "Store multiple 4-element structures from four registers"]
69612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u64)"]
69613#[doc = "## Safety"]
69614#[doc = "  * Neon intrinsic unsafe"]
69615#[inline(always)]
69616#[target_feature(enable = "neon")]
69617#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69618#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
69619#[cfg_attr(
69620    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69621    assert_instr(nop)
69622)]
69623#[cfg_attr(
69624    not(target_arch = "arm"),
69625    stable(feature = "neon_intrinsics", since = "1.59.0")
69626)]
69627#[cfg_attr(
69628    target_arch = "arm",
69629    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69630)]
69631pub unsafe fn vst4_u64(a: *mut u64, b: uint64x1x4_t) {
69632    vst4_s64(transmute(a), transmute(b))
69633}
69634#[doc = "Store multiple 4-element structures from four registers"]
69635#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u8)"]
69636#[doc = "## Safety"]
69637#[doc = "  * Neon intrinsic unsafe"]
69638#[inline(always)]
69639#[target_feature(enable = "neon")]
69640#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69641#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69642#[cfg_attr(
69643    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69644    assert_instr(st4)
69645)]
69646#[cfg_attr(
69647    not(target_arch = "arm"),
69648    stable(feature = "neon_intrinsics", since = "1.59.0")
69649)]
69650#[cfg_attr(
69651    target_arch = "arm",
69652    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69653)]
69654pub unsafe fn vst4_u8(a: *mut u8, b: uint8x8x4_t) {
69655    vst4_s8(transmute(a), transmute(b))
69656}
69657#[doc = "Store multiple 4-element structures from four registers"]
69658#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u8)"]
69659#[doc = "## Safety"]
69660#[doc = "  * Neon intrinsic unsafe"]
69661#[inline(always)]
69662#[target_feature(enable = "neon")]
69663#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69664#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69665#[cfg_attr(
69666    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69667    assert_instr(st4)
69668)]
69669#[cfg_attr(
69670    not(target_arch = "arm"),
69671    stable(feature = "neon_intrinsics", since = "1.59.0")
69672)]
69673#[cfg_attr(
69674    target_arch = "arm",
69675    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69676)]
69677pub unsafe fn vst4q_u8(a: *mut u8, b: uint8x16x4_t) {
69678    vst4q_s8(transmute(a), transmute(b))
69679}
69680#[doc = "Store multiple 4-element structures from four registers"]
69681#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u16)"]
69682#[doc = "## Safety"]
69683#[doc = "  * Neon intrinsic unsafe"]
69684#[inline(always)]
69685#[target_feature(enable = "neon")]
69686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69688#[cfg_attr(
69689    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69690    assert_instr(st4)
69691)]
69692#[cfg_attr(
69693    not(target_arch = "arm"),
69694    stable(feature = "neon_intrinsics", since = "1.59.0")
69695)]
69696#[cfg_attr(
69697    target_arch = "arm",
69698    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69699)]
69700pub unsafe fn vst4_u16(a: *mut u16, b: uint16x4x4_t) {
69701    vst4_s16(transmute(a), transmute(b))
69702}
69703#[doc = "Store multiple 4-element structures from four registers"]
69704#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u16)"]
69705#[doc = "## Safety"]
69706#[doc = "  * Neon intrinsic unsafe"]
69707#[inline(always)]
69708#[target_feature(enable = "neon")]
69709#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69710#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69711#[cfg_attr(
69712    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69713    assert_instr(st4)
69714)]
69715#[cfg_attr(
69716    not(target_arch = "arm"),
69717    stable(feature = "neon_intrinsics", since = "1.59.0")
69718)]
69719#[cfg_attr(
69720    target_arch = "arm",
69721    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69722)]
69723pub unsafe fn vst4q_u16(a: *mut u16, b: uint16x8x4_t) {
69724    vst4q_s16(transmute(a), transmute(b))
69725}
69726#[doc = "Store multiple 4-element structures from four registers"]
69727#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u32)"]
69728#[doc = "## Safety"]
69729#[doc = "  * Neon intrinsic unsafe"]
69730#[inline(always)]
69731#[target_feature(enable = "neon")]
69732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69734#[cfg_attr(
69735    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69736    assert_instr(st4)
69737)]
69738#[cfg_attr(
69739    not(target_arch = "arm"),
69740    stable(feature = "neon_intrinsics", since = "1.59.0")
69741)]
69742#[cfg_attr(
69743    target_arch = "arm",
69744    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69745)]
69746pub unsafe fn vst4_u32(a: *mut u32, b: uint32x2x4_t) {
69747    vst4_s32(transmute(a), transmute(b))
69748}
69749#[doc = "Store multiple 4-element structures from four registers"]
69750#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u32)"]
69751#[doc = "## Safety"]
69752#[doc = "  * Neon intrinsic unsafe"]
69753#[inline(always)]
69754#[target_feature(enable = "neon")]
69755#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69756#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69757#[cfg_attr(
69758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69759    assert_instr(st4)
69760)]
69761#[cfg_attr(
69762    not(target_arch = "arm"),
69763    stable(feature = "neon_intrinsics", since = "1.59.0")
69764)]
69765#[cfg_attr(
69766    target_arch = "arm",
69767    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69768)]
69769pub unsafe fn vst4q_u32(a: *mut u32, b: uint32x4x4_t) {
69770    vst4q_s32(transmute(a), transmute(b))
69771}
69772#[doc = "Store multiple 4-element structures from four registers"]
69773#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p8)"]
69774#[doc = "## Safety"]
69775#[doc = "  * Neon intrinsic unsafe"]
69776#[inline(always)]
69777#[target_feature(enable = "neon")]
69778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69780#[cfg_attr(
69781    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69782    assert_instr(st4)
69783)]
69784#[cfg_attr(
69785    not(target_arch = "arm"),
69786    stable(feature = "neon_intrinsics", since = "1.59.0")
69787)]
69788#[cfg_attr(
69789    target_arch = "arm",
69790    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69791)]
69792pub unsafe fn vst4_p8(a: *mut p8, b: poly8x8x4_t) {
69793    vst4_s8(transmute(a), transmute(b))
69794}
69795#[doc = "Store multiple 4-element structures from four registers"]
69796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p8)"]
69797#[doc = "## Safety"]
69798#[doc = "  * Neon intrinsic unsafe"]
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(vst4))]
69803#[cfg_attr(
69804    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69805    assert_instr(st4)
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 unsafe fn vst4q_p8(a: *mut p8, b: poly8x16x4_t) {
69816    vst4q_s8(transmute(a), transmute(b))
69817}
69818#[doc = "Store multiple 4-element structures from four registers"]
69819#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p16)"]
69820#[doc = "## Safety"]
69821#[doc = "  * Neon intrinsic unsafe"]
69822#[inline(always)]
69823#[target_feature(enable = "neon")]
69824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69826#[cfg_attr(
69827    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69828    assert_instr(st4)
69829)]
69830#[cfg_attr(
69831    not(target_arch = "arm"),
69832    stable(feature = "neon_intrinsics", since = "1.59.0")
69833)]
69834#[cfg_attr(
69835    target_arch = "arm",
69836    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69837)]
69838pub unsafe fn vst4_p16(a: *mut p16, b: poly16x4x4_t) {
69839    vst4_s16(transmute(a), transmute(b))
69840}
69841#[doc = "Store multiple 4-element structures from four registers"]
69842#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p16)"]
69843#[doc = "## Safety"]
69844#[doc = "  * Neon intrinsic unsafe"]
69845#[inline(always)]
69846#[target_feature(enable = "neon")]
69847#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69848#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
69849#[cfg_attr(
69850    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69851    assert_instr(st4)
69852)]
69853#[cfg_attr(
69854    not(target_arch = "arm"),
69855    stable(feature = "neon_intrinsics", since = "1.59.0")
69856)]
69857#[cfg_attr(
69858    target_arch = "arm",
69859    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69860)]
69861pub unsafe fn vst4q_p16(a: *mut p16, b: poly16x8x4_t) {
69862    vst4q_s16(transmute(a), transmute(b))
69863}
69864#[doc = "Store SIMD&FP register (immediate offset)"]
69865#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vstrq_p128)"]
69866#[doc = "## Safety"]
69867#[doc = "  * Neon intrinsic unsafe"]
69868#[inline(always)]
69869#[target_feature(enable = "neon")]
69870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
69872#[cfg_attr(
69873    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69874    assert_instr(nop)
69875)]
69876#[cfg_attr(
69877    not(target_arch = "arm"),
69878    stable(feature = "neon_intrinsics", since = "1.59.0")
69879)]
69880#[cfg_attr(
69881    target_arch = "arm",
69882    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69883)]
69884pub unsafe fn vstrq_p128(a: *mut p128, b: p128) {
69885    *a = b
69886}
69887#[doc = "Subtract"]
69888#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_f16)"]
69889#[inline(always)]
69890#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
69891#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f16"))]
69892#[cfg_attr(
69893    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69894    assert_instr(fsub)
69895)]
69896#[target_feature(enable = "neon,fp16")]
69897#[cfg_attr(
69898    not(target_arch = "arm"),
69899    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
69900)]
69901#[cfg_attr(
69902    target_arch = "arm",
69903    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69904)]
69905#[cfg(not(target_arch = "arm64ec"))]
69906pub fn vsub_f16(a: float16x4_t, b: float16x4_t) -> float16x4_t {
69907    unsafe { simd_sub(a, b) }
69908}
69909#[doc = "Subtract"]
69910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_f16)"]
69911#[inline(always)]
69912#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
69913#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f16"))]
69914#[cfg_attr(
69915    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69916    assert_instr(fsub)
69917)]
69918#[target_feature(enable = "neon,fp16")]
69919#[cfg_attr(
69920    not(target_arch = "arm"),
69921    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
69922)]
69923#[cfg_attr(
69924    target_arch = "arm",
69925    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69926)]
69927#[cfg(not(target_arch = "arm64ec"))]
69928pub fn vsubq_f16(a: float16x8_t, b: float16x8_t) -> float16x8_t {
69929    unsafe { simd_sub(a, b) }
69930}
69931#[doc = "Subtract"]
69932#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_f32)"]
69933#[inline(always)]
69934#[target_feature(enable = "neon")]
69935#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69936#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
69937#[cfg_attr(
69938    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69939    assert_instr(fsub)
69940)]
69941#[cfg_attr(
69942    not(target_arch = "arm"),
69943    stable(feature = "neon_intrinsics", since = "1.59.0")
69944)]
69945#[cfg_attr(
69946    target_arch = "arm",
69947    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69948)]
69949pub fn vsub_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
69950    unsafe { simd_sub(a, b) }
69951}
69952#[doc = "Subtract"]
69953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_f32)"]
69954#[inline(always)]
69955#[target_feature(enable = "neon")]
69956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69957#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
69958#[cfg_attr(
69959    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69960    assert_instr(fsub)
69961)]
69962#[cfg_attr(
69963    not(target_arch = "arm"),
69964    stable(feature = "neon_intrinsics", since = "1.59.0")
69965)]
69966#[cfg_attr(
69967    target_arch = "arm",
69968    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69969)]
69970pub fn vsubq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
69971    unsafe { simd_sub(a, b) }
69972}
69973#[doc = "Subtract"]
69974#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s16)"]
69975#[inline(always)]
69976#[target_feature(enable = "neon")]
69977#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69978#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
69979#[cfg_attr(
69980    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
69981    assert_instr(sub)
69982)]
69983#[cfg_attr(
69984    not(target_arch = "arm"),
69985    stable(feature = "neon_intrinsics", since = "1.59.0")
69986)]
69987#[cfg_attr(
69988    target_arch = "arm",
69989    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
69990)]
69991pub fn vsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
69992    unsafe { simd_sub(a, b) }
69993}
69994#[doc = "Subtract"]
69995#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s16)"]
69996#[inline(always)]
69997#[target_feature(enable = "neon")]
69998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
69999#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
70000#[cfg_attr(
70001    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70002    assert_instr(sub)
70003)]
70004#[cfg_attr(
70005    not(target_arch = "arm"),
70006    stable(feature = "neon_intrinsics", since = "1.59.0")
70007)]
70008#[cfg_attr(
70009    target_arch = "arm",
70010    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70011)]
70012pub fn vsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
70013    unsafe { simd_sub(a, b) }
70014}
70015#[doc = "Subtract"]
70016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u16)"]
70017#[inline(always)]
70018#[target_feature(enable = "neon")]
70019#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70020#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
70021#[cfg_attr(
70022    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70023    assert_instr(sub)
70024)]
70025#[cfg_attr(
70026    not(target_arch = "arm"),
70027    stable(feature = "neon_intrinsics", since = "1.59.0")
70028)]
70029#[cfg_attr(
70030    target_arch = "arm",
70031    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70032)]
70033pub fn vsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
70034    unsafe { simd_sub(a, b) }
70035}
70036#[doc = "Subtract"]
70037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u16)"]
70038#[inline(always)]
70039#[target_feature(enable = "neon")]
70040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70041#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
70042#[cfg_attr(
70043    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70044    assert_instr(sub)
70045)]
70046#[cfg_attr(
70047    not(target_arch = "arm"),
70048    stable(feature = "neon_intrinsics", since = "1.59.0")
70049)]
70050#[cfg_attr(
70051    target_arch = "arm",
70052    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70053)]
70054pub fn vsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
70055    unsafe { simd_sub(a, b) }
70056}
70057#[doc = "Subtract"]
70058#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s32)"]
70059#[inline(always)]
70060#[target_feature(enable = "neon")]
70061#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70062#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
70063#[cfg_attr(
70064    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70065    assert_instr(sub)
70066)]
70067#[cfg_attr(
70068    not(target_arch = "arm"),
70069    stable(feature = "neon_intrinsics", since = "1.59.0")
70070)]
70071#[cfg_attr(
70072    target_arch = "arm",
70073    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70074)]
70075pub fn vsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
70076    unsafe { simd_sub(a, b) }
70077}
70078#[doc = "Subtract"]
70079#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s32)"]
70080#[inline(always)]
70081#[target_feature(enable = "neon")]
70082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70083#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
70084#[cfg_attr(
70085    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70086    assert_instr(sub)
70087)]
70088#[cfg_attr(
70089    not(target_arch = "arm"),
70090    stable(feature = "neon_intrinsics", since = "1.59.0")
70091)]
70092#[cfg_attr(
70093    target_arch = "arm",
70094    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70095)]
70096pub fn vsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
70097    unsafe { simd_sub(a, b) }
70098}
70099#[doc = "Subtract"]
70100#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u32)"]
70101#[inline(always)]
70102#[target_feature(enable = "neon")]
70103#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70104#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
70105#[cfg_attr(
70106    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70107    assert_instr(sub)
70108)]
70109#[cfg_attr(
70110    not(target_arch = "arm"),
70111    stable(feature = "neon_intrinsics", since = "1.59.0")
70112)]
70113#[cfg_attr(
70114    target_arch = "arm",
70115    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70116)]
70117pub fn vsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
70118    unsafe { simd_sub(a, b) }
70119}
70120#[doc = "Subtract"]
70121#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u32)"]
70122#[inline(always)]
70123#[target_feature(enable = "neon")]
70124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70125#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
70126#[cfg_attr(
70127    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70128    assert_instr(sub)
70129)]
70130#[cfg_attr(
70131    not(target_arch = "arm"),
70132    stable(feature = "neon_intrinsics", since = "1.59.0")
70133)]
70134#[cfg_attr(
70135    target_arch = "arm",
70136    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70137)]
70138pub fn vsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
70139    unsafe { simd_sub(a, b) }
70140}
70141#[doc = "Subtract"]
70142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_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("vsub.i64"))]
70147#[cfg_attr(
70148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70149    assert_instr(sub)
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 vsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
70160    unsafe { simd_sub(a, b) }
70161}
70162#[doc = "Subtract"]
70163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s64)"]
70164#[inline(always)]
70165#[target_feature(enable = "neon")]
70166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70167#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
70168#[cfg_attr(
70169    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70170    assert_instr(sub)
70171)]
70172#[cfg_attr(
70173    not(target_arch = "arm"),
70174    stable(feature = "neon_intrinsics", since = "1.59.0")
70175)]
70176#[cfg_attr(
70177    target_arch = "arm",
70178    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70179)]
70180pub fn vsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
70181    unsafe { simd_sub(a, b) }
70182}
70183#[doc = "Subtract"]
70184#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u64)"]
70185#[inline(always)]
70186#[target_feature(enable = "neon")]
70187#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70188#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
70189#[cfg_attr(
70190    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70191    assert_instr(sub)
70192)]
70193#[cfg_attr(
70194    not(target_arch = "arm"),
70195    stable(feature = "neon_intrinsics", since = "1.59.0")
70196)]
70197#[cfg_attr(
70198    target_arch = "arm",
70199    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70200)]
70201pub fn vsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
70202    unsafe { simd_sub(a, b) }
70203}
70204#[doc = "Subtract"]
70205#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u64)"]
70206#[inline(always)]
70207#[target_feature(enable = "neon")]
70208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70209#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
70210#[cfg_attr(
70211    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70212    assert_instr(sub)
70213)]
70214#[cfg_attr(
70215    not(target_arch = "arm"),
70216    stable(feature = "neon_intrinsics", since = "1.59.0")
70217)]
70218#[cfg_attr(
70219    target_arch = "arm",
70220    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70221)]
70222pub fn vsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
70223    unsafe { simd_sub(a, b) }
70224}
70225#[doc = "Subtract"]
70226#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s8)"]
70227#[inline(always)]
70228#[target_feature(enable = "neon")]
70229#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70230#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
70231#[cfg_attr(
70232    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70233    assert_instr(sub)
70234)]
70235#[cfg_attr(
70236    not(target_arch = "arm"),
70237    stable(feature = "neon_intrinsics", since = "1.59.0")
70238)]
70239#[cfg_attr(
70240    target_arch = "arm",
70241    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70242)]
70243pub fn vsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
70244    unsafe { simd_sub(a, b) }
70245}
70246#[doc = "Subtract"]
70247#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s8)"]
70248#[inline(always)]
70249#[target_feature(enable = "neon")]
70250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70251#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
70252#[cfg_attr(
70253    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70254    assert_instr(sub)
70255)]
70256#[cfg_attr(
70257    not(target_arch = "arm"),
70258    stable(feature = "neon_intrinsics", since = "1.59.0")
70259)]
70260#[cfg_attr(
70261    target_arch = "arm",
70262    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70263)]
70264pub fn vsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
70265    unsafe { simd_sub(a, b) }
70266}
70267#[doc = "Subtract"]
70268#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u8)"]
70269#[inline(always)]
70270#[target_feature(enable = "neon")]
70271#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70272#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
70273#[cfg_attr(
70274    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70275    assert_instr(sub)
70276)]
70277#[cfg_attr(
70278    not(target_arch = "arm"),
70279    stable(feature = "neon_intrinsics", since = "1.59.0")
70280)]
70281#[cfg_attr(
70282    target_arch = "arm",
70283    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70284)]
70285pub fn vsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
70286    unsafe { simd_sub(a, b) }
70287}
70288#[doc = "Subtract"]
70289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u8)"]
70290#[inline(always)]
70291#[target_feature(enable = "neon")]
70292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70293#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
70294#[cfg_attr(
70295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70296    assert_instr(sub)
70297)]
70298#[cfg_attr(
70299    not(target_arch = "arm"),
70300    stable(feature = "neon_intrinsics", since = "1.59.0")
70301)]
70302#[cfg_attr(
70303    target_arch = "arm",
70304    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70305)]
70306pub fn vsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
70307    unsafe { simd_sub(a, b) }
70308}
70309#[doc = "Subtract returning high narrow"]
70310#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s16)"]
70311#[inline(always)]
70312#[target_feature(enable = "neon")]
70313#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70314#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70315#[cfg_attr(
70316    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70317    assert_instr(subhn2)
70318)]
70319#[cfg_attr(
70320    not(target_arch = "arm"),
70321    stable(feature = "neon_intrinsics", since = "1.59.0")
70322)]
70323#[cfg_attr(
70324    target_arch = "arm",
70325    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70326)]
70327pub fn vsubhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
70328    let d: int8x8_t = vsubhn_s16(b, c);
70329    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
70330}
70331#[doc = "Subtract returning high narrow"]
70332#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s32)"]
70333#[inline(always)]
70334#[target_feature(enable = "neon")]
70335#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70336#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70337#[cfg_attr(
70338    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70339    assert_instr(subhn2)
70340)]
70341#[cfg_attr(
70342    not(target_arch = "arm"),
70343    stable(feature = "neon_intrinsics", since = "1.59.0")
70344)]
70345#[cfg_attr(
70346    target_arch = "arm",
70347    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70348)]
70349pub fn vsubhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
70350    let d: int16x4_t = vsubhn_s32(b, c);
70351    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7]) }
70352}
70353#[doc = "Subtract returning high narrow"]
70354#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s64)"]
70355#[inline(always)]
70356#[target_feature(enable = "neon")]
70357#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70358#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70359#[cfg_attr(
70360    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70361    assert_instr(subhn2)
70362)]
70363#[cfg_attr(
70364    not(target_arch = "arm"),
70365    stable(feature = "neon_intrinsics", since = "1.59.0")
70366)]
70367#[cfg_attr(
70368    target_arch = "arm",
70369    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70370)]
70371pub fn vsubhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
70372    let d: int32x2_t = vsubhn_s64(b, c);
70373    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3]) }
70374}
70375#[doc = "Subtract returning high narrow"]
70376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u16)"]
70377#[inline(always)]
70378#[target_feature(enable = "neon")]
70379#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70380#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70381#[cfg_attr(
70382    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70383    assert_instr(subhn2)
70384)]
70385#[cfg_attr(
70386    not(target_arch = "arm"),
70387    stable(feature = "neon_intrinsics", since = "1.59.0")
70388)]
70389#[cfg_attr(
70390    target_arch = "arm",
70391    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70392)]
70393pub fn vsubhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
70394    let d: uint8x8_t = vsubhn_u16(b, c);
70395    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
70396}
70397#[doc = "Subtract returning high narrow"]
70398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u32)"]
70399#[inline(always)]
70400#[target_feature(enable = "neon")]
70401#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70402#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70403#[cfg_attr(
70404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70405    assert_instr(subhn2)
70406)]
70407#[cfg_attr(
70408    not(target_arch = "arm"),
70409    stable(feature = "neon_intrinsics", since = "1.59.0")
70410)]
70411#[cfg_attr(
70412    target_arch = "arm",
70413    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70414)]
70415pub fn vsubhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
70416    let d: uint16x4_t = vsubhn_u32(b, c);
70417    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7]) }
70418}
70419#[doc = "Subtract returning high narrow"]
70420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u64)"]
70421#[inline(always)]
70422#[target_feature(enable = "neon")]
70423#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70424#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70425#[cfg_attr(
70426    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70427    assert_instr(subhn2)
70428)]
70429#[cfg_attr(
70430    not(target_arch = "arm"),
70431    stable(feature = "neon_intrinsics", since = "1.59.0")
70432)]
70433#[cfg_attr(
70434    target_arch = "arm",
70435    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70436)]
70437pub fn vsubhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
70438    let d: uint32x2_t = vsubhn_u64(b, c);
70439    unsafe { simd_shuffle!(a, d, [0, 1, 2, 3]) }
70440}
70441#[doc = "Subtract returning high narrow"]
70442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s16)"]
70443#[inline(always)]
70444#[target_feature(enable = "neon")]
70445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70447#[cfg_attr(
70448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70449    assert_instr(subhn)
70450)]
70451#[cfg_attr(
70452    not(target_arch = "arm"),
70453    stable(feature = "neon_intrinsics", since = "1.59.0")
70454)]
70455#[cfg_attr(
70456    target_arch = "arm",
70457    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70458)]
70459pub fn vsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
70460    let c: i16x8 = i16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
70461    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70462}
70463#[doc = "Subtract returning high narrow"]
70464#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s32)"]
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(vsubhn))]
70469#[cfg_attr(
70470    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70471    assert_instr(subhn)
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 vsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
70482    let c: i32x4 = i32x4::new(16, 16, 16, 16);
70483    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70484}
70485#[doc = "Subtract returning high narrow"]
70486#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s64)"]
70487#[inline(always)]
70488#[target_feature(enable = "neon")]
70489#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70490#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70491#[cfg_attr(
70492    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70493    assert_instr(subhn)
70494)]
70495#[cfg_attr(
70496    not(target_arch = "arm"),
70497    stable(feature = "neon_intrinsics", since = "1.59.0")
70498)]
70499#[cfg_attr(
70500    target_arch = "arm",
70501    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70502)]
70503pub fn vsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
70504    let c: i64x2 = i64x2::new(32, 32);
70505    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70506}
70507#[doc = "Subtract returning high narrow"]
70508#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u16)"]
70509#[inline(always)]
70510#[target_feature(enable = "neon")]
70511#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70512#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70513#[cfg_attr(
70514    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70515    assert_instr(subhn)
70516)]
70517#[cfg_attr(
70518    not(target_arch = "arm"),
70519    stable(feature = "neon_intrinsics", since = "1.59.0")
70520)]
70521#[cfg_attr(
70522    target_arch = "arm",
70523    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70524)]
70525pub fn vsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
70526    let c: u16x8 = u16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
70527    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70528}
70529#[doc = "Subtract returning high narrow"]
70530#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u32)"]
70531#[inline(always)]
70532#[target_feature(enable = "neon")]
70533#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70534#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70535#[cfg_attr(
70536    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70537    assert_instr(subhn)
70538)]
70539#[cfg_attr(
70540    not(target_arch = "arm"),
70541    stable(feature = "neon_intrinsics", since = "1.59.0")
70542)]
70543#[cfg_attr(
70544    target_arch = "arm",
70545    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70546)]
70547pub fn vsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
70548    let c: u32x4 = u32x4::new(16, 16, 16, 16);
70549    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70550}
70551#[doc = "Subtract returning high narrow"]
70552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u64)"]
70553#[inline(always)]
70554#[target_feature(enable = "neon")]
70555#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70556#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
70557#[cfg_attr(
70558    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70559    assert_instr(subhn)
70560)]
70561#[cfg_attr(
70562    not(target_arch = "arm"),
70563    stable(feature = "neon_intrinsics", since = "1.59.0")
70564)]
70565#[cfg_attr(
70566    target_arch = "arm",
70567    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70568)]
70569pub fn vsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
70570    let c: u64x2 = u64x2::new(32, 32);
70571    unsafe { simd_cast(simd_shr(simd_sub(a, b), transmute(c))) }
70572}
70573#[doc = "Signed Subtract Long"]
70574#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s8)"]
70575#[inline(always)]
70576#[target_feature(enable = "neon")]
70577#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70578#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70579#[cfg_attr(
70580    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70581    assert_instr(ssubl)
70582)]
70583#[cfg_attr(
70584    not(target_arch = "arm"),
70585    stable(feature = "neon_intrinsics", since = "1.59.0")
70586)]
70587#[cfg_attr(
70588    target_arch = "arm",
70589    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70590)]
70591pub fn vsubl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
70592    unsafe {
70593        let c: int16x8_t = simd_cast(a);
70594        let d: int16x8_t = simd_cast(b);
70595        simd_sub(c, d)
70596    }
70597}
70598#[doc = "Signed Subtract Long"]
70599#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s16)"]
70600#[inline(always)]
70601#[target_feature(enable = "neon")]
70602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70603#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70604#[cfg_attr(
70605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70606    assert_instr(ssubl)
70607)]
70608#[cfg_attr(
70609    not(target_arch = "arm"),
70610    stable(feature = "neon_intrinsics", since = "1.59.0")
70611)]
70612#[cfg_attr(
70613    target_arch = "arm",
70614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70615)]
70616pub fn vsubl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
70617    unsafe {
70618        let c: int32x4_t = simd_cast(a);
70619        let d: int32x4_t = simd_cast(b);
70620        simd_sub(c, d)
70621    }
70622}
70623#[doc = "Signed Subtract Long"]
70624#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s32)"]
70625#[inline(always)]
70626#[target_feature(enable = "neon")]
70627#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70628#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70629#[cfg_attr(
70630    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70631    assert_instr(ssubl)
70632)]
70633#[cfg_attr(
70634    not(target_arch = "arm"),
70635    stable(feature = "neon_intrinsics", since = "1.59.0")
70636)]
70637#[cfg_attr(
70638    target_arch = "arm",
70639    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70640)]
70641pub fn vsubl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
70642    unsafe {
70643        let c: int64x2_t = simd_cast(a);
70644        let d: int64x2_t = simd_cast(b);
70645        simd_sub(c, d)
70646    }
70647}
70648#[doc = "Unsigned Subtract Long"]
70649#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u8)"]
70650#[inline(always)]
70651#[target_feature(enable = "neon")]
70652#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70654#[cfg_attr(
70655    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70656    assert_instr(usubl)
70657)]
70658#[cfg_attr(
70659    not(target_arch = "arm"),
70660    stable(feature = "neon_intrinsics", since = "1.59.0")
70661)]
70662#[cfg_attr(
70663    target_arch = "arm",
70664    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70665)]
70666pub fn vsubl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
70667    unsafe {
70668        let c: uint16x8_t = simd_cast(a);
70669        let d: uint16x8_t = simd_cast(b);
70670        simd_sub(c, d)
70671    }
70672}
70673#[doc = "Unsigned Subtract Long"]
70674#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u16)"]
70675#[inline(always)]
70676#[target_feature(enable = "neon")]
70677#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70678#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70679#[cfg_attr(
70680    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70681    assert_instr(usubl)
70682)]
70683#[cfg_attr(
70684    not(target_arch = "arm"),
70685    stable(feature = "neon_intrinsics", since = "1.59.0")
70686)]
70687#[cfg_attr(
70688    target_arch = "arm",
70689    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70690)]
70691pub fn vsubl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
70692    unsafe {
70693        let c: uint32x4_t = simd_cast(a);
70694        let d: uint32x4_t = simd_cast(b);
70695        simd_sub(c, d)
70696    }
70697}
70698#[doc = "Unsigned Subtract Long"]
70699#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u32)"]
70700#[inline(always)]
70701#[target_feature(enable = "neon")]
70702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70703#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
70704#[cfg_attr(
70705    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70706    assert_instr(usubl)
70707)]
70708#[cfg_attr(
70709    not(target_arch = "arm"),
70710    stable(feature = "neon_intrinsics", since = "1.59.0")
70711)]
70712#[cfg_attr(
70713    target_arch = "arm",
70714    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70715)]
70716pub fn vsubl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
70717    unsafe {
70718        let c: uint64x2_t = simd_cast(a);
70719        let d: uint64x2_t = simd_cast(b);
70720        simd_sub(c, d)
70721    }
70722}
70723#[doc = "Signed Subtract Wide"]
70724#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s8)"]
70725#[inline(always)]
70726#[target_feature(enable = "neon")]
70727#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70728#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70729#[cfg_attr(
70730    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70731    assert_instr(ssubw)
70732)]
70733#[cfg_attr(
70734    not(target_arch = "arm"),
70735    stable(feature = "neon_intrinsics", since = "1.59.0")
70736)]
70737#[cfg_attr(
70738    target_arch = "arm",
70739    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70740)]
70741pub fn vsubw_s8(a: int16x8_t, b: int8x8_t) -> int16x8_t {
70742    unsafe { simd_sub(a, simd_cast(b)) }
70743}
70744#[doc = "Signed Subtract Wide"]
70745#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s16)"]
70746#[inline(always)]
70747#[target_feature(enable = "neon")]
70748#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70750#[cfg_attr(
70751    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70752    assert_instr(ssubw)
70753)]
70754#[cfg_attr(
70755    not(target_arch = "arm"),
70756    stable(feature = "neon_intrinsics", since = "1.59.0")
70757)]
70758#[cfg_attr(
70759    target_arch = "arm",
70760    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70761)]
70762pub fn vsubw_s16(a: int32x4_t, b: int16x4_t) -> int32x4_t {
70763    unsafe { simd_sub(a, simd_cast(b)) }
70764}
70765#[doc = "Signed Subtract Wide"]
70766#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s32)"]
70767#[inline(always)]
70768#[target_feature(enable = "neon")]
70769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70770#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70771#[cfg_attr(
70772    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70773    assert_instr(ssubw)
70774)]
70775#[cfg_attr(
70776    not(target_arch = "arm"),
70777    stable(feature = "neon_intrinsics", since = "1.59.0")
70778)]
70779#[cfg_attr(
70780    target_arch = "arm",
70781    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70782)]
70783pub fn vsubw_s32(a: int64x2_t, b: int32x2_t) -> int64x2_t {
70784    unsafe { simd_sub(a, simd_cast(b)) }
70785}
70786#[doc = "Unsigned Subtract Wide"]
70787#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u8)"]
70788#[inline(always)]
70789#[target_feature(enable = "neon")]
70790#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70791#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70792#[cfg_attr(
70793    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70794    assert_instr(usubw)
70795)]
70796#[cfg_attr(
70797    not(target_arch = "arm"),
70798    stable(feature = "neon_intrinsics", since = "1.59.0")
70799)]
70800#[cfg_attr(
70801    target_arch = "arm",
70802    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70803)]
70804pub fn vsubw_u8(a: uint16x8_t, b: uint8x8_t) -> uint16x8_t {
70805    unsafe { simd_sub(a, simd_cast(b)) }
70806}
70807#[doc = "Unsigned Subtract Wide"]
70808#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u16)"]
70809#[inline(always)]
70810#[target_feature(enable = "neon")]
70811#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70812#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70813#[cfg_attr(
70814    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70815    assert_instr(usubw)
70816)]
70817#[cfg_attr(
70818    not(target_arch = "arm"),
70819    stable(feature = "neon_intrinsics", since = "1.59.0")
70820)]
70821#[cfg_attr(
70822    target_arch = "arm",
70823    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70824)]
70825pub fn vsubw_u16(a: uint32x4_t, b: uint16x4_t) -> uint32x4_t {
70826    unsafe { simd_sub(a, simd_cast(b)) }
70827}
70828#[doc = "Unsigned Subtract Wide"]
70829#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u32)"]
70830#[inline(always)]
70831#[target_feature(enable = "neon")]
70832#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
70833#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
70834#[cfg_attr(
70835    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70836    assert_instr(usubw)
70837)]
70838#[cfg_attr(
70839    not(target_arch = "arm"),
70840    stable(feature = "neon_intrinsics", since = "1.59.0")
70841)]
70842#[cfg_attr(
70843    target_arch = "arm",
70844    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70845)]
70846pub fn vsubw_u32(a: uint64x2_t, b: uint32x2_t) -> uint64x2_t {
70847    unsafe { simd_sub(a, simd_cast(b)) }
70848}
70849#[doc = "Dot product index form with signed and unsigned integers"]
70850#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_lane_s32)"]
70851#[inline(always)]
70852#[cfg(target_endian = "little")]
70853#[target_feature(enable = "neon,i8mm")]
70854#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
70856#[cfg_attr(
70857    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70858    assert_instr(sudot, LANE = 0)
70859)]
70860#[rustc_legacy_const_generics(3)]
70861#[cfg_attr(
70862    not(target_arch = "arm"),
70863    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
70864)]
70865#[cfg_attr(
70866    target_arch = "arm",
70867    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70868)]
70869pub fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x8_t) -> int32x2_t {
70870    static_assert_uimm_bits!(LANE, 1);
70871    unsafe {
70872        let c: uint32x2_t = transmute(c);
70873        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
70874        vusdot_s32(a, transmute(c), b)
70875    }
70876}
70877#[doc = "Dot product index form with signed and unsigned integers"]
70878#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_lane_s32)"]
70879#[inline(always)]
70880#[cfg(target_endian = "big")]
70881#[target_feature(enable = "neon,i8mm")]
70882#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
70884#[cfg_attr(
70885    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70886    assert_instr(sudot, LANE = 0)
70887)]
70888#[rustc_legacy_const_generics(3)]
70889#[cfg_attr(
70890    not(target_arch = "arm"),
70891    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
70892)]
70893#[cfg_attr(
70894    target_arch = "arm",
70895    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70896)]
70897pub fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x8_t) -> int32x2_t {
70898    static_assert_uimm_bits!(LANE, 1);
70899    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
70900    let b: int8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
70901    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
70902    unsafe {
70903        let c: uint32x2_t = transmute(c);
70904        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
70905        let ret_val: int32x2_t = vusdot_s32(a, transmute(c), b);
70906        simd_shuffle!(ret_val, ret_val, [1, 0])
70907    }
70908}
70909#[doc = "Dot product index form with signed and unsigned integers"]
70910#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_lane_s32)"]
70911#[inline(always)]
70912#[cfg(target_endian = "little")]
70913#[target_feature(enable = "neon,i8mm")]
70914#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
70916#[cfg_attr(
70917    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70918    assert_instr(sudot, LANE = 0)
70919)]
70920#[rustc_legacy_const_generics(3)]
70921#[cfg_attr(
70922    not(target_arch = "arm"),
70923    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
70924)]
70925#[cfg_attr(
70926    target_arch = "arm",
70927    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70928)]
70929pub fn vsudotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x8_t) -> int32x4_t {
70930    static_assert_uimm_bits!(LANE, 1);
70931    unsafe {
70932        let c: uint32x2_t = transmute(c);
70933        let c: uint32x4_t =
70934            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
70935        vusdotq_s32(a, transmute(c), b)
70936    }
70937}
70938#[doc = "Dot product index form with signed and unsigned integers"]
70939#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_lane_s32)"]
70940#[inline(always)]
70941#[cfg(target_endian = "big")]
70942#[target_feature(enable = "neon,i8mm")]
70943#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70944#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
70945#[cfg_attr(
70946    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70947    assert_instr(sudot, LANE = 0)
70948)]
70949#[rustc_legacy_const_generics(3)]
70950#[cfg_attr(
70951    not(target_arch = "arm"),
70952    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
70953)]
70954#[cfg_attr(
70955    target_arch = "arm",
70956    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
70957)]
70958pub fn vsudotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x8_t) -> int32x4_t {
70959    static_assert_uimm_bits!(LANE, 1);
70960    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
70961    let b: int8x16_t =
70962        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
70963    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
70964    unsafe {
70965        let c: uint32x2_t = transmute(c);
70966        let c: uint32x4_t =
70967            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
70968        let ret_val: int32x4_t = vusdotq_s32(a, transmute(c), b);
70969        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
70970    }
70971}
70972#[doc = "Dot product index form with signed and unsigned integers"]
70973#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_laneq_s32)"]
70974#[inline(always)]
70975#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70976#[target_feature(enable = "neon,i8mm")]
70977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 1))]
70978#[cfg_attr(
70979    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
70980    assert_instr(sudot, LANE = 3)
70981)]
70982#[rustc_legacy_const_generics(3)]
70983#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
70984pub fn vsudot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x16_t) -> int32x2_t {
70985    static_assert_uimm_bits!(LANE, 2);
70986    unsafe {
70987        let c: uint32x4_t = transmute(c);
70988        let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
70989        vusdot_s32(a, transmute(c), b)
70990    }
70991}
70992#[doc = "Dot product index form with signed and unsigned integers"]
70993#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_laneq_s32)"]
70994#[inline(always)]
70995#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
70996#[target_feature(enable = "neon,i8mm")]
70997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 1))]
70998#[cfg_attr(
70999    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71000    assert_instr(sudot, LANE = 3)
71001)]
71002#[rustc_legacy_const_generics(3)]
71003#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
71004pub fn vsudotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x16_t) -> int32x4_t {
71005    static_assert_uimm_bits!(LANE, 2);
71006    unsafe {
71007        let c: uint32x4_t = transmute(c);
71008        let c: uint32x4_t =
71009            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
71010        vusdotq_s32(a, transmute(c), b)
71011    }
71012}
71013#[doc = "Table look-up"]
71014#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1)"]
71015#[inline(always)]
71016#[target_feature(enable = "neon")]
71017#[cfg(target_arch = "arm")]
71018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71019#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71020#[cfg_attr(test, assert_instr(vtbl))]
71021fn vtbl1(a: int8x8_t, b: int8x8_t) -> int8x8_t {
71022    unsafe extern "unadjusted" {
71023        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl1")]
71024        fn _vtbl1(a: int8x8_t, b: int8x8_t) -> int8x8_t;
71025    }
71026    unsafe { _vtbl1(a, b) }
71027}
71028#[doc = "Table look-up"]
71029#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_s8)"]
71030#[inline(always)]
71031#[target_feature(enable = "neon")]
71032#[cfg(target_arch = "arm")]
71033#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71034#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71035#[cfg_attr(test, assert_instr(vtbl))]
71036pub fn vtbl1_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
71037    vtbl1(a, b)
71038}
71039#[doc = "Table look-up"]
71040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_u8)"]
71041#[inline(always)]
71042#[cfg(target_endian = "little")]
71043#[target_feature(enable = "neon")]
71044#[cfg(target_arch = "arm")]
71045#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71046#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71047#[cfg_attr(test, assert_instr(vtbl))]
71048pub fn vtbl1_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
71049    unsafe { transmute(vtbl1(transmute(a), transmute(b))) }
71050}
71051#[doc = "Table look-up"]
71052#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_u8)"]
71053#[inline(always)]
71054#[cfg(target_endian = "big")]
71055#[target_feature(enable = "neon")]
71056#[cfg(target_arch = "arm")]
71057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71058#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71059#[cfg_attr(test, assert_instr(vtbl))]
71060pub fn vtbl1_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
71061    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71062    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71063    unsafe {
71064        let ret_val: uint8x8_t = transmute(vtbl1(transmute(a), transmute(b)));
71065        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71066    }
71067}
71068#[doc = "Table look-up"]
71069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_p8)"]
71070#[inline(always)]
71071#[cfg(target_endian = "little")]
71072#[target_feature(enable = "neon")]
71073#[cfg(target_arch = "arm")]
71074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71075#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71076#[cfg_attr(test, assert_instr(vtbl))]
71077pub fn vtbl1_p8(a: poly8x8_t, b: uint8x8_t) -> poly8x8_t {
71078    unsafe { transmute(vtbl1(transmute(a), transmute(b))) }
71079}
71080#[doc = "Table look-up"]
71081#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl1_p8)"]
71082#[inline(always)]
71083#[cfg(target_endian = "big")]
71084#[target_feature(enable = "neon")]
71085#[cfg(target_arch = "arm")]
71086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71087#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71088#[cfg_attr(test, assert_instr(vtbl))]
71089pub fn vtbl1_p8(a: poly8x8_t, b: uint8x8_t) -> poly8x8_t {
71090    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71091    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71092    unsafe {
71093        let ret_val: poly8x8_t = transmute(vtbl1(transmute(a), transmute(b)));
71094        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71095    }
71096}
71097#[doc = "Table look-up"]
71098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2)"]
71099#[inline(always)]
71100#[target_feature(enable = "neon")]
71101#[cfg(target_arch = "arm")]
71102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71103#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71104#[cfg_attr(test, assert_instr(vtbl))]
71105fn vtbl2(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
71106    unsafe extern "unadjusted" {
71107        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl2")]
71108        fn _vtbl2(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
71109    }
71110    unsafe { _vtbl2(a, b, c) }
71111}
71112#[doc = "Table look-up"]
71113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_s8)"]
71114#[inline(always)]
71115#[target_feature(enable = "neon")]
71116#[cfg(target_arch = "arm")]
71117#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71118#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71119#[cfg_attr(test, assert_instr(vtbl))]
71120pub fn vtbl2_s8(a: int8x8x2_t, b: int8x8_t) -> int8x8_t {
71121    vtbl2(a.0, a.1, b)
71122}
71123#[doc = "Table look-up"]
71124#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_u8)"]
71125#[inline(always)]
71126#[cfg(target_endian = "little")]
71127#[target_feature(enable = "neon")]
71128#[cfg(target_arch = "arm")]
71129#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71130#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71131#[cfg_attr(test, assert_instr(vtbl))]
71132pub fn vtbl2_u8(a: uint8x8x2_t, b: uint8x8_t) -> uint8x8_t {
71133    unsafe { transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b))) }
71134}
71135#[doc = "Table look-up"]
71136#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_u8)"]
71137#[inline(always)]
71138#[cfg(target_endian = "big")]
71139#[target_feature(enable = "neon")]
71140#[cfg(target_arch = "arm")]
71141#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71142#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71143#[cfg_attr(test, assert_instr(vtbl))]
71144pub fn vtbl2_u8(a: uint8x8x2_t, b: uint8x8_t) -> uint8x8_t {
71145    let mut a: uint8x8x2_t = a;
71146    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71147    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71148    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71149    unsafe {
71150        let ret_val: uint8x8_t = transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b)));
71151        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71152    }
71153}
71154#[doc = "Table look-up"]
71155#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_p8)"]
71156#[inline(always)]
71157#[cfg(target_endian = "little")]
71158#[target_feature(enable = "neon")]
71159#[cfg(target_arch = "arm")]
71160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71161#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71162#[cfg_attr(test, assert_instr(vtbl))]
71163pub fn vtbl2_p8(a: poly8x8x2_t, b: uint8x8_t) -> poly8x8_t {
71164    unsafe { transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b))) }
71165}
71166#[doc = "Table look-up"]
71167#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl2_p8)"]
71168#[inline(always)]
71169#[cfg(target_endian = "big")]
71170#[target_feature(enable = "neon")]
71171#[cfg(target_arch = "arm")]
71172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71173#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71174#[cfg_attr(test, assert_instr(vtbl))]
71175pub fn vtbl2_p8(a: poly8x8x2_t, b: uint8x8_t) -> poly8x8_t {
71176    let mut a: poly8x8x2_t = a;
71177    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71178    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71179    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71180    unsafe {
71181        let ret_val: poly8x8_t = transmute(vtbl2(transmute(a.0), transmute(a.1), transmute(b)));
71182        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71183    }
71184}
71185#[doc = "Table look-up"]
71186#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3)"]
71187#[inline(always)]
71188#[target_feature(enable = "neon")]
71189#[cfg(target_arch = "arm")]
71190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71191#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71192#[cfg_attr(test, assert_instr(vtbl))]
71193fn vtbl3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t {
71194    unsafe extern "unadjusted" {
71195        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl3")]
71196        fn _vtbl3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t;
71197    }
71198    unsafe { _vtbl3(a, b, c, d) }
71199}
71200#[doc = "Table look-up"]
71201#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_s8)"]
71202#[inline(always)]
71203#[target_feature(enable = "neon")]
71204#[cfg(target_arch = "arm")]
71205#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71206#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71207#[cfg_attr(test, assert_instr(vtbl))]
71208pub fn vtbl3_s8(a: int8x8x3_t, b: int8x8_t) -> int8x8_t {
71209    vtbl3(a.0, a.1, a.2, b)
71210}
71211#[doc = "Table look-up"]
71212#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_u8)"]
71213#[inline(always)]
71214#[cfg(target_endian = "little")]
71215#[target_feature(enable = "neon")]
71216#[cfg(target_arch = "arm")]
71217#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71218#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71219#[cfg_attr(test, assert_instr(vtbl))]
71220pub fn vtbl3_u8(a: uint8x8x3_t, b: uint8x8_t) -> uint8x8_t {
71221    unsafe {
71222        transmute(vtbl3(
71223            transmute(a.0),
71224            transmute(a.1),
71225            transmute(a.2),
71226            transmute(b),
71227        ))
71228    }
71229}
71230#[doc = "Table look-up"]
71231#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_u8)"]
71232#[inline(always)]
71233#[cfg(target_endian = "big")]
71234#[target_feature(enable = "neon")]
71235#[cfg(target_arch = "arm")]
71236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71237#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71238#[cfg_attr(test, assert_instr(vtbl))]
71239pub fn vtbl3_u8(a: uint8x8x3_t, b: uint8x8_t) -> uint8x8_t {
71240    let mut a: uint8x8x3_t = a;
71241    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71242    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71243    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71244    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71245    unsafe {
71246        let ret_val: uint8x8_t = transmute(vtbl3(
71247            transmute(a.0),
71248            transmute(a.1),
71249            transmute(a.2),
71250            transmute(b),
71251        ));
71252        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71253    }
71254}
71255#[doc = "Table look-up"]
71256#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_p8)"]
71257#[inline(always)]
71258#[cfg(target_endian = "little")]
71259#[target_feature(enable = "neon")]
71260#[cfg(target_arch = "arm")]
71261#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71262#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71263#[cfg_attr(test, assert_instr(vtbl))]
71264pub fn vtbl3_p8(a: poly8x8x3_t, b: uint8x8_t) -> poly8x8_t {
71265    unsafe {
71266        transmute(vtbl3(
71267            transmute(a.0),
71268            transmute(a.1),
71269            transmute(a.2),
71270            transmute(b),
71271        ))
71272    }
71273}
71274#[doc = "Table look-up"]
71275#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl3_p8)"]
71276#[inline(always)]
71277#[cfg(target_endian = "big")]
71278#[target_feature(enable = "neon")]
71279#[cfg(target_arch = "arm")]
71280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71281#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71282#[cfg_attr(test, assert_instr(vtbl))]
71283pub fn vtbl3_p8(a: poly8x8x3_t, b: uint8x8_t) -> poly8x8_t {
71284    let mut a: poly8x8x3_t = a;
71285    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71286    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71287    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71288    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71289    unsafe {
71290        let ret_val: poly8x8_t = transmute(vtbl3(
71291            transmute(a.0),
71292            transmute(a.1),
71293            transmute(a.2),
71294            transmute(b),
71295        ));
71296        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71297    }
71298}
71299#[doc = "Table look-up"]
71300#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4)"]
71301#[inline(always)]
71302#[target_feature(enable = "neon")]
71303#[cfg(target_arch = "arm")]
71304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71305#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71306#[cfg_attr(test, assert_instr(vtbl))]
71307fn vtbl4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t {
71308    unsafe extern "unadjusted" {
71309        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbl4")]
71310        fn _vtbl4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t;
71311    }
71312    unsafe { _vtbl4(a, b, c, d, e) }
71313}
71314#[doc = "Table look-up"]
71315#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_s8)"]
71316#[inline(always)]
71317#[target_feature(enable = "neon")]
71318#[cfg(target_arch = "arm")]
71319#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71320#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71321#[cfg_attr(test, assert_instr(vtbl))]
71322pub fn vtbl4_s8(a: int8x8x4_t, b: int8x8_t) -> int8x8_t {
71323    vtbl4(a.0, a.1, a.2, a.3, b)
71324}
71325#[doc = "Table look-up"]
71326#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_u8)"]
71327#[inline(always)]
71328#[cfg(target_endian = "little")]
71329#[target_feature(enable = "neon")]
71330#[cfg(target_arch = "arm")]
71331#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71332#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71333#[cfg_attr(test, assert_instr(vtbl))]
71334pub fn vtbl4_u8(a: uint8x8x4_t, b: uint8x8_t) -> uint8x8_t {
71335    unsafe {
71336        transmute(vtbl4(
71337            transmute(a.0),
71338            transmute(a.1),
71339            transmute(a.2),
71340            transmute(a.3),
71341            transmute(b),
71342        ))
71343    }
71344}
71345#[doc = "Table look-up"]
71346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_u8)"]
71347#[inline(always)]
71348#[cfg(target_endian = "big")]
71349#[target_feature(enable = "neon")]
71350#[cfg(target_arch = "arm")]
71351#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71352#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71353#[cfg_attr(test, assert_instr(vtbl))]
71354pub fn vtbl4_u8(a: uint8x8x4_t, b: uint8x8_t) -> uint8x8_t {
71355    let mut a: uint8x8x4_t = a;
71356    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71357    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71358    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71359    a.3 = unsafe { simd_shuffle!(a.3, a.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71360    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71361    unsafe {
71362        let ret_val: uint8x8_t = transmute(vtbl4(
71363            transmute(a.0),
71364            transmute(a.1),
71365            transmute(a.2),
71366            transmute(a.3),
71367            transmute(b),
71368        ));
71369        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71370    }
71371}
71372#[doc = "Table look-up"]
71373#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_p8)"]
71374#[inline(always)]
71375#[cfg(target_endian = "little")]
71376#[target_feature(enable = "neon")]
71377#[cfg(target_arch = "arm")]
71378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71379#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71380#[cfg_attr(test, assert_instr(vtbl))]
71381pub fn vtbl4_p8(a: poly8x8x4_t, b: uint8x8_t) -> poly8x8_t {
71382    unsafe {
71383        transmute(vtbl4(
71384            transmute(a.0),
71385            transmute(a.1),
71386            transmute(a.2),
71387            transmute(a.3),
71388            transmute(b),
71389        ))
71390    }
71391}
71392#[doc = "Table look-up"]
71393#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbl4_p8)"]
71394#[inline(always)]
71395#[cfg(target_endian = "big")]
71396#[target_feature(enable = "neon")]
71397#[cfg(target_arch = "arm")]
71398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71399#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71400#[cfg_attr(test, assert_instr(vtbl))]
71401pub fn vtbl4_p8(a: poly8x8x4_t, b: uint8x8_t) -> poly8x8_t {
71402    let mut a: poly8x8x4_t = a;
71403    a.0 = unsafe { simd_shuffle!(a.0, a.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71404    a.1 = unsafe { simd_shuffle!(a.1, a.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71405    a.2 = unsafe { simd_shuffle!(a.2, a.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71406    a.3 = unsafe { simd_shuffle!(a.3, a.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71407    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71408    unsafe {
71409        let ret_val: poly8x8_t = transmute(vtbl4(
71410            transmute(a.0),
71411            transmute(a.1),
71412            transmute(a.2),
71413            transmute(a.3),
71414            transmute(b),
71415        ));
71416        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71417    }
71418}
71419#[doc = "Extended table look-up"]
71420#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1)"]
71421#[inline(always)]
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))]
71426fn vtbx1(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
71427    unsafe extern "unadjusted" {
71428        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx1")]
71429        fn _vtbx1(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t;
71430    }
71431    unsafe { _vtbx1(a, b, c) }
71432}
71433#[doc = "Extended table look-up"]
71434#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_s8)"]
71435#[inline(always)]
71436#[target_feature(enable = "neon,v7")]
71437#[cfg(target_arch = "arm")]
71438#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71439#[cfg_attr(test, assert_instr(vtbx))]
71440pub fn vtbx1_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
71441    vtbx1(a, b, c)
71442}
71443#[doc = "Extended table look-up"]
71444#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_u8)"]
71445#[inline(always)]
71446#[cfg(target_endian = "little")]
71447#[target_feature(enable = "neon,v7")]
71448#[cfg(target_arch = "arm")]
71449#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71450#[cfg_attr(test, assert_instr(vtbx))]
71451pub fn vtbx1_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
71452    unsafe { transmute(vtbx1(transmute(a), transmute(b), transmute(c))) }
71453}
71454#[doc = "Extended table look-up"]
71455#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_u8)"]
71456#[inline(always)]
71457#[cfg(target_endian = "big")]
71458#[target_feature(enable = "neon,v7")]
71459#[cfg(target_arch = "arm")]
71460#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71461#[cfg_attr(test, assert_instr(vtbx))]
71462pub fn vtbx1_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
71463    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71464    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71465    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71466    unsafe {
71467        let ret_val: uint8x8_t = transmute(vtbx1(transmute(a), transmute(b), transmute(c)));
71468        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71469    }
71470}
71471#[doc = "Extended table look-up"]
71472#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_p8)"]
71473#[inline(always)]
71474#[cfg(target_endian = "little")]
71475#[target_feature(enable = "neon,v7")]
71476#[cfg(target_arch = "arm")]
71477#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71478#[cfg_attr(test, assert_instr(vtbx))]
71479pub fn vtbx1_p8(a: poly8x8_t, b: poly8x8_t, c: uint8x8_t) -> poly8x8_t {
71480    unsafe { transmute(vtbx1(transmute(a), transmute(b), transmute(c))) }
71481}
71482#[doc = "Extended table look-up"]
71483#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx1_p8)"]
71484#[inline(always)]
71485#[cfg(target_endian = "big")]
71486#[target_feature(enable = "neon,v7")]
71487#[cfg(target_arch = "arm")]
71488#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71489#[cfg_attr(test, assert_instr(vtbx))]
71490pub fn vtbx1_p8(a: poly8x8_t, b: poly8x8_t, c: uint8x8_t) -> poly8x8_t {
71491    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71492    let b: poly8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
71493    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71494    unsafe {
71495        let ret_val: poly8x8_t = transmute(vtbx1(transmute(a), transmute(b), transmute(c)));
71496        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71497    }
71498}
71499#[doc = "Extended table look-up"]
71500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2)"]
71501#[inline(always)]
71502#[target_feature(enable = "neon,v7")]
71503#[cfg(target_arch = "arm")]
71504#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71505#[cfg_attr(test, assert_instr(vtbx))]
71506fn vtbx2(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t {
71507    unsafe extern "unadjusted" {
71508        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx2")]
71509        fn _vtbx2(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t) -> int8x8_t;
71510    }
71511    unsafe { _vtbx2(a, b, c, d) }
71512}
71513#[doc = "Extended table look-up"]
71514#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_s8)"]
71515#[inline(always)]
71516#[target_feature(enable = "neon,v7")]
71517#[cfg(target_arch = "arm")]
71518#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71519#[cfg_attr(test, assert_instr(vtbx))]
71520pub fn vtbx2_s8(a: int8x8_t, b: int8x8x2_t, c: int8x8_t) -> int8x8_t {
71521    vtbx2(a, b.0, b.1, c)
71522}
71523#[doc = "Extended table look-up"]
71524#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_u8)"]
71525#[inline(always)]
71526#[cfg(target_endian = "little")]
71527#[target_feature(enable = "neon,v7")]
71528#[cfg(target_arch = "arm")]
71529#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71530#[cfg_attr(test, assert_instr(vtbx))]
71531pub fn vtbx2_u8(a: uint8x8_t, b: uint8x8x2_t, c: uint8x8_t) -> uint8x8_t {
71532    unsafe {
71533        transmute(vtbx2(
71534            transmute(a),
71535            transmute(b.0),
71536            transmute(b.1),
71537            transmute(c),
71538        ))
71539    }
71540}
71541#[doc = "Extended table look-up"]
71542#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_u8)"]
71543#[inline(always)]
71544#[cfg(target_endian = "big")]
71545#[target_feature(enable = "neon,v7")]
71546#[cfg(target_arch = "arm")]
71547#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71548#[cfg_attr(test, assert_instr(vtbx))]
71549pub fn vtbx2_u8(a: uint8x8_t, b: uint8x8x2_t, c: uint8x8_t) -> uint8x8_t {
71550    let mut b: uint8x8x2_t = b;
71551    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71552    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71553    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71554    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71555    unsafe {
71556        let ret_val: uint8x8_t = transmute(vtbx2(
71557            transmute(a),
71558            transmute(b.0),
71559            transmute(b.1),
71560            transmute(c),
71561        ));
71562        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71563    }
71564}
71565#[doc = "Extended table look-up"]
71566#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_p8)"]
71567#[inline(always)]
71568#[cfg(target_endian = "little")]
71569#[target_feature(enable = "neon,v7")]
71570#[cfg(target_arch = "arm")]
71571#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71572#[cfg_attr(test, assert_instr(vtbx))]
71573pub fn vtbx2_p8(a: poly8x8_t, b: poly8x8x2_t, c: uint8x8_t) -> poly8x8_t {
71574    unsafe {
71575        transmute(vtbx2(
71576            transmute(a),
71577            transmute(b.0),
71578            transmute(b.1),
71579            transmute(c),
71580        ))
71581    }
71582}
71583#[doc = "Extended table look-up"]
71584#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx2_p8)"]
71585#[inline(always)]
71586#[cfg(target_endian = "big")]
71587#[target_feature(enable = "neon,v7")]
71588#[cfg(target_arch = "arm")]
71589#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71590#[cfg_attr(test, assert_instr(vtbx))]
71591pub fn vtbx2_p8(a: poly8x8_t, b: poly8x8x2_t, c: uint8x8_t) -> poly8x8_t {
71592    let mut b: poly8x8x2_t = b;
71593    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71594    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71595    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71596    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71597    unsafe {
71598        let ret_val: poly8x8_t = transmute(vtbx2(
71599            transmute(a),
71600            transmute(b.0),
71601            transmute(b.1),
71602            transmute(c),
71603        ));
71604        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71605    }
71606}
71607#[doc = "Extended table look-up"]
71608#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3)"]
71609#[inline(always)]
71610#[target_feature(enable = "neon,v7")]
71611#[cfg(target_arch = "arm")]
71612#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71613#[cfg_attr(test, assert_instr(vtbx))]
71614fn vtbx3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t {
71615    unsafe extern "unadjusted" {
71616        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx3")]
71617        fn _vtbx3(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t) -> int8x8_t;
71618    }
71619    unsafe { _vtbx3(a, b, c, d, e) }
71620}
71621#[doc = "Extended table look-up"]
71622#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_s8)"]
71623#[inline(always)]
71624#[target_feature(enable = "neon,v7")]
71625#[cfg(target_arch = "arm")]
71626#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71627#[cfg_attr(test, assert_instr(vtbx))]
71628pub fn vtbx3_s8(a: int8x8_t, b: int8x8x3_t, c: int8x8_t) -> int8x8_t {
71629    vtbx3(a, b.0, b.1, b.2, c)
71630}
71631#[doc = "Extended table look-up"]
71632#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_u8)"]
71633#[inline(always)]
71634#[cfg(target_endian = "little")]
71635#[target_feature(enable = "neon,v7")]
71636#[cfg(target_arch = "arm")]
71637#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71638#[cfg_attr(test, assert_instr(vtbx))]
71639pub fn vtbx3_u8(a: uint8x8_t, b: uint8x8x3_t, c: uint8x8_t) -> uint8x8_t {
71640    unsafe {
71641        transmute(vtbx3(
71642            transmute(a),
71643            transmute(b.0),
71644            transmute(b.1),
71645            transmute(b.2),
71646            transmute(c),
71647        ))
71648    }
71649}
71650#[doc = "Extended table look-up"]
71651#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_u8)"]
71652#[inline(always)]
71653#[cfg(target_endian = "big")]
71654#[target_feature(enable = "neon,v7")]
71655#[cfg(target_arch = "arm")]
71656#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71657#[cfg_attr(test, assert_instr(vtbx))]
71658pub fn vtbx3_u8(a: uint8x8_t, b: uint8x8x3_t, c: uint8x8_t) -> uint8x8_t {
71659    let mut b: uint8x8x3_t = b;
71660    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71661    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71662    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71663    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71664    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71665    unsafe {
71666        let ret_val: uint8x8_t = transmute(vtbx3(
71667            transmute(a),
71668            transmute(b.0),
71669            transmute(b.1),
71670            transmute(b.2),
71671            transmute(c),
71672        ));
71673        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71674    }
71675}
71676#[doc = "Extended table look-up"]
71677#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_p8)"]
71678#[inline(always)]
71679#[cfg(target_endian = "little")]
71680#[target_feature(enable = "neon,v7")]
71681#[cfg(target_arch = "arm")]
71682#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71683#[cfg_attr(test, assert_instr(vtbx))]
71684pub fn vtbx3_p8(a: poly8x8_t, b: poly8x8x3_t, c: uint8x8_t) -> poly8x8_t {
71685    unsafe {
71686        transmute(vtbx3(
71687            transmute(a),
71688            transmute(b.0),
71689            transmute(b.1),
71690            transmute(b.2),
71691            transmute(c),
71692        ))
71693    }
71694}
71695#[doc = "Extended table look-up"]
71696#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx3_p8)"]
71697#[inline(always)]
71698#[cfg(target_endian = "big")]
71699#[target_feature(enable = "neon,v7")]
71700#[cfg(target_arch = "arm")]
71701#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71702#[cfg_attr(test, assert_instr(vtbx))]
71703pub fn vtbx3_p8(a: poly8x8_t, b: poly8x8x3_t, c: uint8x8_t) -> poly8x8_t {
71704    let mut b: poly8x8x3_t = b;
71705    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71706    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71707    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71708    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71709    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71710    unsafe {
71711        let ret_val: poly8x8_t = transmute(vtbx3(
71712            transmute(a),
71713            transmute(b.0),
71714            transmute(b.1),
71715            transmute(b.2),
71716            transmute(c),
71717        ));
71718        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71719    }
71720}
71721#[doc = "Extended table look-up"]
71722#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4)"]
71723#[inline(always)]
71724#[target_feature(enable = "neon,v7")]
71725#[cfg(target_arch = "arm")]
71726#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71727#[cfg_attr(test, assert_instr(vtbx))]
71728fn vtbx4(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, e: int8x8_t, f: int8x8_t) -> int8x8_t {
71729    unsafe extern "unadjusted" {
71730        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vtbx4")]
71731        fn _vtbx4(
71732            a: int8x8_t,
71733            b: int8x8_t,
71734            c: int8x8_t,
71735            d: int8x8_t,
71736            e: int8x8_t,
71737            f: int8x8_t,
71738        ) -> int8x8_t;
71739    }
71740    unsafe { _vtbx4(a, b, c, d, e, f) }
71741}
71742#[doc = "Extended table look-up"]
71743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_s8)"]
71744#[inline(always)]
71745#[cfg(target_endian = "little")]
71746#[target_feature(enable = "neon,v7")]
71747#[cfg(target_arch = "arm")]
71748#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71749#[cfg_attr(test, assert_instr(vtbx))]
71750pub fn vtbx4_s8(a: int8x8_t, b: int8x8x4_t, c: int8x8_t) -> int8x8_t {
71751    unsafe {
71752        vtbx4(
71753            a,
71754            transmute(b.0),
71755            transmute(b.1),
71756            transmute(b.2),
71757            transmute(b.3),
71758            c,
71759        )
71760    }
71761}
71762#[doc = "Extended table look-up"]
71763#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_s8)"]
71764#[inline(always)]
71765#[cfg(target_endian = "big")]
71766#[target_feature(enable = "neon,v7")]
71767#[cfg(target_arch = "arm")]
71768#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71769#[cfg_attr(test, assert_instr(vtbx))]
71770pub fn vtbx4_s8(a: int8x8_t, b: int8x8x4_t, c: int8x8_t) -> int8x8_t {
71771    let mut b: int8x8x4_t = b;
71772    let a: int8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71773    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71774    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71775    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71776    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71777    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71778    unsafe {
71779        let ret_val: int8x8_t = vtbx4(
71780            a,
71781            transmute(b.0),
71782            transmute(b.1),
71783            transmute(b.2),
71784            transmute(b.3),
71785            c,
71786        );
71787        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71788    }
71789}
71790#[doc = "Extended table look-up"]
71791#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_u8)"]
71792#[inline(always)]
71793#[cfg(target_endian = "little")]
71794#[target_feature(enable = "neon,v7")]
71795#[cfg(target_arch = "arm")]
71796#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71797#[cfg_attr(test, assert_instr(vtbx))]
71798pub fn vtbx4_u8(a: uint8x8_t, b: uint8x8x4_t, c: uint8x8_t) -> uint8x8_t {
71799    unsafe {
71800        transmute(vtbx4(
71801            transmute(a),
71802            transmute(b.0),
71803            transmute(b.1),
71804            transmute(b.2),
71805            transmute(b.3),
71806            transmute(c),
71807        ))
71808    }
71809}
71810#[doc = "Extended table look-up"]
71811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_u8)"]
71812#[inline(always)]
71813#[cfg(target_endian = "big")]
71814#[target_feature(enable = "neon,v7")]
71815#[cfg(target_arch = "arm")]
71816#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71817#[cfg_attr(test, assert_instr(vtbx))]
71818pub fn vtbx4_u8(a: uint8x8_t, b: uint8x8x4_t, c: uint8x8_t) -> uint8x8_t {
71819    let mut b: uint8x8x4_t = b;
71820    let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71821    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71822    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71823    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71824    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71825    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71826    unsafe {
71827        let ret_val: uint8x8_t = transmute(vtbx4(
71828            transmute(a),
71829            transmute(b.0),
71830            transmute(b.1),
71831            transmute(b.2),
71832            transmute(b.3),
71833            transmute(c),
71834        ));
71835        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71836    }
71837}
71838#[doc = "Extended table look-up"]
71839#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_p8)"]
71840#[inline(always)]
71841#[cfg(target_endian = "little")]
71842#[target_feature(enable = "neon,v7")]
71843#[cfg(target_arch = "arm")]
71844#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71845#[cfg_attr(test, assert_instr(vtbx))]
71846pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t {
71847    unsafe {
71848        transmute(vtbx4(
71849            transmute(a),
71850            transmute(b.0),
71851            transmute(b.1),
71852            transmute(b.2),
71853            transmute(b.3),
71854            transmute(c),
71855        ))
71856    }
71857}
71858#[doc = "Extended table look-up"]
71859#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtbx4_p8)"]
71860#[inline(always)]
71861#[cfg(target_endian = "big")]
71862#[target_feature(enable = "neon,v7")]
71863#[cfg(target_arch = "arm")]
71864#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
71865#[cfg_attr(test, assert_instr(vtbx))]
71866pub fn vtbx4_p8(a: poly8x8_t, b: poly8x8x4_t, c: uint8x8_t) -> poly8x8_t {
71867    let mut b: poly8x8x4_t = b;
71868    let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
71869    b.0 = unsafe { simd_shuffle!(b.0, b.0, [7, 6, 5, 4, 3, 2, 1, 0]) };
71870    b.1 = unsafe { simd_shuffle!(b.1, b.1, [7, 6, 5, 4, 3, 2, 1, 0]) };
71871    b.2 = unsafe { simd_shuffle!(b.2, b.2, [7, 6, 5, 4, 3, 2, 1, 0]) };
71872    b.3 = unsafe { simd_shuffle!(b.3, b.3, [7, 6, 5, 4, 3, 2, 1, 0]) };
71873    let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
71874    unsafe {
71875        let ret_val: poly8x8_t = transmute(vtbx4(
71876            transmute(a),
71877            transmute(b.0),
71878            transmute(b.1),
71879            transmute(b.2),
71880            transmute(b.3),
71881            transmute(c),
71882        ));
71883        simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
71884    }
71885}
71886#[doc = "Transpose elements"]
71887#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_f16)"]
71888#[inline(always)]
71889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71890#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71891#[cfg_attr(
71892    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71893    assert_instr(trn1)
71894)]
71895#[cfg_attr(
71896    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71897    assert_instr(trn2)
71898)]
71899#[target_feature(enable = "neon,fp16")]
71900#[cfg_attr(
71901    not(target_arch = "arm"),
71902    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
71903)]
71904#[cfg_attr(
71905    target_arch = "arm",
71906    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71907)]
71908#[cfg(not(target_arch = "arm64ec"))]
71909pub fn vtrn_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
71910    unsafe {
71911        let a1: float16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
71912        let b1: float16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
71913        transmute((a1, b1))
71914    }
71915}
71916#[doc = "Transpose elements"]
71917#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_f16)"]
71918#[inline(always)]
71919#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71920#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71921#[cfg_attr(
71922    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71923    assert_instr(trn1)
71924)]
71925#[cfg_attr(
71926    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71927    assert_instr(trn2)
71928)]
71929#[target_feature(enable = "neon,fp16")]
71930#[cfg_attr(
71931    not(target_arch = "arm"),
71932    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
71933)]
71934#[cfg_attr(
71935    target_arch = "arm",
71936    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71937)]
71938#[cfg(not(target_arch = "arm64ec"))]
71939pub fn vtrnq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
71940    unsafe {
71941        let a1: float16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
71942        let b1: float16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
71943        transmute((a1, b1))
71944    }
71945}
71946#[doc = "Transpose elements"]
71947#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_f32)"]
71948#[inline(always)]
71949#[target_feature(enable = "neon")]
71950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71951#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71952#[cfg_attr(
71953    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71954    assert_instr(zip1)
71955)]
71956#[cfg_attr(
71957    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71958    assert_instr(zip2)
71959)]
71960#[cfg_attr(
71961    not(target_arch = "arm"),
71962    stable(feature = "neon_intrinsics", since = "1.59.0")
71963)]
71964#[cfg_attr(
71965    target_arch = "arm",
71966    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71967)]
71968pub fn vtrn_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
71969    unsafe {
71970        let a1: float32x2_t = simd_shuffle!(a, b, [0, 2]);
71971        let b1: float32x2_t = simd_shuffle!(a, b, [1, 3]);
71972        transmute((a1, b1))
71973    }
71974}
71975#[doc = "Transpose elements"]
71976#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s32)"]
71977#[inline(always)]
71978#[target_feature(enable = "neon")]
71979#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
71980#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
71981#[cfg_attr(
71982    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71983    assert_instr(zip1)
71984)]
71985#[cfg_attr(
71986    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
71987    assert_instr(zip2)
71988)]
71989#[cfg_attr(
71990    not(target_arch = "arm"),
71991    stable(feature = "neon_intrinsics", since = "1.59.0")
71992)]
71993#[cfg_attr(
71994    target_arch = "arm",
71995    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
71996)]
71997pub fn vtrn_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
71998    unsafe {
71999        let a1: int32x2_t = simd_shuffle!(a, b, [0, 2]);
72000        let b1: int32x2_t = simd_shuffle!(a, b, [1, 3]);
72001        transmute((a1, b1))
72002    }
72003}
72004#[doc = "Transpose elements"]
72005#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u32)"]
72006#[inline(always)]
72007#[target_feature(enable = "neon")]
72008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72009#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72010#[cfg_attr(
72011    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72012    assert_instr(zip1)
72013)]
72014#[cfg_attr(
72015    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72016    assert_instr(zip2)
72017)]
72018#[cfg_attr(
72019    not(target_arch = "arm"),
72020    stable(feature = "neon_intrinsics", since = "1.59.0")
72021)]
72022#[cfg_attr(
72023    target_arch = "arm",
72024    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72025)]
72026pub fn vtrn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
72027    unsafe {
72028        let a1: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
72029        let b1: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
72030        transmute((a1, b1))
72031    }
72032}
72033#[doc = "Transpose elements"]
72034#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_f32)"]
72035#[inline(always)]
72036#[target_feature(enable = "neon")]
72037#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72038#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72039#[cfg_attr(
72040    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72041    assert_instr(trn1)
72042)]
72043#[cfg_attr(
72044    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72045    assert_instr(trn2)
72046)]
72047#[cfg_attr(
72048    not(target_arch = "arm"),
72049    stable(feature = "neon_intrinsics", since = "1.59.0")
72050)]
72051#[cfg_attr(
72052    target_arch = "arm",
72053    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72054)]
72055pub fn vtrnq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
72056    unsafe {
72057        let a1: float32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
72058        let b1: float32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
72059        transmute((a1, b1))
72060    }
72061}
72062#[doc = "Transpose elements"]
72063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s8)"]
72064#[inline(always)]
72065#[target_feature(enable = "neon")]
72066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72068#[cfg_attr(
72069    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72070    assert_instr(trn1)
72071)]
72072#[cfg_attr(
72073    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72074    assert_instr(trn2)
72075)]
72076#[cfg_attr(
72077    not(target_arch = "arm"),
72078    stable(feature = "neon_intrinsics", since = "1.59.0")
72079)]
72080#[cfg_attr(
72081    target_arch = "arm",
72082    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72083)]
72084pub fn vtrn_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
72085    unsafe {
72086        let a1: int8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
72087        let b1: int8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
72088        transmute((a1, b1))
72089    }
72090}
72091#[doc = "Transpose elements"]
72092#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s8)"]
72093#[inline(always)]
72094#[target_feature(enable = "neon")]
72095#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72096#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72097#[cfg_attr(
72098    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72099    assert_instr(trn1)
72100)]
72101#[cfg_attr(
72102    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72103    assert_instr(trn2)
72104)]
72105#[cfg_attr(
72106    not(target_arch = "arm"),
72107    stable(feature = "neon_intrinsics", since = "1.59.0")
72108)]
72109#[cfg_attr(
72110    target_arch = "arm",
72111    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72112)]
72113pub fn vtrnq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
72114    unsafe {
72115        let a1: int8x16_t = simd_shuffle!(
72116            a,
72117            b,
72118            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
72119        );
72120        let b1: int8x16_t = simd_shuffle!(
72121            a,
72122            b,
72123            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
72124        );
72125        transmute((a1, b1))
72126    }
72127}
72128#[doc = "Transpose elements"]
72129#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s16)"]
72130#[inline(always)]
72131#[target_feature(enable = "neon")]
72132#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72133#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72134#[cfg_attr(
72135    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72136    assert_instr(trn1)
72137)]
72138#[cfg_attr(
72139    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72140    assert_instr(trn2)
72141)]
72142#[cfg_attr(
72143    not(target_arch = "arm"),
72144    stable(feature = "neon_intrinsics", since = "1.59.0")
72145)]
72146#[cfg_attr(
72147    target_arch = "arm",
72148    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72149)]
72150pub fn vtrn_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
72151    unsafe {
72152        let a1: int16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
72153        let b1: int16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
72154        transmute((a1, b1))
72155    }
72156}
72157#[doc = "Transpose elements"]
72158#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s16)"]
72159#[inline(always)]
72160#[target_feature(enable = "neon")]
72161#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72162#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72163#[cfg_attr(
72164    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72165    assert_instr(trn1)
72166)]
72167#[cfg_attr(
72168    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72169    assert_instr(trn2)
72170)]
72171#[cfg_attr(
72172    not(target_arch = "arm"),
72173    stable(feature = "neon_intrinsics", since = "1.59.0")
72174)]
72175#[cfg_attr(
72176    target_arch = "arm",
72177    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72178)]
72179pub fn vtrnq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
72180    unsafe {
72181        let a1: int16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
72182        let b1: int16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
72183        transmute((a1, b1))
72184    }
72185}
72186#[doc = "Transpose elements"]
72187#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s32)"]
72188#[inline(always)]
72189#[target_feature(enable = "neon")]
72190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72192#[cfg_attr(
72193    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72194    assert_instr(trn1)
72195)]
72196#[cfg_attr(
72197    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72198    assert_instr(trn2)
72199)]
72200#[cfg_attr(
72201    not(target_arch = "arm"),
72202    stable(feature = "neon_intrinsics", since = "1.59.0")
72203)]
72204#[cfg_attr(
72205    target_arch = "arm",
72206    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72207)]
72208pub fn vtrnq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
72209    unsafe {
72210        let a1: int32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
72211        let b1: int32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
72212        transmute((a1, b1))
72213    }
72214}
72215#[doc = "Transpose elements"]
72216#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u8)"]
72217#[inline(always)]
72218#[target_feature(enable = "neon")]
72219#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72220#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72221#[cfg_attr(
72222    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72223    assert_instr(trn1)
72224)]
72225#[cfg_attr(
72226    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72227    assert_instr(trn2)
72228)]
72229#[cfg_attr(
72230    not(target_arch = "arm"),
72231    stable(feature = "neon_intrinsics", since = "1.59.0")
72232)]
72233#[cfg_attr(
72234    target_arch = "arm",
72235    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72236)]
72237pub fn vtrn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
72238    unsafe {
72239        let a1: uint8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
72240        let b1: uint8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
72241        transmute((a1, b1))
72242    }
72243}
72244#[doc = "Transpose elements"]
72245#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u8)"]
72246#[inline(always)]
72247#[target_feature(enable = "neon")]
72248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72250#[cfg_attr(
72251    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72252    assert_instr(trn1)
72253)]
72254#[cfg_attr(
72255    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72256    assert_instr(trn2)
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 vtrnq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
72267    unsafe {
72268        let a1: uint8x16_t = simd_shuffle!(
72269            a,
72270            b,
72271            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
72272        );
72273        let b1: uint8x16_t = simd_shuffle!(
72274            a,
72275            b,
72276            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
72277        );
72278        transmute((a1, b1))
72279    }
72280}
72281#[doc = "Transpose elements"]
72282#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u16)"]
72283#[inline(always)]
72284#[target_feature(enable = "neon")]
72285#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72286#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72287#[cfg_attr(
72288    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72289    assert_instr(trn1)
72290)]
72291#[cfg_attr(
72292    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72293    assert_instr(trn2)
72294)]
72295#[cfg_attr(
72296    not(target_arch = "arm"),
72297    stable(feature = "neon_intrinsics", since = "1.59.0")
72298)]
72299#[cfg_attr(
72300    target_arch = "arm",
72301    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72302)]
72303pub fn vtrn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
72304    unsafe {
72305        let a1: uint16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
72306        let b1: uint16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
72307        transmute((a1, b1))
72308    }
72309}
72310#[doc = "Transpose elements"]
72311#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u16)"]
72312#[inline(always)]
72313#[target_feature(enable = "neon")]
72314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72315#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72316#[cfg_attr(
72317    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72318    assert_instr(trn1)
72319)]
72320#[cfg_attr(
72321    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72322    assert_instr(trn2)
72323)]
72324#[cfg_attr(
72325    not(target_arch = "arm"),
72326    stable(feature = "neon_intrinsics", since = "1.59.0")
72327)]
72328#[cfg_attr(
72329    target_arch = "arm",
72330    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72331)]
72332pub fn vtrnq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
72333    unsafe {
72334        let a1: uint16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
72335        let b1: uint16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
72336        transmute((a1, b1))
72337    }
72338}
72339#[doc = "Transpose elements"]
72340#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u32)"]
72341#[inline(always)]
72342#[target_feature(enable = "neon")]
72343#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72344#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72345#[cfg_attr(
72346    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72347    assert_instr(trn1)
72348)]
72349#[cfg_attr(
72350    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72351    assert_instr(trn2)
72352)]
72353#[cfg_attr(
72354    not(target_arch = "arm"),
72355    stable(feature = "neon_intrinsics", since = "1.59.0")
72356)]
72357#[cfg_attr(
72358    target_arch = "arm",
72359    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72360)]
72361pub fn vtrnq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
72362    unsafe {
72363        let a1: uint32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
72364        let b1: uint32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
72365        transmute((a1, b1))
72366    }
72367}
72368#[doc = "Transpose elements"]
72369#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p8)"]
72370#[inline(always)]
72371#[target_feature(enable = "neon")]
72372#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72373#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72374#[cfg_attr(
72375    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72376    assert_instr(trn1)
72377)]
72378#[cfg_attr(
72379    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72380    assert_instr(trn2)
72381)]
72382#[cfg_attr(
72383    not(target_arch = "arm"),
72384    stable(feature = "neon_intrinsics", since = "1.59.0")
72385)]
72386#[cfg_attr(
72387    target_arch = "arm",
72388    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72389)]
72390pub fn vtrn_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
72391    unsafe {
72392        let a1: poly8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
72393        let b1: poly8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
72394        transmute((a1, b1))
72395    }
72396}
72397#[doc = "Transpose elements"]
72398#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p8)"]
72399#[inline(always)]
72400#[target_feature(enable = "neon")]
72401#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72402#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72403#[cfg_attr(
72404    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72405    assert_instr(trn1)
72406)]
72407#[cfg_attr(
72408    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72409    assert_instr(trn2)
72410)]
72411#[cfg_attr(
72412    not(target_arch = "arm"),
72413    stable(feature = "neon_intrinsics", since = "1.59.0")
72414)]
72415#[cfg_attr(
72416    target_arch = "arm",
72417    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72418)]
72419pub fn vtrnq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
72420    unsafe {
72421        let a1: poly8x16_t = simd_shuffle!(
72422            a,
72423            b,
72424            [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
72425        );
72426        let b1: poly8x16_t = simd_shuffle!(
72427            a,
72428            b,
72429            [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]
72430        );
72431        transmute((a1, b1))
72432    }
72433}
72434#[doc = "Transpose elements"]
72435#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p16)"]
72436#[inline(always)]
72437#[target_feature(enable = "neon")]
72438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72440#[cfg_attr(
72441    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72442    assert_instr(trn1)
72443)]
72444#[cfg_attr(
72445    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72446    assert_instr(trn2)
72447)]
72448#[cfg_attr(
72449    not(target_arch = "arm"),
72450    stable(feature = "neon_intrinsics", since = "1.59.0")
72451)]
72452#[cfg_attr(
72453    target_arch = "arm",
72454    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72455)]
72456pub fn vtrn_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
72457    unsafe {
72458        let a1: poly16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
72459        let b1: poly16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
72460        transmute((a1, b1))
72461    }
72462}
72463#[doc = "Transpose elements"]
72464#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p16)"]
72465#[inline(always)]
72466#[target_feature(enable = "neon")]
72467#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72468#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
72469#[cfg_attr(
72470    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72471    assert_instr(trn1)
72472)]
72473#[cfg_attr(
72474    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72475    assert_instr(trn2)
72476)]
72477#[cfg_attr(
72478    not(target_arch = "arm"),
72479    stable(feature = "neon_intrinsics", since = "1.59.0")
72480)]
72481#[cfg_attr(
72482    target_arch = "arm",
72483    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72484)]
72485pub fn vtrnq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
72486    unsafe {
72487        let a1: poly16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
72488        let b1: poly16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
72489        transmute((a1, b1))
72490    }
72491}
72492#[doc = "Signed compare bitwise Test bits nonzero"]
72493#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s8)"]
72494#[inline(always)]
72495#[target_feature(enable = "neon")]
72496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72498#[cfg_attr(
72499    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72500    assert_instr(cmtst)
72501)]
72502#[cfg_attr(
72503    not(target_arch = "arm"),
72504    stable(feature = "neon_intrinsics", since = "1.59.0")
72505)]
72506#[cfg_attr(
72507    target_arch = "arm",
72508    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72509)]
72510pub fn vtst_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
72511    unsafe {
72512        let c: int8x8_t = simd_and(a, b);
72513        let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72514        simd_ne(c, transmute(d))
72515    }
72516}
72517#[doc = "Signed compare bitwise Test bits nonzero"]
72518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s8)"]
72519#[inline(always)]
72520#[target_feature(enable = "neon")]
72521#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72522#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72523#[cfg_attr(
72524    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72525    assert_instr(cmtst)
72526)]
72527#[cfg_attr(
72528    not(target_arch = "arm"),
72529    stable(feature = "neon_intrinsics", since = "1.59.0")
72530)]
72531#[cfg_attr(
72532    target_arch = "arm",
72533    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72534)]
72535pub fn vtstq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
72536    unsafe {
72537        let c: int8x16_t = simd_and(a, b);
72538        let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
72539        simd_ne(c, transmute(d))
72540    }
72541}
72542#[doc = "Signed compare bitwise Test bits nonzero"]
72543#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s16)"]
72544#[inline(always)]
72545#[target_feature(enable = "neon")]
72546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72548#[cfg_attr(
72549    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72550    assert_instr(cmtst)
72551)]
72552#[cfg_attr(
72553    not(target_arch = "arm"),
72554    stable(feature = "neon_intrinsics", since = "1.59.0")
72555)]
72556#[cfg_attr(
72557    target_arch = "arm",
72558    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72559)]
72560pub fn vtst_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
72561    unsafe {
72562        let c: int16x4_t = simd_and(a, b);
72563        let d: i16x4 = i16x4::new(0, 0, 0, 0);
72564        simd_ne(c, transmute(d))
72565    }
72566}
72567#[doc = "Signed compare bitwise Test bits nonzero"]
72568#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s16)"]
72569#[inline(always)]
72570#[target_feature(enable = "neon")]
72571#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72572#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72573#[cfg_attr(
72574    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72575    assert_instr(cmtst)
72576)]
72577#[cfg_attr(
72578    not(target_arch = "arm"),
72579    stable(feature = "neon_intrinsics", since = "1.59.0")
72580)]
72581#[cfg_attr(
72582    target_arch = "arm",
72583    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72584)]
72585pub fn vtstq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
72586    unsafe {
72587        let c: int16x8_t = simd_and(a, b);
72588        let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72589        simd_ne(c, transmute(d))
72590    }
72591}
72592#[doc = "Signed compare bitwise Test bits nonzero"]
72593#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s32)"]
72594#[inline(always)]
72595#[target_feature(enable = "neon")]
72596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72598#[cfg_attr(
72599    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72600    assert_instr(cmtst)
72601)]
72602#[cfg_attr(
72603    not(target_arch = "arm"),
72604    stable(feature = "neon_intrinsics", since = "1.59.0")
72605)]
72606#[cfg_attr(
72607    target_arch = "arm",
72608    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72609)]
72610pub fn vtst_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
72611    unsafe {
72612        let c: int32x2_t = simd_and(a, b);
72613        let d: i32x2 = i32x2::new(0, 0);
72614        simd_ne(c, transmute(d))
72615    }
72616}
72617#[doc = "Signed compare bitwise Test bits nonzero"]
72618#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s32)"]
72619#[inline(always)]
72620#[target_feature(enable = "neon")]
72621#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72622#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72623#[cfg_attr(
72624    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72625    assert_instr(cmtst)
72626)]
72627#[cfg_attr(
72628    not(target_arch = "arm"),
72629    stable(feature = "neon_intrinsics", since = "1.59.0")
72630)]
72631#[cfg_attr(
72632    target_arch = "arm",
72633    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72634)]
72635pub fn vtstq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
72636    unsafe {
72637        let c: int32x4_t = simd_and(a, b);
72638        let d: i32x4 = i32x4::new(0, 0, 0, 0);
72639        simd_ne(c, transmute(d))
72640    }
72641}
72642#[doc = "Signed compare bitwise Test bits nonzero"]
72643#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p8)"]
72644#[inline(always)]
72645#[target_feature(enable = "neon")]
72646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72647#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72648#[cfg_attr(
72649    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72650    assert_instr(cmtst)
72651)]
72652#[cfg_attr(
72653    not(target_arch = "arm"),
72654    stable(feature = "neon_intrinsics", since = "1.59.0")
72655)]
72656#[cfg_attr(
72657    target_arch = "arm",
72658    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72659)]
72660pub fn vtst_p8(a: poly8x8_t, b: poly8x8_t) -> uint8x8_t {
72661    unsafe {
72662        let c: poly8x8_t = simd_and(a, b);
72663        let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72664        simd_ne(c, transmute(d))
72665    }
72666}
72667#[doc = "Signed compare bitwise Test bits nonzero"]
72668#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p8)"]
72669#[inline(always)]
72670#[target_feature(enable = "neon")]
72671#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72672#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72673#[cfg_attr(
72674    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72675    assert_instr(cmtst)
72676)]
72677#[cfg_attr(
72678    not(target_arch = "arm"),
72679    stable(feature = "neon_intrinsics", since = "1.59.0")
72680)]
72681#[cfg_attr(
72682    target_arch = "arm",
72683    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72684)]
72685pub fn vtstq_p8(a: poly8x16_t, b: poly8x16_t) -> uint8x16_t {
72686    unsafe {
72687        let c: poly8x16_t = simd_and(a, b);
72688        let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
72689        simd_ne(c, transmute(d))
72690    }
72691}
72692#[doc = "Signed compare bitwise Test bits nonzero"]
72693#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p16)"]
72694#[inline(always)]
72695#[target_feature(enable = "neon")]
72696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72698#[cfg_attr(
72699    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72700    assert_instr(cmtst)
72701)]
72702#[cfg_attr(
72703    not(target_arch = "arm"),
72704    stable(feature = "neon_intrinsics", since = "1.59.0")
72705)]
72706#[cfg_attr(
72707    target_arch = "arm",
72708    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72709)]
72710pub fn vtst_p16(a: poly16x4_t, b: poly16x4_t) -> uint16x4_t {
72711    unsafe {
72712        let c: poly16x4_t = simd_and(a, b);
72713        let d: i16x4 = i16x4::new(0, 0, 0, 0);
72714        simd_ne(c, transmute(d))
72715    }
72716}
72717#[doc = "Signed compare bitwise Test bits nonzero"]
72718#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p16)"]
72719#[inline(always)]
72720#[target_feature(enable = "neon")]
72721#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72722#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72723#[cfg_attr(
72724    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72725    assert_instr(cmtst)
72726)]
72727#[cfg_attr(
72728    not(target_arch = "arm"),
72729    stable(feature = "neon_intrinsics", since = "1.59.0")
72730)]
72731#[cfg_attr(
72732    target_arch = "arm",
72733    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72734)]
72735pub fn vtstq_p16(a: poly16x8_t, b: poly16x8_t) -> uint16x8_t {
72736    unsafe {
72737        let c: poly16x8_t = simd_and(a, b);
72738        let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72739        simd_ne(c, transmute(d))
72740    }
72741}
72742#[doc = "Unsigned compare bitwise Test bits nonzero"]
72743#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u8)"]
72744#[inline(always)]
72745#[target_feature(enable = "neon")]
72746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72748#[cfg_attr(
72749    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72750    assert_instr(cmtst)
72751)]
72752#[cfg_attr(
72753    not(target_arch = "arm"),
72754    stable(feature = "neon_intrinsics", since = "1.59.0")
72755)]
72756#[cfg_attr(
72757    target_arch = "arm",
72758    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72759)]
72760pub fn vtst_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
72761    unsafe {
72762        let c: uint8x8_t = simd_and(a, b);
72763        let d: u8x8 = u8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72764        simd_ne(c, transmute(d))
72765    }
72766}
72767#[doc = "Unsigned compare bitwise Test bits nonzero"]
72768#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u8)"]
72769#[inline(always)]
72770#[target_feature(enable = "neon")]
72771#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72772#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72773#[cfg_attr(
72774    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72775    assert_instr(cmtst)
72776)]
72777#[cfg_attr(
72778    not(target_arch = "arm"),
72779    stable(feature = "neon_intrinsics", since = "1.59.0")
72780)]
72781#[cfg_attr(
72782    target_arch = "arm",
72783    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72784)]
72785pub fn vtstq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
72786    unsafe {
72787        let c: uint8x16_t = simd_and(a, b);
72788        let d: u8x16 = u8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
72789        simd_ne(c, transmute(d))
72790    }
72791}
72792#[doc = "Unsigned compare bitwise Test bits nonzero"]
72793#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u16)"]
72794#[inline(always)]
72795#[target_feature(enable = "neon")]
72796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72798#[cfg_attr(
72799    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72800    assert_instr(cmtst)
72801)]
72802#[cfg_attr(
72803    not(target_arch = "arm"),
72804    stable(feature = "neon_intrinsics", since = "1.59.0")
72805)]
72806#[cfg_attr(
72807    target_arch = "arm",
72808    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72809)]
72810pub fn vtst_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
72811    unsafe {
72812        let c: uint16x4_t = simd_and(a, b);
72813        let d: u16x4 = u16x4::new(0, 0, 0, 0);
72814        simd_ne(c, transmute(d))
72815    }
72816}
72817#[doc = "Unsigned compare bitwise Test bits nonzero"]
72818#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u16)"]
72819#[inline(always)]
72820#[target_feature(enable = "neon")]
72821#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72822#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72823#[cfg_attr(
72824    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72825    assert_instr(cmtst)
72826)]
72827#[cfg_attr(
72828    not(target_arch = "arm"),
72829    stable(feature = "neon_intrinsics", since = "1.59.0")
72830)]
72831#[cfg_attr(
72832    target_arch = "arm",
72833    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72834)]
72835pub fn vtstq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
72836    unsafe {
72837        let c: uint16x8_t = simd_and(a, b);
72838        let d: u16x8 = u16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
72839        simd_ne(c, transmute(d))
72840    }
72841}
72842#[doc = "Unsigned compare bitwise Test bits nonzero"]
72843#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u32)"]
72844#[inline(always)]
72845#[target_feature(enable = "neon")]
72846#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72847#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72848#[cfg_attr(
72849    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72850    assert_instr(cmtst)
72851)]
72852#[cfg_attr(
72853    not(target_arch = "arm"),
72854    stable(feature = "neon_intrinsics", since = "1.59.0")
72855)]
72856#[cfg_attr(
72857    target_arch = "arm",
72858    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72859)]
72860pub fn vtst_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
72861    unsafe {
72862        let c: uint32x2_t = simd_and(a, b);
72863        let d: u32x2 = u32x2::new(0, 0);
72864        simd_ne(c, transmute(d))
72865    }
72866}
72867#[doc = "Unsigned compare bitwise Test bits nonzero"]
72868#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u32)"]
72869#[inline(always)]
72870#[target_feature(enable = "neon")]
72871#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
72872#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
72873#[cfg_attr(
72874    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72875    assert_instr(cmtst)
72876)]
72877#[cfg_attr(
72878    not(target_arch = "arm"),
72879    stable(feature = "neon_intrinsics", since = "1.59.0")
72880)]
72881#[cfg_attr(
72882    target_arch = "arm",
72883    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72884)]
72885pub fn vtstq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
72886    unsafe {
72887        let c: uint32x4_t = simd_and(a, b);
72888        let d: u32x4 = u32x4::new(0, 0, 0, 0);
72889        simd_ne(c, transmute(d))
72890    }
72891}
72892#[doc = "Dot product index form with unsigned and signed integers"]
72893#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_lane_s32)"]
72894#[inline(always)]
72895#[cfg(target_endian = "little")]
72896#[target_feature(enable = "neon,i8mm")]
72897#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72898#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
72899#[cfg_attr(
72900    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72901    assert_instr(usdot, LANE = 0)
72902)]
72903#[rustc_legacy_const_generics(3)]
72904#[cfg_attr(
72905    not(target_arch = "arm"),
72906    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72907)]
72908#[cfg_attr(
72909    target_arch = "arm",
72910    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72911)]
72912pub fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
72913    static_assert_uimm_bits!(LANE, 1);
72914    unsafe {
72915        let c: int32x2_t = transmute(c);
72916        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
72917        vusdot_s32(a, b, transmute(c))
72918    }
72919}
72920#[doc = "Dot product index form with unsigned and signed integers"]
72921#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_lane_s32)"]
72922#[inline(always)]
72923#[cfg(target_endian = "big")]
72924#[target_feature(enable = "neon,i8mm")]
72925#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72926#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
72927#[cfg_attr(
72928    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72929    assert_instr(usdot, LANE = 0)
72930)]
72931#[rustc_legacy_const_generics(3)]
72932#[cfg_attr(
72933    not(target_arch = "arm"),
72934    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72935)]
72936#[cfg_attr(
72937    target_arch = "arm",
72938    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72939)]
72940pub fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
72941    static_assert_uimm_bits!(LANE, 1);
72942    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
72943    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
72944    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
72945    unsafe {
72946        let c: int32x2_t = transmute(c);
72947        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
72948        let ret_val: int32x2_t = vusdot_s32(a, b, transmute(c));
72949        simd_shuffle!(ret_val, ret_val, [1, 0])
72950    }
72951}
72952#[doc = "Dot product index form with unsigned and signed integers"]
72953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_lane_s32)"]
72954#[inline(always)]
72955#[cfg(target_endian = "little")]
72956#[target_feature(enable = "neon,i8mm")]
72957#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72958#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
72959#[cfg_attr(
72960    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72961    assert_instr(usdot, LANE = 0)
72962)]
72963#[rustc_legacy_const_generics(3)]
72964#[cfg_attr(
72965    not(target_arch = "arm"),
72966    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72967)]
72968#[cfg_attr(
72969    target_arch = "arm",
72970    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
72971)]
72972pub fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x8_t) -> int32x4_t {
72973    static_assert_uimm_bits!(LANE, 1);
72974    unsafe {
72975        let c: int32x2_t = transmute(c);
72976        let c: int32x4_t =
72977            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
72978        vusdotq_s32(a, b, transmute(c))
72979    }
72980}
72981#[doc = "Dot product index form with unsigned and signed integers"]
72982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_lane_s32)"]
72983#[inline(always)]
72984#[cfg(target_endian = "big")]
72985#[target_feature(enable = "neon,i8mm")]
72986#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
72987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
72988#[cfg_attr(
72989    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
72990    assert_instr(usdot, LANE = 0)
72991)]
72992#[rustc_legacy_const_generics(3)]
72993#[cfg_attr(
72994    not(target_arch = "arm"),
72995    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
72996)]
72997#[cfg_attr(
72998    target_arch = "arm",
72999    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73000)]
73001pub fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x8_t) -> int32x4_t {
73002    static_assert_uimm_bits!(LANE, 1);
73003    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
73004    let b: uint8x16_t =
73005        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
73006    let c: int8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
73007    unsafe {
73008        let c: int32x2_t = transmute(c);
73009        let c: int32x4_t =
73010            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
73011        let ret_val: int32x4_t = vusdotq_s32(a, b, transmute(c));
73012        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
73013    }
73014}
73015#[doc = "Dot product index form with unsigned and signed integers"]
73016#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_laneq_s32)"]
73017#[inline(always)]
73018#[cfg(target_endian = "little")]
73019#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73020#[target_feature(enable = "neon,i8mm")]
73021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 3))]
73022#[cfg_attr(
73023    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73024    assert_instr(usdot, LANE = 3)
73025)]
73026#[rustc_legacy_const_generics(3)]
73027#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
73028pub fn vusdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x16_t) -> int32x2_t {
73029    static_assert_uimm_bits!(LANE, 2);
73030    unsafe {
73031        let c: int32x4_t = transmute(c);
73032        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
73033        vusdot_s32(a, b, transmute(c))
73034    }
73035}
73036#[doc = "Dot product index form with unsigned and signed integers"]
73037#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_laneq_s32)"]
73038#[inline(always)]
73039#[cfg(target_endian = "big")]
73040#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73041#[target_feature(enable = "neon,i8mm")]
73042#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 3))]
73043#[cfg_attr(
73044    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73045    assert_instr(usdot, LANE = 3)
73046)]
73047#[rustc_legacy_const_generics(3)]
73048#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
73049pub fn vusdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x16_t) -> int32x2_t {
73050    static_assert_uimm_bits!(LANE, 2);
73051    let a: int32x2_t = unsafe { simd_shuffle!(a, a, [1, 0]) };
73052    let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
73053    let c: int8x16_t =
73054        unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
73055    unsafe {
73056        let c: int32x4_t = transmute(c);
73057        let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
73058        let ret_val: int32x2_t = vusdot_s32(a, b, transmute(c));
73059        simd_shuffle!(ret_val, ret_val, [1, 0])
73060    }
73061}
73062#[doc = "Dot product index form with unsigned and signed integers"]
73063#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_laneq_s32)"]
73064#[inline(always)]
73065#[cfg(target_endian = "little")]
73066#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73067#[target_feature(enable = "neon,i8mm")]
73068#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 3))]
73069#[cfg_attr(
73070    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73071    assert_instr(usdot, LANE = 3)
73072)]
73073#[rustc_legacy_const_generics(3)]
73074#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
73075pub fn vusdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
73076    static_assert_uimm_bits!(LANE, 2);
73077    unsafe {
73078        let c: int32x4_t = transmute(c);
73079        let c: int32x4_t =
73080            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
73081        vusdotq_s32(a, b, transmute(c))
73082    }
73083}
73084#[doc = "Dot product index form with unsigned and signed integers"]
73085#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_laneq_s32)"]
73086#[inline(always)]
73087#[cfg(target_endian = "big")]
73088#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73089#[target_feature(enable = "neon,i8mm")]
73090#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 3))]
73091#[cfg_attr(
73092    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73093    assert_instr(usdot, LANE = 3)
73094)]
73095#[rustc_legacy_const_generics(3)]
73096#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
73097pub fn vusdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
73098    static_assert_uimm_bits!(LANE, 2);
73099    let a: int32x4_t = unsafe { simd_shuffle!(a, a, [3, 2, 1, 0]) };
73100    let b: uint8x16_t =
73101        unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
73102    let c: int8x16_t =
73103        unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
73104    unsafe {
73105        let c: int32x4_t = transmute(c);
73106        let c: int32x4_t =
73107            simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
73108        let ret_val: int32x4_t = vusdotq_s32(a, b, transmute(c));
73109        simd_shuffle!(ret_val, ret_val, [3, 2, 1, 0])
73110    }
73111}
73112#[doc = "Dot product vector form with unsigned and signed integers"]
73113#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_s32)"]
73114#[inline(always)]
73115#[target_feature(enable = "neon,i8mm")]
73116#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
73118#[cfg_attr(
73119    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73120    assert_instr(usdot)
73121)]
73122#[cfg_attr(
73123    not(target_arch = "arm"),
73124    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
73125)]
73126#[cfg_attr(
73127    target_arch = "arm",
73128    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73129)]
73130pub fn vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
73131    unsafe extern "unadjusted" {
73132        #[cfg_attr(
73133            any(target_arch = "aarch64", target_arch = "arm64ec"),
73134            link_name = "llvm.aarch64.neon.usdot.v2i32.v8i8"
73135        )]
73136        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v2i32.v8i8")]
73137        fn _vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t;
73138    }
73139    unsafe { _vusdot_s32(a, b, c) }
73140}
73141#[doc = "Dot product vector form with unsigned and signed integers"]
73142#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_s32)"]
73143#[inline(always)]
73144#[target_feature(enable = "neon,i8mm")]
73145#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73146#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
73147#[cfg_attr(
73148    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73149    assert_instr(usdot)
73150)]
73151#[cfg_attr(
73152    not(target_arch = "arm"),
73153    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
73154)]
73155#[cfg_attr(
73156    target_arch = "arm",
73157    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73158)]
73159pub fn vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
73160    unsafe extern "unadjusted" {
73161        #[cfg_attr(
73162            any(target_arch = "aarch64", target_arch = "arm64ec"),
73163            link_name = "llvm.aarch64.neon.usdot.v4i32.v16i8"
73164        )]
73165        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v4i32.v16i8")]
73166        fn _vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t;
73167    }
73168    unsafe { _vusdotq_s32(a, b, c) }
73169}
73170#[doc = "Unsigned and signed 8-bit integer matrix multiply-accumulate"]
73171#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusmmlaq_s32)"]
73172#[inline(always)]
73173#[target_feature(enable = "neon,i8mm")]
73174#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
73175#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
73176#[cfg_attr(
73177    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73178    assert_instr(usmmla)
73179)]
73180#[cfg_attr(
73181    not(target_arch = "arm"),
73182    unstable(feature = "stdarch_neon_i8mm", issue = "117223")
73183)]
73184#[cfg_attr(
73185    target_arch = "arm",
73186    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73187)]
73188pub fn vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
73189    unsafe extern "unadjusted" {
73190        #[cfg_attr(
73191            any(target_arch = "aarch64", target_arch = "arm64ec"),
73192            link_name = "llvm.aarch64.neon.usmmla.v4i32.v16i8"
73193        )]
73194        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usmmla.v4i32.v16i8")]
73195        fn _vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t;
73196    }
73197    unsafe { _vusmmlaq_s32(a, b, c) }
73198}
73199#[doc = "Unzip vectors"]
73200#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_f16)"]
73201#[inline(always)]
73202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73203#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73204#[cfg_attr(
73205    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73206    assert_instr(uzp1)
73207)]
73208#[cfg_attr(
73209    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73210    assert_instr(uzp2)
73211)]
73212#[target_feature(enable = "neon,fp16")]
73213#[cfg_attr(
73214    not(target_arch = "arm"),
73215    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
73216)]
73217#[cfg_attr(
73218    target_arch = "arm",
73219    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73220)]
73221#[cfg(not(target_arch = "arm64ec"))]
73222pub fn vuzp_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
73223    unsafe {
73224        let a0: float16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73225        let b0: float16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73226        transmute((a0, b0))
73227    }
73228}
73229#[doc = "Unzip vectors"]
73230#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_f16)"]
73231#[inline(always)]
73232#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73233#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73234#[cfg_attr(
73235    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73236    assert_instr(uzp1)
73237)]
73238#[cfg_attr(
73239    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73240    assert_instr(uzp2)
73241)]
73242#[target_feature(enable = "neon,fp16")]
73243#[cfg_attr(
73244    not(target_arch = "arm"),
73245    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
73246)]
73247#[cfg_attr(
73248    target_arch = "arm",
73249    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73250)]
73251#[cfg(not(target_arch = "arm64ec"))]
73252pub fn vuzpq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
73253    unsafe {
73254        let a0: float16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73255        let b0: float16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73256        transmute((a0, b0))
73257    }
73258}
73259#[doc = "Unzip vectors"]
73260#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_f32)"]
73261#[inline(always)]
73262#[target_feature(enable = "neon")]
73263#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73264#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
73265#[cfg_attr(
73266    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73267    assert_instr(zip1)
73268)]
73269#[cfg_attr(
73270    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73271    assert_instr(zip2)
73272)]
73273#[cfg_attr(
73274    not(target_arch = "arm"),
73275    stable(feature = "neon_intrinsics", since = "1.59.0")
73276)]
73277#[cfg_attr(
73278    target_arch = "arm",
73279    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73280)]
73281pub fn vuzp_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
73282    unsafe {
73283        let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
73284        let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
73285        transmute((a0, b0))
73286    }
73287}
73288#[doc = "Unzip vectors"]
73289#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s32)"]
73290#[inline(always)]
73291#[target_feature(enable = "neon")]
73292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
73294#[cfg_attr(
73295    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73296    assert_instr(zip1)
73297)]
73298#[cfg_attr(
73299    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73300    assert_instr(zip2)
73301)]
73302#[cfg_attr(
73303    not(target_arch = "arm"),
73304    stable(feature = "neon_intrinsics", since = "1.59.0")
73305)]
73306#[cfg_attr(
73307    target_arch = "arm",
73308    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73309)]
73310pub fn vuzp_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
73311    unsafe {
73312        let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
73313        let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
73314        transmute((a0, b0))
73315    }
73316}
73317#[doc = "Unzip vectors"]
73318#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u32)"]
73319#[inline(always)]
73320#[target_feature(enable = "neon")]
73321#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73322#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
73323#[cfg_attr(
73324    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73325    assert_instr(zip1)
73326)]
73327#[cfg_attr(
73328    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73329    assert_instr(zip2)
73330)]
73331#[cfg_attr(
73332    not(target_arch = "arm"),
73333    stable(feature = "neon_intrinsics", since = "1.59.0")
73334)]
73335#[cfg_attr(
73336    target_arch = "arm",
73337    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73338)]
73339pub fn vuzp_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
73340    unsafe {
73341        let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
73342        let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
73343        transmute((a0, b0))
73344    }
73345}
73346#[doc = "Unzip vectors"]
73347#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_f32)"]
73348#[inline(always)]
73349#[target_feature(enable = "neon")]
73350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73352#[cfg_attr(
73353    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73354    assert_instr(uzp1)
73355)]
73356#[cfg_attr(
73357    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73358    assert_instr(uzp2)
73359)]
73360#[cfg_attr(
73361    not(target_arch = "arm"),
73362    stable(feature = "neon_intrinsics", since = "1.59.0")
73363)]
73364#[cfg_attr(
73365    target_arch = "arm",
73366    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73367)]
73368pub fn vuzpq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
73369    unsafe {
73370        let a0: float32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73371        let b0: float32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73372        transmute((a0, b0))
73373    }
73374}
73375#[doc = "Unzip vectors"]
73376#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s8)"]
73377#[inline(always)]
73378#[target_feature(enable = "neon")]
73379#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73380#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73381#[cfg_attr(
73382    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73383    assert_instr(uzp1)
73384)]
73385#[cfg_attr(
73386    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73387    assert_instr(uzp2)
73388)]
73389#[cfg_attr(
73390    not(target_arch = "arm"),
73391    stable(feature = "neon_intrinsics", since = "1.59.0")
73392)]
73393#[cfg_attr(
73394    target_arch = "arm",
73395    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73396)]
73397pub fn vuzp_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
73398    unsafe {
73399        let a0: int8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73400        let b0: int8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73401        transmute((a0, b0))
73402    }
73403}
73404#[doc = "Unzip vectors"]
73405#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s8)"]
73406#[inline(always)]
73407#[target_feature(enable = "neon")]
73408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73410#[cfg_attr(
73411    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73412    assert_instr(uzp1)
73413)]
73414#[cfg_attr(
73415    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73416    assert_instr(uzp2)
73417)]
73418#[cfg_attr(
73419    not(target_arch = "arm"),
73420    stable(feature = "neon_intrinsics", since = "1.59.0")
73421)]
73422#[cfg_attr(
73423    target_arch = "arm",
73424    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73425)]
73426pub fn vuzpq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
73427    unsafe {
73428        let a0: int8x16_t = simd_shuffle!(
73429            a,
73430            b,
73431            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
73432        );
73433        let b0: int8x16_t = simd_shuffle!(
73434            a,
73435            b,
73436            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
73437        );
73438        transmute((a0, b0))
73439    }
73440}
73441#[doc = "Unzip vectors"]
73442#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s16)"]
73443#[inline(always)]
73444#[target_feature(enable = "neon")]
73445#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73446#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73447#[cfg_attr(
73448    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73449    assert_instr(uzp1)
73450)]
73451#[cfg_attr(
73452    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73453    assert_instr(uzp2)
73454)]
73455#[cfg_attr(
73456    not(target_arch = "arm"),
73457    stable(feature = "neon_intrinsics", since = "1.59.0")
73458)]
73459#[cfg_attr(
73460    target_arch = "arm",
73461    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73462)]
73463pub fn vuzp_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
73464    unsafe {
73465        let a0: int16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73466        let b0: int16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73467        transmute((a0, b0))
73468    }
73469}
73470#[doc = "Unzip vectors"]
73471#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s16)"]
73472#[inline(always)]
73473#[target_feature(enable = "neon")]
73474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73475#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73476#[cfg_attr(
73477    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73478    assert_instr(uzp1)
73479)]
73480#[cfg_attr(
73481    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73482    assert_instr(uzp2)
73483)]
73484#[cfg_attr(
73485    not(target_arch = "arm"),
73486    stable(feature = "neon_intrinsics", since = "1.59.0")
73487)]
73488#[cfg_attr(
73489    target_arch = "arm",
73490    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73491)]
73492pub fn vuzpq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
73493    unsafe {
73494        let a0: int16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73495        let b0: int16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73496        transmute((a0, b0))
73497    }
73498}
73499#[doc = "Unzip vectors"]
73500#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s32)"]
73501#[inline(always)]
73502#[target_feature(enable = "neon")]
73503#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73504#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73505#[cfg_attr(
73506    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73507    assert_instr(uzp1)
73508)]
73509#[cfg_attr(
73510    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73511    assert_instr(uzp2)
73512)]
73513#[cfg_attr(
73514    not(target_arch = "arm"),
73515    stable(feature = "neon_intrinsics", since = "1.59.0")
73516)]
73517#[cfg_attr(
73518    target_arch = "arm",
73519    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73520)]
73521pub fn vuzpq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
73522    unsafe {
73523        let a0: int32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73524        let b0: int32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73525        transmute((a0, b0))
73526    }
73527}
73528#[doc = "Unzip vectors"]
73529#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u8)"]
73530#[inline(always)]
73531#[target_feature(enable = "neon")]
73532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73533#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73534#[cfg_attr(
73535    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73536    assert_instr(uzp1)
73537)]
73538#[cfg_attr(
73539    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73540    assert_instr(uzp2)
73541)]
73542#[cfg_attr(
73543    not(target_arch = "arm"),
73544    stable(feature = "neon_intrinsics", since = "1.59.0")
73545)]
73546#[cfg_attr(
73547    target_arch = "arm",
73548    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73549)]
73550pub fn vuzp_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
73551    unsafe {
73552        let a0: uint8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73553        let b0: uint8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73554        transmute((a0, b0))
73555    }
73556}
73557#[doc = "Unzip vectors"]
73558#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u8)"]
73559#[inline(always)]
73560#[target_feature(enable = "neon")]
73561#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73562#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73563#[cfg_attr(
73564    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73565    assert_instr(uzp1)
73566)]
73567#[cfg_attr(
73568    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73569    assert_instr(uzp2)
73570)]
73571#[cfg_attr(
73572    not(target_arch = "arm"),
73573    stable(feature = "neon_intrinsics", since = "1.59.0")
73574)]
73575#[cfg_attr(
73576    target_arch = "arm",
73577    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73578)]
73579pub fn vuzpq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
73580    unsafe {
73581        let a0: uint8x16_t = simd_shuffle!(
73582            a,
73583            b,
73584            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
73585        );
73586        let b0: uint8x16_t = simd_shuffle!(
73587            a,
73588            b,
73589            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
73590        );
73591        transmute((a0, b0))
73592    }
73593}
73594#[doc = "Unzip vectors"]
73595#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u16)"]
73596#[inline(always)]
73597#[target_feature(enable = "neon")]
73598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73599#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73600#[cfg_attr(
73601    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73602    assert_instr(uzp1)
73603)]
73604#[cfg_attr(
73605    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73606    assert_instr(uzp2)
73607)]
73608#[cfg_attr(
73609    not(target_arch = "arm"),
73610    stable(feature = "neon_intrinsics", since = "1.59.0")
73611)]
73612#[cfg_attr(
73613    target_arch = "arm",
73614    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73615)]
73616pub fn vuzp_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
73617    unsafe {
73618        let a0: uint16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73619        let b0: uint16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73620        transmute((a0, b0))
73621    }
73622}
73623#[doc = "Unzip vectors"]
73624#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u16)"]
73625#[inline(always)]
73626#[target_feature(enable = "neon")]
73627#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73628#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73629#[cfg_attr(
73630    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73631    assert_instr(uzp1)
73632)]
73633#[cfg_attr(
73634    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73635    assert_instr(uzp2)
73636)]
73637#[cfg_attr(
73638    not(target_arch = "arm"),
73639    stable(feature = "neon_intrinsics", since = "1.59.0")
73640)]
73641#[cfg_attr(
73642    target_arch = "arm",
73643    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73644)]
73645pub fn vuzpq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
73646    unsafe {
73647        let a0: uint16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73648        let b0: uint16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73649        transmute((a0, b0))
73650    }
73651}
73652#[doc = "Unzip vectors"]
73653#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u32)"]
73654#[inline(always)]
73655#[target_feature(enable = "neon")]
73656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73658#[cfg_attr(
73659    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73660    assert_instr(uzp1)
73661)]
73662#[cfg_attr(
73663    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73664    assert_instr(uzp2)
73665)]
73666#[cfg_attr(
73667    not(target_arch = "arm"),
73668    stable(feature = "neon_intrinsics", since = "1.59.0")
73669)]
73670#[cfg_attr(
73671    target_arch = "arm",
73672    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73673)]
73674pub fn vuzpq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
73675    unsafe {
73676        let a0: uint32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73677        let b0: uint32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73678        transmute((a0, b0))
73679    }
73680}
73681#[doc = "Unzip vectors"]
73682#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p8)"]
73683#[inline(always)]
73684#[target_feature(enable = "neon")]
73685#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73686#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73687#[cfg_attr(
73688    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73689    assert_instr(uzp1)
73690)]
73691#[cfg_attr(
73692    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73693    assert_instr(uzp2)
73694)]
73695#[cfg_attr(
73696    not(target_arch = "arm"),
73697    stable(feature = "neon_intrinsics", since = "1.59.0")
73698)]
73699#[cfg_attr(
73700    target_arch = "arm",
73701    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73702)]
73703pub fn vuzp_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
73704    unsafe {
73705        let a0: poly8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73706        let b0: poly8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73707        transmute((a0, b0))
73708    }
73709}
73710#[doc = "Unzip vectors"]
73711#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p8)"]
73712#[inline(always)]
73713#[target_feature(enable = "neon")]
73714#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73715#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73716#[cfg_attr(
73717    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73718    assert_instr(uzp1)
73719)]
73720#[cfg_attr(
73721    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73722    assert_instr(uzp2)
73723)]
73724#[cfg_attr(
73725    not(target_arch = "arm"),
73726    stable(feature = "neon_intrinsics", since = "1.59.0")
73727)]
73728#[cfg_attr(
73729    target_arch = "arm",
73730    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73731)]
73732pub fn vuzpq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
73733    unsafe {
73734        let a0: poly8x16_t = simd_shuffle!(
73735            a,
73736            b,
73737            [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
73738        );
73739        let b0: poly8x16_t = simd_shuffle!(
73740            a,
73741            b,
73742            [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]
73743        );
73744        transmute((a0, b0))
73745    }
73746}
73747#[doc = "Unzip vectors"]
73748#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p16)"]
73749#[inline(always)]
73750#[target_feature(enable = "neon")]
73751#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73752#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73753#[cfg_attr(
73754    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73755    assert_instr(uzp1)
73756)]
73757#[cfg_attr(
73758    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73759    assert_instr(uzp2)
73760)]
73761#[cfg_attr(
73762    not(target_arch = "arm"),
73763    stable(feature = "neon_intrinsics", since = "1.59.0")
73764)]
73765#[cfg_attr(
73766    target_arch = "arm",
73767    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73768)]
73769pub fn vuzp_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
73770    unsafe {
73771        let a0: poly16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
73772        let b0: poly16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
73773        transmute((a0, b0))
73774    }
73775}
73776#[doc = "Unzip vectors"]
73777#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p16)"]
73778#[inline(always)]
73779#[target_feature(enable = "neon")]
73780#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73781#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
73782#[cfg_attr(
73783    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73784    assert_instr(uzp1)
73785)]
73786#[cfg_attr(
73787    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73788    assert_instr(uzp2)
73789)]
73790#[cfg_attr(
73791    not(target_arch = "arm"),
73792    stable(feature = "neon_intrinsics", since = "1.59.0")
73793)]
73794#[cfg_attr(
73795    target_arch = "arm",
73796    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73797)]
73798pub fn vuzpq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
73799    unsafe {
73800        let a0: poly16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
73801        let b0: poly16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
73802        transmute((a0, b0))
73803    }
73804}
73805#[doc = "Zip vectors"]
73806#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_f16)"]
73807#[inline(always)]
73808#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73809#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))]
73810#[cfg_attr(
73811    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73812    assert_instr(zip1)
73813)]
73814#[cfg_attr(
73815    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73816    assert_instr(zip2)
73817)]
73818#[target_feature(enable = "neon,fp16")]
73819#[cfg_attr(
73820    not(target_arch = "arm"),
73821    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
73822)]
73823#[cfg_attr(
73824    target_arch = "arm",
73825    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73826)]
73827#[cfg(not(target_arch = "arm64ec"))]
73828pub fn vzip_f16(a: float16x4_t, b: float16x4_t) -> float16x4x2_t {
73829    unsafe {
73830        let a0: float16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
73831        let b0: float16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
73832        transmute((a0, b0))
73833    }
73834}
73835#[doc = "Zip vectors"]
73836#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_f16)"]
73837#[inline(always)]
73838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73839#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vzip.16"))]
73840#[cfg_attr(
73841    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73842    assert_instr(zip1)
73843)]
73844#[cfg_attr(
73845    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73846    assert_instr(zip2)
73847)]
73848#[target_feature(enable = "neon,fp16")]
73849#[cfg_attr(
73850    not(target_arch = "arm"),
73851    stable(feature = "stdarch_neon_fp16", since = "1.94.0")
73852)]
73853#[cfg_attr(
73854    target_arch = "arm",
73855    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73856)]
73857#[cfg(not(target_arch = "arm64ec"))]
73858pub fn vzipq_f16(a: float16x8_t, b: float16x8_t) -> float16x8x2_t {
73859    unsafe {
73860        let a0: float16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
73861        let b0: float16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
73862        transmute((a0, b0))
73863    }
73864}
73865#[doc = "Zip vectors"]
73866#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_f32)"]
73867#[inline(always)]
73868#[target_feature(enable = "neon")]
73869#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73870#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
73871#[cfg_attr(
73872    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73873    assert_instr(zip1)
73874)]
73875#[cfg_attr(
73876    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73877    assert_instr(zip2)
73878)]
73879#[cfg_attr(
73880    not(target_arch = "arm"),
73881    stable(feature = "neon_intrinsics", since = "1.59.0")
73882)]
73883#[cfg_attr(
73884    target_arch = "arm",
73885    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73886)]
73887pub fn vzip_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
73888    unsafe {
73889        let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
73890        let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
73891        transmute((a0, b0))
73892    }
73893}
73894#[doc = "Zip vectors"]
73895#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s32)"]
73896#[inline(always)]
73897#[target_feature(enable = "neon")]
73898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73899#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
73900#[cfg_attr(
73901    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73902    assert_instr(zip1)
73903)]
73904#[cfg_attr(
73905    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73906    assert_instr(zip2)
73907)]
73908#[cfg_attr(
73909    not(target_arch = "arm"),
73910    stable(feature = "neon_intrinsics", since = "1.59.0")
73911)]
73912#[cfg_attr(
73913    target_arch = "arm",
73914    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73915)]
73916pub fn vzip_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
73917    unsafe {
73918        let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
73919        let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
73920        transmute((a0, b0))
73921    }
73922}
73923#[doc = "Zip vectors"]
73924#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u32)"]
73925#[inline(always)]
73926#[target_feature(enable = "neon")]
73927#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73928#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
73929#[cfg_attr(
73930    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73931    assert_instr(zip1)
73932)]
73933#[cfg_attr(
73934    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73935    assert_instr(zip2)
73936)]
73937#[cfg_attr(
73938    not(target_arch = "arm"),
73939    stable(feature = "neon_intrinsics", since = "1.59.0")
73940)]
73941#[cfg_attr(
73942    target_arch = "arm",
73943    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73944)]
73945pub fn vzip_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
73946    unsafe {
73947        let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
73948        let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
73949        transmute((a0, b0))
73950    }
73951}
73952#[doc = "Zip vectors"]
73953#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s8)"]
73954#[inline(always)]
73955#[target_feature(enable = "neon")]
73956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73957#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
73958#[cfg_attr(
73959    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73960    assert_instr(zip1)
73961)]
73962#[cfg_attr(
73963    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73964    assert_instr(zip2)
73965)]
73966#[cfg_attr(
73967    not(target_arch = "arm"),
73968    stable(feature = "neon_intrinsics", since = "1.59.0")
73969)]
73970#[cfg_attr(
73971    target_arch = "arm",
73972    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
73973)]
73974pub fn vzip_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
73975    unsafe {
73976        let a0: int8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
73977        let b0: int8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
73978        transmute((a0, b0))
73979    }
73980}
73981#[doc = "Zip vectors"]
73982#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s16)"]
73983#[inline(always)]
73984#[target_feature(enable = "neon")]
73985#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
73986#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
73987#[cfg_attr(
73988    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73989    assert_instr(zip1)
73990)]
73991#[cfg_attr(
73992    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
73993    assert_instr(zip2)
73994)]
73995#[cfg_attr(
73996    not(target_arch = "arm"),
73997    stable(feature = "neon_intrinsics", since = "1.59.0")
73998)]
73999#[cfg_attr(
74000    target_arch = "arm",
74001    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74002)]
74003pub fn vzip_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
74004    unsafe {
74005        let a0: int16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
74006        let b0: int16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
74007        transmute((a0, b0))
74008    }
74009}
74010#[doc = "Zip vectors"]
74011#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u8)"]
74012#[inline(always)]
74013#[target_feature(enable = "neon")]
74014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
74016#[cfg_attr(
74017    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74018    assert_instr(zip1)
74019)]
74020#[cfg_attr(
74021    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74022    assert_instr(zip2)
74023)]
74024#[cfg_attr(
74025    not(target_arch = "arm"),
74026    stable(feature = "neon_intrinsics", since = "1.59.0")
74027)]
74028#[cfg_attr(
74029    target_arch = "arm",
74030    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74031)]
74032pub fn vzip_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
74033    unsafe {
74034        let a0: uint8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
74035        let b0: uint8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
74036        transmute((a0, b0))
74037    }
74038}
74039#[doc = "Zip vectors"]
74040#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u16)"]
74041#[inline(always)]
74042#[target_feature(enable = "neon")]
74043#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74044#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
74045#[cfg_attr(
74046    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74047    assert_instr(zip1)
74048)]
74049#[cfg_attr(
74050    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74051    assert_instr(zip2)
74052)]
74053#[cfg_attr(
74054    not(target_arch = "arm"),
74055    stable(feature = "neon_intrinsics", since = "1.59.0")
74056)]
74057#[cfg_attr(
74058    target_arch = "arm",
74059    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74060)]
74061pub fn vzip_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
74062    unsafe {
74063        let a0: uint16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
74064        let b0: uint16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
74065        transmute((a0, b0))
74066    }
74067}
74068#[doc = "Zip vectors"]
74069#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p8)"]
74070#[inline(always)]
74071#[target_feature(enable = "neon")]
74072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74073#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
74074#[cfg_attr(
74075    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74076    assert_instr(zip1)
74077)]
74078#[cfg_attr(
74079    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74080    assert_instr(zip2)
74081)]
74082#[cfg_attr(
74083    not(target_arch = "arm"),
74084    stable(feature = "neon_intrinsics", since = "1.59.0")
74085)]
74086#[cfg_attr(
74087    target_arch = "arm",
74088    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74089)]
74090pub fn vzip_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
74091    unsafe {
74092        let a0: poly8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
74093        let b0: poly8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
74094        transmute((a0, b0))
74095    }
74096}
74097#[doc = "Zip vectors"]
74098#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p16)"]
74099#[inline(always)]
74100#[target_feature(enable = "neon")]
74101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
74103#[cfg_attr(
74104    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74105    assert_instr(zip1)
74106)]
74107#[cfg_attr(
74108    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74109    assert_instr(zip2)
74110)]
74111#[cfg_attr(
74112    not(target_arch = "arm"),
74113    stable(feature = "neon_intrinsics", since = "1.59.0")
74114)]
74115#[cfg_attr(
74116    target_arch = "arm",
74117    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74118)]
74119pub fn vzip_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
74120    unsafe {
74121        let a0: poly16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
74122        let b0: poly16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
74123        transmute((a0, b0))
74124    }
74125}
74126#[doc = "Zip vectors"]
74127#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_f32)"]
74128#[inline(always)]
74129#[target_feature(enable = "neon")]
74130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74132#[cfg_attr(
74133    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74134    assert_instr(zip1)
74135)]
74136#[cfg_attr(
74137    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74138    assert_instr(zip2)
74139)]
74140#[cfg_attr(
74141    not(target_arch = "arm"),
74142    stable(feature = "neon_intrinsics", since = "1.59.0")
74143)]
74144#[cfg_attr(
74145    target_arch = "arm",
74146    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74147)]
74148pub fn vzipq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
74149    unsafe {
74150        let a0: float32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
74151        let b0: float32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
74152        transmute((a0, b0))
74153    }
74154}
74155#[doc = "Zip vectors"]
74156#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s8)"]
74157#[inline(always)]
74158#[target_feature(enable = "neon")]
74159#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74160#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74161#[cfg_attr(
74162    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74163    assert_instr(zip1)
74164)]
74165#[cfg_attr(
74166    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74167    assert_instr(zip2)
74168)]
74169#[cfg_attr(
74170    not(target_arch = "arm"),
74171    stable(feature = "neon_intrinsics", since = "1.59.0")
74172)]
74173#[cfg_attr(
74174    target_arch = "arm",
74175    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74176)]
74177pub fn vzipq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
74178    unsafe {
74179        let a0: int8x16_t = simd_shuffle!(
74180            a,
74181            b,
74182            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
74183        );
74184        let b0: int8x16_t = simd_shuffle!(
74185            a,
74186            b,
74187            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
74188        );
74189        transmute((a0, b0))
74190    }
74191}
74192#[doc = "Zip vectors"]
74193#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s16)"]
74194#[inline(always)]
74195#[target_feature(enable = "neon")]
74196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74198#[cfg_attr(
74199    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74200    assert_instr(zip1)
74201)]
74202#[cfg_attr(
74203    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74204    assert_instr(zip2)
74205)]
74206#[cfg_attr(
74207    not(target_arch = "arm"),
74208    stable(feature = "neon_intrinsics", since = "1.59.0")
74209)]
74210#[cfg_attr(
74211    target_arch = "arm",
74212    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74213)]
74214pub fn vzipq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
74215    unsafe {
74216        let a0: int16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
74217        let b0: int16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
74218        transmute((a0, b0))
74219    }
74220}
74221#[doc = "Zip vectors"]
74222#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s32)"]
74223#[inline(always)]
74224#[target_feature(enable = "neon")]
74225#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74226#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74227#[cfg_attr(
74228    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74229    assert_instr(zip1)
74230)]
74231#[cfg_attr(
74232    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74233    assert_instr(zip2)
74234)]
74235#[cfg_attr(
74236    not(target_arch = "arm"),
74237    stable(feature = "neon_intrinsics", since = "1.59.0")
74238)]
74239#[cfg_attr(
74240    target_arch = "arm",
74241    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74242)]
74243pub fn vzipq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
74244    unsafe {
74245        let a0: int32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
74246        let b0: int32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
74247        transmute((a0, b0))
74248    }
74249}
74250#[doc = "Zip vectors"]
74251#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u8)"]
74252#[inline(always)]
74253#[target_feature(enable = "neon")]
74254#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74255#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74256#[cfg_attr(
74257    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74258    assert_instr(zip1)
74259)]
74260#[cfg_attr(
74261    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74262    assert_instr(zip2)
74263)]
74264#[cfg_attr(
74265    not(target_arch = "arm"),
74266    stable(feature = "neon_intrinsics", since = "1.59.0")
74267)]
74268#[cfg_attr(
74269    target_arch = "arm",
74270    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74271)]
74272pub fn vzipq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
74273    unsafe {
74274        let a0: uint8x16_t = simd_shuffle!(
74275            a,
74276            b,
74277            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
74278        );
74279        let b0: uint8x16_t = simd_shuffle!(
74280            a,
74281            b,
74282            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
74283        );
74284        transmute((a0, b0))
74285    }
74286}
74287#[doc = "Zip vectors"]
74288#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u16)"]
74289#[inline(always)]
74290#[target_feature(enable = "neon")]
74291#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74292#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74293#[cfg_attr(
74294    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74295    assert_instr(zip1)
74296)]
74297#[cfg_attr(
74298    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74299    assert_instr(zip2)
74300)]
74301#[cfg_attr(
74302    not(target_arch = "arm"),
74303    stable(feature = "neon_intrinsics", since = "1.59.0")
74304)]
74305#[cfg_attr(
74306    target_arch = "arm",
74307    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74308)]
74309pub fn vzipq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
74310    unsafe {
74311        let a0: uint16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
74312        let b0: uint16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
74313        transmute((a0, b0))
74314    }
74315}
74316#[doc = "Zip vectors"]
74317#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u32)"]
74318#[inline(always)]
74319#[target_feature(enable = "neon")]
74320#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74321#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74322#[cfg_attr(
74323    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74324    assert_instr(zip1)
74325)]
74326#[cfg_attr(
74327    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74328    assert_instr(zip2)
74329)]
74330#[cfg_attr(
74331    not(target_arch = "arm"),
74332    stable(feature = "neon_intrinsics", since = "1.59.0")
74333)]
74334#[cfg_attr(
74335    target_arch = "arm",
74336    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74337)]
74338pub fn vzipq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
74339    unsafe {
74340        let a0: uint32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
74341        let b0: uint32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
74342        transmute((a0, b0))
74343    }
74344}
74345#[doc = "Zip vectors"]
74346#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p8)"]
74347#[inline(always)]
74348#[target_feature(enable = "neon")]
74349#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74350#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74351#[cfg_attr(
74352    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74353    assert_instr(zip1)
74354)]
74355#[cfg_attr(
74356    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74357    assert_instr(zip2)
74358)]
74359#[cfg_attr(
74360    not(target_arch = "arm"),
74361    stable(feature = "neon_intrinsics", since = "1.59.0")
74362)]
74363#[cfg_attr(
74364    target_arch = "arm",
74365    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74366)]
74367pub fn vzipq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
74368    unsafe {
74369        let a0: poly8x16_t = simd_shuffle!(
74370            a,
74371            b,
74372            [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]
74373        );
74374        let b0: poly8x16_t = simd_shuffle!(
74375            a,
74376            b,
74377            [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]
74378        );
74379        transmute((a0, b0))
74380    }
74381}
74382#[doc = "Zip vectors"]
74383#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p16)"]
74384#[inline(always)]
74385#[target_feature(enable = "neon")]
74386#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74387#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
74388#[cfg_attr(
74389    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74390    assert_instr(zip1)
74391)]
74392#[cfg_attr(
74393    all(test, any(target_arch = "aarch64", target_arch = "arm64ec")),
74394    assert_instr(zip2)
74395)]
74396#[cfg_attr(
74397    not(target_arch = "arm"),
74398    stable(feature = "neon_intrinsics", since = "1.59.0")
74399)]
74400#[cfg_attr(
74401    target_arch = "arm",
74402    unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
74403)]
74404pub fn vzipq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
74405    unsafe {
74406        let a0: poly16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
74407        let b0: poly16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
74408        transmute((a0, b0))
74409    }
74410}