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/neon.spec` and run the following command to re-generate this file:
4//
5// ```
6// OUT_DIR=`pwd`/crates/core_arch cargo run -p stdarch-gen-arm -- crates/stdarch-gen-arm/neon.spec
7// ```
8use super::*;
9#[cfg(test)]
10use stdarch_test::assert_instr;
11
12/// Vector bitwise and
13///
14/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_s8)
15#[inline]
16#[target_feature(enable = "neon")]
17#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
19#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
20#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22pub unsafe fn vand_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
23    simd_and(a, b)
24}
25
26/// Vector bitwise and
27///
28/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_s8)
29#[inline]
30#[target_feature(enable = "neon")]
31#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
32#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
33#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
34#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
35#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
36pub unsafe fn vandq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
37    simd_and(a, b)
38}
39
40/// Vector bitwise and
41///
42/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_s16)
43#[inline]
44#[target_feature(enable = "neon")]
45#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
46#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
47#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
48#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
49#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
50pub unsafe fn vand_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
51    simd_and(a, b)
52}
53
54/// Vector bitwise and
55///
56/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_s16)
57#[inline]
58#[target_feature(enable = "neon")]
59#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
60#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
61#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
62#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
63#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
64pub unsafe fn vandq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
65    simd_and(a, b)
66}
67
68/// Vector bitwise and
69///
70/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_s32)
71#[inline]
72#[target_feature(enable = "neon")]
73#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
74#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
75#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
76#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
77#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
78pub unsafe fn vand_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
79    simd_and(a, b)
80}
81
82/// Vector bitwise and
83///
84/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_s32)
85#[inline]
86#[target_feature(enable = "neon")]
87#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
88#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
89#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
90#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
91#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
92pub unsafe fn vandq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
93    simd_and(a, b)
94}
95
96/// Vector bitwise and
97///
98/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_u8)
99#[inline]
100#[target_feature(enable = "neon")]
101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
103#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
104#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
105#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
106pub unsafe fn vand_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
107    simd_and(a, b)
108}
109
110/// Vector bitwise and
111///
112/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_u8)
113#[inline]
114#[target_feature(enable = "neon")]
115#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
116#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
117#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
118#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
119#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
120pub unsafe fn vandq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
121    simd_and(a, b)
122}
123
124/// Vector bitwise and
125///
126/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_u16)
127#[inline]
128#[target_feature(enable = "neon")]
129#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
130#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
131#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
132#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
133#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
134pub unsafe fn vand_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
135    simd_and(a, b)
136}
137
138/// Vector bitwise and
139///
140/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_u16)
141#[inline]
142#[target_feature(enable = "neon")]
143#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
144#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
145#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
146#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
147#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
148pub unsafe fn vandq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
149    simd_and(a, b)
150}
151
152/// Vector bitwise and
153///
154/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_u32)
155#[inline]
156#[target_feature(enable = "neon")]
157#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
158#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
159#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
160#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
161#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
162pub unsafe fn vand_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
163    simd_and(a, b)
164}
165
166/// Vector bitwise and
167///
168/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_u32)
169#[inline]
170#[target_feature(enable = "neon")]
171#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
172#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
173#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
174#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
175#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
176pub unsafe fn vandq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
177    simd_and(a, b)
178}
179
180/// Vector bitwise and
181///
182/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_s64)
183#[inline]
184#[target_feature(enable = "neon")]
185#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
186#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
187#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
188#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
189#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
190pub unsafe fn vand_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
191    simd_and(a, b)
192}
193
194/// Vector bitwise and
195///
196/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_s64)
197#[inline]
198#[target_feature(enable = "neon")]
199#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
200#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
201#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
202#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
203#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
204pub unsafe fn vandq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
205    simd_and(a, b)
206}
207
208/// Vector bitwise and
209///
210/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vand_u64)
211#[inline]
212#[target_feature(enable = "neon")]
213#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
214#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
215#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
216#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
217#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
218pub unsafe fn vand_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
219    simd_and(a, b)
220}
221
222/// Vector bitwise and
223///
224/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vandq_u64)
225#[inline]
226#[target_feature(enable = "neon")]
227#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
228#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vand))]
229#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(and))]
230#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
231#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
232pub unsafe fn vandq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
233    simd_and(a, b)
234}
235
236/// Vector bitwise or (immediate, inclusive)
237///
238/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s8)
239#[inline]
240#[target_feature(enable = "neon")]
241#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
242#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
243#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
244#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
245#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
246pub unsafe fn vorr_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
247    simd_or(a, b)
248}
249
250/// Vector bitwise or (immediate, inclusive)
251///
252/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s8)
253#[inline]
254#[target_feature(enable = "neon")]
255#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
256#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
257#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
258#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
259#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
260pub unsafe fn vorrq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
261    simd_or(a, b)
262}
263
264/// Vector bitwise or (immediate, inclusive)
265///
266/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s16)
267#[inline]
268#[target_feature(enable = "neon")]
269#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
270#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
271#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
272#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
273#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
274pub unsafe fn vorr_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
275    simd_or(a, b)
276}
277
278/// Vector bitwise or (immediate, inclusive)
279///
280/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s16)
281#[inline]
282#[target_feature(enable = "neon")]
283#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
284#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
285#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
286#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
287#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
288pub unsafe fn vorrq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
289    simd_or(a, b)
290}
291
292/// Vector bitwise or (immediate, inclusive)
293///
294/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s32)
295#[inline]
296#[target_feature(enable = "neon")]
297#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
298#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
299#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
300#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
301#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
302pub unsafe fn vorr_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
303    simd_or(a, b)
304}
305
306/// Vector bitwise or (immediate, inclusive)
307///
308/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s32)
309#[inline]
310#[target_feature(enable = "neon")]
311#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
312#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
313#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
314#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
315#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
316pub unsafe fn vorrq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
317    simd_or(a, b)
318}
319
320/// Vector bitwise or (immediate, inclusive)
321///
322/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u8)
323#[inline]
324#[target_feature(enable = "neon")]
325#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
326#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
327#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
328#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
329#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
330pub unsafe fn vorr_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
331    simd_or(a, b)
332}
333
334/// Vector bitwise or (immediate, inclusive)
335///
336/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u8)
337#[inline]
338#[target_feature(enable = "neon")]
339#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
340#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
341#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
342#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
343#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
344pub unsafe fn vorrq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
345    simd_or(a, b)
346}
347
348/// Vector bitwise or (immediate, inclusive)
349///
350/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u16)
351#[inline]
352#[target_feature(enable = "neon")]
353#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
354#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
355#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
356#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
357#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
358pub unsafe fn vorr_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
359    simd_or(a, b)
360}
361
362/// Vector bitwise or (immediate, inclusive)
363///
364/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u16)
365#[inline]
366#[target_feature(enable = "neon")]
367#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
368#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
369#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
370#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
371#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
372pub unsafe fn vorrq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
373    simd_or(a, b)
374}
375
376/// Vector bitwise or (immediate, inclusive)
377///
378/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u32)
379#[inline]
380#[target_feature(enable = "neon")]
381#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
382#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
383#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
384#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
385#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
386pub unsafe fn vorr_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
387    simd_or(a, b)
388}
389
390/// Vector bitwise or (immediate, inclusive)
391///
392/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u32)
393#[inline]
394#[target_feature(enable = "neon")]
395#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
396#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
397#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
398#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
399#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
400pub unsafe fn vorrq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
401    simd_or(a, b)
402}
403
404/// Vector bitwise or (immediate, inclusive)
405///
406/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_s64)
407#[inline]
408#[target_feature(enable = "neon")]
409#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
410#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
411#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
412#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
413#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
414pub unsafe fn vorr_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
415    simd_or(a, b)
416}
417
418/// Vector bitwise or (immediate, inclusive)
419///
420/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_s64)
421#[inline]
422#[target_feature(enable = "neon")]
423#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
424#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
425#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
426#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
427#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
428pub unsafe fn vorrq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
429    simd_or(a, b)
430}
431
432/// Vector bitwise or (immediate, inclusive)
433///
434/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorr_u64)
435#[inline]
436#[target_feature(enable = "neon")]
437#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
438#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
439#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
440#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
441#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
442pub unsafe fn vorr_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
443    simd_or(a, b)
444}
445
446/// Vector bitwise or (immediate, inclusive)
447///
448/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vorrq_u64)
449#[inline]
450#[target_feature(enable = "neon")]
451#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
452#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
453#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(orr))]
454#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
455#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
456pub unsafe fn vorrq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
457    simd_or(a, b)
458}
459
460/// Vector bitwise exclusive or (vector)
461///
462/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s8)
463#[inline]
464#[target_feature(enable = "neon")]
465#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
466#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
467#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
468#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
469#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
470pub unsafe fn veor_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
471    simd_xor(a, b)
472}
473
474/// Vector bitwise exclusive or (vector)
475///
476/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s8)
477#[inline]
478#[target_feature(enable = "neon")]
479#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
480#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
481#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
482#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
483#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
484pub unsafe fn veorq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
485    simd_xor(a, b)
486}
487
488/// Vector bitwise exclusive or (vector)
489///
490/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s16)
491#[inline]
492#[target_feature(enable = "neon")]
493#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
494#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
495#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
496#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
497#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
498pub unsafe fn veor_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
499    simd_xor(a, b)
500}
501
502/// Vector bitwise exclusive or (vector)
503///
504/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s16)
505#[inline]
506#[target_feature(enable = "neon")]
507#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
508#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
509#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
510#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
511#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
512pub unsafe fn veorq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
513    simd_xor(a, b)
514}
515
516/// Vector bitwise exclusive or (vector)
517///
518/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s32)
519#[inline]
520#[target_feature(enable = "neon")]
521#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
522#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
523#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
524#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
525#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
526pub unsafe fn veor_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
527    simd_xor(a, b)
528}
529
530/// Vector bitwise exclusive or (vector)
531///
532/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s32)
533#[inline]
534#[target_feature(enable = "neon")]
535#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
536#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
537#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
538#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
539#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
540pub unsafe fn veorq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
541    simd_xor(a, b)
542}
543
544/// Vector bitwise exclusive or (vector)
545///
546/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u8)
547#[inline]
548#[target_feature(enable = "neon")]
549#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
550#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
551#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
552#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
553#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
554pub unsafe fn veor_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
555    simd_xor(a, b)
556}
557
558/// Vector bitwise exclusive or (vector)
559///
560/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u8)
561#[inline]
562#[target_feature(enable = "neon")]
563#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
564#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
565#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
566#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
567#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
568pub unsafe fn veorq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
569    simd_xor(a, b)
570}
571
572/// Vector bitwise exclusive or (vector)
573///
574/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u16)
575#[inline]
576#[target_feature(enable = "neon")]
577#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
578#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
579#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
580#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
581#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
582pub unsafe fn veor_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
583    simd_xor(a, b)
584}
585
586/// Vector bitwise exclusive or (vector)
587///
588/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u16)
589#[inline]
590#[target_feature(enable = "neon")]
591#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
592#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
593#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
594#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
595#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
596pub unsafe fn veorq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
597    simd_xor(a, b)
598}
599
600/// Vector bitwise exclusive or (vector)
601///
602/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u32)
603#[inline]
604#[target_feature(enable = "neon")]
605#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
606#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
607#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
608#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
609#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
610pub unsafe fn veor_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
611    simd_xor(a, b)
612}
613
614/// Vector bitwise exclusive or (vector)
615///
616/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u32)
617#[inline]
618#[target_feature(enable = "neon")]
619#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
620#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
621#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
622#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
623#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
624pub unsafe fn veorq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
625    simd_xor(a, b)
626}
627
628/// Vector bitwise exclusive or (vector)
629///
630/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_s64)
631#[inline]
632#[target_feature(enable = "neon")]
633#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
634#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
635#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
636#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
637#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
638pub unsafe fn veor_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
639    simd_xor(a, b)
640}
641
642/// Vector bitwise exclusive or (vector)
643///
644/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_s64)
645#[inline]
646#[target_feature(enable = "neon")]
647#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
648#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
649#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
650#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
651#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
652pub unsafe fn veorq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
653    simd_xor(a, b)
654}
655
656/// Vector bitwise exclusive or (vector)
657///
658/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veor_u64)
659#[inline]
660#[target_feature(enable = "neon")]
661#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
662#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
663#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
664#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
665#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
666pub unsafe fn veor_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
667    simd_xor(a, b)
668}
669
670/// Vector bitwise exclusive or (vector)
671///
672/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/veorq_u64)
673#[inline]
674#[target_feature(enable = "neon")]
675#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
676#[cfg_attr(all(test, target_arch = "arm"), assert_instr(veor))]
677#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(eor))]
678#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
679#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
680pub unsafe fn veorq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
681    simd_xor(a, b)
682}
683
684/// Absolute difference between the arguments
685///
686/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_s8)
687#[inline]
688#[target_feature(enable = "neon")]
689#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
690#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s8"))]
691#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabd))]
692#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
693#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
694pub unsafe fn vabd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
695    #[allow(improper_ctypes)]
696    extern "unadjusted" {
697        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v8i8")]
698        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sabd.v8i8")]
699        fn vabd_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
700    }
701vabd_s8_(a, b)
702}
703
704/// Absolute difference between the arguments
705///
706/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_s8)
707#[inline]
708#[target_feature(enable = "neon")]
709#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
710#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s8"))]
711#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabd))]
712#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
713#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
714pub unsafe fn vabdq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
715    #[allow(improper_ctypes)]
716    extern "unadjusted" {
717        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v16i8")]
718        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sabd.v16i8")]
719        fn vabdq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
720    }
721vabdq_s8_(a, b)
722}
723
724/// Absolute difference between the arguments
725///
726/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_s16)
727#[inline]
728#[target_feature(enable = "neon")]
729#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
730#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s16"))]
731#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabd))]
732#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
733#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
734pub unsafe fn vabd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
735    #[allow(improper_ctypes)]
736    extern "unadjusted" {
737        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4i16")]
738        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sabd.v4i16")]
739        fn vabd_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
740    }
741vabd_s16_(a, b)
742}
743
744/// Absolute difference between the arguments
745///
746/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_s16)
747#[inline]
748#[target_feature(enable = "neon")]
749#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
750#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s16"))]
751#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabd))]
752#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
753#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
754pub unsafe fn vabdq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
755    #[allow(improper_ctypes)]
756    extern "unadjusted" {
757        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v8i16")]
758        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sabd.v8i16")]
759        fn vabdq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
760    }
761vabdq_s16_(a, b)
762}
763
764/// Absolute difference between the arguments
765///
766/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_s32)
767#[inline]
768#[target_feature(enable = "neon")]
769#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
770#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s32"))]
771#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabd))]
772#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
773#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
774pub unsafe fn vabd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
775    #[allow(improper_ctypes)]
776    extern "unadjusted" {
777        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v2i32")]
778        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sabd.v2i32")]
779        fn vabd_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
780    }
781vabd_s32_(a, b)
782}
783
784/// Absolute difference between the arguments
785///
786/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_s32)
787#[inline]
788#[target_feature(enable = "neon")]
789#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
790#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.s32"))]
791#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabd))]
792#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
793#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
794pub unsafe fn vabdq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
795    #[allow(improper_ctypes)]
796    extern "unadjusted" {
797        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4i32")]
798        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sabd.v4i32")]
799        fn vabdq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
800    }
801vabdq_s32_(a, b)
802}
803
804/// Absolute difference between the arguments
805///
806/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_u8)
807#[inline]
808#[target_feature(enable = "neon")]
809#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
810#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u8"))]
811#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabd))]
812#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
813#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
814pub unsafe fn vabd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
815    #[allow(improper_ctypes)]
816    extern "unadjusted" {
817        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v8i8")]
818        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uabd.v8i8")]
819        fn vabd_u8_(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
820    }
821vabd_u8_(a, b)
822}
823
824/// Absolute difference between the arguments
825///
826/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_u8)
827#[inline]
828#[target_feature(enable = "neon")]
829#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
830#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u8"))]
831#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabd))]
832#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
833#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
834pub unsafe fn vabdq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
835    #[allow(improper_ctypes)]
836    extern "unadjusted" {
837        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v16i8")]
838        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uabd.v16i8")]
839        fn vabdq_u8_(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
840    }
841vabdq_u8_(a, b)
842}
843
844/// Absolute difference between the arguments
845///
846/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_u16)
847#[inline]
848#[target_feature(enable = "neon")]
849#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
850#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u16"))]
851#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabd))]
852#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
853#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
854pub unsafe fn vabd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
855    #[allow(improper_ctypes)]
856    extern "unadjusted" {
857        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v4i16")]
858        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uabd.v4i16")]
859        fn vabd_u16_(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
860    }
861vabd_u16_(a, b)
862}
863
864/// Absolute difference between the arguments
865///
866/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_u16)
867#[inline]
868#[target_feature(enable = "neon")]
869#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
870#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u16"))]
871#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabd))]
872#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
873#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
874pub unsafe fn vabdq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
875    #[allow(improper_ctypes)]
876    extern "unadjusted" {
877        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v8i16")]
878        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uabd.v8i16")]
879        fn vabdq_u16_(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
880    }
881vabdq_u16_(a, b)
882}
883
884/// Absolute difference between the arguments
885///
886/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_u32)
887#[inline]
888#[target_feature(enable = "neon")]
889#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
890#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u32"))]
891#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabd))]
892#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
893#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
894pub unsafe fn vabd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
895    #[allow(improper_ctypes)]
896    extern "unadjusted" {
897        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v2i32")]
898        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uabd.v2i32")]
899        fn vabd_u32_(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
900    }
901vabd_u32_(a, b)
902}
903
904/// Absolute difference between the arguments
905///
906/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_u32)
907#[inline]
908#[target_feature(enable = "neon")]
909#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
910#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.u32"))]
911#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabd))]
912#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
913#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
914pub unsafe fn vabdq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
915    #[allow(improper_ctypes)]
916    extern "unadjusted" {
917        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabdu.v4i32")]
918        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uabd.v4i32")]
919        fn vabdq_u32_(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
920    }
921vabdq_u32_(a, b)
922}
923
924/// Absolute difference between the arguments of Floating
925///
926/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabd_f32)
927#[inline]
928#[target_feature(enable = "neon")]
929#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
930#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.f32"))]
931#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fabd))]
932#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
933#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
934pub unsafe fn vabd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
935    #[allow(improper_ctypes)]
936    extern "unadjusted" {
937        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v2f32")]
938        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fabd.v2f32")]
939        fn vabd_f32_(a: float32x2_t, b: float32x2_t) -> float32x2_t;
940    }
941vabd_f32_(a, b)
942}
943
944/// Absolute difference between the arguments of Floating
945///
946/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdq_f32)
947#[inline]
948#[target_feature(enable = "neon")]
949#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
950#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabd.f32"))]
951#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fabd))]
952#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
953#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
954pub unsafe fn vabdq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
955    #[allow(improper_ctypes)]
956    extern "unadjusted" {
957        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vabds.v4f32")]
958        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fabd.v4f32")]
959        fn vabdq_f32_(a: float32x4_t, b: float32x4_t) -> float32x4_t;
960    }
961vabdq_f32_(a, b)
962}
963
964/// Unsigned Absolute difference Long
965///
966/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_u8)
967#[inline]
968#[target_feature(enable = "neon")]
969#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
970#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.u8"))]
971#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabdl))]
972#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
973#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
974pub unsafe fn vabdl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
975    simd_cast(vabd_u8(a, b))
976}
977
978/// Unsigned Absolute difference Long
979///
980/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_u16)
981#[inline]
982#[target_feature(enable = "neon")]
983#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
984#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.u16"))]
985#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabdl))]
986#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
987#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
988pub unsafe fn vabdl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
989    simd_cast(vabd_u16(a, b))
990}
991
992/// Unsigned Absolute difference Long
993///
994/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_u32)
995#[inline]
996#[target_feature(enable = "neon")]
997#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
998#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.u32"))]
999#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabdl))]
1000#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1001#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1002pub unsafe fn vabdl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
1003    simd_cast(vabd_u32(a, b))
1004}
1005
1006/// Signed Absolute difference Long
1007///
1008/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_s8)
1009#[inline]
1010#[target_feature(enable = "neon")]
1011#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1012#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.s8"))]
1013#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabdl))]
1014#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1015#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1016pub unsafe fn vabdl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
1017    let c: uint8x8_t = simd_cast(vabd_s8(a, b));
1018    simd_cast(c)
1019}
1020
1021/// Signed Absolute difference Long
1022///
1023/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_s16)
1024#[inline]
1025#[target_feature(enable = "neon")]
1026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1027#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.s16"))]
1028#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabdl))]
1029#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1030#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1031pub unsafe fn vabdl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
1032    let c: uint16x4_t = simd_cast(vabd_s16(a, b));
1033    simd_cast(c)
1034}
1035
1036/// Signed Absolute difference Long
1037///
1038/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabdl_s32)
1039#[inline]
1040#[target_feature(enable = "neon")]
1041#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1042#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabdl.s32"))]
1043#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabdl))]
1044#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1045#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1046pub unsafe fn vabdl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
1047    let c: uint32x2_t = simd_cast(vabd_s32(a, b));
1048    simd_cast(c)
1049}
1050
1051/// Compare bitwise Equal (vector)
1052///
1053/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_u8)
1054#[inline]
1055#[target_feature(enable = "neon")]
1056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1057#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
1058#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1059#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1060#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1061pub unsafe fn vceq_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
1062    simd_eq(a, b)
1063}
1064
1065/// Compare bitwise Equal (vector)
1066///
1067/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_u8)
1068#[inline]
1069#[target_feature(enable = "neon")]
1070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1071#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
1072#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1073#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1074#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1075pub unsafe fn vceqq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
1076    simd_eq(a, b)
1077}
1078
1079/// Compare bitwise Equal (vector)
1080///
1081/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_u16)
1082#[inline]
1083#[target_feature(enable = "neon")]
1084#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1085#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
1086#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1087#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1088#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1089pub unsafe fn vceq_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
1090    simd_eq(a, b)
1091}
1092
1093/// Compare bitwise Equal (vector)
1094///
1095/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_u16)
1096#[inline]
1097#[target_feature(enable = "neon")]
1098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1099#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
1100#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1101#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1102#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1103pub unsafe fn vceqq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
1104    simd_eq(a, b)
1105}
1106
1107/// Compare bitwise Equal (vector)
1108///
1109/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_u32)
1110#[inline]
1111#[target_feature(enable = "neon")]
1112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1113#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
1114#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1115#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1116#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1117pub unsafe fn vceq_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
1118    simd_eq(a, b)
1119}
1120
1121/// Compare bitwise Equal (vector)
1122///
1123/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_u32)
1124#[inline]
1125#[target_feature(enable = "neon")]
1126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1127#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
1128#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1129#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1130#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1131pub unsafe fn vceqq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
1132    simd_eq(a, b)
1133}
1134
1135/// Compare bitwise Equal (vector)
1136///
1137/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_s8)
1138#[inline]
1139#[target_feature(enable = "neon")]
1140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1141#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
1142#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1143#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1144#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1145pub unsafe fn vceq_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
1146    simd_eq(a, b)
1147}
1148
1149/// Compare bitwise Equal (vector)
1150///
1151/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_s8)
1152#[inline]
1153#[target_feature(enable = "neon")]
1154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1155#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
1156#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1157#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1158#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1159pub unsafe fn vceqq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
1160    simd_eq(a, b)
1161}
1162
1163/// Compare bitwise Equal (vector)
1164///
1165/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_s16)
1166#[inline]
1167#[target_feature(enable = "neon")]
1168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1169#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
1170#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1171#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1172#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1173pub unsafe fn vceq_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
1174    simd_eq(a, b)
1175}
1176
1177/// Compare bitwise Equal (vector)
1178///
1179/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_s16)
1180#[inline]
1181#[target_feature(enable = "neon")]
1182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1183#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i16"))]
1184#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1185#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1186#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1187pub unsafe fn vceqq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
1188    simd_eq(a, b)
1189}
1190
1191/// Compare bitwise Equal (vector)
1192///
1193/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_s32)
1194#[inline]
1195#[target_feature(enable = "neon")]
1196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1197#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
1198#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1199#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1200#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1201pub unsafe fn vceq_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
1202    simd_eq(a, b)
1203}
1204
1205/// Compare bitwise Equal (vector)
1206///
1207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_s32)
1208#[inline]
1209#[target_feature(enable = "neon")]
1210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1211#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i32"))]
1212#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1213#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1214#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1215pub unsafe fn vceqq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
1216    simd_eq(a, b)
1217}
1218
1219/// Compare bitwise Equal (vector)
1220///
1221/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_p8)
1222#[inline]
1223#[target_feature(enable = "neon")]
1224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1225#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
1226#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1227#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1228#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1229pub unsafe fn vceq_p8(a: poly8x8_t, b: poly8x8_t) -> uint8x8_t {
1230    simd_eq(a, b)
1231}
1232
1233/// Compare bitwise Equal (vector)
1234///
1235/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_p8)
1236#[inline]
1237#[target_feature(enable = "neon")]
1238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1239#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.i8"))]
1240#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmeq))]
1241#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1242#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1243pub unsafe fn vceqq_p8(a: poly8x16_t, b: poly8x16_t) -> uint8x16_t {
1244    simd_eq(a, b)
1245}
1246
1247/// Floating-point compare equal
1248///
1249/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceq_f32)
1250#[inline]
1251#[target_feature(enable = "neon")]
1252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1253#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.f32"))]
1254#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmeq))]
1255#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1256#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1257pub unsafe fn vceq_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
1258    simd_eq(a, b)
1259}
1260
1261/// Floating-point compare equal
1262///
1263/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vceqq_f32)
1264#[inline]
1265#[target_feature(enable = "neon")]
1266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1267#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vceq.f32"))]
1268#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmeq))]
1269#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1270#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1271pub unsafe fn vceqq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
1272    simd_eq(a, b)
1273}
1274
1275/// Signed compare bitwise Test bits nonzero
1276///
1277/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s8)
1278#[inline]
1279#[target_feature(enable = "neon")]
1280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1281#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1282#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1283#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1284#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1285pub unsafe fn vtst_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
1286    let c: int8x8_t = simd_and(a, b);
1287    let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
1288    simd_ne(c, transmute(d))
1289}
1290
1291/// Signed compare bitwise Test bits nonzero
1292///
1293/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s8)
1294#[inline]
1295#[target_feature(enable = "neon")]
1296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1297#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1298#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1299#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1300#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1301pub unsafe fn vtstq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
1302    let c: int8x16_t = simd_and(a, b);
1303    let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1304    simd_ne(c, transmute(d))
1305}
1306
1307/// Signed compare bitwise Test bits nonzero
1308///
1309/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s16)
1310#[inline]
1311#[target_feature(enable = "neon")]
1312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1314#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1315#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1316#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1317pub unsafe fn vtst_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
1318    let c: int16x4_t = simd_and(a, b);
1319    let d: i16x4 = i16x4::new(0, 0, 0, 0);
1320    simd_ne(c, transmute(d))
1321}
1322
1323/// Signed compare bitwise Test bits nonzero
1324///
1325/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s16)
1326#[inline]
1327#[target_feature(enable = "neon")]
1328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1329#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1330#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1331#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1332#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1333pub unsafe fn vtstq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
1334    let c: int16x8_t = simd_and(a, b);
1335    let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
1336    simd_ne(c, transmute(d))
1337}
1338
1339/// Signed compare bitwise Test bits nonzero
1340///
1341/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_s32)
1342#[inline]
1343#[target_feature(enable = "neon")]
1344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1346#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1347#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1348#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1349pub unsafe fn vtst_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
1350    let c: int32x2_t = simd_and(a, b);
1351    let d: i32x2 = i32x2::new(0, 0);
1352    simd_ne(c, transmute(d))
1353}
1354
1355/// Signed compare bitwise Test bits nonzero
1356///
1357/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_s32)
1358#[inline]
1359#[target_feature(enable = "neon")]
1360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1362#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1363#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1364#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1365pub unsafe fn vtstq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
1366    let c: int32x4_t = simd_and(a, b);
1367    let d: i32x4 = i32x4::new(0, 0, 0, 0);
1368    simd_ne(c, transmute(d))
1369}
1370
1371/// Signed compare bitwise Test bits nonzero
1372///
1373/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p8)
1374#[inline]
1375#[target_feature(enable = "neon")]
1376#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1377#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1378#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1379#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1380#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1381pub unsafe fn vtst_p8(a: poly8x8_t, b: poly8x8_t) -> uint8x8_t {
1382    let c: poly8x8_t = simd_and(a, b);
1383    let d: i8x8 = i8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
1384    simd_ne(c, transmute(d))
1385}
1386
1387/// Signed compare bitwise Test bits nonzero
1388///
1389/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p8)
1390#[inline]
1391#[target_feature(enable = "neon")]
1392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1394#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1395#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1396#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1397pub unsafe fn vtstq_p8(a: poly8x16_t, b: poly8x16_t) -> uint8x16_t {
1398    let c: poly8x16_t = simd_and(a, b);
1399    let d: i8x16 = i8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1400    simd_ne(c, transmute(d))
1401}
1402
1403/// Signed compare bitwise Test bits nonzero
1404///
1405/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_p16)
1406#[inline]
1407#[target_feature(enable = "neon")]
1408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1410#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1411#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1412#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1413pub unsafe fn vtst_p16(a: poly16x4_t, b: poly16x4_t) -> uint16x4_t {
1414    let c: poly16x4_t = simd_and(a, b);
1415    let d: i16x4 = i16x4::new(0, 0, 0, 0);
1416    simd_ne(c, transmute(d))
1417}
1418
1419/// Signed compare bitwise Test bits nonzero
1420///
1421/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_p16)
1422#[inline]
1423#[target_feature(enable = "neon")]
1424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1425#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1426#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1427#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1428#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1429pub unsafe fn vtstq_p16(a: poly16x8_t, b: poly16x8_t) -> uint16x8_t {
1430    let c: poly16x8_t = simd_and(a, b);
1431    let d: i16x8 = i16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
1432    simd_ne(c, transmute(d))
1433}
1434
1435/// Unsigned compare bitwise Test bits nonzero
1436///
1437/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u8)
1438#[inline]
1439#[target_feature(enable = "neon")]
1440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1442#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1443#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1444#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1445pub unsafe fn vtst_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
1446    let c: uint8x8_t = simd_and(a, b);
1447    let d: u8x8 = u8x8::new(0, 0, 0, 0, 0, 0, 0, 0);
1448    simd_ne(c, transmute(d))
1449}
1450
1451/// Unsigned compare bitwise Test bits nonzero
1452///
1453/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u8)
1454#[inline]
1455#[target_feature(enable = "neon")]
1456#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1457#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1458#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1459#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1460#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1461pub unsafe fn vtstq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
1462    let c: uint8x16_t = simd_and(a, b);
1463    let d: u8x16 = u8x16::new(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
1464    simd_ne(c, transmute(d))
1465}
1466
1467/// Unsigned compare bitwise Test bits nonzero
1468///
1469/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u16)
1470#[inline]
1471#[target_feature(enable = "neon")]
1472#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1473#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1474#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1475#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1476#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1477pub unsafe fn vtst_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
1478    let c: uint16x4_t = simd_and(a, b);
1479    let d: u16x4 = u16x4::new(0, 0, 0, 0);
1480    simd_ne(c, transmute(d))
1481}
1482
1483/// Unsigned compare bitwise Test bits nonzero
1484///
1485/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u16)
1486#[inline]
1487#[target_feature(enable = "neon")]
1488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1489#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1490#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1491#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1492#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1493pub unsafe fn vtstq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
1494    let c: uint16x8_t = simd_and(a, b);
1495    let d: u16x8 = u16x8::new(0, 0, 0, 0, 0, 0, 0, 0);
1496    simd_ne(c, transmute(d))
1497}
1498
1499/// Unsigned compare bitwise Test bits nonzero
1500///
1501/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtst_u32)
1502#[inline]
1503#[target_feature(enable = "neon")]
1504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1506#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1507#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1508#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1509pub unsafe fn vtst_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
1510    let c: uint32x2_t = simd_and(a, b);
1511    let d: u32x2 = u32x2::new(0, 0);
1512    simd_ne(c, transmute(d))
1513}
1514
1515/// Unsigned compare bitwise Test bits nonzero
1516///
1517/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtstq_u32)
1518#[inline]
1519#[target_feature(enable = "neon")]
1520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtst))]
1522#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmtst))]
1523#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1524#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1525pub unsafe fn vtstq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
1526    let c: uint32x4_t = simd_and(a, b);
1527    let d: u32x4 = u32x4::new(0, 0, 0, 0);
1528    simd_ne(c, transmute(d))
1529}
1530
1531/// Floating-point absolute value
1532///
1533/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabs_f32)
1534#[inline]
1535#[target_feature(enable = "neon")]
1536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1537#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1538#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fabs))]
1539#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1540#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1541pub unsafe fn vabs_f32(a: float32x2_t) -> float32x2_t {
1542    simd_fabs(a)
1543}
1544
1545/// Floating-point absolute value
1546///
1547/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabsq_f32)
1548#[inline]
1549#[target_feature(enable = "neon")]
1550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1551#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vabs))]
1552#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fabs))]
1553#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1554#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1555pub unsafe fn vabsq_f32(a: float32x4_t) -> float32x4_t {
1556    simd_fabs(a)
1557}
1558
1559/// Compare signed greater than
1560///
1561/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_s8)
1562#[inline]
1563#[target_feature(enable = "neon")]
1564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1565#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
1566#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1567#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1568#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1569pub unsafe fn vcgt_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
1570    simd_gt(a, b)
1571}
1572
1573/// Compare signed greater than
1574///
1575/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_s8)
1576#[inline]
1577#[target_feature(enable = "neon")]
1578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1579#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
1580#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1581#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1582#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1583pub unsafe fn vcgtq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
1584    simd_gt(a, b)
1585}
1586
1587/// Compare signed greater than
1588///
1589/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_s16)
1590#[inline]
1591#[target_feature(enable = "neon")]
1592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1593#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
1594#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1595#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1596#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1597pub unsafe fn vcgt_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
1598    simd_gt(a, b)
1599}
1600
1601/// Compare signed greater than
1602///
1603/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_s16)
1604#[inline]
1605#[target_feature(enable = "neon")]
1606#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1607#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
1608#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1609#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1610#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1611pub unsafe fn vcgtq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
1612    simd_gt(a, b)
1613}
1614
1615/// Compare signed greater than
1616///
1617/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_s32)
1618#[inline]
1619#[target_feature(enable = "neon")]
1620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1621#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
1622#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1623#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1624#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1625pub unsafe fn vcgt_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
1626    simd_gt(a, b)
1627}
1628
1629/// Compare signed greater than
1630///
1631/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_s32)
1632#[inline]
1633#[target_feature(enable = "neon")]
1634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1635#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
1636#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1637#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1638#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1639pub unsafe fn vcgtq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
1640    simd_gt(a, b)
1641}
1642
1643/// Compare unsigned greater than
1644///
1645/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_u8)
1646#[inline]
1647#[target_feature(enable = "neon")]
1648#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1649#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
1650#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1651#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1652#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1653pub unsafe fn vcgt_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
1654    simd_gt(a, b)
1655}
1656
1657/// Compare unsigned greater than
1658///
1659/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_u8)
1660#[inline]
1661#[target_feature(enable = "neon")]
1662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1663#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
1664#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1665#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1666#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1667pub unsafe fn vcgtq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
1668    simd_gt(a, b)
1669}
1670
1671/// Compare unsigned greater than
1672///
1673/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_u16)
1674#[inline]
1675#[target_feature(enable = "neon")]
1676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1677#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
1678#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1679#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1680#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1681pub unsafe fn vcgt_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
1682    simd_gt(a, b)
1683}
1684
1685/// Compare unsigned greater than
1686///
1687/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_u16)
1688#[inline]
1689#[target_feature(enable = "neon")]
1690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1691#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
1692#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1693#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1694#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1695pub unsafe fn vcgtq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
1696    simd_gt(a, b)
1697}
1698
1699/// Compare unsigned greater than
1700///
1701/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_u32)
1702#[inline]
1703#[target_feature(enable = "neon")]
1704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1705#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
1706#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1707#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1708#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1709pub unsafe fn vcgt_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
1710    simd_gt(a, b)
1711}
1712
1713/// Compare unsigned greater than
1714///
1715/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_u32)
1716#[inline]
1717#[target_feature(enable = "neon")]
1718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1719#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
1720#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1721#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1722#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1723pub unsafe fn vcgtq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
1724    simd_gt(a, b)
1725}
1726
1727/// Floating-point compare greater than
1728///
1729/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgt_f32)
1730#[inline]
1731#[target_feature(enable = "neon")]
1732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1733#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
1734#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmgt))]
1735#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1736#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1737pub unsafe fn vcgt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
1738    simd_gt(a, b)
1739}
1740
1741/// Floating-point compare greater than
1742///
1743/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgtq_f32)
1744#[inline]
1745#[target_feature(enable = "neon")]
1746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1747#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
1748#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmgt))]
1749#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1750#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1751pub unsafe fn vcgtq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
1752    simd_gt(a, b)
1753}
1754
1755/// Compare signed less than
1756///
1757/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_s8)
1758#[inline]
1759#[target_feature(enable = "neon")]
1760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1761#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
1762#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1763#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1764#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1765pub unsafe fn vclt_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
1766    simd_lt(a, b)
1767}
1768
1769/// Compare signed less than
1770///
1771/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_s8)
1772#[inline]
1773#[target_feature(enable = "neon")]
1774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1775#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s8"))]
1776#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1777#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1778#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1779pub unsafe fn vcltq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
1780    simd_lt(a, b)
1781}
1782
1783/// Compare signed less than
1784///
1785/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_s16)
1786#[inline]
1787#[target_feature(enable = "neon")]
1788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1789#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
1790#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1791#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1792#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1793pub unsafe fn vclt_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
1794    simd_lt(a, b)
1795}
1796
1797/// Compare signed less than
1798///
1799/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_s16)
1800#[inline]
1801#[target_feature(enable = "neon")]
1802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1803#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s16"))]
1804#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1805#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1806#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1807pub unsafe fn vcltq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
1808    simd_lt(a, b)
1809}
1810
1811/// Compare signed less than
1812///
1813/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_s32)
1814#[inline]
1815#[target_feature(enable = "neon")]
1816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1817#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
1818#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1819#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1820#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1821pub unsafe fn vclt_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
1822    simd_lt(a, b)
1823}
1824
1825/// Compare signed less than
1826///
1827/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_s32)
1828#[inline]
1829#[target_feature(enable = "neon")]
1830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1831#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.s32"))]
1832#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmgt))]
1833#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1834#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1835pub unsafe fn vcltq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
1836    simd_lt(a, b)
1837}
1838
1839/// Compare unsigned less than
1840///
1841/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_u8)
1842#[inline]
1843#[target_feature(enable = "neon")]
1844#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1845#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
1846#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1847#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1848#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1849pub unsafe fn vclt_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
1850    simd_lt(a, b)
1851}
1852
1853/// Compare unsigned less than
1854///
1855/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_u8)
1856#[inline]
1857#[target_feature(enable = "neon")]
1858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1859#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u8"))]
1860#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1861#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1862#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1863pub unsafe fn vcltq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
1864    simd_lt(a, b)
1865}
1866
1867/// Compare unsigned less than
1868///
1869/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_u16)
1870#[inline]
1871#[target_feature(enable = "neon")]
1872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1873#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
1874#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1875#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1876#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1877pub unsafe fn vclt_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
1878    simd_lt(a, b)
1879}
1880
1881/// Compare unsigned less than
1882///
1883/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_u16)
1884#[inline]
1885#[target_feature(enable = "neon")]
1886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1887#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u16"))]
1888#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1889#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1890#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1891pub unsafe fn vcltq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
1892    simd_lt(a, b)
1893}
1894
1895/// Compare unsigned less than
1896///
1897/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_u32)
1898#[inline]
1899#[target_feature(enable = "neon")]
1900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1901#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
1902#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1903#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1904#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1905pub unsafe fn vclt_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
1906    simd_lt(a, b)
1907}
1908
1909/// Compare unsigned less than
1910///
1911/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_u32)
1912#[inline]
1913#[target_feature(enable = "neon")]
1914#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1915#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.u32"))]
1916#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhi))]
1917#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1918#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1919pub unsafe fn vcltq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
1920    simd_lt(a, b)
1921}
1922
1923/// Floating-point compare less than
1924///
1925/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclt_f32)
1926#[inline]
1927#[target_feature(enable = "neon")]
1928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1929#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
1930#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmgt))]
1931#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1932#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1933pub unsafe fn vclt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
1934    simd_lt(a, b)
1935}
1936
1937/// Floating-point compare less than
1938///
1939/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcltq_f32)
1940#[inline]
1941#[target_feature(enable = "neon")]
1942#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1943#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcgt.f32"))]
1944#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmgt))]
1945#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1946#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1947pub unsafe fn vcltq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
1948    simd_lt(a, b)
1949}
1950
1951/// Compare signed less than or equal
1952///
1953/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_s8)
1954#[inline]
1955#[target_feature(enable = "neon")]
1956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1957#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
1958#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
1959#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1960#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1961pub unsafe fn vcle_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
1962    simd_le(a, b)
1963}
1964
1965/// Compare signed less than or equal
1966///
1967/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_s8)
1968#[inline]
1969#[target_feature(enable = "neon")]
1970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1971#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
1972#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
1973#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1974#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1975pub unsafe fn vcleq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
1976    simd_le(a, b)
1977}
1978
1979/// Compare signed less than or equal
1980///
1981/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_s16)
1982#[inline]
1983#[target_feature(enable = "neon")]
1984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1985#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
1986#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
1987#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
1988#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
1989pub unsafe fn vcle_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
1990    simd_le(a, b)
1991}
1992
1993/// Compare signed less than or equal
1994///
1995/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_s16)
1996#[inline]
1997#[target_feature(enable = "neon")]
1998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
1999#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
2000#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
2001#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2002#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2003pub unsafe fn vcleq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
2004    simd_le(a, b)
2005}
2006
2007/// Compare signed less than or equal
2008///
2009/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_s32)
2010#[inline]
2011#[target_feature(enable = "neon")]
2012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2013#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
2014#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
2015#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2016#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2017pub unsafe fn vcle_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
2018    simd_le(a, b)
2019}
2020
2021/// Compare signed less than or equal
2022///
2023/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_s32)
2024#[inline]
2025#[target_feature(enable = "neon")]
2026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2027#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
2028#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
2029#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2030#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2031pub unsafe fn vcleq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
2032    simd_le(a, b)
2033}
2034
2035/// Compare unsigned less than or equal
2036///
2037/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_u8)
2038#[inline]
2039#[target_feature(enable = "neon")]
2040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2041#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
2042#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2043#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2044#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2045pub unsafe fn vcle_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
2046    simd_le(a, b)
2047}
2048
2049/// Compare unsigned less than or equal
2050///
2051/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_u8)
2052#[inline]
2053#[target_feature(enable = "neon")]
2054#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2055#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
2056#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2057#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2058#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2059pub unsafe fn vcleq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
2060    simd_le(a, b)
2061}
2062
2063/// Compare unsigned less than or equal
2064///
2065/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_u16)
2066#[inline]
2067#[target_feature(enable = "neon")]
2068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2069#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
2070#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2071#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2072#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2073pub unsafe fn vcle_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
2074    simd_le(a, b)
2075}
2076
2077/// Compare unsigned less than or equal
2078///
2079/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_u16)
2080#[inline]
2081#[target_feature(enable = "neon")]
2082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2083#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
2084#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2085#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2086#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2087pub unsafe fn vcleq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
2088    simd_le(a, b)
2089}
2090
2091/// Compare unsigned less than or equal
2092///
2093/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_u32)
2094#[inline]
2095#[target_feature(enable = "neon")]
2096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2097#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
2098#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2099#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2100#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2101pub unsafe fn vcle_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
2102    simd_le(a, b)
2103}
2104
2105/// Compare unsigned less than or equal
2106///
2107/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_u32)
2108#[inline]
2109#[target_feature(enable = "neon")]
2110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2111#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
2112#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2113#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2114#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2115pub unsafe fn vcleq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
2116    simd_le(a, b)
2117}
2118
2119/// Floating-point compare less than or equal
2120///
2121/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcle_f32)
2122#[inline]
2123#[target_feature(enable = "neon")]
2124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2125#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
2126#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmge))]
2127#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2128#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2129pub unsafe fn vcle_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
2130    simd_le(a, b)
2131}
2132
2133/// Floating-point compare less than or equal
2134///
2135/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcleq_f32)
2136#[inline]
2137#[target_feature(enable = "neon")]
2138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2139#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
2140#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmge))]
2141#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2142#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2143pub unsafe fn vcleq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
2144    simd_le(a, b)
2145}
2146
2147/// Compare signed greater than or equal
2148///
2149/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_s8)
2150#[inline]
2151#[target_feature(enable = "neon")]
2152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2153#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
2154#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
2155#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2156#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2157pub unsafe fn vcge_s8(a: int8x8_t, b: int8x8_t) -> uint8x8_t {
2158    simd_ge(a, b)
2159}
2160
2161/// Compare signed greater than or equal
2162///
2163/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_s8)
2164#[inline]
2165#[target_feature(enable = "neon")]
2166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2167#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s8"))]
2168#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
2169#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2170#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2171pub unsafe fn vcgeq_s8(a: int8x16_t, b: int8x16_t) -> uint8x16_t {
2172    simd_ge(a, b)
2173}
2174
2175/// Compare signed greater than or equal
2176///
2177/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_s16)
2178#[inline]
2179#[target_feature(enable = "neon")]
2180#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2181#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
2182#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
2183#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2184#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2185pub unsafe fn vcge_s16(a: int16x4_t, b: int16x4_t) -> uint16x4_t {
2186    simd_ge(a, b)
2187}
2188
2189/// Compare signed greater than or equal
2190///
2191/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_s16)
2192#[inline]
2193#[target_feature(enable = "neon")]
2194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2195#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s16"))]
2196#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
2197#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2198#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2199pub unsafe fn vcgeq_s16(a: int16x8_t, b: int16x8_t) -> uint16x8_t {
2200    simd_ge(a, b)
2201}
2202
2203/// Compare signed greater than or equal
2204///
2205/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_s32)
2206#[inline]
2207#[target_feature(enable = "neon")]
2208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2209#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
2210#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
2211#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2212#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2213pub unsafe fn vcge_s32(a: int32x2_t, b: int32x2_t) -> uint32x2_t {
2214    simd_ge(a, b)
2215}
2216
2217/// Compare signed greater than or equal
2218///
2219/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_s32)
2220#[inline]
2221#[target_feature(enable = "neon")]
2222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2223#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.s32"))]
2224#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmge))]
2225#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2226#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2227pub unsafe fn vcgeq_s32(a: int32x4_t, b: int32x4_t) -> uint32x4_t {
2228    simd_ge(a, b)
2229}
2230
2231/// Compare unsigned greater than or equal
2232///
2233/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_u8)
2234#[inline]
2235#[target_feature(enable = "neon")]
2236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2237#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
2238#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2239#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2240#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2241pub unsafe fn vcge_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
2242    simd_ge(a, b)
2243}
2244
2245/// Compare unsigned greater than or equal
2246///
2247/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_u8)
2248#[inline]
2249#[target_feature(enable = "neon")]
2250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2251#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u8"))]
2252#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2253#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2254#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2255pub unsafe fn vcgeq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
2256    simd_ge(a, b)
2257}
2258
2259/// Compare unsigned greater than or equal
2260///
2261/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_u16)
2262#[inline]
2263#[target_feature(enable = "neon")]
2264#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2265#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
2266#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2267#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2268#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2269pub unsafe fn vcge_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
2270    simd_ge(a, b)
2271}
2272
2273/// Compare unsigned greater than or equal
2274///
2275/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_u16)
2276#[inline]
2277#[target_feature(enable = "neon")]
2278#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2279#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u16"))]
2280#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2281#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2282#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2283pub unsafe fn vcgeq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
2284    simd_ge(a, b)
2285}
2286
2287/// Compare unsigned greater than or equal
2288///
2289/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_u32)
2290#[inline]
2291#[target_feature(enable = "neon")]
2292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2293#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
2294#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2295#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2296#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2297pub unsafe fn vcge_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
2298    simd_ge(a, b)
2299}
2300
2301/// Compare unsigned greater than or equal
2302///
2303/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_u32)
2304#[inline]
2305#[target_feature(enable = "neon")]
2306#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2307#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.u32"))]
2308#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cmhs))]
2309#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2310#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2311pub unsafe fn vcgeq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
2312    simd_ge(a, b)
2313}
2314
2315/// Floating-point compare greater than or equal
2316///
2317/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcge_f32)
2318#[inline]
2319#[target_feature(enable = "neon")]
2320#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2321#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
2322#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmge))]
2323#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2324#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2325pub unsafe fn vcge_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
2326    simd_ge(a, b)
2327}
2328
2329/// Floating-point compare greater than or equal
2330///
2331/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcgeq_f32)
2332#[inline]
2333#[target_feature(enable = "neon")]
2334#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2335#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcge.f32"))]
2336#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcmge))]
2337#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2338#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2339pub unsafe fn vcgeq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
2340    simd_ge(a, b)
2341}
2342
2343/// Count leading sign bits
2344///
2345/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_s8)
2346#[inline]
2347#[target_feature(enable = "neon")]
2348#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2349#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s8"))]
2350#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2351#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2352#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2353pub unsafe fn vcls_s8(a: int8x8_t) -> int8x8_t {
2354    #[allow(improper_ctypes)]
2355    extern "unadjusted" {
2356        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v8i8")]
2357        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.cls.v8i8")]
2358        fn vcls_s8_(a: int8x8_t) -> int8x8_t;
2359    }
2360vcls_s8_(a)
2361}
2362
2363/// Count leading sign bits
2364///
2365/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_s8)
2366#[inline]
2367#[target_feature(enable = "neon")]
2368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2369#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s8"))]
2370#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2371#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2372#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2373pub unsafe fn vclsq_s8(a: int8x16_t) -> int8x16_t {
2374    #[allow(improper_ctypes)]
2375    extern "unadjusted" {
2376        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v16i8")]
2377        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.cls.v16i8")]
2378        fn vclsq_s8_(a: int8x16_t) -> int8x16_t;
2379    }
2380vclsq_s8_(a)
2381}
2382
2383/// Count leading sign bits
2384///
2385/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_s16)
2386#[inline]
2387#[target_feature(enable = "neon")]
2388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2389#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s16"))]
2390#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2391#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2392#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2393pub unsafe fn vcls_s16(a: int16x4_t) -> int16x4_t {
2394    #[allow(improper_ctypes)]
2395    extern "unadjusted" {
2396        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v4i16")]
2397        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.cls.v4i16")]
2398        fn vcls_s16_(a: int16x4_t) -> int16x4_t;
2399    }
2400vcls_s16_(a)
2401}
2402
2403/// Count leading sign bits
2404///
2405/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_s16)
2406#[inline]
2407#[target_feature(enable = "neon")]
2408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2409#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s16"))]
2410#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2411#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2412#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2413pub unsafe fn vclsq_s16(a: int16x8_t) -> int16x8_t {
2414    #[allow(improper_ctypes)]
2415    extern "unadjusted" {
2416        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v8i16")]
2417        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.cls.v8i16")]
2418        fn vclsq_s16_(a: int16x8_t) -> int16x8_t;
2419    }
2420vclsq_s16_(a)
2421}
2422
2423/// Count leading sign bits
2424///
2425/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_s32)
2426#[inline]
2427#[target_feature(enable = "neon")]
2428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2429#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s32"))]
2430#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2431#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2432#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2433pub unsafe fn vcls_s32(a: int32x2_t) -> int32x2_t {
2434    #[allow(improper_ctypes)]
2435    extern "unadjusted" {
2436        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v2i32")]
2437        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.cls.v2i32")]
2438        fn vcls_s32_(a: int32x2_t) -> int32x2_t;
2439    }
2440vcls_s32_(a)
2441}
2442
2443/// Count leading sign bits
2444///
2445/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_s32)
2446#[inline]
2447#[target_feature(enable = "neon")]
2448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2449#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vcls.s32"))]
2450#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2451#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2452#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2453pub unsafe fn vclsq_s32(a: int32x4_t) -> int32x4_t {
2454    #[allow(improper_ctypes)]
2455    extern "unadjusted" {
2456        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcls.v4i32")]
2457        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.cls.v4i32")]
2458        fn vclsq_s32_(a: int32x4_t) -> int32x4_t;
2459    }
2460vclsq_s32_(a)
2461}
2462
2463/// Count leading sign bits
2464///
2465/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_u8)
2466#[inline]
2467#[target_feature(enable = "neon")]
2468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
2470#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2471#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2472#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2473pub unsafe fn vcls_u8(a: uint8x8_t) -> int8x8_t {
2474    vcls_s8(transmute(a))
2475}
2476
2477/// Count leading sign bits
2478///
2479/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_u8)
2480#[inline]
2481#[target_feature(enable = "neon")]
2482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
2484#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2485#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2486#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2487pub unsafe fn vclsq_u8(a: uint8x16_t) -> int8x16_t {
2488    vclsq_s8(transmute(a))
2489}
2490
2491/// Count leading sign bits
2492///
2493/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_u16)
2494#[inline]
2495#[target_feature(enable = "neon")]
2496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
2498#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2499#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2500#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2501pub unsafe fn vcls_u16(a: uint16x4_t) -> int16x4_t {
2502    vcls_s16(transmute(a))
2503}
2504
2505/// Count leading sign bits
2506///
2507/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_u16)
2508#[inline]
2509#[target_feature(enable = "neon")]
2510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2511#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
2512#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2513#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2514#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2515pub unsafe fn vclsq_u16(a: uint16x8_t) -> int16x8_t {
2516    vclsq_s16(transmute(a))
2517}
2518
2519/// Count leading sign bits
2520///
2521/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcls_u32)
2522#[inline]
2523#[target_feature(enable = "neon")]
2524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2525#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
2526#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2527#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2528#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2529pub unsafe fn vcls_u32(a: uint32x2_t) -> int32x2_t {
2530    vcls_s32(transmute(a))
2531}
2532
2533/// Count leading sign bits
2534///
2535/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclsq_u32)
2536#[inline]
2537#[target_feature(enable = "neon")]
2538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcls))]
2540#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(cls))]
2541#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2542#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2543pub unsafe fn vclsq_u32(a: uint32x4_t) -> int32x4_t {
2544    vclsq_s32(transmute(a))
2545}
2546
2547/// Count leading zero bits
2548///
2549/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_s8)
2550#[inline]
2551#[target_feature(enable = "neon")]
2552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2553#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
2554#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2555#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2556#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2557pub unsafe fn vclz_s8(a: int8x8_t) -> int8x8_t {
2558    vclz_s8_(a)
2559}
2560
2561/// Count leading zero bits
2562///
2563/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_s8)
2564#[inline]
2565#[target_feature(enable = "neon")]
2566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
2568#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2569#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2570#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2571pub unsafe fn vclzq_s8(a: int8x16_t) -> int8x16_t {
2572    vclzq_s8_(a)
2573}
2574
2575/// Count leading zero bits
2576///
2577/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_s16)
2578#[inline]
2579#[target_feature(enable = "neon")]
2580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2581#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
2582#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2583#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2584#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2585pub unsafe fn vclz_s16(a: int16x4_t) -> int16x4_t {
2586    vclz_s16_(a)
2587}
2588
2589/// Count leading zero bits
2590///
2591/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_s16)
2592#[inline]
2593#[target_feature(enable = "neon")]
2594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2595#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
2596#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2597#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2598#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2599pub unsafe fn vclzq_s16(a: int16x8_t) -> int16x8_t {
2600    vclzq_s16_(a)
2601}
2602
2603/// Count leading zero bits
2604///
2605/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_s32)
2606#[inline]
2607#[target_feature(enable = "neon")]
2608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2609#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
2610#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2611#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2612#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2613pub unsafe fn vclz_s32(a: int32x2_t) -> int32x2_t {
2614    vclz_s32_(a)
2615}
2616
2617/// Count leading zero bits
2618///
2619/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_s32)
2620#[inline]
2621#[target_feature(enable = "neon")]
2622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2623#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
2624#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2625#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2626#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2627pub unsafe fn vclzq_s32(a: int32x4_t) -> int32x4_t {
2628    vclzq_s32_(a)
2629}
2630
2631/// Count leading zero bits
2632///
2633/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u8)
2634#[inline]
2635#[target_feature(enable = "neon")]
2636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2637#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
2638#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2639#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2640#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2641pub unsafe fn vclz_u8(a: uint8x8_t) -> uint8x8_t {
2642    transmute(vclz_s8_(transmute(a)))
2643}
2644
2645/// Count leading zero bits
2646///
2647/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u8)
2648#[inline]
2649#[target_feature(enable = "neon")]
2650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2651#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i8"))]
2652#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2653#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2654#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2655pub unsafe fn vclzq_u8(a: uint8x16_t) -> uint8x16_t {
2656    transmute(vclzq_s8_(transmute(a)))
2657}
2658
2659/// Count leading zero bits
2660///
2661/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u16)
2662#[inline]
2663#[target_feature(enable = "neon")]
2664#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2665#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
2666#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2667#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2668#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2669pub unsafe fn vclz_u16(a: uint16x4_t) -> uint16x4_t {
2670    transmute(vclz_s16_(transmute(a)))
2671}
2672
2673/// Count leading zero bits
2674///
2675/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u16)
2676#[inline]
2677#[target_feature(enable = "neon")]
2678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2679#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i16"))]
2680#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2681#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2682#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2683pub unsafe fn vclzq_u16(a: uint16x8_t) -> uint16x8_t {
2684    transmute(vclzq_s16_(transmute(a)))
2685}
2686
2687/// Count leading zero bits
2688///
2689/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclz_u32)
2690#[inline]
2691#[target_feature(enable = "neon")]
2692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2693#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
2694#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2695#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2696#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2697pub unsafe fn vclz_u32(a: uint32x2_t) -> uint32x2_t {
2698    transmute(vclz_s32_(transmute(a)))
2699}
2700
2701/// Count leading zero bits
2702///
2703/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vclzq_u32)
2704#[inline]
2705#[target_feature(enable = "neon")]
2706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2707#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vclz.i32"))]
2708#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(clz))]
2709#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2710#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2711pub unsafe fn vclzq_u32(a: uint32x4_t) -> uint32x4_t {
2712    transmute(vclzq_s32_(transmute(a)))
2713}
2714
2715/// Floating-point absolute compare greater than
2716///
2717/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagt_f32)
2718#[inline]
2719#[target_feature(enable = "neon")]
2720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2721#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
2722#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(facgt))]
2723#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2724#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2725pub unsafe fn vcagt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
2726    #[allow(improper_ctypes)]
2727    extern "unadjusted" {
2728        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v2i32.v2f32")]
2729        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.facgt.v2i32.v2f32")]
2730        fn vcagt_f32_(a: float32x2_t, b: float32x2_t) -> uint32x2_t;
2731    }
2732vcagt_f32_(a, b)
2733}
2734
2735/// Floating-point absolute compare greater than
2736///
2737/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcagtq_f32)
2738#[inline]
2739#[target_feature(enable = "neon")]
2740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2741#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
2742#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(facgt))]
2743#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2744#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2745pub unsafe fn vcagtq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
2746    #[allow(improper_ctypes)]
2747    extern "unadjusted" {
2748        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacgt.v4i32.v4f32")]
2749        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.facgt.v4i32.v4f32")]
2750        fn vcagtq_f32_(a: float32x4_t, b: float32x4_t) -> uint32x4_t;
2751    }
2752vcagtq_f32_(a, b)
2753}
2754
2755/// Floating-point absolute compare greater than or equal
2756///
2757/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcage_f32)
2758#[inline]
2759#[target_feature(enable = "neon")]
2760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2761#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
2762#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(facge))]
2763#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2764#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2765pub unsafe fn vcage_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
2766    #[allow(improper_ctypes)]
2767    extern "unadjusted" {
2768        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v2i32.v2f32")]
2769        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.facge.v2i32.v2f32")]
2770        fn vcage_f32_(a: float32x2_t, b: float32x2_t) -> uint32x2_t;
2771    }
2772vcage_f32_(a, b)
2773}
2774
2775/// Floating-point absolute compare greater than or equal
2776///
2777/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcageq_f32)
2778#[inline]
2779#[target_feature(enable = "neon")]
2780#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2781#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
2782#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(facge))]
2783#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2784#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2785pub unsafe fn vcageq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
2786    #[allow(improper_ctypes)]
2787    extern "unadjusted" {
2788        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vacge.v4i32.v4f32")]
2789        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.facge.v4i32.v4f32")]
2790        fn vcageq_f32_(a: float32x4_t, b: float32x4_t) -> uint32x4_t;
2791    }
2792vcageq_f32_(a, b)
2793}
2794
2795/// Floating-point absolute compare less than
2796///
2797/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcalt_f32)
2798#[inline]
2799#[target_feature(enable = "neon")]
2800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2801#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
2802#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(facgt))]
2803#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2804#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2805pub unsafe fn vcalt_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
2806    vcagt_f32(b, a)
2807}
2808
2809/// Floating-point absolute compare less than
2810///
2811/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaltq_f32)
2812#[inline]
2813#[target_feature(enable = "neon")]
2814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2815#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacgt.f32"))]
2816#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(facgt))]
2817#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2818#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2819pub unsafe fn vcaltq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
2820    vcagtq_f32(b, a)
2821}
2822
2823/// Floating-point absolute compare less than or equal
2824///
2825/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcale_f32)
2826#[inline]
2827#[target_feature(enable = "neon")]
2828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2829#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
2830#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(facge))]
2831#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2832#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2833pub unsafe fn vcale_f32(a: float32x2_t, b: float32x2_t) -> uint32x2_t {
2834    vcage_f32(b, a)
2835}
2836
2837/// Floating-point absolute compare less than or equal
2838///
2839/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcaleq_f32)
2840#[inline]
2841#[target_feature(enable = "neon")]
2842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2843#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vacge.f32"))]
2844#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(facge))]
2845#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2846#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2847pub unsafe fn vcaleq_f32(a: float32x4_t, b: float32x4_t) -> uint32x4_t {
2848    vcageq_f32(b, a)
2849}
2850
2851/// Insert vector element from another vector element
2852///
2853/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s8)
2854#[inline]
2855#[target_feature(enable = "neon")]
2856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2858#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2859#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2860#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2861pub unsafe fn vcreate_s8(a: u64) -> int8x8_t {
2862    transmute(a)
2863}
2864
2865/// Insert vector element from another vector element
2866///
2867/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s16)
2868#[inline]
2869#[target_feature(enable = "neon")]
2870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2872#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2873#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2874#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2875pub unsafe fn vcreate_s16(a: u64) -> int16x4_t {
2876    transmute(a)
2877}
2878
2879/// Insert vector element from another vector element
2880///
2881/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s32)
2882#[inline]
2883#[target_feature(enable = "neon")]
2884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2885#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2886#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2887#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2888#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2889pub unsafe fn vcreate_s32(a: u64) -> int32x2_t {
2890    transmute(a)
2891}
2892
2893/// Insert vector element from another vector element
2894///
2895/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_s64)
2896#[inline]
2897#[target_feature(enable = "neon")]
2898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2899#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2900#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2901#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2902#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2903pub unsafe fn vcreate_s64(a: u64) -> int64x1_t {
2904    transmute(a)
2905}
2906
2907/// Insert vector element from another vector element
2908///
2909/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u8)
2910#[inline]
2911#[target_feature(enable = "neon")]
2912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2913#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2914#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2915#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2916#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2917pub unsafe fn vcreate_u8(a: u64) -> uint8x8_t {
2918    transmute(a)
2919}
2920
2921/// Insert vector element from another vector element
2922///
2923/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u16)
2924#[inline]
2925#[target_feature(enable = "neon")]
2926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2927#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2928#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2929#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2930#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2931pub unsafe fn vcreate_u16(a: u64) -> uint16x4_t {
2932    transmute(a)
2933}
2934
2935/// Insert vector element from another vector element
2936///
2937/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u32)
2938#[inline]
2939#[target_feature(enable = "neon")]
2940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2942#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2943#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2944#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2945pub unsafe fn vcreate_u32(a: u64) -> uint32x2_t {
2946    transmute(a)
2947}
2948
2949/// Insert vector element from another vector element
2950///
2951/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_u64)
2952#[inline]
2953#[target_feature(enable = "neon")]
2954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2956#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2957#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2958#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2959pub unsafe fn vcreate_u64(a: u64) -> uint64x1_t {
2960    transmute(a)
2961}
2962
2963/// Insert vector element from another vector element
2964///
2965/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p8)
2966#[inline]
2967#[target_feature(enable = "neon")]
2968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2970#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2971#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2972#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2973pub unsafe fn vcreate_p8(a: u64) -> poly8x8_t {
2974    transmute(a)
2975}
2976
2977/// Insert vector element from another vector element
2978///
2979/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p16)
2980#[inline]
2981#[target_feature(enable = "neon")]
2982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
2983#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2984#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2985#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
2986#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
2987pub unsafe fn vcreate_p16(a: u64) -> poly16x4_t {
2988    transmute(a)
2989}
2990
2991/// Insert vector element from another vector element
2992///
2993/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_p64)
2994#[inline]
2995#[target_feature(enable = "neon,aes")]
2996#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
2997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
2998#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
2999#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3000#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3001pub unsafe fn vcreate_p64(a: u64) -> poly64x1_t {
3002    transmute(a)
3003}
3004
3005/// Insert vector element from another vector element
3006///
3007/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcreate_f32)
3008#[inline]
3009#[target_feature(enable = "neon")]
3010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3011#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
3012#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
3013#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3014#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3015pub unsafe fn vcreate_f32(a: u64) -> float32x2_t {
3016    transmute(a)
3017}
3018
3019/// Fixed-point convert to floating-point
3020///
3021/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f32_s32)
3022#[inline]
3023#[target_feature(enable = "neon")]
3024#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3025#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
3026#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(scvtf))]
3027#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3028#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3029pub unsafe fn vcvt_f32_s32(a: int32x2_t) -> float32x2_t {
3030    simd_cast(a)
3031}
3032
3033/// Fixed-point convert to floating-point
3034///
3035/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f32_s32)
3036#[inline]
3037#[target_feature(enable = "neon")]
3038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
3040#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(scvtf))]
3041#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3042#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3043pub unsafe fn vcvtq_f32_s32(a: int32x4_t) -> float32x4_t {
3044    simd_cast(a)
3045}
3046
3047/// Fixed-point convert to floating-point
3048///
3049/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_f32_u32)
3050#[inline]
3051#[target_feature(enable = "neon")]
3052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3053#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
3054#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ucvtf))]
3055#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3056#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3057pub unsafe fn vcvt_f32_u32(a: uint32x2_t) -> float32x2_t {
3058    simd_cast(a)
3059}
3060
3061/// Fixed-point convert to floating-point
3062///
3063/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_f32_u32)
3064#[inline]
3065#[target_feature(enable = "neon")]
3066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
3068#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ucvtf))]
3069#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3070#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3071pub unsafe fn vcvtq_f32_u32(a: uint32x4_t) -> float32x4_t {
3072    simd_cast(a)
3073}
3074
3075/// Fixed-point convert to floating-point
3076///
3077/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_s32)
3078#[inline]
3079#[cfg(target_arch = "arm")]
3080#[target_feature(enable = "neon,v7")]
3081#[cfg_attr(test, assert_instr(vcvt, N = 2))]
3082#[rustc_legacy_const_generics(1)]
3083#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
3084pub unsafe fn vcvt_n_f32_s32<const N: i32>(a: int32x2_t) -> float32x2_t {
3085    static_assert!(N >= 1 && N <= 32);
3086    #[allow(improper_ctypes)]
3087    extern "unadjusted" {
3088        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcvtfxs2fp.v2f32.v2i32")]
3089        fn vcvt_n_f32_s32_(a: int32x2_t, n: i32) -> float32x2_t;
3090    }
3091vcvt_n_f32_s32_(a, N)
3092}
3093
3094/// Fixed-point convert to floating-point
3095///
3096/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_s32)
3097#[inline]
3098#[cfg(not(target_arch = "arm"))]
3099#[target_feature(enable = "neon")]
3100#[cfg_attr(test, assert_instr(scvtf, N = 2))]
3101#[rustc_legacy_const_generics(1)]
3102#[stable(feature = "neon_intrinsics", since = "1.59.0")]
3103pub unsafe fn vcvt_n_f32_s32<const N: i32>(a: int32x2_t) -> float32x2_t {
3104    static_assert!(N >= 1 && N <= 32);
3105    #[allow(improper_ctypes)]
3106    extern "unadjusted" {
3107        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.vcvtfxs2fp.v2f32.v2i32")]
3108        fn vcvt_n_f32_s32_(a: int32x2_t, n: i32) -> float32x2_t;
3109    }
3110vcvt_n_f32_s32_(a, N)
3111}
3112
3113/// Fixed-point convert to floating-point
3114///
3115/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_s32)
3116#[inline]
3117#[cfg(target_arch = "arm")]
3118#[target_feature(enable = "neon,v7")]
3119#[cfg_attr(test, assert_instr(vcvt, N = 2))]
3120#[rustc_legacy_const_generics(1)]
3121#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
3122pub unsafe fn vcvtq_n_f32_s32<const N: i32>(a: int32x4_t) -> float32x4_t {
3123    static_assert!(N >= 1 && N <= 32);
3124    #[allow(improper_ctypes)]
3125    extern "unadjusted" {
3126        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcvtfxs2fp.v4f32.v4i32")]
3127        fn vcvtq_n_f32_s32_(a: int32x4_t, n: i32) -> float32x4_t;
3128    }
3129vcvtq_n_f32_s32_(a, N)
3130}
3131
3132/// Fixed-point convert to floating-point
3133///
3134/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_s32)
3135#[inline]
3136#[cfg(not(target_arch = "arm"))]
3137#[target_feature(enable = "neon")]
3138#[cfg_attr(test, assert_instr(scvtf, N = 2))]
3139#[rustc_legacy_const_generics(1)]
3140#[stable(feature = "neon_intrinsics", since = "1.59.0")]
3141pub unsafe fn vcvtq_n_f32_s32<const N: i32>(a: int32x4_t) -> float32x4_t {
3142    static_assert!(N >= 1 && N <= 32);
3143    #[allow(improper_ctypes)]
3144    extern "unadjusted" {
3145        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.vcvtfxs2fp.v4f32.v4i32")]
3146        fn vcvtq_n_f32_s32_(a: int32x4_t, n: i32) -> float32x4_t;
3147    }
3148vcvtq_n_f32_s32_(a, N)
3149}
3150
3151/// Fixed-point convert to floating-point
3152///
3153/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_u32)
3154#[inline]
3155#[cfg(target_arch = "arm")]
3156#[target_feature(enable = "neon,v7")]
3157#[cfg_attr(test, assert_instr(vcvt, N = 2))]
3158#[rustc_legacy_const_generics(1)]
3159#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
3160pub unsafe fn vcvt_n_f32_u32<const N: i32>(a: uint32x2_t) -> float32x2_t {
3161    static_assert!(N >= 1 && N <= 32);
3162    #[allow(improper_ctypes)]
3163    extern "unadjusted" {
3164        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcvtfxu2fp.v2f32.v2i32")]
3165        fn vcvt_n_f32_u32_(a: uint32x2_t, n: i32) -> float32x2_t;
3166    }
3167vcvt_n_f32_u32_(a, N)
3168}
3169
3170/// Fixed-point convert to floating-point
3171///
3172/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_f32_u32)
3173#[inline]
3174#[cfg(not(target_arch = "arm"))]
3175#[target_feature(enable = "neon")]
3176#[cfg_attr(test, assert_instr(ucvtf, N = 2))]
3177#[rustc_legacy_const_generics(1)]
3178#[stable(feature = "neon_intrinsics", since = "1.59.0")]
3179pub unsafe fn vcvt_n_f32_u32<const N: i32>(a: uint32x2_t) -> float32x2_t {
3180    static_assert!(N >= 1 && N <= 32);
3181    #[allow(improper_ctypes)]
3182    extern "unadjusted" {
3183        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.vcvtfxu2fp.v2f32.v2i32")]
3184        fn vcvt_n_f32_u32_(a: uint32x2_t, n: i32) -> float32x2_t;
3185    }
3186vcvt_n_f32_u32_(a, N)
3187}
3188
3189/// Fixed-point convert to floating-point
3190///
3191/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_u32)
3192#[inline]
3193#[cfg(target_arch = "arm")]
3194#[target_feature(enable = "neon,v7")]
3195#[cfg_attr(test, assert_instr(vcvt, N = 2))]
3196#[rustc_legacy_const_generics(1)]
3197#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
3198pub unsafe fn vcvtq_n_f32_u32<const N: i32>(a: uint32x4_t) -> float32x4_t {
3199    static_assert!(N >= 1 && N <= 32);
3200    #[allow(improper_ctypes)]
3201    extern "unadjusted" {
3202        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcvtfxu2fp.v4f32.v4i32")]
3203        fn vcvtq_n_f32_u32_(a: uint32x4_t, n: i32) -> float32x4_t;
3204    }
3205vcvtq_n_f32_u32_(a, N)
3206}
3207
3208/// Fixed-point convert to floating-point
3209///
3210/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_f32_u32)
3211#[inline]
3212#[cfg(not(target_arch = "arm"))]
3213#[target_feature(enable = "neon")]
3214#[cfg_attr(test, assert_instr(ucvtf, N = 2))]
3215#[rustc_legacy_const_generics(1)]
3216#[stable(feature = "neon_intrinsics", since = "1.59.0")]
3217pub unsafe fn vcvtq_n_f32_u32<const N: i32>(a: uint32x4_t) -> float32x4_t {
3218    static_assert!(N >= 1 && N <= 32);
3219    #[allow(improper_ctypes)]
3220    extern "unadjusted" {
3221        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.vcvtfxu2fp.v4f32.v4i32")]
3222        fn vcvtq_n_f32_u32_(a: uint32x4_t, n: i32) -> float32x4_t;
3223    }
3224vcvtq_n_f32_u32_(a, N)
3225}
3226
3227/// Floating-point convert to fixed-point, rounding toward zero
3228///
3229/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_s32_f32)
3230#[inline]
3231#[cfg(target_arch = "arm")]
3232#[target_feature(enable = "neon,v7")]
3233#[cfg_attr(test, assert_instr(vcvt, N = 2))]
3234#[rustc_legacy_const_generics(1)]
3235#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
3236pub unsafe fn vcvt_n_s32_f32<const N: i32>(a: float32x2_t) -> int32x2_t {
3237    static_assert!(N >= 1 && N <= 32);
3238    #[allow(improper_ctypes)]
3239    extern "unadjusted" {
3240        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcvtfp2fxs.v2i32.v2f32")]
3241        fn vcvt_n_s32_f32_(a: float32x2_t, n: i32) -> int32x2_t;
3242    }
3243vcvt_n_s32_f32_(a, N)
3244}
3245
3246/// Floating-point convert to fixed-point, rounding toward zero
3247///
3248/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_s32_f32)
3249#[inline]
3250#[cfg(not(target_arch = "arm"))]
3251#[target_feature(enable = "neon")]
3252#[cfg_attr(test, assert_instr(fcvtzs, N = 2))]
3253#[rustc_legacy_const_generics(1)]
3254#[stable(feature = "neon_intrinsics", since = "1.59.0")]
3255pub unsafe fn vcvt_n_s32_f32<const N: i32>(a: float32x2_t) -> int32x2_t {
3256    static_assert!(N >= 1 && N <= 32);
3257    #[allow(improper_ctypes)]
3258    extern "unadjusted" {
3259        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.vcvtfp2fxs.v2i32.v2f32")]
3260        fn vcvt_n_s32_f32_(a: float32x2_t, n: i32) -> int32x2_t;
3261    }
3262vcvt_n_s32_f32_(a, N)
3263}
3264
3265/// Floating-point convert to fixed-point, rounding toward zero
3266///
3267/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_s32_f32)
3268#[inline]
3269#[cfg(target_arch = "arm")]
3270#[target_feature(enable = "neon,v7")]
3271#[cfg_attr(test, assert_instr(vcvt, N = 2))]
3272#[rustc_legacy_const_generics(1)]
3273#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
3274pub unsafe fn vcvtq_n_s32_f32<const N: i32>(a: float32x4_t) -> int32x4_t {
3275    static_assert!(N >= 1 && N <= 32);
3276    #[allow(improper_ctypes)]
3277    extern "unadjusted" {
3278        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcvtfp2fxs.v4i32.v4f32")]
3279        fn vcvtq_n_s32_f32_(a: float32x4_t, n: i32) -> int32x4_t;
3280    }
3281vcvtq_n_s32_f32_(a, N)
3282}
3283
3284/// Floating-point convert to fixed-point, rounding toward zero
3285///
3286/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_s32_f32)
3287#[inline]
3288#[cfg(not(target_arch = "arm"))]
3289#[target_feature(enable = "neon")]
3290#[cfg_attr(test, assert_instr(fcvtzs, N = 2))]
3291#[rustc_legacy_const_generics(1)]
3292#[stable(feature = "neon_intrinsics", since = "1.59.0")]
3293pub unsafe fn vcvtq_n_s32_f32<const N: i32>(a: float32x4_t) -> int32x4_t {
3294    static_assert!(N >= 1 && N <= 32);
3295    #[allow(improper_ctypes)]
3296    extern "unadjusted" {
3297        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.vcvtfp2fxs.v4i32.v4f32")]
3298        fn vcvtq_n_s32_f32_(a: float32x4_t, n: i32) -> int32x4_t;
3299    }
3300vcvtq_n_s32_f32_(a, N)
3301}
3302
3303/// Floating-point convert to fixed-point, rounding toward zero
3304///
3305/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_u32_f32)
3306#[inline]
3307#[cfg(target_arch = "arm")]
3308#[target_feature(enable = "neon,v7")]
3309#[cfg_attr(test, assert_instr(vcvt, N = 2))]
3310#[rustc_legacy_const_generics(1)]
3311#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
3312pub unsafe fn vcvt_n_u32_f32<const N: i32>(a: float32x2_t) -> uint32x2_t {
3313    static_assert!(N >= 1 && N <= 32);
3314    #[allow(improper_ctypes)]
3315    extern "unadjusted" {
3316        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcvtfp2fxu.v2i32.v2f32")]
3317        fn vcvt_n_u32_f32_(a: float32x2_t, n: i32) -> uint32x2_t;
3318    }
3319vcvt_n_u32_f32_(a, N)
3320}
3321
3322/// Floating-point convert to fixed-point, rounding toward zero
3323///
3324/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_n_u32_f32)
3325#[inline]
3326#[cfg(not(target_arch = "arm"))]
3327#[target_feature(enable = "neon")]
3328#[cfg_attr(test, assert_instr(fcvtzu, N = 2))]
3329#[rustc_legacy_const_generics(1)]
3330#[stable(feature = "neon_intrinsics", since = "1.59.0")]
3331pub unsafe fn vcvt_n_u32_f32<const N: i32>(a: float32x2_t) -> uint32x2_t {
3332    static_assert!(N >= 1 && N <= 32);
3333    #[allow(improper_ctypes)]
3334    extern "unadjusted" {
3335        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.vcvtfp2fxu.v2i32.v2f32")]
3336        fn vcvt_n_u32_f32_(a: float32x2_t, n: i32) -> uint32x2_t;
3337    }
3338vcvt_n_u32_f32_(a, N)
3339}
3340
3341/// Floating-point convert to fixed-point, rounding toward zero
3342///
3343/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_u32_f32)
3344#[inline]
3345#[cfg(target_arch = "arm")]
3346#[target_feature(enable = "neon,v7")]
3347#[cfg_attr(test, assert_instr(vcvt, N = 2))]
3348#[rustc_legacy_const_generics(1)]
3349#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
3350pub unsafe fn vcvtq_n_u32_f32<const N: i32>(a: float32x4_t) -> uint32x4_t {
3351    static_assert!(N >= 1 && N <= 32);
3352    #[allow(improper_ctypes)]
3353    extern "unadjusted" {
3354        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vcvtfp2fxu.v4i32.v4f32")]
3355        fn vcvtq_n_u32_f32_(a: float32x4_t, n: i32) -> uint32x4_t;
3356    }
3357vcvtq_n_u32_f32_(a, N)
3358}
3359
3360/// Floating-point convert to fixed-point, rounding toward zero
3361///
3362/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_n_u32_f32)
3363#[inline]
3364#[cfg(not(target_arch = "arm"))]
3365#[target_feature(enable = "neon")]
3366#[cfg_attr(test, assert_instr(fcvtzu, N = 2))]
3367#[rustc_legacy_const_generics(1)]
3368#[stable(feature = "neon_intrinsics", since = "1.59.0")]
3369pub unsafe fn vcvtq_n_u32_f32<const N: i32>(a: float32x4_t) -> uint32x4_t {
3370    static_assert!(N >= 1 && N <= 32);
3371    #[allow(improper_ctypes)]
3372    extern "unadjusted" {
3373        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.vcvtfp2fxu.v4i32.v4f32")]
3374        fn vcvtq_n_u32_f32_(a: float32x4_t, n: i32) -> uint32x4_t;
3375    }
3376vcvtq_n_u32_f32_(a, N)
3377}
3378
3379/// Floating-point convert to signed fixed-point, rounding toward zero
3380///
3381/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_s32_f32)
3382#[inline]
3383#[target_feature(enable = "neon")]
3384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
3386#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcvtzs))]
3387#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3388#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3389pub unsafe fn vcvt_s32_f32(a: float32x2_t) -> int32x2_t {
3390    #[allow(improper_ctypes)]
3391    extern "unadjusted" {
3392        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptosi.sat.v2i32.v2f32")]
3393        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.fptosi.sat.v2i32.v2f32")]
3394        fn vcvt_s32_f32_(a: float32x2_t) -> int32x2_t;
3395    }
3396vcvt_s32_f32_(a)
3397}
3398
3399/// Floating-point convert to signed fixed-point, rounding toward zero
3400///
3401/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_s32_f32)
3402#[inline]
3403#[target_feature(enable = "neon")]
3404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
3406#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcvtzs))]
3407#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3408#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3409pub unsafe fn vcvtq_s32_f32(a: float32x4_t) -> int32x4_t {
3410    #[allow(improper_ctypes)]
3411    extern "unadjusted" {
3412        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptosi.sat.v4i32.v4f32")]
3413        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.fptosi.sat.v4i32.v4f32")]
3414        fn vcvtq_s32_f32_(a: float32x4_t) -> int32x4_t;
3415    }
3416vcvtq_s32_f32_(a)
3417}
3418
3419/// Floating-point convert to unsigned fixed-point, rounding toward zero
3420///
3421/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvt_u32_f32)
3422#[inline]
3423#[target_feature(enable = "neon")]
3424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3425#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
3426#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcvtzu))]
3427#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3428#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3429pub unsafe fn vcvt_u32_f32(a: float32x2_t) -> uint32x2_t {
3430    #[allow(improper_ctypes)]
3431    extern "unadjusted" {
3432        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptoui.sat.v2i32.v2f32")]
3433        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.fptoui.sat.v2i32.v2f32")]
3434        fn vcvt_u32_f32_(a: float32x2_t) -> uint32x2_t;
3435    }
3436vcvt_u32_f32_(a)
3437}
3438
3439/// Floating-point convert to unsigned fixed-point, rounding toward zero
3440///
3441/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvtq_u32_f32)
3442#[inline]
3443#[target_feature(enable = "neon")]
3444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vcvt))]
3446#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fcvtzu))]
3447#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3448#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3449pub unsafe fn vcvtq_u32_f32(a: float32x4_t) -> uint32x4_t {
3450    #[allow(improper_ctypes)]
3451    extern "unadjusted" {
3452        #[cfg_attr(target_arch = "arm", link_name = "llvm.fptoui.sat.v4i32.v4f32")]
3453        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.fptoui.sat.v4i32.v4f32")]
3454        fn vcvtq_u32_f32_(a: float32x4_t) -> uint32x4_t;
3455    }
3456vcvtq_u32_f32_(a)
3457}
3458
3459/// Set all vector lanes to the same value
3460///
3461/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s8)
3462#[inline]
3463#[target_feature(enable = "neon")]
3464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3465#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
3466#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3467#[rustc_legacy_const_generics(1)]
3468#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3469#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3470pub unsafe fn vdup_lane_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
3471    static_assert_uimm_bits!(N, 3);
3472    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3473}
3474
3475/// Set all vector lanes to the same value
3476///
3477/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s8)
3478#[inline]
3479#[target_feature(enable = "neon")]
3480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3481#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
3482#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 8))]
3483#[rustc_legacy_const_generics(1)]
3484#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3485#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3486pub unsafe fn vdupq_laneq_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
3487    static_assert_uimm_bits!(N, 4);
3488    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3489}
3490
3491/// Set all vector lanes to the same value
3492///
3493/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s16)
3494#[inline]
3495#[target_feature(enable = "neon")]
3496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3497#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
3498#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3499#[rustc_legacy_const_generics(1)]
3500#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3501#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3502pub unsafe fn vdup_lane_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
3503    static_assert_uimm_bits!(N, 2);
3504    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3505}
3506
3507/// Set all vector lanes to the same value
3508///
3509/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s16)
3510#[inline]
3511#[target_feature(enable = "neon")]
3512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3513#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
3514#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3515#[rustc_legacy_const_generics(1)]
3516#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3517#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3518pub unsafe fn vdupq_laneq_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
3519    static_assert_uimm_bits!(N, 3);
3520    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3521}
3522
3523/// Set all vector lanes to the same value
3524///
3525/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s32)
3526#[inline]
3527#[target_feature(enable = "neon")]
3528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3529#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
3530#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 1))]
3531#[rustc_legacy_const_generics(1)]
3532#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3533#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3534pub unsafe fn vdup_lane_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
3535    static_assert_uimm_bits!(N, 1);
3536    simd_shuffle!(a, a, [N as u32, N as u32])
3537}
3538
3539/// Set all vector lanes to the same value
3540///
3541/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s32)
3542#[inline]
3543#[target_feature(enable = "neon")]
3544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3545#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
3546#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3547#[rustc_legacy_const_generics(1)]
3548#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3549#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3550pub unsafe fn vdupq_laneq_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
3551    static_assert_uimm_bits!(N, 2);
3552    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3553}
3554
3555/// Set all vector lanes to the same value
3556///
3557/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s8)
3558#[inline]
3559#[target_feature(enable = "neon")]
3560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3561#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
3562#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 8))]
3563#[rustc_legacy_const_generics(1)]
3564#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3565#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3566pub unsafe fn vdup_laneq_s8<const N: i32>(a: int8x16_t) -> int8x8_t {
3567    static_assert_uimm_bits!(N, 4);
3568    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3569}
3570
3571/// Set all vector lanes to the same value
3572///
3573/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s16)
3574#[inline]
3575#[target_feature(enable = "neon")]
3576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3577#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
3578#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3579#[rustc_legacy_const_generics(1)]
3580#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3581#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3582pub unsafe fn vdup_laneq_s16<const N: i32>(a: int16x8_t) -> int16x4_t {
3583    static_assert_uimm_bits!(N, 3);
3584    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3585}
3586
3587/// Set all vector lanes to the same value
3588///
3589/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s32)
3590#[inline]
3591#[target_feature(enable = "neon")]
3592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3593#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
3594#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3595#[rustc_legacy_const_generics(1)]
3596#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3597#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3598pub unsafe fn vdup_laneq_s32<const N: i32>(a: int32x4_t) -> int32x2_t {
3599    static_assert_uimm_bits!(N, 2);
3600    simd_shuffle!(a, a, [N as u32, N as u32])
3601}
3602
3603/// Set all vector lanes to the same value
3604///
3605/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s8)
3606#[inline]
3607#[target_feature(enable = "neon")]
3608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3609#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
3610#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3611#[rustc_legacy_const_generics(1)]
3612#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3613#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3614pub unsafe fn vdupq_lane_s8<const N: i32>(a: int8x8_t) -> int8x16_t {
3615    static_assert_uimm_bits!(N, 3);
3616    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3617}
3618
3619/// Set all vector lanes to the same value
3620///
3621/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s16)
3622#[inline]
3623#[target_feature(enable = "neon")]
3624#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3625#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
3626#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3627#[rustc_legacy_const_generics(1)]
3628#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3629#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3630pub unsafe fn vdupq_lane_s16<const N: i32>(a: int16x4_t) -> int16x8_t {
3631    static_assert_uimm_bits!(N, 2);
3632    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3633}
3634
3635/// Set all vector lanes to the same value
3636///
3637/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s32)
3638#[inline]
3639#[target_feature(enable = "neon")]
3640#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3641#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
3642#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 1))]
3643#[rustc_legacy_const_generics(1)]
3644#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3645#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3646pub unsafe fn vdupq_lane_s32<const N: i32>(a: int32x2_t) -> int32x4_t {
3647    static_assert_uimm_bits!(N, 1);
3648    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3649}
3650
3651/// Set all vector lanes to the same value
3652///
3653/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u8)
3654#[inline]
3655#[target_feature(enable = "neon")]
3656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3657#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
3658#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3659#[rustc_legacy_const_generics(1)]
3660#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3661#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3662pub unsafe fn vdup_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
3663    static_assert_uimm_bits!(N, 3);
3664    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3665}
3666
3667/// Set all vector lanes to the same value
3668///
3669/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u8)
3670#[inline]
3671#[target_feature(enable = "neon")]
3672#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3673#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
3674#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 8))]
3675#[rustc_legacy_const_generics(1)]
3676#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3677#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3678pub unsafe fn vdupq_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
3679    static_assert_uimm_bits!(N, 4);
3680    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3681}
3682
3683/// Set all vector lanes to the same value
3684///
3685/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u16)
3686#[inline]
3687#[target_feature(enable = "neon")]
3688#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3689#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
3690#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3691#[rustc_legacy_const_generics(1)]
3692#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3693#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3694pub unsafe fn vdup_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
3695    static_assert_uimm_bits!(N, 2);
3696    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3697}
3698
3699/// Set all vector lanes to the same value
3700///
3701/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u16)
3702#[inline]
3703#[target_feature(enable = "neon")]
3704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3705#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
3706#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3707#[rustc_legacy_const_generics(1)]
3708#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3709#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3710pub unsafe fn vdupq_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
3711    static_assert_uimm_bits!(N, 3);
3712    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3713}
3714
3715/// Set all vector lanes to the same value
3716///
3717/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u32)
3718#[inline]
3719#[target_feature(enable = "neon")]
3720#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3721#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
3722#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 1))]
3723#[rustc_legacy_const_generics(1)]
3724#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3725#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3726pub unsafe fn vdup_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
3727    static_assert_uimm_bits!(N, 1);
3728    simd_shuffle!(a, a, [N as u32, N as u32])
3729}
3730
3731/// Set all vector lanes to the same value
3732///
3733/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u32)
3734#[inline]
3735#[target_feature(enable = "neon")]
3736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3737#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
3738#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3739#[rustc_legacy_const_generics(1)]
3740#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3741#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3742pub unsafe fn vdupq_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
3743    static_assert_uimm_bits!(N, 2);
3744    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3745}
3746
3747/// Set all vector lanes to the same value
3748///
3749/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u8)
3750#[inline]
3751#[target_feature(enable = "neon")]
3752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3753#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
3754#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 8))]
3755#[rustc_legacy_const_generics(1)]
3756#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3757#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3758pub unsafe fn vdup_laneq_u8<const N: i32>(a: uint8x16_t) -> uint8x8_t {
3759    static_assert_uimm_bits!(N, 4);
3760    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3761}
3762
3763/// Set all vector lanes to the same value
3764///
3765/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u16)
3766#[inline]
3767#[target_feature(enable = "neon")]
3768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3769#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
3770#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3771#[rustc_legacy_const_generics(1)]
3772#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3773#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3774pub unsafe fn vdup_laneq_u16<const N: i32>(a: uint16x8_t) -> uint16x4_t {
3775    static_assert_uimm_bits!(N, 3);
3776    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3777}
3778
3779/// Set all vector lanes to the same value
3780///
3781/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u32)
3782#[inline]
3783#[target_feature(enable = "neon")]
3784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3785#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
3786#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3787#[rustc_legacy_const_generics(1)]
3788#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3789#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3790pub unsafe fn vdup_laneq_u32<const N: i32>(a: uint32x4_t) -> uint32x2_t {
3791    static_assert_uimm_bits!(N, 2);
3792    simd_shuffle!(a, a, [N as u32, N as u32])
3793}
3794
3795/// Set all vector lanes to the same value
3796///
3797/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u8)
3798#[inline]
3799#[target_feature(enable = "neon")]
3800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3801#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
3802#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3803#[rustc_legacy_const_generics(1)]
3804#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3805#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3806pub unsafe fn vdupq_lane_u8<const N: i32>(a: uint8x8_t) -> uint8x16_t {
3807    static_assert_uimm_bits!(N, 3);
3808    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3809}
3810
3811/// Set all vector lanes to the same value
3812///
3813/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u16)
3814#[inline]
3815#[target_feature(enable = "neon")]
3816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3817#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
3818#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3819#[rustc_legacy_const_generics(1)]
3820#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3821#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3822pub unsafe fn vdupq_lane_u16<const N: i32>(a: uint16x4_t) -> uint16x8_t {
3823    static_assert_uimm_bits!(N, 2);
3824    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3825}
3826
3827/// Set all vector lanes to the same value
3828///
3829/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u32)
3830#[inline]
3831#[target_feature(enable = "neon")]
3832#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3833#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
3834#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 1))]
3835#[rustc_legacy_const_generics(1)]
3836#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3837#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3838pub unsafe fn vdupq_lane_u32<const N: i32>(a: uint32x2_t) -> uint32x4_t {
3839    static_assert_uimm_bits!(N, 1);
3840    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3841}
3842
3843/// Set all vector lanes to the same value
3844///
3845/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p8)
3846#[inline]
3847#[target_feature(enable = "neon")]
3848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3849#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
3850#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3851#[rustc_legacy_const_generics(1)]
3852#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3853#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3854pub unsafe fn vdup_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x8_t {
3855    static_assert_uimm_bits!(N, 3);
3856    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3857}
3858
3859/// Set all vector lanes to the same value
3860///
3861/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p8)
3862#[inline]
3863#[target_feature(enable = "neon")]
3864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3865#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
3866#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 8))]
3867#[rustc_legacy_const_generics(1)]
3868#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3869#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3870pub unsafe fn vdupq_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x16_t {
3871    static_assert_uimm_bits!(N, 4);
3872    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3873}
3874
3875/// Set all vector lanes to the same value
3876///
3877/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_p16)
3878#[inline]
3879#[target_feature(enable = "neon")]
3880#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3881#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
3882#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3883#[rustc_legacy_const_generics(1)]
3884#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3885#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3886pub unsafe fn vdup_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x4_t {
3887    static_assert_uimm_bits!(N, 2);
3888    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3889}
3890
3891/// Set all vector lanes to the same value
3892///
3893/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_p16)
3894#[inline]
3895#[target_feature(enable = "neon")]
3896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3897#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
3898#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3899#[rustc_legacy_const_generics(1)]
3900#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3901#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3902pub unsafe fn vdupq_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x8_t {
3903    static_assert_uimm_bits!(N, 3);
3904    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3905}
3906
3907/// Set all vector lanes to the same value
3908///
3909/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p8)
3910#[inline]
3911#[target_feature(enable = "neon")]
3912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3913#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 8))]
3914#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 8))]
3915#[rustc_legacy_const_generics(1)]
3916#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3917#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3918pub unsafe fn vdup_laneq_p8<const N: i32>(a: poly8x16_t) -> poly8x8_t {
3919    static_assert_uimm_bits!(N, 4);
3920    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3921}
3922
3923/// Set all vector lanes to the same value
3924///
3925/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_p16)
3926#[inline]
3927#[target_feature(enable = "neon")]
3928#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3929#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 4))]
3930#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3931#[rustc_legacy_const_generics(1)]
3932#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3933#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3934pub unsafe fn vdup_laneq_p16<const N: i32>(a: poly16x8_t) -> poly16x4_t {
3935    static_assert_uimm_bits!(N, 3);
3936    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
3937}
3938
3939/// Set all vector lanes to the same value
3940///
3941/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p8)
3942#[inline]
3943#[target_feature(enable = "neon")]
3944#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3945#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.8", N = 4))]
3946#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 4))]
3947#[rustc_legacy_const_generics(1)]
3948#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3949#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3950pub unsafe fn vdupq_lane_p8<const N: i32>(a: poly8x8_t) -> poly8x16_t {
3951    static_assert_uimm_bits!(N, 3);
3952    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3953}
3954
3955/// Set all vector lanes to the same value
3956///
3957/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_p16)
3958#[inline]
3959#[target_feature(enable = "neon")]
3960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3961#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.16", N = 2))]
3962#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
3963#[rustc_legacy_const_generics(1)]
3964#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3965#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3966pub unsafe fn vdupq_lane_p16<const N: i32>(a: poly16x4_t) -> poly16x8_t {
3967    static_assert_uimm_bits!(N, 2);
3968    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32, N as u32])
3969}
3970
3971/// Set all vector lanes to the same value
3972///
3973/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_s64)
3974#[inline]
3975#[target_feature(enable = "neon")]
3976#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
3978#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 1))]
3979#[rustc_legacy_const_generics(1)]
3980#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3981#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3982pub unsafe fn vdupq_laneq_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
3983    static_assert_uimm_bits!(N, 1);
3984    simd_shuffle!(a, a, [N as u32, N as u32])
3985}
3986
3987/// Set all vector lanes to the same value
3988///
3989/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_s64)
3990#[inline]
3991#[target_feature(enable = "neon")]
3992#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
3993#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
3994#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 0))]
3995#[rustc_legacy_const_generics(1)]
3996#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
3997#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
3998pub unsafe fn vdupq_lane_s64<const N: i32>(a: int64x1_t) -> int64x2_t {
3999    static_assert!(N == 0);
4000    simd_shuffle!(a, a, [N as u32, N as u32])
4001}
4002
4003/// Set all vector lanes to the same value
4004///
4005/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_u64)
4006#[inline]
4007#[target_feature(enable = "neon")]
4008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4009#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
4010#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 1))]
4011#[rustc_legacy_const_generics(1)]
4012#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4013#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4014pub unsafe fn vdupq_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
4015    static_assert_uimm_bits!(N, 1);
4016    simd_shuffle!(a, a, [N as u32, N as u32])
4017}
4018
4019/// Set all vector lanes to the same value
4020///
4021/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_u64)
4022#[inline]
4023#[target_feature(enable = "neon")]
4024#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4025#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 0))]
4026#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 0))]
4027#[rustc_legacy_const_generics(1)]
4028#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4029#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4030pub unsafe fn vdupq_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x2_t {
4031    static_assert!(N == 0);
4032    simd_shuffle!(a, a, [N as u32, N as u32])
4033}
4034
4035/// Set all vector lanes to the same value
4036///
4037/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_f32)
4038#[inline]
4039#[target_feature(enable = "neon")]
4040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4041#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
4042#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 1))]
4043#[rustc_legacy_const_generics(1)]
4044#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4045#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4046pub unsafe fn vdup_lane_f32<const N: i32>(a: float32x2_t) -> float32x2_t {
4047    static_assert_uimm_bits!(N, 1);
4048    simd_shuffle!(a, a, [N as u32, N as u32])
4049}
4050
4051/// Set all vector lanes to the same value
4052///
4053/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_laneq_f32)
4054#[inline]
4055#[target_feature(enable = "neon")]
4056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4057#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
4058#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
4059#[rustc_legacy_const_generics(1)]
4060#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4061#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4062pub unsafe fn vdupq_laneq_f32<const N: i32>(a: float32x4_t) -> float32x4_t {
4063    static_assert_uimm_bits!(N, 2);
4064    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
4065}
4066
4067/// Set all vector lanes to the same value
4068///
4069/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_f32)
4070#[inline]
4071#[target_feature(enable = "neon")]
4072#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4073#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 2))]
4074#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 2))]
4075#[rustc_legacy_const_generics(1)]
4076#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4077#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4078pub unsafe fn vdup_laneq_f32<const N: i32>(a: float32x4_t) -> float32x2_t {
4079    static_assert_uimm_bits!(N, 2);
4080    simd_shuffle!(a, a, [N as u32, N as u32])
4081}
4082
4083/// Set all vector lanes to the same value
4084///
4085/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdupq_lane_f32)
4086#[inline]
4087#[target_feature(enable = "neon")]
4088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4089#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vdup.32", N = 1))]
4090#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(dup, N = 1))]
4091#[rustc_legacy_const_generics(1)]
4092#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4093#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4094pub unsafe fn vdupq_lane_f32<const N: i32>(a: float32x2_t) -> float32x4_t {
4095    static_assert_uimm_bits!(N, 1);
4096    simd_shuffle!(a, a, [N as u32, N as u32, N as u32, N as u32])
4097}
4098
4099/// Set all vector lanes to the same value
4100///
4101/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_s64)
4102#[inline]
4103#[target_feature(enable = "neon")]
4104#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4105#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
4106#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, N = 0))]
4107#[rustc_legacy_const_generics(1)]
4108#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4109#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4110pub unsafe fn vdup_lane_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
4111    static_assert!(N == 0);
4112    a
4113}
4114
4115/// Set all vector lanes to the same value
4116///
4117/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_lane_u64)
4118#[inline]
4119#[target_feature(enable = "neon")]
4120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4121#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, N = 0))]
4122#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, N = 0))]
4123#[rustc_legacy_const_generics(1)]
4124#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4125#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4126pub unsafe fn vdup_lane_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
4127    static_assert!(N == 0);
4128    a
4129}
4130
4131/// Set all vector lanes to the same value
4132///
4133/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_s64)
4134#[inline]
4135#[target_feature(enable = "neon")]
4136#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4137#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
4138#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, N = 1))]
4139#[rustc_legacy_const_generics(1)]
4140#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4141#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4142pub unsafe fn vdup_laneq_s64<const N: i32>(a: int64x2_t) -> int64x1_t {
4143    static_assert_uimm_bits!(N, 1);
4144    transmute::<i64, _>(simd_extract!(a, N as u32))
4145}
4146
4147/// Set all vector lanes to the same value
4148///
4149/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdup_laneq_u64)
4150#[inline]
4151#[target_feature(enable = "neon")]
4152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4153#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
4154#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, N = 1))]
4155#[rustc_legacy_const_generics(1)]
4156#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4157#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4158pub unsafe fn vdup_laneq_u64<const N: i32>(a: uint64x2_t) -> uint64x1_t {
4159    static_assert_uimm_bits!(N, 1);
4160    transmute::<u64, _>(simd_extract!(a, N as u32))
4161}
4162
4163/// Extract vector from pair of vectors
4164///
4165/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s8)
4166#[inline]
4167#[target_feature(enable = "neon")]
4168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4169#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
4170#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 7))]
4171#[rustc_legacy_const_generics(2)]
4172#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4173#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4174pub unsafe fn vext_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
4175    static_assert_uimm_bits!(N, 3);
4176    match N & 0b111 {
4177        0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
4178        1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
4179        2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
4180        3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
4181        4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
4182        5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
4183        6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
4184        7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
4185        _ => unreachable_unchecked(),
4186    }
4187}
4188
4189/// Extract vector from pair of vectors
4190///
4191/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s8)
4192#[inline]
4193#[target_feature(enable = "neon")]
4194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4195#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
4196#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 15))]
4197#[rustc_legacy_const_generics(2)]
4198#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4199#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4200pub unsafe fn vextq_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
4201    static_assert_uimm_bits!(N, 4);
4202    match N & 0b1111 {
4203        0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
4204        1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]),
4205        2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]),
4206        3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]),
4207        4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),
4208        5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),
4209        6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]),
4210        7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]),
4211        8 => simd_shuffle!(a, b, [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]),
4212        9 => simd_shuffle!(a, b, [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]),
4213        10 => simd_shuffle!(a, b, [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]),
4214        11 => simd_shuffle!(a, b, [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]),
4215        12 => simd_shuffle!(a, b, [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]),
4216        13 => simd_shuffle!(a, b, [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]),
4217        14 => simd_shuffle!(a, b, [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]),
4218        15 => simd_shuffle!(a, b, [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]),
4219        _ => unreachable_unchecked(),
4220    }
4221}
4222
4223/// Extract vector from pair of vectors
4224///
4225/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s16)
4226#[inline]
4227#[target_feature(enable = "neon")]
4228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4229#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
4230#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 3))]
4231#[rustc_legacy_const_generics(2)]
4232#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4233#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4234pub unsafe fn vext_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
4235    static_assert_uimm_bits!(N, 2);
4236    match N & 0b11 {
4237        0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
4238        1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
4239        2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
4240        3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
4241        _ => unreachable_unchecked(),
4242    }
4243}
4244
4245/// Extract vector from pair of vectors
4246///
4247/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s16)
4248#[inline]
4249#[target_feature(enable = "neon")]
4250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4251#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
4252#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 7))]
4253#[rustc_legacy_const_generics(2)]
4254#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4255#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4256pub unsafe fn vextq_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
4257    static_assert_uimm_bits!(N, 3);
4258    match N & 0b111 {
4259        0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
4260        1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
4261        2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
4262        3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
4263        4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
4264        5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
4265        6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
4266        7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
4267        _ => unreachable_unchecked(),
4268    }
4269}
4270
4271/// Extract vector from pair of vectors
4272///
4273/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_s32)
4274#[inline]
4275#[target_feature(enable = "neon")]
4276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4277#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
4278#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 1))]
4279#[rustc_legacy_const_generics(2)]
4280#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4281#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4282pub unsafe fn vext_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
4283    static_assert_uimm_bits!(N, 1);
4284    match N & 0b1 {
4285        0 => simd_shuffle!(a, b, [0, 1]),
4286        1 => simd_shuffle!(a, b, [1, 2]),
4287        _ => unreachable_unchecked(),
4288    }
4289}
4290
4291/// Extract vector from pair of vectors
4292///
4293/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s32)
4294#[inline]
4295#[target_feature(enable = "neon")]
4296#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4297#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
4298#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 3))]
4299#[rustc_legacy_const_generics(2)]
4300#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4301#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4302pub unsafe fn vextq_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
4303    static_assert_uimm_bits!(N, 2);
4304    match N & 0b11 {
4305        0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
4306        1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
4307        2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
4308        3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
4309        _ => unreachable_unchecked(),
4310    }
4311}
4312
4313/// Extract vector from pair of vectors
4314///
4315/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u8)
4316#[inline]
4317#[target_feature(enable = "neon")]
4318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4319#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
4320#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 7))]
4321#[rustc_legacy_const_generics(2)]
4322#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4323#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4324pub unsafe fn vext_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
4325    static_assert_uimm_bits!(N, 3);
4326    match N & 0b111 {
4327        0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
4328        1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
4329        2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
4330        3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
4331        4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
4332        5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
4333        6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
4334        7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
4335        _ => unreachable_unchecked(),
4336    }
4337}
4338
4339/// Extract vector from pair of vectors
4340///
4341/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u8)
4342#[inline]
4343#[target_feature(enable = "neon")]
4344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4345#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
4346#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 15))]
4347#[rustc_legacy_const_generics(2)]
4348#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4349#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4350pub unsafe fn vextq_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
4351    static_assert_uimm_bits!(N, 4);
4352    match N & 0b1111 {
4353        0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
4354        1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]),
4355        2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]),
4356        3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]),
4357        4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),
4358        5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),
4359        6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]),
4360        7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]),
4361        8 => simd_shuffle!(a, b, [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]),
4362        9 => simd_shuffle!(a, b, [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]),
4363        10 => simd_shuffle!(a, b, [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]),
4364        11 => simd_shuffle!(a, b, [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]),
4365        12 => simd_shuffle!(a, b, [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]),
4366        13 => simd_shuffle!(a, b, [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]),
4367        14 => simd_shuffle!(a, b, [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]),
4368        15 => simd_shuffle!(a, b, [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]),
4369        _ => unreachable_unchecked(),
4370    }
4371}
4372
4373/// Extract vector from pair of vectors
4374///
4375/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u16)
4376#[inline]
4377#[target_feature(enable = "neon")]
4378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4379#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
4380#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 3))]
4381#[rustc_legacy_const_generics(2)]
4382#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4383#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4384pub unsafe fn vext_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
4385    static_assert_uimm_bits!(N, 2);
4386    match N & 0b11 {
4387        0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
4388        1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
4389        2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
4390        3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
4391        _ => unreachable_unchecked(),
4392    }
4393}
4394
4395/// Extract vector from pair of vectors
4396///
4397/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u16)
4398#[inline]
4399#[target_feature(enable = "neon")]
4400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4401#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
4402#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 7))]
4403#[rustc_legacy_const_generics(2)]
4404#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4405#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4406pub unsafe fn vextq_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
4407    static_assert_uimm_bits!(N, 3);
4408    match N & 0b111 {
4409        0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
4410        1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
4411        2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
4412        3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
4413        4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
4414        5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
4415        6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
4416        7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
4417        _ => unreachable_unchecked(),
4418    }
4419}
4420
4421/// Extract vector from pair of vectors
4422///
4423/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_u32)
4424#[inline]
4425#[target_feature(enable = "neon")]
4426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
4428#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 1))]
4429#[rustc_legacy_const_generics(2)]
4430#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4431#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4432pub unsafe fn vext_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
4433    static_assert_uimm_bits!(N, 1);
4434    match N & 0b1 {
4435        0 => simd_shuffle!(a, b, [0, 1]),
4436        1 => simd_shuffle!(a, b, [1, 2]),
4437        _ => unreachable_unchecked(),
4438    }
4439}
4440
4441/// Extract vector from pair of vectors
4442///
4443/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u32)
4444#[inline]
4445#[target_feature(enable = "neon")]
4446#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4447#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
4448#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 3))]
4449#[rustc_legacy_const_generics(2)]
4450#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4451#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4452pub unsafe fn vextq_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
4453    static_assert_uimm_bits!(N, 2);
4454    match N & 0b11 {
4455        0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
4456        1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
4457        2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
4458        3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
4459        _ => unreachable_unchecked(),
4460    }
4461}
4462
4463/// Extract vector from pair of vectors
4464///
4465/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p8)
4466#[inline]
4467#[target_feature(enable = "neon")]
4468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4469#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
4470#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 7))]
4471#[rustc_legacy_const_generics(2)]
4472#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4473#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4474pub unsafe fn vext_p8<const N: i32>(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
4475    static_assert_uimm_bits!(N, 3);
4476    match N & 0b111 {
4477        0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
4478        1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
4479        2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
4480        3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
4481        4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
4482        5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
4483        6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
4484        7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
4485        _ => unreachable_unchecked(),
4486    }
4487}
4488
4489/// Extract vector from pair of vectors
4490///
4491/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p8)
4492#[inline]
4493#[target_feature(enable = "neon")]
4494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4495#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 15))]
4496#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 15))]
4497#[rustc_legacy_const_generics(2)]
4498#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4499#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4500pub unsafe fn vextq_p8<const N: i32>(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
4501    static_assert_uimm_bits!(N, 4);
4502    match N & 0b1111 {
4503        0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
4504        1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]),
4505        2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]),
4506        3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]),
4507        4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),
4508        5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),
4509        6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]),
4510        7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]),
4511        8 => simd_shuffle!(a, b, [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]),
4512        9 => simd_shuffle!(a, b, [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24]),
4513        10 => simd_shuffle!(a, b, [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25]),
4514        11 => simd_shuffle!(a, b, [11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26]),
4515        12 => simd_shuffle!(a, b, [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27]),
4516        13 => simd_shuffle!(a, b, [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28]),
4517        14 => simd_shuffle!(a, b, [14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]),
4518        15 => simd_shuffle!(a, b, [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]),
4519        _ => unreachable_unchecked(),
4520    }
4521}
4522
4523/// Extract vector from pair of vectors
4524///
4525/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_p16)
4526#[inline]
4527#[target_feature(enable = "neon")]
4528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4529#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
4530#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 3))]
4531#[rustc_legacy_const_generics(2)]
4532#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4533#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4534pub unsafe fn vext_p16<const N: i32>(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
4535    static_assert_uimm_bits!(N, 2);
4536    match N & 0b11 {
4537        0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
4538        1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
4539        2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
4540        3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
4541        _ => unreachable_unchecked(),
4542    }
4543}
4544
4545/// Extract vector from pair of vectors
4546///
4547/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_p16)
4548#[inline]
4549#[target_feature(enable = "neon")]
4550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4551#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 7))]
4552#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 7))]
4553#[rustc_legacy_const_generics(2)]
4554#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4555#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4556pub unsafe fn vextq_p16<const N: i32>(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
4557    static_assert_uimm_bits!(N, 3);
4558    match N & 0b111 {
4559        0 => simd_shuffle!(a, b, [0, 1, 2, 3, 4, 5, 6, 7]),
4560        1 => simd_shuffle!(a, b, [1, 2, 3, 4, 5, 6, 7, 8]),
4561        2 => simd_shuffle!(a, b, [2, 3, 4, 5, 6, 7, 8, 9]),
4562        3 => simd_shuffle!(a, b, [3, 4, 5, 6, 7, 8, 9, 10]),
4563        4 => simd_shuffle!(a, b, [4, 5, 6, 7, 8, 9, 10, 11]),
4564        5 => simd_shuffle!(a, b, [5, 6, 7, 8, 9, 10, 11, 12]),
4565        6 => simd_shuffle!(a, b, [6, 7, 8, 9, 10, 11, 12, 13]),
4566        7 => simd_shuffle!(a, b, [7, 8, 9, 10, 11, 12, 13, 14]),
4567        _ => unreachable_unchecked(),
4568    }
4569}
4570
4571/// Extract vector from pair of vectors
4572///
4573/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_s64)
4574#[inline]
4575#[target_feature(enable = "neon")]
4576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4577#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
4578#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 1))]
4579#[rustc_legacy_const_generics(2)]
4580#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4581#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4582pub unsafe fn vextq_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
4583    static_assert_uimm_bits!(N, 1);
4584    match N & 0b1 {
4585        0 => simd_shuffle!(a, b, [0, 1]),
4586        1 => simd_shuffle!(a, b, [1, 2]),
4587        _ => unreachable_unchecked(),
4588    }
4589}
4590
4591/// Extract vector from pair of vectors
4592///
4593/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_u64)
4594#[inline]
4595#[target_feature(enable = "neon")]
4596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmov, N = 1))]
4598#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 1))]
4599#[rustc_legacy_const_generics(2)]
4600#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4601#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4602pub unsafe fn vextq_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
4603    static_assert_uimm_bits!(N, 1);
4604    match N & 0b1 {
4605        0 => simd_shuffle!(a, b, [0, 1]),
4606        1 => simd_shuffle!(a, b, [1, 2]),
4607        _ => unreachable_unchecked(),
4608    }
4609}
4610
4611/// Extract vector from pair of vectors
4612///
4613/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vext_f32)
4614#[inline]
4615#[target_feature(enable = "neon")]
4616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4617#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 1))]
4618#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 1))]
4619#[rustc_legacy_const_generics(2)]
4620#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4621#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4622pub unsafe fn vext_f32<const N: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
4623    static_assert_uimm_bits!(N, 1);
4624    match N & 0b1 {
4625        0 => simd_shuffle!(a, b, [0, 1]),
4626        1 => simd_shuffle!(a, b, [1, 2]),
4627        _ => unreachable_unchecked(),
4628    }
4629}
4630
4631/// Extract vector from pair of vectors
4632///
4633/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vextq_f32)
4634#[inline]
4635#[target_feature(enable = "neon")]
4636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4637#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vext.8", N = 3))]
4638#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ext, N = 3))]
4639#[rustc_legacy_const_generics(2)]
4640#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4641#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4642pub unsafe fn vextq_f32<const N: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
4643    static_assert_uimm_bits!(N, 2);
4644    match N & 0b11 {
4645        0 => simd_shuffle!(a, b, [0, 1, 2, 3]),
4646        1 => simd_shuffle!(a, b, [1, 2, 3, 4]),
4647        2 => simd_shuffle!(a, b, [2, 3, 4, 5]),
4648        3 => simd_shuffle!(a, b, [3, 4, 5, 6]),
4649        _ => unreachable_unchecked(),
4650    }
4651}
4652
4653/// Multiply-add to accumulator
4654///
4655/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s8)
4656#[inline]
4657#[target_feature(enable = "neon")]
4658#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4659#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
4660#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4661#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4662#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4663pub unsafe fn vmla_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
4664    simd_add(a, simd_mul(b, c))
4665}
4666
4667/// Multiply-add to accumulator
4668///
4669/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s8)
4670#[inline]
4671#[target_feature(enable = "neon")]
4672#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4673#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
4674#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4675#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4676#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4677pub unsafe fn vmlaq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
4678    simd_add(a, simd_mul(b, c))
4679}
4680
4681/// Multiply-add to accumulator
4682///
4683/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s16)
4684#[inline]
4685#[target_feature(enable = "neon")]
4686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4687#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
4688#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4689#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4690#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4691pub unsafe fn vmla_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
4692    simd_add(a, simd_mul(b, c))
4693}
4694
4695/// Multiply-add to accumulator
4696///
4697/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s16)
4698#[inline]
4699#[target_feature(enable = "neon")]
4700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4701#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
4702#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4703#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4704#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4705pub unsafe fn vmlaq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
4706    simd_add(a, simd_mul(b, c))
4707}
4708
4709/// Multiply-add to accumulator
4710///
4711/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_s32)
4712#[inline]
4713#[target_feature(enable = "neon")]
4714#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4715#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
4716#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4717#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4718#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4719pub unsafe fn vmla_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
4720    simd_add(a, simd_mul(b, c))
4721}
4722
4723/// Multiply-add to accumulator
4724///
4725/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_s32)
4726#[inline]
4727#[target_feature(enable = "neon")]
4728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4729#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
4730#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4731#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4732#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4733pub unsafe fn vmlaq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
4734    simd_add(a, simd_mul(b, c))
4735}
4736
4737/// Multiply-add to accumulator
4738///
4739/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u8)
4740#[inline]
4741#[target_feature(enable = "neon")]
4742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4743#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
4744#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4745#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4746#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4747pub unsafe fn vmla_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
4748    simd_add(a, simd_mul(b, c))
4749}
4750
4751/// Multiply-add to accumulator
4752///
4753/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u8)
4754#[inline]
4755#[target_feature(enable = "neon")]
4756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4757#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i8"))]
4758#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4759#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4760#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4761pub unsafe fn vmlaq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
4762    simd_add(a, simd_mul(b, c))
4763}
4764
4765/// Multiply-add to accumulator
4766///
4767/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u16)
4768#[inline]
4769#[target_feature(enable = "neon")]
4770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4771#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
4772#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4773#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4774#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4775pub unsafe fn vmla_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
4776    simd_add(a, simd_mul(b, c))
4777}
4778
4779/// Multiply-add to accumulator
4780///
4781/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u16)
4782#[inline]
4783#[target_feature(enable = "neon")]
4784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4785#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
4786#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4787#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4788#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4789pub unsafe fn vmlaq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
4790    simd_add(a, simd_mul(b, c))
4791}
4792
4793/// Multiply-add to accumulator
4794///
4795/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_u32)
4796#[inline]
4797#[target_feature(enable = "neon")]
4798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4799#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
4800#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4801#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4802#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4803pub unsafe fn vmla_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
4804    simd_add(a, simd_mul(b, c))
4805}
4806
4807/// Multiply-add to accumulator
4808///
4809/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_u32)
4810#[inline]
4811#[target_feature(enable = "neon")]
4812#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4813#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
4814#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4815#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4816#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4817pub unsafe fn vmlaq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
4818    simd_add(a, simd_mul(b, c))
4819}
4820
4821/// Floating-point multiply-add to accumulator
4822///
4823/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_f32)
4824#[inline]
4825#[target_feature(enable = "neon")]
4826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4827#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
4828#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
4829#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4830#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4831pub unsafe fn vmla_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
4832    simd_add(a, simd_mul(b, c))
4833}
4834
4835/// Floating-point multiply-add to accumulator
4836///
4837/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_f32)
4838#[inline]
4839#[target_feature(enable = "neon")]
4840#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4841#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
4842#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
4843#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4844#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4845pub unsafe fn vmlaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
4846    simd_add(a, simd_mul(b, c))
4847}
4848
4849/// Vector multiply accumulate with scalar
4850///
4851/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s16)
4852#[inline]
4853#[target_feature(enable = "neon")]
4854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4855#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
4856#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4857#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4858#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4859pub unsafe fn vmla_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
4860    vmla_s16(a, b, vdup_n_s16(c))
4861}
4862
4863/// Vector multiply accumulate with scalar
4864///
4865/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_s16)
4866#[inline]
4867#[target_feature(enable = "neon")]
4868#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4869#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
4870#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4871#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4872#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4873pub unsafe fn vmlaq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
4874    vmlaq_s16(a, b, vdupq_n_s16(c))
4875}
4876
4877/// Vector multiply accumulate with scalar
4878///
4879/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_s32)
4880#[inline]
4881#[target_feature(enable = "neon")]
4882#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4883#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
4884#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4885#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4886#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4887pub unsafe fn vmla_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
4888    vmla_s32(a, b, vdup_n_s32(c))
4889}
4890
4891/// Vector multiply accumulate with scalar
4892///
4893/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_s32)
4894#[inline]
4895#[target_feature(enable = "neon")]
4896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4897#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
4898#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4899#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4900#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4901pub unsafe fn vmlaq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
4902    vmlaq_s32(a, b, vdupq_n_s32(c))
4903}
4904
4905/// Vector multiply accumulate with scalar
4906///
4907/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u16)
4908#[inline]
4909#[target_feature(enable = "neon")]
4910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4911#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
4912#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4913#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4914#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4915pub unsafe fn vmla_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
4916    vmla_u16(a, b, vdup_n_u16(c))
4917}
4918
4919/// Vector multiply accumulate with scalar
4920///
4921/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u16)
4922#[inline]
4923#[target_feature(enable = "neon")]
4924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4925#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16"))]
4926#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4927#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4928#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4929pub unsafe fn vmlaq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
4930    vmlaq_u16(a, b, vdupq_n_u16(c))
4931}
4932
4933/// Vector multiply accumulate with scalar
4934///
4935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_u32)
4936#[inline]
4937#[target_feature(enable = "neon")]
4938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4939#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
4940#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4941#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4942#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4943pub unsafe fn vmla_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
4944    vmla_u32(a, b, vdup_n_u32(c))
4945}
4946
4947/// Vector multiply accumulate with scalar
4948///
4949/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_u32)
4950#[inline]
4951#[target_feature(enable = "neon")]
4952#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4953#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32"))]
4954#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla))]
4955#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4956#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4957pub unsafe fn vmlaq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
4958    vmlaq_u32(a, b, vdupq_n_u32(c))
4959}
4960
4961/// Vector multiply accumulate with scalar
4962///
4963/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_n_f32)
4964#[inline]
4965#[target_feature(enable = "neon")]
4966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4967#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
4968#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
4969#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4970#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4971pub unsafe fn vmla_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
4972    vmla_f32(a, b, vdup_n_f32(c))
4973}
4974
4975/// Vector multiply accumulate with scalar
4976///
4977/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_n_f32)
4978#[inline]
4979#[target_feature(enable = "neon")]
4980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4981#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32"))]
4982#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
4983#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4984#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
4985pub unsafe fn vmlaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
4986    vmlaq_f32(a, b, vdupq_n_f32(c))
4987}
4988
4989/// Vector multiply accumulate with scalar
4990///
4991/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s16)
4992#[inline]
4993#[target_feature(enable = "neon")]
4994#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
4995#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
4996#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
4997#[rustc_legacy_const_generics(3)]
4998#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
4999#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5000pub unsafe fn vmla_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
5001    static_assert_uimm_bits!(LANE, 2);
5002    vmla_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5003}
5004
5005/// Vector multiply accumulate with scalar
5006///
5007/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s16)
5008#[inline]
5009#[target_feature(enable = "neon")]
5010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5011#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
5012#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5013#[rustc_legacy_const_generics(3)]
5014#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5015#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5016pub unsafe fn vmla_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
5017    static_assert_uimm_bits!(LANE, 3);
5018    vmla_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5019}
5020
5021/// Vector multiply accumulate with scalar
5022///
5023/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s16)
5024#[inline]
5025#[target_feature(enable = "neon")]
5026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5027#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
5028#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5029#[rustc_legacy_const_generics(3)]
5030#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5031#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5032pub unsafe fn vmlaq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
5033    static_assert_uimm_bits!(LANE, 2);
5034    vmlaq_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5035}
5036
5037/// Vector multiply accumulate with scalar
5038///
5039/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s16)
5040#[inline]
5041#[target_feature(enable = "neon")]
5042#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5043#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
5044#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5045#[rustc_legacy_const_generics(3)]
5046#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5047#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5048pub unsafe fn vmlaq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
5049    static_assert_uimm_bits!(LANE, 3);
5050    vmlaq_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5051}
5052
5053/// Vector multiply accumulate with scalar
5054///
5055/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_s32)
5056#[inline]
5057#[target_feature(enable = "neon")]
5058#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5059#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
5060#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5061#[rustc_legacy_const_generics(3)]
5062#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5063#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5064pub unsafe fn vmla_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
5065    static_assert_uimm_bits!(LANE, 1);
5066    vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5067}
5068
5069/// Vector multiply accumulate with scalar
5070///
5071/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_s32)
5072#[inline]
5073#[target_feature(enable = "neon")]
5074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5075#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
5076#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5077#[rustc_legacy_const_generics(3)]
5078#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5079#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5080pub unsafe fn vmla_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
5081    static_assert_uimm_bits!(LANE, 2);
5082    vmla_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5083}
5084
5085/// Vector multiply accumulate with scalar
5086///
5087/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_s32)
5088#[inline]
5089#[target_feature(enable = "neon")]
5090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5091#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
5092#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5093#[rustc_legacy_const_generics(3)]
5094#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5095#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5096pub unsafe fn vmlaq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
5097    static_assert_uimm_bits!(LANE, 1);
5098    vmlaq_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5099}
5100
5101/// Vector multiply accumulate with scalar
5102///
5103/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_s32)
5104#[inline]
5105#[target_feature(enable = "neon")]
5106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5107#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
5108#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5109#[rustc_legacy_const_generics(3)]
5110#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5111#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5112pub unsafe fn vmlaq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
5113    static_assert_uimm_bits!(LANE, 2);
5114    vmlaq_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5115}
5116
5117/// Vector multiply accumulate with scalar
5118///
5119/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u16)
5120#[inline]
5121#[target_feature(enable = "neon")]
5122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5123#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
5124#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5125#[rustc_legacy_const_generics(3)]
5126#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5127#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5128pub unsafe fn vmla_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
5129    static_assert_uimm_bits!(LANE, 2);
5130    vmla_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5131}
5132
5133/// Vector multiply accumulate with scalar
5134///
5135/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u16)
5136#[inline]
5137#[target_feature(enable = "neon")]
5138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5139#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
5140#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5141#[rustc_legacy_const_generics(3)]
5142#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5143#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5144pub unsafe fn vmla_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
5145    static_assert_uimm_bits!(LANE, 3);
5146    vmla_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5147}
5148
5149/// Vector multiply accumulate with scalar
5150///
5151/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u16)
5152#[inline]
5153#[target_feature(enable = "neon")]
5154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5155#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
5156#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5157#[rustc_legacy_const_generics(3)]
5158#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5159#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5160pub unsafe fn vmlaq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
5161    static_assert_uimm_bits!(LANE, 2);
5162    vmlaq_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5163}
5164
5165/// Vector multiply accumulate with scalar
5166///
5167/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u16)
5168#[inline]
5169#[target_feature(enable = "neon")]
5170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5171#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i16", LANE = 1))]
5172#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5173#[rustc_legacy_const_generics(3)]
5174#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5175#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5176pub unsafe fn vmlaq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
5177    static_assert_uimm_bits!(LANE, 3);
5178    vmlaq_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5179}
5180
5181/// Vector multiply accumulate with scalar
5182///
5183/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_u32)
5184#[inline]
5185#[target_feature(enable = "neon")]
5186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5187#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
5188#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5189#[rustc_legacy_const_generics(3)]
5190#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5191#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5192pub unsafe fn vmla_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
5193    static_assert_uimm_bits!(LANE, 1);
5194    vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5195}
5196
5197/// Vector multiply accumulate with scalar
5198///
5199/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_u32)
5200#[inline]
5201#[target_feature(enable = "neon")]
5202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5203#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
5204#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5205#[rustc_legacy_const_generics(3)]
5206#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5207#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5208pub unsafe fn vmla_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
5209    static_assert_uimm_bits!(LANE, 2);
5210    vmla_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5211}
5212
5213/// Vector multiply accumulate with scalar
5214///
5215/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_u32)
5216#[inline]
5217#[target_feature(enable = "neon")]
5218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5219#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
5220#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5221#[rustc_legacy_const_generics(3)]
5222#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5223#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5224pub unsafe fn vmlaq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
5225    static_assert_uimm_bits!(LANE, 1);
5226    vmlaq_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5227}
5228
5229/// Vector multiply accumulate with scalar
5230///
5231/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_u32)
5232#[inline]
5233#[target_feature(enable = "neon")]
5234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5235#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.i32", LANE = 1))]
5236#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mla, LANE = 1))]
5237#[rustc_legacy_const_generics(3)]
5238#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5239#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5240pub unsafe fn vmlaq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
5241    static_assert_uimm_bits!(LANE, 2);
5242    vmlaq_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5243}
5244
5245/// Vector multiply accumulate with scalar
5246///
5247/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_lane_f32)
5248#[inline]
5249#[target_feature(enable = "neon")]
5250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5251#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
5252#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 1))]
5253#[rustc_legacy_const_generics(3)]
5254#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5255#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5256pub unsafe fn vmla_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
5257    static_assert_uimm_bits!(LANE, 1);
5258    vmla_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5259}
5260
5261/// Vector multiply accumulate with scalar
5262///
5263/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmla_laneq_f32)
5264#[inline]
5265#[target_feature(enable = "neon")]
5266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5267#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
5268#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 1))]
5269#[rustc_legacy_const_generics(3)]
5270#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5271#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5272pub unsafe fn vmla_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x4_t) -> float32x2_t {
5273    static_assert_uimm_bits!(LANE, 2);
5274    vmla_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5275}
5276
5277/// Vector multiply accumulate with scalar
5278///
5279/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_lane_f32)
5280#[inline]
5281#[target_feature(enable = "neon")]
5282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5283#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
5284#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 1))]
5285#[rustc_legacy_const_generics(3)]
5286#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5287#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5288pub unsafe fn vmlaq_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x2_t) -> float32x4_t {
5289    static_assert_uimm_bits!(LANE, 1);
5290    vmlaq_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5291}
5292
5293/// Vector multiply accumulate with scalar
5294///
5295/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlaq_laneq_f32)
5296#[inline]
5297#[target_feature(enable = "neon")]
5298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5299#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmla.f32", LANE = 1))]
5300#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 1))]
5301#[rustc_legacy_const_generics(3)]
5302#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5303#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5304pub unsafe fn vmlaq_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
5305    static_assert_uimm_bits!(LANE, 2);
5306    vmlaq_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5307}
5308
5309/// Signed multiply-add long
5310///
5311/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s8)
5312#[inline]
5313#[target_feature(enable = "neon")]
5314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5315#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s8"))]
5316#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlal))]
5317#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5318#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5319pub unsafe fn vmlal_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
5320    simd_add(a, vmull_s8(b, c))
5321}
5322
5323/// Signed multiply-add long
5324///
5325/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s16)
5326#[inline]
5327#[target_feature(enable = "neon")]
5328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5329#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
5330#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlal))]
5331#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5332#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5333pub unsafe fn vmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
5334    simd_add(a, vmull_s16(b, c))
5335}
5336
5337/// Signed multiply-add long
5338///
5339/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_s32)
5340#[inline]
5341#[target_feature(enable = "neon")]
5342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5343#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
5344#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlal))]
5345#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5346#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5347pub unsafe fn vmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
5348    simd_add(a, vmull_s32(b, c))
5349}
5350
5351/// Unsigned multiply-add long
5352///
5353/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u8)
5354#[inline]
5355#[target_feature(enable = "neon")]
5356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5357#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u8"))]
5358#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlal))]
5359#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5360#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5361pub unsafe fn vmlal_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
5362    simd_add(a, vmull_u8(b, c))
5363}
5364
5365/// Unsigned multiply-add long
5366///
5367/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u16)
5368#[inline]
5369#[target_feature(enable = "neon")]
5370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5371#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16"))]
5372#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlal))]
5373#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5374#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5375pub unsafe fn vmlal_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
5376    simd_add(a, vmull_u16(b, c))
5377}
5378
5379/// Unsigned multiply-add long
5380///
5381/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_u32)
5382#[inline]
5383#[target_feature(enable = "neon")]
5384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5385#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32"))]
5386#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlal))]
5387#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5388#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5389pub unsafe fn vmlal_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
5390    simd_add(a, vmull_u32(b, c))
5391}
5392
5393/// Vector widening multiply accumulate with scalar
5394///
5395/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s16)
5396#[inline]
5397#[target_feature(enable = "neon")]
5398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5399#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16"))]
5400#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlal))]
5401#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5402#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5403pub unsafe fn vmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
5404    vmlal_s16(a, b, vdup_n_s16(c))
5405}
5406
5407/// Vector widening multiply accumulate with scalar
5408///
5409/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_s32)
5410#[inline]
5411#[target_feature(enable = "neon")]
5412#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5413#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32"))]
5414#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlal))]
5415#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5416#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5417pub unsafe fn vmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
5418    vmlal_s32(a, b, vdup_n_s32(c))
5419}
5420
5421/// Vector widening multiply accumulate with scalar
5422///
5423/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u16)
5424#[inline]
5425#[target_feature(enable = "neon")]
5426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16"))]
5428#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlal))]
5429#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5430#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5431pub unsafe fn vmlal_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
5432    vmlal_u16(a, b, vdup_n_u16(c))
5433}
5434
5435/// Vector widening multiply accumulate with scalar
5436///
5437/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_n_u32)
5438#[inline]
5439#[target_feature(enable = "neon")]
5440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5441#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32"))]
5442#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlal))]
5443#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5444#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5445pub unsafe fn vmlal_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
5446    vmlal_u32(a, b, vdup_n_u32(c))
5447}
5448
5449/// Vector widening multiply accumulate with scalar
5450///
5451/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s16)
5452#[inline]
5453#[target_feature(enable = "neon")]
5454#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5455#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
5456#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlal, LANE = 1))]
5457#[rustc_legacy_const_generics(3)]
5458#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5459#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5460pub unsafe fn vmlal_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
5461    static_assert_uimm_bits!(LANE, 2);
5462    vmlal_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5463}
5464
5465/// Vector widening multiply accumulate with scalar
5466///
5467/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s16)
5468#[inline]
5469#[target_feature(enable = "neon")]
5470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5471#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s16", LANE = 1))]
5472#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlal, LANE = 1))]
5473#[rustc_legacy_const_generics(3)]
5474#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5475#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5476pub unsafe fn vmlal_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
5477    static_assert_uimm_bits!(LANE, 3);
5478    vmlal_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5479}
5480
5481/// Vector widening multiply accumulate with scalar
5482///
5483/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_s32)
5484#[inline]
5485#[target_feature(enable = "neon")]
5486#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5487#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
5488#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlal, LANE = 1))]
5489#[rustc_legacy_const_generics(3)]
5490#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5491#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5492pub unsafe fn vmlal_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
5493    static_assert_uimm_bits!(LANE, 1);
5494    vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5495}
5496
5497/// Vector widening multiply accumulate with scalar
5498///
5499/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_s32)
5500#[inline]
5501#[target_feature(enable = "neon")]
5502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5503#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.s32", LANE = 1))]
5504#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlal, LANE = 1))]
5505#[rustc_legacy_const_generics(3)]
5506#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5507#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5508pub unsafe fn vmlal_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
5509    static_assert_uimm_bits!(LANE, 2);
5510    vmlal_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5511}
5512
5513/// Vector widening multiply accumulate with scalar
5514///
5515/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u16)
5516#[inline]
5517#[target_feature(enable = "neon")]
5518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5519#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
5520#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlal, LANE = 1))]
5521#[rustc_legacy_const_generics(3)]
5522#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5523#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5524pub unsafe fn vmlal_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
5525    static_assert_uimm_bits!(LANE, 2);
5526    vmlal_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5527}
5528
5529/// Vector widening multiply accumulate with scalar
5530///
5531/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u16)
5532#[inline]
5533#[target_feature(enable = "neon")]
5534#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5535#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u16", LANE = 1))]
5536#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlal, LANE = 1))]
5537#[rustc_legacy_const_generics(3)]
5538#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5539#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5540pub unsafe fn vmlal_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
5541    static_assert_uimm_bits!(LANE, 3);
5542    vmlal_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5543}
5544
5545/// Vector widening multiply accumulate with scalar
5546///
5547/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_lane_u32)
5548#[inline]
5549#[target_feature(enable = "neon")]
5550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5551#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
5552#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlal, LANE = 1))]
5553#[rustc_legacy_const_generics(3)]
5554#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5555#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5556pub unsafe fn vmlal_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
5557    static_assert_uimm_bits!(LANE, 1);
5558    vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5559}
5560
5561/// Vector widening multiply accumulate with scalar
5562///
5563/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_laneq_u32)
5564#[inline]
5565#[target_feature(enable = "neon")]
5566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5567#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlal.u32", LANE = 1))]
5568#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlal, LANE = 1))]
5569#[rustc_legacy_const_generics(3)]
5570#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5571#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5572pub unsafe fn vmlal_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
5573    static_assert_uimm_bits!(LANE, 2);
5574    vmlal_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5575}
5576
5577/// Multiply-subtract from accumulator
5578///
5579/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s8)
5580#[inline]
5581#[target_feature(enable = "neon")]
5582#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5583#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
5584#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5585#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5586#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5587pub unsafe fn vmls_s8(a: int8x8_t, b: int8x8_t, c: int8x8_t) -> int8x8_t {
5588    simd_sub(a, simd_mul(b, c))
5589}
5590
5591/// Multiply-subtract from accumulator
5592///
5593/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s8)
5594#[inline]
5595#[target_feature(enable = "neon")]
5596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5597#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
5598#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5599#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5600#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5601pub unsafe fn vmlsq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
5602    simd_sub(a, simd_mul(b, c))
5603}
5604
5605/// Multiply-subtract from accumulator
5606///
5607/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s16)
5608#[inline]
5609#[target_feature(enable = "neon")]
5610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5611#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
5612#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5613#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5614#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5615pub unsafe fn vmls_s16(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
5616    simd_sub(a, simd_mul(b, c))
5617}
5618
5619/// Multiply-subtract from accumulator
5620///
5621/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s16)
5622#[inline]
5623#[target_feature(enable = "neon")]
5624#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5625#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
5626#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5627#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5628#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5629pub unsafe fn vmlsq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
5630    simd_sub(a, simd_mul(b, c))
5631}
5632
5633/// Multiply-subtract from accumulator
5634///
5635/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_s32)
5636#[inline]
5637#[target_feature(enable = "neon")]
5638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5639#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
5640#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5641#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5642#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5643pub unsafe fn vmls_s32(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
5644    simd_sub(a, simd_mul(b, c))
5645}
5646
5647/// Multiply-subtract from accumulator
5648///
5649/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_s32)
5650#[inline]
5651#[target_feature(enable = "neon")]
5652#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5653#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
5654#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5655#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5656#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5657pub unsafe fn vmlsq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
5658    simd_sub(a, simd_mul(b, c))
5659}
5660
5661/// Multiply-subtract from accumulator
5662///
5663/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u8)
5664#[inline]
5665#[target_feature(enable = "neon")]
5666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5667#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
5668#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5669#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5670#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5671pub unsafe fn vmls_u8(a: uint8x8_t, b: uint8x8_t, c: uint8x8_t) -> uint8x8_t {
5672    simd_sub(a, simd_mul(b, c))
5673}
5674
5675/// Multiply-subtract from accumulator
5676///
5677/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u8)
5678#[inline]
5679#[target_feature(enable = "neon")]
5680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5681#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i8"))]
5682#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5683#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5684#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5685pub unsafe fn vmlsq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
5686    simd_sub(a, simd_mul(b, c))
5687}
5688
5689/// Multiply-subtract from accumulator
5690///
5691/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u16)
5692#[inline]
5693#[target_feature(enable = "neon")]
5694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5695#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
5696#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5697#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5698#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5699pub unsafe fn vmls_u16(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
5700    simd_sub(a, simd_mul(b, c))
5701}
5702
5703/// Multiply-subtract from accumulator
5704///
5705/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u16)
5706#[inline]
5707#[target_feature(enable = "neon")]
5708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5709#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
5710#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5711#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5712#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5713pub unsafe fn vmlsq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
5714    simd_sub(a, simd_mul(b, c))
5715}
5716
5717/// Multiply-subtract from accumulator
5718///
5719/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_u32)
5720#[inline]
5721#[target_feature(enable = "neon")]
5722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5723#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
5724#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5725#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5726#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5727pub unsafe fn vmls_u32(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
5728    simd_sub(a, simd_mul(b, c))
5729}
5730
5731/// Multiply-subtract from accumulator
5732///
5733/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_u32)
5734#[inline]
5735#[target_feature(enable = "neon")]
5736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5737#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
5738#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5739#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5740#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5741pub unsafe fn vmlsq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
5742    simd_sub(a, simd_mul(b, c))
5743}
5744
5745/// Floating-point multiply-subtract from accumulator
5746///
5747/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_f32)
5748#[inline]
5749#[target_feature(enable = "neon")]
5750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5751#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
5752#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
5753#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5754#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5755pub unsafe fn vmls_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
5756    simd_sub(a, simd_mul(b, c))
5757}
5758
5759/// Floating-point multiply-subtract from accumulator
5760///
5761/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_f32)
5762#[inline]
5763#[target_feature(enable = "neon")]
5764#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5765#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
5766#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
5767#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5768#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5769pub unsafe fn vmlsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
5770    simd_sub(a, simd_mul(b, c))
5771}
5772
5773/// Vector multiply subtract with scalar
5774///
5775/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s16)
5776#[inline]
5777#[target_feature(enable = "neon")]
5778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5779#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
5780#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5781#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5782#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5783pub unsafe fn vmls_n_s16(a: int16x4_t, b: int16x4_t, c: i16) -> int16x4_t {
5784    vmls_s16(a, b, vdup_n_s16(c))
5785}
5786
5787/// Vector multiply subtract with scalar
5788///
5789/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_s16)
5790#[inline]
5791#[target_feature(enable = "neon")]
5792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5793#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
5794#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5795#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5796#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5797pub unsafe fn vmlsq_n_s16(a: int16x8_t, b: int16x8_t, c: i16) -> int16x8_t {
5798    vmlsq_s16(a, b, vdupq_n_s16(c))
5799}
5800
5801/// Vector multiply subtract with scalar
5802///
5803/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_s32)
5804#[inline]
5805#[target_feature(enable = "neon")]
5806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5807#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
5808#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5809#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5810#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5811pub unsafe fn vmls_n_s32(a: int32x2_t, b: int32x2_t, c: i32) -> int32x2_t {
5812    vmls_s32(a, b, vdup_n_s32(c))
5813}
5814
5815/// Vector multiply subtract with scalar
5816///
5817/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_s32)
5818#[inline]
5819#[target_feature(enable = "neon")]
5820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5821#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
5822#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5823#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5824#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5825pub unsafe fn vmlsq_n_s32(a: int32x4_t, b: int32x4_t, c: i32) -> int32x4_t {
5826    vmlsq_s32(a, b, vdupq_n_s32(c))
5827}
5828
5829/// Vector multiply subtract with scalar
5830///
5831/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u16)
5832#[inline]
5833#[target_feature(enable = "neon")]
5834#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5835#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
5836#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5837#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5838#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5839pub unsafe fn vmls_n_u16(a: uint16x4_t, b: uint16x4_t, c: u16) -> uint16x4_t {
5840    vmls_u16(a, b, vdup_n_u16(c))
5841}
5842
5843/// Vector multiply subtract with scalar
5844///
5845/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u16)
5846#[inline]
5847#[target_feature(enable = "neon")]
5848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5849#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16"))]
5850#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5851#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5852#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5853pub unsafe fn vmlsq_n_u16(a: uint16x8_t, b: uint16x8_t, c: u16) -> uint16x8_t {
5854    vmlsq_u16(a, b, vdupq_n_u16(c))
5855}
5856
5857/// Vector multiply subtract with scalar
5858///
5859/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_u32)
5860#[inline]
5861#[target_feature(enable = "neon")]
5862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5863#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
5864#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5865#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5866#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5867pub unsafe fn vmls_n_u32(a: uint32x2_t, b: uint32x2_t, c: u32) -> uint32x2_t {
5868    vmls_u32(a, b, vdup_n_u32(c))
5869}
5870
5871/// Vector multiply subtract with scalar
5872///
5873/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_u32)
5874#[inline]
5875#[target_feature(enable = "neon")]
5876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5877#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32"))]
5878#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls))]
5879#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5880#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5881pub unsafe fn vmlsq_n_u32(a: uint32x4_t, b: uint32x4_t, c: u32) -> uint32x4_t {
5882    vmlsq_u32(a, b, vdupq_n_u32(c))
5883}
5884
5885/// Vector multiply subtract with scalar
5886///
5887/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_n_f32)
5888#[inline]
5889#[target_feature(enable = "neon")]
5890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5891#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
5892#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
5893#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5894#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5895pub unsafe fn vmls_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
5896    vmls_f32(a, b, vdup_n_f32(c))
5897}
5898
5899/// Vector multiply subtract with scalar
5900///
5901/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_n_f32)
5902#[inline]
5903#[target_feature(enable = "neon")]
5904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5905#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32"))]
5906#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
5907#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5908#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5909pub unsafe fn vmlsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
5910    vmlsq_f32(a, b, vdupq_n_f32(c))
5911}
5912
5913/// Vector multiply subtract with scalar
5914///
5915/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s16)
5916#[inline]
5917#[target_feature(enable = "neon")]
5918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5919#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
5920#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
5921#[rustc_legacy_const_generics(3)]
5922#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5923#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5924pub unsafe fn vmls_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x4_t) -> int16x4_t {
5925    static_assert_uimm_bits!(LANE, 2);
5926    vmls_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5927}
5928
5929/// Vector multiply subtract with scalar
5930///
5931/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s16)
5932#[inline]
5933#[target_feature(enable = "neon")]
5934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5935#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
5936#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
5937#[rustc_legacy_const_generics(3)]
5938#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5939#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5940pub unsafe fn vmls_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t, c: int16x8_t) -> int16x4_t {
5941    static_assert_uimm_bits!(LANE, 3);
5942    vmls_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5943}
5944
5945/// Vector multiply subtract with scalar
5946///
5947/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s16)
5948#[inline]
5949#[target_feature(enable = "neon")]
5950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5951#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
5952#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
5953#[rustc_legacy_const_generics(3)]
5954#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5955#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5956pub unsafe fn vmlsq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x4_t) -> int16x8_t {
5957    static_assert_uimm_bits!(LANE, 2);
5958    vmlsq_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5959}
5960
5961/// Vector multiply subtract with scalar
5962///
5963/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s16)
5964#[inline]
5965#[target_feature(enable = "neon")]
5966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5967#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
5968#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
5969#[rustc_legacy_const_generics(3)]
5970#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5971#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5972pub unsafe fn vmlsq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
5973    static_assert_uimm_bits!(LANE, 3);
5974    vmlsq_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
5975}
5976
5977/// Vector multiply subtract with scalar
5978///
5979/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_s32)
5980#[inline]
5981#[target_feature(enable = "neon")]
5982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5983#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
5984#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
5985#[rustc_legacy_const_generics(3)]
5986#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
5987#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
5988pub unsafe fn vmls_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x2_t) -> int32x2_t {
5989    static_assert_uimm_bits!(LANE, 1);
5990    vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
5991}
5992
5993/// Vector multiply subtract with scalar
5994///
5995/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_s32)
5996#[inline]
5997#[target_feature(enable = "neon")]
5998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
5999#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
6000#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6001#[rustc_legacy_const_generics(3)]
6002#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6003#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6004pub unsafe fn vmls_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t, c: int32x4_t) -> int32x2_t {
6005    static_assert_uimm_bits!(LANE, 2);
6006    vmls_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
6007}
6008
6009/// Vector multiply subtract with scalar
6010///
6011/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_s32)
6012#[inline]
6013#[target_feature(enable = "neon")]
6014#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6015#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
6016#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6017#[rustc_legacy_const_generics(3)]
6018#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6019#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6020pub unsafe fn vmlsq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x2_t) -> int32x4_t {
6021    static_assert_uimm_bits!(LANE, 1);
6022    vmlsq_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6023}
6024
6025/// Vector multiply subtract with scalar
6026///
6027/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_s32)
6028#[inline]
6029#[target_feature(enable = "neon")]
6030#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6031#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
6032#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6033#[rustc_legacy_const_generics(3)]
6034#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6035#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6036pub unsafe fn vmlsq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
6037    static_assert_uimm_bits!(LANE, 2);
6038    vmlsq_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6039}
6040
6041/// Vector multiply subtract with scalar
6042///
6043/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u16)
6044#[inline]
6045#[target_feature(enable = "neon")]
6046#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6047#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
6048#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6049#[rustc_legacy_const_generics(3)]
6050#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6051#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6052pub unsafe fn vmls_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x4_t) -> uint16x4_t {
6053    static_assert_uimm_bits!(LANE, 2);
6054    vmls_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6055}
6056
6057/// Vector multiply subtract with scalar
6058///
6059/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u16)
6060#[inline]
6061#[target_feature(enable = "neon")]
6062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6063#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
6064#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6065#[rustc_legacy_const_generics(3)]
6066#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6067#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6068pub unsafe fn vmls_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t, c: uint16x8_t) -> uint16x4_t {
6069    static_assert_uimm_bits!(LANE, 3);
6070    vmls_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6071}
6072
6073/// Vector multiply subtract with scalar
6074///
6075/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u16)
6076#[inline]
6077#[target_feature(enable = "neon")]
6078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6079#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
6080#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6081#[rustc_legacy_const_generics(3)]
6082#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6083#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6084pub unsafe fn vmlsq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x4_t) -> uint16x8_t {
6085    static_assert_uimm_bits!(LANE, 2);
6086    vmlsq_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6087}
6088
6089/// Vector multiply subtract with scalar
6090///
6091/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u16)
6092#[inline]
6093#[target_feature(enable = "neon")]
6094#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6095#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i16", LANE = 1))]
6096#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6097#[rustc_legacy_const_generics(3)]
6098#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6099#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6100pub unsafe fn vmlsq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
6101    static_assert_uimm_bits!(LANE, 3);
6102    vmlsq_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6103}
6104
6105/// Vector multiply subtract with scalar
6106///
6107/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_u32)
6108#[inline]
6109#[target_feature(enable = "neon")]
6110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6111#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
6112#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6113#[rustc_legacy_const_generics(3)]
6114#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6115#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6116pub unsafe fn vmls_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x2_t) -> uint32x2_t {
6117    static_assert_uimm_bits!(LANE, 1);
6118    vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
6119}
6120
6121/// Vector multiply subtract with scalar
6122///
6123/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_u32)
6124#[inline]
6125#[target_feature(enable = "neon")]
6126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6127#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
6128#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6129#[rustc_legacy_const_generics(3)]
6130#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6131#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6132pub unsafe fn vmls_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t, c: uint32x4_t) -> uint32x2_t {
6133    static_assert_uimm_bits!(LANE, 2);
6134    vmls_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
6135}
6136
6137/// Vector multiply subtract with scalar
6138///
6139/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_u32)
6140#[inline]
6141#[target_feature(enable = "neon")]
6142#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6143#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
6144#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6145#[rustc_legacy_const_generics(3)]
6146#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6147#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6148pub unsafe fn vmlsq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x2_t) -> uint32x4_t {
6149    static_assert_uimm_bits!(LANE, 1);
6150    vmlsq_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6151}
6152
6153/// Vector multiply subtract with scalar
6154///
6155/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_u32)
6156#[inline]
6157#[target_feature(enable = "neon")]
6158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6159#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.i32", LANE = 1))]
6160#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mls, LANE = 1))]
6161#[rustc_legacy_const_generics(3)]
6162#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6163#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6164pub unsafe fn vmlsq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
6165    static_assert_uimm_bits!(LANE, 2);
6166    vmlsq_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6167}
6168
6169/// Vector multiply subtract with scalar
6170///
6171/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_lane_f32)
6172#[inline]
6173#[target_feature(enable = "neon")]
6174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6175#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
6176#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 1))]
6177#[rustc_legacy_const_generics(3)]
6178#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6179#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6180pub unsafe fn vmls_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
6181    static_assert_uimm_bits!(LANE, 1);
6182    vmls_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
6183}
6184
6185/// Vector multiply subtract with scalar
6186///
6187/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmls_laneq_f32)
6188#[inline]
6189#[target_feature(enable = "neon")]
6190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6191#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
6192#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 1))]
6193#[rustc_legacy_const_generics(3)]
6194#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6195#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6196pub unsafe fn vmls_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x4_t) -> float32x2_t {
6197    static_assert_uimm_bits!(LANE, 2);
6198    vmls_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
6199}
6200
6201/// Vector multiply subtract with scalar
6202///
6203/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_lane_f32)
6204#[inline]
6205#[target_feature(enable = "neon")]
6206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6207#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
6208#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 1))]
6209#[rustc_legacy_const_generics(3)]
6210#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6211#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6212pub unsafe fn vmlsq_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x2_t) -> float32x4_t {
6213    static_assert_uimm_bits!(LANE, 1);
6214    vmlsq_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6215}
6216
6217/// Vector multiply subtract with scalar
6218///
6219/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsq_laneq_f32)
6220#[inline]
6221#[target_feature(enable = "neon")]
6222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6223#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmls.f32", LANE = 1))]
6224#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 1))]
6225#[rustc_legacy_const_generics(3)]
6226#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6227#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6228pub unsafe fn vmlsq_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
6229    static_assert_uimm_bits!(LANE, 2);
6230    vmlsq_f32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6231}
6232
6233/// Signed multiply-subtract long
6234///
6235/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s8)
6236#[inline]
6237#[target_feature(enable = "neon")]
6238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6239#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s8"))]
6240#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlsl))]
6241#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6242#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6243pub unsafe fn vmlsl_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
6244    simd_sub(a, vmull_s8(b, c))
6245}
6246
6247/// Signed multiply-subtract long
6248///
6249/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s16)
6250#[inline]
6251#[target_feature(enable = "neon")]
6252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6253#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
6254#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlsl))]
6255#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6256#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6257pub unsafe fn vmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
6258    simd_sub(a, vmull_s16(b, c))
6259}
6260
6261/// Signed multiply-subtract long
6262///
6263/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_s32)
6264#[inline]
6265#[target_feature(enable = "neon")]
6266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6267#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
6268#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlsl))]
6269#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6270#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6271pub unsafe fn vmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
6272    simd_sub(a, vmull_s32(b, c))
6273}
6274
6275/// Unsigned multiply-subtract long
6276///
6277/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u8)
6278#[inline]
6279#[target_feature(enable = "neon")]
6280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6281#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u8"))]
6282#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlsl))]
6283#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6284#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6285pub unsafe fn vmlsl_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
6286    simd_sub(a, vmull_u8(b, c))
6287}
6288
6289/// Unsigned multiply-subtract long
6290///
6291/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u16)
6292#[inline]
6293#[target_feature(enable = "neon")]
6294#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6295#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
6296#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlsl))]
6297#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6298#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6299pub unsafe fn vmlsl_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
6300    simd_sub(a, vmull_u16(b, c))
6301}
6302
6303/// Unsigned multiply-subtract long
6304///
6305/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_u32)
6306#[inline]
6307#[target_feature(enable = "neon")]
6308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6309#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32"))]
6310#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlsl))]
6311#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6312#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6313pub unsafe fn vmlsl_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
6314    simd_sub(a, vmull_u32(b, c))
6315}
6316
6317/// Vector widening multiply subtract with scalar
6318///
6319/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s16)
6320#[inline]
6321#[target_feature(enable = "neon")]
6322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6323#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16"))]
6324#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlsl))]
6325#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6326#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6327pub unsafe fn vmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
6328    vmlsl_s16(a, b, vdup_n_s16(c))
6329}
6330
6331/// Vector widening multiply subtract with scalar
6332///
6333/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_s32)
6334#[inline]
6335#[target_feature(enable = "neon")]
6336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6337#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32"))]
6338#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlsl))]
6339#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6340#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6341pub unsafe fn vmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
6342    vmlsl_s32(a, b, vdup_n_s32(c))
6343}
6344
6345/// Vector widening multiply subtract with scalar
6346///
6347/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u16)
6348#[inline]
6349#[target_feature(enable = "neon")]
6350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6351#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16"))]
6352#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlsl))]
6353#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6354#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6355pub unsafe fn vmlsl_n_u16(a: uint32x4_t, b: uint16x4_t, c: u16) -> uint32x4_t {
6356    vmlsl_u16(a, b, vdup_n_u16(c))
6357}
6358
6359/// Vector widening multiply subtract with scalar
6360///
6361/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_n_u32)
6362#[inline]
6363#[target_feature(enable = "neon")]
6364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6365#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32"))]
6366#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlsl))]
6367#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6368#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6369pub unsafe fn vmlsl_n_u32(a: uint64x2_t, b: uint32x2_t, c: u32) -> uint64x2_t {
6370    vmlsl_u32(a, b, vdup_n_u32(c))
6371}
6372
6373/// Vector widening multiply subtract with scalar
6374///
6375/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s16)
6376#[inline]
6377#[target_feature(enable = "neon")]
6378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6379#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
6380#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlsl, LANE = 1))]
6381#[rustc_legacy_const_generics(3)]
6382#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6383#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6384pub unsafe fn vmlsl_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
6385    static_assert_uimm_bits!(LANE, 2);
6386    vmlsl_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6387}
6388
6389/// Vector widening multiply subtract with scalar
6390///
6391/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s16)
6392#[inline]
6393#[target_feature(enable = "neon")]
6394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6395#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s16", LANE = 1))]
6396#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlsl, LANE = 1))]
6397#[rustc_legacy_const_generics(3)]
6398#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6399#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6400pub unsafe fn vmlsl_laneq_s16<const LANE: i32>(a: int32x4_t, b: int16x4_t, c: int16x8_t) -> int32x4_t {
6401    static_assert_uimm_bits!(LANE, 3);
6402    vmlsl_s16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6403}
6404
6405/// Vector widening multiply subtract with scalar
6406///
6407/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_s32)
6408#[inline]
6409#[target_feature(enable = "neon")]
6410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6411#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
6412#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlsl, LANE = 1))]
6413#[rustc_legacy_const_generics(3)]
6414#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6415#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6416pub unsafe fn vmlsl_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
6417    static_assert_uimm_bits!(LANE, 1);
6418    vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
6419}
6420
6421/// Vector widening multiply subtract with scalar
6422///
6423/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_s32)
6424#[inline]
6425#[target_feature(enable = "neon")]
6426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6427#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.s32", LANE = 1))]
6428#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smlsl, LANE = 1))]
6429#[rustc_legacy_const_generics(3)]
6430#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6431#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6432pub unsafe fn vmlsl_laneq_s32<const LANE: i32>(a: int64x2_t, b: int32x2_t, c: int32x4_t) -> int64x2_t {
6433    static_assert_uimm_bits!(LANE, 2);
6434    vmlsl_s32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
6435}
6436
6437/// Vector widening multiply subtract with scalar
6438///
6439/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u16)
6440#[inline]
6441#[target_feature(enable = "neon")]
6442#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6443#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
6444#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlsl, LANE = 1))]
6445#[rustc_legacy_const_generics(3)]
6446#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6447#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6448pub unsafe fn vmlsl_lane_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
6449    static_assert_uimm_bits!(LANE, 2);
6450    vmlsl_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6451}
6452
6453/// Vector widening multiply subtract with scalar
6454///
6455/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u16)
6456#[inline]
6457#[target_feature(enable = "neon")]
6458#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6459#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u16", LANE = 1))]
6460#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlsl, LANE = 1))]
6461#[rustc_legacy_const_generics(3)]
6462#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6463#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6464pub unsafe fn vmlsl_laneq_u16<const LANE: i32>(a: uint32x4_t, b: uint16x4_t, c: uint16x8_t) -> uint32x4_t {
6465    static_assert_uimm_bits!(LANE, 3);
6466    vmlsl_u16(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
6467}
6468
6469/// Vector widening multiply subtract with scalar
6470///
6471/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_lane_u32)
6472#[inline]
6473#[target_feature(enable = "neon")]
6474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6475#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
6476#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlsl, LANE = 1))]
6477#[rustc_legacy_const_generics(3)]
6478#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6479#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6480pub unsafe fn vmlsl_lane_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
6481    static_assert_uimm_bits!(LANE, 1);
6482    vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
6483}
6484
6485/// Vector widening multiply subtract with scalar
6486///
6487/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_laneq_u32)
6488#[inline]
6489#[target_feature(enable = "neon")]
6490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6491#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmlsl.u32", LANE = 1))]
6492#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umlsl, LANE = 1))]
6493#[rustc_legacy_const_generics(3)]
6494#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6495#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6496pub unsafe fn vmlsl_laneq_u32<const LANE: i32>(a: uint64x2_t, b: uint32x2_t, c: uint32x4_t) -> uint64x2_t {
6497    static_assert_uimm_bits!(LANE, 2);
6498    vmlsl_u32(a, b, simd_shuffle!(c, c, [LANE as u32, LANE as u32]))
6499}
6500
6501/// Negate
6502///
6503/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s8)
6504#[inline]
6505#[target_feature(enable = "neon")]
6506#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6507#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
6508#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(neg))]
6509#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6510#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6511pub unsafe fn vneg_s8(a: int8x8_t) -> int8x8_t {
6512    simd_neg(a)
6513}
6514
6515/// Negate
6516///
6517/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s8)
6518#[inline]
6519#[target_feature(enable = "neon")]
6520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6521#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s8"))]
6522#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(neg))]
6523#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6524#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6525pub unsafe fn vnegq_s8(a: int8x16_t) -> int8x16_t {
6526    simd_neg(a)
6527}
6528
6529/// Negate
6530///
6531/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s16)
6532#[inline]
6533#[target_feature(enable = "neon")]
6534#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6535#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
6536#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(neg))]
6537#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6538#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6539pub unsafe fn vneg_s16(a: int16x4_t) -> int16x4_t {
6540    simd_neg(a)
6541}
6542
6543/// Negate
6544///
6545/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s16)
6546#[inline]
6547#[target_feature(enable = "neon")]
6548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6549#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s16"))]
6550#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(neg))]
6551#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6552#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6553pub unsafe fn vnegq_s16(a: int16x8_t) -> int16x8_t {
6554    simd_neg(a)
6555}
6556
6557/// Negate
6558///
6559/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_s32)
6560#[inline]
6561#[target_feature(enable = "neon")]
6562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6563#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
6564#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(neg))]
6565#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6566#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6567pub unsafe fn vneg_s32(a: int32x2_t) -> int32x2_t {
6568    simd_neg(a)
6569}
6570
6571/// Negate
6572///
6573/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_s32)
6574#[inline]
6575#[target_feature(enable = "neon")]
6576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6577#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.s32"))]
6578#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(neg))]
6579#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6580#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6581pub unsafe fn vnegq_s32(a: int32x4_t) -> int32x4_t {
6582    simd_neg(a)
6583}
6584
6585/// Negate
6586///
6587/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vneg_f32)
6588#[inline]
6589#[target_feature(enable = "neon")]
6590#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6591#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
6592#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fneg))]
6593#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6594#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6595pub unsafe fn vneg_f32(a: float32x2_t) -> float32x2_t {
6596    simd_neg(a)
6597}
6598
6599/// Negate
6600///
6601/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vnegq_f32)
6602#[inline]
6603#[target_feature(enable = "neon")]
6604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6605#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vneg.f32"))]
6606#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fneg))]
6607#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6608#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6609pub unsafe fn vnegq_f32(a: float32x4_t) -> float32x4_t {
6610    simd_neg(a)
6611}
6612
6613/// Signed saturating negate
6614///
6615/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s8)
6616#[inline]
6617#[target_feature(enable = "neon")]
6618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6619#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
6620#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqneg))]
6621#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6622#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6623pub unsafe fn vqneg_s8(a: int8x8_t) -> int8x8_t {
6624    #[allow(improper_ctypes)]
6625    extern "unadjusted" {
6626        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i8")]
6627        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqneg.v8i8")]
6628        fn vqneg_s8_(a: int8x8_t) -> int8x8_t;
6629    }
6630vqneg_s8_(a)
6631}
6632
6633/// Signed saturating negate
6634///
6635/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s8)
6636#[inline]
6637#[target_feature(enable = "neon")]
6638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6639#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s8"))]
6640#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqneg))]
6641#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6642#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6643pub unsafe fn vqnegq_s8(a: int8x16_t) -> int8x16_t {
6644    #[allow(improper_ctypes)]
6645    extern "unadjusted" {
6646        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v16i8")]
6647        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqneg.v16i8")]
6648        fn vqnegq_s8_(a: int8x16_t) -> int8x16_t;
6649    }
6650vqnegq_s8_(a)
6651}
6652
6653/// Signed saturating negate
6654///
6655/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s16)
6656#[inline]
6657#[target_feature(enable = "neon")]
6658#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6659#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
6660#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqneg))]
6661#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6662#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6663pub unsafe fn vqneg_s16(a: int16x4_t) -> int16x4_t {
6664    #[allow(improper_ctypes)]
6665    extern "unadjusted" {
6666        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i16")]
6667        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqneg.v4i16")]
6668        fn vqneg_s16_(a: int16x4_t) -> int16x4_t;
6669    }
6670vqneg_s16_(a)
6671}
6672
6673/// Signed saturating negate
6674///
6675/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s16)
6676#[inline]
6677#[target_feature(enable = "neon")]
6678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6679#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s16"))]
6680#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqneg))]
6681#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6682#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6683pub unsafe fn vqnegq_s16(a: int16x8_t) -> int16x8_t {
6684    #[allow(improper_ctypes)]
6685    extern "unadjusted" {
6686        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v8i16")]
6687        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqneg.v8i16")]
6688        fn vqnegq_s16_(a: int16x8_t) -> int16x8_t;
6689    }
6690vqnegq_s16_(a)
6691}
6692
6693/// Signed saturating negate
6694///
6695/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqneg_s32)
6696#[inline]
6697#[target_feature(enable = "neon")]
6698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6699#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
6700#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqneg))]
6701#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6702#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6703pub unsafe fn vqneg_s32(a: int32x2_t) -> int32x2_t {
6704    #[allow(improper_ctypes)]
6705    extern "unadjusted" {
6706        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v2i32")]
6707        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqneg.v2i32")]
6708        fn vqneg_s32_(a: int32x2_t) -> int32x2_t;
6709    }
6710vqneg_s32_(a)
6711}
6712
6713/// Signed saturating negate
6714///
6715/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqnegq_s32)
6716#[inline]
6717#[target_feature(enable = "neon")]
6718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6719#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqneg.s32"))]
6720#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqneg))]
6721#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6722#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6723pub unsafe fn vqnegq_s32(a: int32x4_t) -> int32x4_t {
6724    #[allow(improper_ctypes)]
6725    extern "unadjusted" {
6726        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqneg.v4i32")]
6727        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqneg.v4i32")]
6728        fn vqnegq_s32_(a: int32x4_t) -> int32x4_t;
6729    }
6730vqnegq_s32_(a)
6731}
6732
6733/// Saturating subtract
6734///
6735/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u8)
6736#[inline]
6737#[target_feature(enable = "neon")]
6738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6739#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
6740#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqsub))]
6741#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6742#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6743pub unsafe fn vqsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
6744    #[allow(improper_ctypes)]
6745    extern "unadjusted" {
6746        #[cfg_attr(target_arch = "arm", link_name = "llvm.usub.sat.v8i8")]
6747        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqsub.v8i8")]
6748        fn vqsub_u8_(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
6749    }
6750vqsub_u8_(a, b)
6751}
6752
6753/// Saturating subtract
6754///
6755/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u8)
6756#[inline]
6757#[target_feature(enable = "neon")]
6758#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6759#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u8"))]
6760#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqsub))]
6761#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6762#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6763pub unsafe fn vqsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
6764    #[allow(improper_ctypes)]
6765    extern "unadjusted" {
6766        #[cfg_attr(target_arch = "arm", link_name = "llvm.usub.sat.v16i8")]
6767        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqsub.v16i8")]
6768        fn vqsubq_u8_(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
6769    }
6770vqsubq_u8_(a, b)
6771}
6772
6773/// Saturating subtract
6774///
6775/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u16)
6776#[inline]
6777#[target_feature(enable = "neon")]
6778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6779#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
6780#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqsub))]
6781#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6782#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6783pub unsafe fn vqsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
6784    #[allow(improper_ctypes)]
6785    extern "unadjusted" {
6786        #[cfg_attr(target_arch = "arm", link_name = "llvm.usub.sat.v4i16")]
6787        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqsub.v4i16")]
6788        fn vqsub_u16_(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
6789    }
6790vqsub_u16_(a, b)
6791}
6792
6793/// Saturating subtract
6794///
6795/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u16)
6796#[inline]
6797#[target_feature(enable = "neon")]
6798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6799#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u16"))]
6800#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqsub))]
6801#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6802#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6803pub unsafe fn vqsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
6804    #[allow(improper_ctypes)]
6805    extern "unadjusted" {
6806        #[cfg_attr(target_arch = "arm", link_name = "llvm.usub.sat.v8i16")]
6807        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqsub.v8i16")]
6808        fn vqsubq_u16_(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
6809    }
6810vqsubq_u16_(a, b)
6811}
6812
6813/// Saturating subtract
6814///
6815/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u32)
6816#[inline]
6817#[target_feature(enable = "neon")]
6818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6819#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
6820#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqsub))]
6821#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6822#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6823pub unsafe fn vqsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
6824    #[allow(improper_ctypes)]
6825    extern "unadjusted" {
6826        #[cfg_attr(target_arch = "arm", link_name = "llvm.usub.sat.v2i32")]
6827        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqsub.v2i32")]
6828        fn vqsub_u32_(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
6829    }
6830vqsub_u32_(a, b)
6831}
6832
6833/// Saturating subtract
6834///
6835/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u32)
6836#[inline]
6837#[target_feature(enable = "neon")]
6838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6839#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u32"))]
6840#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqsub))]
6841#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6842#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6843pub unsafe fn vqsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
6844    #[allow(improper_ctypes)]
6845    extern "unadjusted" {
6846        #[cfg_attr(target_arch = "arm", link_name = "llvm.usub.sat.v4i32")]
6847        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqsub.v4i32")]
6848        fn vqsubq_u32_(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
6849    }
6850vqsubq_u32_(a, b)
6851}
6852
6853/// Saturating subtract
6854///
6855/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_u64)
6856#[inline]
6857#[target_feature(enable = "neon")]
6858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6859#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u64"))]
6860#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqsub))]
6861#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6862#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6863pub unsafe fn vqsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
6864    #[allow(improper_ctypes)]
6865    extern "unadjusted" {
6866        #[cfg_attr(target_arch = "arm", link_name = "llvm.usub.sat.v1i64")]
6867        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqsub.v1i64")]
6868        fn vqsub_u64_(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t;
6869    }
6870vqsub_u64_(a, b)
6871}
6872
6873/// Saturating subtract
6874///
6875/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_u64)
6876#[inline]
6877#[target_feature(enable = "neon")]
6878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6879#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.u64"))]
6880#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqsub))]
6881#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6882#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6883pub unsafe fn vqsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
6884    #[allow(improper_ctypes)]
6885    extern "unadjusted" {
6886        #[cfg_attr(target_arch = "arm", link_name = "llvm.usub.sat.v2i64")]
6887        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqsub.v2i64")]
6888        fn vqsubq_u64_(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t;
6889    }
6890vqsubq_u64_(a, b)
6891}
6892
6893/// Saturating subtract
6894///
6895/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s8)
6896#[inline]
6897#[target_feature(enable = "neon")]
6898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6899#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
6900#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqsub))]
6901#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6902#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6903pub unsafe fn vqsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
6904    #[allow(improper_ctypes)]
6905    extern "unadjusted" {
6906        #[cfg_attr(target_arch = "arm", link_name = "llvm.ssub.sat.v8i8")]
6907        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqsub.v8i8")]
6908        fn vqsub_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
6909    }
6910vqsub_s8_(a, b)
6911}
6912
6913/// Saturating subtract
6914///
6915/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s8)
6916#[inline]
6917#[target_feature(enable = "neon")]
6918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6919#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s8"))]
6920#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqsub))]
6921#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6922#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6923pub unsafe fn vqsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
6924    #[allow(improper_ctypes)]
6925    extern "unadjusted" {
6926        #[cfg_attr(target_arch = "arm", link_name = "llvm.ssub.sat.v16i8")]
6927        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqsub.v16i8")]
6928        fn vqsubq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
6929    }
6930vqsubq_s8_(a, b)
6931}
6932
6933/// Saturating subtract
6934///
6935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s16)
6936#[inline]
6937#[target_feature(enable = "neon")]
6938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6939#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
6940#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqsub))]
6941#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6942#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6943pub unsafe fn vqsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
6944    #[allow(improper_ctypes)]
6945    extern "unadjusted" {
6946        #[cfg_attr(target_arch = "arm", link_name = "llvm.ssub.sat.v4i16")]
6947        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqsub.v4i16")]
6948        fn vqsub_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
6949    }
6950vqsub_s16_(a, b)
6951}
6952
6953/// Saturating subtract
6954///
6955/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s16)
6956#[inline]
6957#[target_feature(enable = "neon")]
6958#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6959#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s16"))]
6960#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqsub))]
6961#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6962#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6963pub unsafe fn vqsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
6964    #[allow(improper_ctypes)]
6965    extern "unadjusted" {
6966        #[cfg_attr(target_arch = "arm", link_name = "llvm.ssub.sat.v8i16")]
6967        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqsub.v8i16")]
6968        fn vqsubq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
6969    }
6970vqsubq_s16_(a, b)
6971}
6972
6973/// Saturating subtract
6974///
6975/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s32)
6976#[inline]
6977#[target_feature(enable = "neon")]
6978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6979#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
6980#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqsub))]
6981#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
6982#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
6983pub unsafe fn vqsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
6984    #[allow(improper_ctypes)]
6985    extern "unadjusted" {
6986        #[cfg_attr(target_arch = "arm", link_name = "llvm.ssub.sat.v2i32")]
6987        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqsub.v2i32")]
6988        fn vqsub_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
6989    }
6990vqsub_s32_(a, b)
6991}
6992
6993/// Saturating subtract
6994///
6995/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s32)
6996#[inline]
6997#[target_feature(enable = "neon")]
6998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
6999#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s32"))]
7000#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqsub))]
7001#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7002#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7003pub unsafe fn vqsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
7004    #[allow(improper_ctypes)]
7005    extern "unadjusted" {
7006        #[cfg_attr(target_arch = "arm", link_name = "llvm.ssub.sat.v4i32")]
7007        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqsub.v4i32")]
7008        fn vqsubq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
7009    }
7010vqsubq_s32_(a, b)
7011}
7012
7013/// Saturating subtract
7014///
7015/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsub_s64)
7016#[inline]
7017#[target_feature(enable = "neon")]
7018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7019#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
7020#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqsub))]
7021#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7022#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7023pub unsafe fn vqsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
7024    #[allow(improper_ctypes)]
7025    extern "unadjusted" {
7026        #[cfg_attr(target_arch = "arm", link_name = "llvm.ssub.sat.v1i64")]
7027        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqsub.v1i64")]
7028        fn vqsub_s64_(a: int64x1_t, b: int64x1_t) -> int64x1_t;
7029    }
7030vqsub_s64_(a, b)
7031}
7032
7033/// Saturating subtract
7034///
7035/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqsubq_s64)
7036#[inline]
7037#[target_feature(enable = "neon")]
7038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7039#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqsub.s64"))]
7040#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqsub))]
7041#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7042#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7043pub unsafe fn vqsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
7044    #[allow(improper_ctypes)]
7045    extern "unadjusted" {
7046        #[cfg_attr(target_arch = "arm", link_name = "llvm.ssub.sat.v2i64")]
7047        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqsub.v2i64")]
7048        fn vqsubq_s64_(a: int64x2_t, b: int64x2_t) -> int64x2_t;
7049    }
7050vqsubq_s64_(a, b)
7051}
7052
7053/// Halving add
7054///
7055/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u8)
7056#[inline]
7057#[target_feature(enable = "neon")]
7058#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7059#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
7060#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhadd))]
7061#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7062#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7063pub unsafe fn vhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
7064    #[allow(improper_ctypes)]
7065    extern "unadjusted" {
7066        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i8")]
7067        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhadd.v8i8")]
7068        fn vhadd_u8_(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
7069    }
7070vhadd_u8_(a, b)
7071}
7072
7073/// Halving add
7074///
7075/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u8)
7076#[inline]
7077#[target_feature(enable = "neon")]
7078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7079#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u8"))]
7080#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhadd))]
7081#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7082#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7083pub unsafe fn vhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
7084    #[allow(improper_ctypes)]
7085    extern "unadjusted" {
7086        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v16i8")]
7087        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhadd.v16i8")]
7088        fn vhaddq_u8_(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
7089    }
7090vhaddq_u8_(a, b)
7091}
7092
7093/// Halving add
7094///
7095/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u16)
7096#[inline]
7097#[target_feature(enable = "neon")]
7098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7099#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
7100#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhadd))]
7101#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7102#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7103pub unsafe fn vhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
7104    #[allow(improper_ctypes)]
7105    extern "unadjusted" {
7106        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i16")]
7107        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhadd.v4i16")]
7108        fn vhadd_u16_(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
7109    }
7110vhadd_u16_(a, b)
7111}
7112
7113/// Halving add
7114///
7115/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u16)
7116#[inline]
7117#[target_feature(enable = "neon")]
7118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7119#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u16"))]
7120#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhadd))]
7121#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7122#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7123pub unsafe fn vhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
7124    #[allow(improper_ctypes)]
7125    extern "unadjusted" {
7126        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v8i16")]
7127        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhadd.v8i16")]
7128        fn vhaddq_u16_(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
7129    }
7130vhaddq_u16_(a, b)
7131}
7132
7133/// Halving add
7134///
7135/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_u32)
7136#[inline]
7137#[target_feature(enable = "neon")]
7138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7139#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
7140#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhadd))]
7141#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7142#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7143pub unsafe fn vhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
7144    #[allow(improper_ctypes)]
7145    extern "unadjusted" {
7146        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v2i32")]
7147        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhadd.v2i32")]
7148        fn vhadd_u32_(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
7149    }
7150vhadd_u32_(a, b)
7151}
7152
7153/// Halving add
7154///
7155/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_u32)
7156#[inline]
7157#[target_feature(enable = "neon")]
7158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7159#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.u32"))]
7160#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhadd))]
7161#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7162#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7163pub unsafe fn vhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
7164    #[allow(improper_ctypes)]
7165    extern "unadjusted" {
7166        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhaddu.v4i32")]
7167        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhadd.v4i32")]
7168        fn vhaddq_u32_(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
7169    }
7170vhaddq_u32_(a, b)
7171}
7172
7173/// Halving add
7174///
7175/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s8)
7176#[inline]
7177#[target_feature(enable = "neon")]
7178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7179#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
7180#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shadd))]
7181#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7182#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7183pub unsafe fn vhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
7184    #[allow(improper_ctypes)]
7185    extern "unadjusted" {
7186        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i8")]
7187        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shadd.v8i8")]
7188        fn vhadd_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
7189    }
7190vhadd_s8_(a, b)
7191}
7192
7193/// Halving add
7194///
7195/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s8)
7196#[inline]
7197#[target_feature(enable = "neon")]
7198#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7199#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s8"))]
7200#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shadd))]
7201#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7202#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7203pub unsafe fn vhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
7204    #[allow(improper_ctypes)]
7205    extern "unadjusted" {
7206        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v16i8")]
7207        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shadd.v16i8")]
7208        fn vhaddq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
7209    }
7210vhaddq_s8_(a, b)
7211}
7212
7213/// Halving add
7214///
7215/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s16)
7216#[inline]
7217#[target_feature(enable = "neon")]
7218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7219#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
7220#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shadd))]
7221#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7222#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7223pub unsafe fn vhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
7224    #[allow(improper_ctypes)]
7225    extern "unadjusted" {
7226        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i16")]
7227        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shadd.v4i16")]
7228        fn vhadd_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
7229    }
7230vhadd_s16_(a, b)
7231}
7232
7233/// Halving add
7234///
7235/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s16)
7236#[inline]
7237#[target_feature(enable = "neon")]
7238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7239#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s16"))]
7240#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shadd))]
7241#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7242#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7243pub unsafe fn vhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
7244    #[allow(improper_ctypes)]
7245    extern "unadjusted" {
7246        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v8i16")]
7247        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shadd.v8i16")]
7248        fn vhaddq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
7249    }
7250vhaddq_s16_(a, b)
7251}
7252
7253/// Halving add
7254///
7255/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhadd_s32)
7256#[inline]
7257#[target_feature(enable = "neon")]
7258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7259#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
7260#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shadd))]
7261#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7262#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7263pub unsafe fn vhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
7264    #[allow(improper_ctypes)]
7265    extern "unadjusted" {
7266        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v2i32")]
7267        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shadd.v2i32")]
7268        fn vhadd_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
7269    }
7270vhadd_s32_(a, b)
7271}
7272
7273/// Halving add
7274///
7275/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhaddq_s32)
7276#[inline]
7277#[target_feature(enable = "neon")]
7278#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7279#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhadd.s32"))]
7280#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shadd))]
7281#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7282#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7283pub unsafe fn vhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
7284    #[allow(improper_ctypes)]
7285    extern "unadjusted" {
7286        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhadds.v4i32")]
7287        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shadd.v4i32")]
7288        fn vhaddq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
7289    }
7290vhaddq_s32_(a, b)
7291}
7292
7293/// Rounding halving add
7294///
7295/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u8)
7296#[inline]
7297#[target_feature(enable = "neon")]
7298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7299#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
7300#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urhadd))]
7301#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7302#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7303pub unsafe fn vrhadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
7304    #[allow(improper_ctypes)]
7305    extern "unadjusted" {
7306        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i8")]
7307        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urhadd.v8i8")]
7308        fn vrhadd_u8_(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
7309    }
7310vrhadd_u8_(a, b)
7311}
7312
7313/// Rounding halving add
7314///
7315/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u8)
7316#[inline]
7317#[target_feature(enable = "neon")]
7318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7319#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u8"))]
7320#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urhadd))]
7321#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7322#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7323pub unsafe fn vrhaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
7324    #[allow(improper_ctypes)]
7325    extern "unadjusted" {
7326        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v16i8")]
7327        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urhadd.v16i8")]
7328        fn vrhaddq_u8_(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
7329    }
7330vrhaddq_u8_(a, b)
7331}
7332
7333/// Rounding halving add
7334///
7335/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u16)
7336#[inline]
7337#[target_feature(enable = "neon")]
7338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7339#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
7340#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urhadd))]
7341#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7342#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7343pub unsafe fn vrhadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
7344    #[allow(improper_ctypes)]
7345    extern "unadjusted" {
7346        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i16")]
7347        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urhadd.v4i16")]
7348        fn vrhadd_u16_(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
7349    }
7350vrhadd_u16_(a, b)
7351}
7352
7353/// Rounding halving add
7354///
7355/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u16)
7356#[inline]
7357#[target_feature(enable = "neon")]
7358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7359#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u16"))]
7360#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urhadd))]
7361#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7362#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7363pub unsafe fn vrhaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
7364    #[allow(improper_ctypes)]
7365    extern "unadjusted" {
7366        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v8i16")]
7367        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urhadd.v8i16")]
7368        fn vrhaddq_u16_(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
7369    }
7370vrhaddq_u16_(a, b)
7371}
7372
7373/// Rounding halving add
7374///
7375/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_u32)
7376#[inline]
7377#[target_feature(enable = "neon")]
7378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7379#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
7380#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urhadd))]
7381#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7382#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7383pub unsafe fn vrhadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
7384    #[allow(improper_ctypes)]
7385    extern "unadjusted" {
7386        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v2i32")]
7387        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urhadd.v2i32")]
7388        fn vrhadd_u32_(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
7389    }
7390vrhadd_u32_(a, b)
7391}
7392
7393/// Rounding halving add
7394///
7395/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_u32)
7396#[inline]
7397#[target_feature(enable = "neon")]
7398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7399#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.u32"))]
7400#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urhadd))]
7401#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7402#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7403pub unsafe fn vrhaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
7404    #[allow(improper_ctypes)]
7405    extern "unadjusted" {
7406        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhaddu.v4i32")]
7407        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urhadd.v4i32")]
7408        fn vrhaddq_u32_(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
7409    }
7410vrhaddq_u32_(a, b)
7411}
7412
7413/// Rounding halving add
7414///
7415/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s8)
7416#[inline]
7417#[target_feature(enable = "neon")]
7418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7419#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
7420#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srhadd))]
7421#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7422#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7423pub unsafe fn vrhadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
7424    #[allow(improper_ctypes)]
7425    extern "unadjusted" {
7426        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i8")]
7427        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srhadd.v8i8")]
7428        fn vrhadd_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
7429    }
7430vrhadd_s8_(a, b)
7431}
7432
7433/// Rounding halving add
7434///
7435/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s8)
7436#[inline]
7437#[target_feature(enable = "neon")]
7438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7439#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s8"))]
7440#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srhadd))]
7441#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7442#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7443pub unsafe fn vrhaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
7444    #[allow(improper_ctypes)]
7445    extern "unadjusted" {
7446        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v16i8")]
7447        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srhadd.v16i8")]
7448        fn vrhaddq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
7449    }
7450vrhaddq_s8_(a, b)
7451}
7452
7453/// Rounding halving add
7454///
7455/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s16)
7456#[inline]
7457#[target_feature(enable = "neon")]
7458#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7459#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
7460#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srhadd))]
7461#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7462#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7463pub unsafe fn vrhadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
7464    #[allow(improper_ctypes)]
7465    extern "unadjusted" {
7466        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i16")]
7467        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srhadd.v4i16")]
7468        fn vrhadd_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
7469    }
7470vrhadd_s16_(a, b)
7471}
7472
7473/// Rounding halving add
7474///
7475/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s16)
7476#[inline]
7477#[target_feature(enable = "neon")]
7478#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7479#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s16"))]
7480#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srhadd))]
7481#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7482#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7483pub unsafe fn vrhaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
7484    #[allow(improper_ctypes)]
7485    extern "unadjusted" {
7486        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v8i16")]
7487        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srhadd.v8i16")]
7488        fn vrhaddq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
7489    }
7490vrhaddq_s16_(a, b)
7491}
7492
7493/// Rounding halving add
7494///
7495/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhadd_s32)
7496#[inline]
7497#[target_feature(enable = "neon")]
7498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7499#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
7500#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srhadd))]
7501#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7502#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7503pub unsafe fn vrhadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
7504    #[allow(improper_ctypes)]
7505    extern "unadjusted" {
7506        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v2i32")]
7507        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srhadd.v2i32")]
7508        fn vrhadd_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
7509    }
7510vrhadd_s32_(a, b)
7511}
7512
7513/// Rounding halving add
7514///
7515/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrhaddq_s32)
7516#[inline]
7517#[target_feature(enable = "neon")]
7518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7519#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vrhadd.s32"))]
7520#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srhadd))]
7521#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7522#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7523pub unsafe fn vrhaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
7524    #[allow(improper_ctypes)]
7525    extern "unadjusted" {
7526        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrhadds.v4i32")]
7527        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srhadd.v4i32")]
7528        fn vrhaddq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
7529    }
7530vrhaddq_s32_(a, b)
7531}
7532
7533/// Floating-point round to integral, to nearest with ties to even
7534///
7535/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndn_f32)
7536#[inline]
7537#[target_feature(enable = "neon")]
7538#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
7539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
7540#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frintn))]
7541#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7542#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7543pub unsafe fn vrndn_f32(a: float32x2_t) -> float32x2_t {
7544    #[allow(improper_ctypes)]
7545    extern "unadjusted" {
7546        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrintn.v2f32")]
7547        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frintn.v2f32")]
7548        fn vrndn_f32_(a: float32x2_t) -> float32x2_t;
7549    }
7550vrndn_f32_(a)
7551}
7552
7553/// Floating-point round to integral, to nearest with ties to even
7554///
7555/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrndnq_f32)
7556#[inline]
7557#[target_feature(enable = "neon")]
7558#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
7559#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrintn))]
7560#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frintn))]
7561#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7562#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7563pub unsafe fn vrndnq_f32(a: float32x4_t) -> float32x4_t {
7564    #[allow(improper_ctypes)]
7565    extern "unadjusted" {
7566        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrintn.v4f32")]
7567        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frintn.v4f32")]
7568        fn vrndnq_f32_(a: float32x4_t) -> float32x4_t;
7569    }
7570vrndnq_f32_(a)
7571}
7572
7573/// Saturating add
7574///
7575/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u8)
7576#[inline]
7577#[target_feature(enable = "neon")]
7578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7579#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u8"))]
7580#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqadd))]
7581#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7582#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7583pub unsafe fn vqadd_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
7584    #[allow(improper_ctypes)]
7585    extern "unadjusted" {
7586        #[cfg_attr(target_arch = "arm", link_name = "llvm.uadd.sat.v8i8")]
7587        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqadd.v8i8")]
7588        fn vqadd_u8_(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
7589    }
7590vqadd_u8_(a, b)
7591}
7592
7593/// Saturating add
7594///
7595/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u8)
7596#[inline]
7597#[target_feature(enable = "neon")]
7598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7599#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u8"))]
7600#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqadd))]
7601#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7602#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7603pub unsafe fn vqaddq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
7604    #[allow(improper_ctypes)]
7605    extern "unadjusted" {
7606        #[cfg_attr(target_arch = "arm", link_name = "llvm.uadd.sat.v16i8")]
7607        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqadd.v16i8")]
7608        fn vqaddq_u8_(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
7609    }
7610vqaddq_u8_(a, b)
7611}
7612
7613/// Saturating add
7614///
7615/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u16)
7616#[inline]
7617#[target_feature(enable = "neon")]
7618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7619#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u16"))]
7620#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqadd))]
7621#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7622#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7623pub unsafe fn vqadd_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
7624    #[allow(improper_ctypes)]
7625    extern "unadjusted" {
7626        #[cfg_attr(target_arch = "arm", link_name = "llvm.uadd.sat.v4i16")]
7627        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqadd.v4i16")]
7628        fn vqadd_u16_(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
7629    }
7630vqadd_u16_(a, b)
7631}
7632
7633/// Saturating add
7634///
7635/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u16)
7636#[inline]
7637#[target_feature(enable = "neon")]
7638#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7639#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u16"))]
7640#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqadd))]
7641#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7642#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7643pub unsafe fn vqaddq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
7644    #[allow(improper_ctypes)]
7645    extern "unadjusted" {
7646        #[cfg_attr(target_arch = "arm", link_name = "llvm.uadd.sat.v8i16")]
7647        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqadd.v8i16")]
7648        fn vqaddq_u16_(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
7649    }
7650vqaddq_u16_(a, b)
7651}
7652
7653/// Saturating add
7654///
7655/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u32)
7656#[inline]
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("vqadd.u32"))]
7660#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqadd))]
7661#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7662#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7663pub unsafe fn vqadd_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
7664    #[allow(improper_ctypes)]
7665    extern "unadjusted" {
7666        #[cfg_attr(target_arch = "arm", link_name = "llvm.uadd.sat.v2i32")]
7667        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqadd.v2i32")]
7668        fn vqadd_u32_(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
7669    }
7670vqadd_u32_(a, b)
7671}
7672
7673/// Saturating add
7674///
7675/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u32)
7676#[inline]
7677#[target_feature(enable = "neon")]
7678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7679#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u32"))]
7680#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqadd))]
7681#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7682#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7683pub unsafe fn vqaddq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
7684    #[allow(improper_ctypes)]
7685    extern "unadjusted" {
7686        #[cfg_attr(target_arch = "arm", link_name = "llvm.uadd.sat.v4i32")]
7687        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqadd.v4i32")]
7688        fn vqaddq_u32_(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
7689    }
7690vqaddq_u32_(a, b)
7691}
7692
7693/// Saturating add
7694///
7695/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_u64)
7696#[inline]
7697#[target_feature(enable = "neon")]
7698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7699#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
7700#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqadd))]
7701#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7702#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7703pub unsafe fn vqadd_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
7704    #[allow(improper_ctypes)]
7705    extern "unadjusted" {
7706        #[cfg_attr(target_arch = "arm", link_name = "llvm.uadd.sat.v1i64")]
7707        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqadd.v1i64")]
7708        fn vqadd_u64_(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t;
7709    }
7710vqadd_u64_(a, b)
7711}
7712
7713/// Saturating add
7714///
7715/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_u64)
7716#[inline]
7717#[target_feature(enable = "neon")]
7718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7719#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.u64"))]
7720#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqadd))]
7721#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7722#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7723pub unsafe fn vqaddq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
7724    #[allow(improper_ctypes)]
7725    extern "unadjusted" {
7726        #[cfg_attr(target_arch = "arm", link_name = "llvm.uadd.sat.v2i64")]
7727        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqadd.v2i64")]
7728        fn vqaddq_u64_(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t;
7729    }
7730vqaddq_u64_(a, b)
7731}
7732
7733/// Saturating add
7734///
7735/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s8)
7736#[inline]
7737#[target_feature(enable = "neon")]
7738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7739#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
7740#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqadd))]
7741#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7742#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7743pub unsafe fn vqadd_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
7744    #[allow(improper_ctypes)]
7745    extern "unadjusted" {
7746        #[cfg_attr(target_arch = "arm", link_name = "llvm.sadd.sat.v8i8")]
7747        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqadd.v8i8")]
7748        fn vqadd_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
7749    }
7750vqadd_s8_(a, b)
7751}
7752
7753/// Saturating add
7754///
7755/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s8)
7756#[inline]
7757#[target_feature(enable = "neon")]
7758#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7759#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s8"))]
7760#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqadd))]
7761#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7762#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7763pub unsafe fn vqaddq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
7764    #[allow(improper_ctypes)]
7765    extern "unadjusted" {
7766        #[cfg_attr(target_arch = "arm", link_name = "llvm.sadd.sat.v16i8")]
7767        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqadd.v16i8")]
7768        fn vqaddq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
7769    }
7770vqaddq_s8_(a, b)
7771}
7772
7773/// Saturating add
7774///
7775/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s16)
7776#[inline]
7777#[target_feature(enable = "neon")]
7778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7779#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s16"))]
7780#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqadd))]
7781#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7782#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7783pub unsafe fn vqadd_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
7784    #[allow(improper_ctypes)]
7785    extern "unadjusted" {
7786        #[cfg_attr(target_arch = "arm", link_name = "llvm.sadd.sat.v4i16")]
7787        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqadd.v4i16")]
7788        fn vqadd_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
7789    }
7790vqadd_s16_(a, b)
7791}
7792
7793/// Saturating add
7794///
7795/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s16)
7796#[inline]
7797#[target_feature(enable = "neon")]
7798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7799#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s16"))]
7800#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqadd))]
7801#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7802#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7803pub unsafe fn vqaddq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
7804    #[allow(improper_ctypes)]
7805    extern "unadjusted" {
7806        #[cfg_attr(target_arch = "arm", link_name = "llvm.sadd.sat.v8i16")]
7807        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqadd.v8i16")]
7808        fn vqaddq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
7809    }
7810vqaddq_s16_(a, b)
7811}
7812
7813/// Saturating add
7814///
7815/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s32)
7816#[inline]
7817#[target_feature(enable = "neon")]
7818#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7819#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s32"))]
7820#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqadd))]
7821#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7822#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7823pub unsafe fn vqadd_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
7824    #[allow(improper_ctypes)]
7825    extern "unadjusted" {
7826        #[cfg_attr(target_arch = "arm", link_name = "llvm.sadd.sat.v2i32")]
7827        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqadd.v2i32")]
7828        fn vqadd_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
7829    }
7830vqadd_s32_(a, b)
7831}
7832
7833/// Saturating add
7834///
7835/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s32)
7836#[inline]
7837#[target_feature(enable = "neon")]
7838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7839#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s32"))]
7840#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqadd))]
7841#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7842#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7843pub unsafe fn vqaddq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
7844    #[allow(improper_ctypes)]
7845    extern "unadjusted" {
7846        #[cfg_attr(target_arch = "arm", link_name = "llvm.sadd.sat.v4i32")]
7847        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqadd.v4i32")]
7848        fn vqaddq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
7849    }
7850vqaddq_s32_(a, b)
7851}
7852
7853/// Saturating add
7854///
7855/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqadd_s64)
7856#[inline]
7857#[target_feature(enable = "neon")]
7858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7859#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s64"))]
7860#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqadd))]
7861#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7862#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7863pub unsafe fn vqadd_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
7864    #[allow(improper_ctypes)]
7865    extern "unadjusted" {
7866        #[cfg_attr(target_arch = "arm", link_name = "llvm.sadd.sat.v1i64")]
7867        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqadd.v1i64")]
7868        fn vqadd_s64_(a: int64x1_t, b: int64x1_t) -> int64x1_t;
7869    }
7870vqadd_s64_(a, b)
7871}
7872
7873/// Saturating add
7874///
7875/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqaddq_s64)
7876#[inline]
7877#[target_feature(enable = "neon")]
7878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7879#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqadd.s64"))]
7880#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqadd))]
7881#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7882#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7883pub unsafe fn vqaddq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
7884    #[allow(improper_ctypes)]
7885    extern "unadjusted" {
7886        #[cfg_attr(target_arch = "arm", link_name = "llvm.sadd.sat.v2i64")]
7887        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqadd.v2i64")]
7888        fn vqaddq_s64_(a: int64x2_t, b: int64x2_t) -> int64x2_t;
7889    }
7890vqaddq_s64_(a, b)
7891}
7892
7893/// Load multiple single-element structures to one, two, three, or four registers
7894///
7895/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x2)
7896#[inline]
7897#[target_feature(enable = "neon")]
7898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7899#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
7900#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
7901#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7902#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7903pub unsafe fn vld1_s8_x2(a: *const i8) -> int8x8x2_t {
7904    #[allow(improper_ctypes)]
7905    extern "unadjusted" {
7906        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v8i8.p0i8")]
7907        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v8i8.p0i8")]
7908        fn vld1_s8_x2_(a: *const i8) -> int8x8x2_t;
7909    }
7910vld1_s8_x2_(a)
7911}
7912
7913/// Load multiple single-element structures to one, two, three, or four registers
7914///
7915/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x2)
7916#[inline]
7917#[target_feature(enable = "neon")]
7918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7919#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
7920#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
7921#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7922#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7923pub unsafe fn vld1_s16_x2(a: *const i16) -> int16x4x2_t {
7924    #[allow(improper_ctypes)]
7925    extern "unadjusted" {
7926        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4i16.p0i16")]
7927        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v4i16.p0i16")]
7928        fn vld1_s16_x2_(a: *const i16) -> int16x4x2_t;
7929    }
7930vld1_s16_x2_(a)
7931}
7932
7933/// Load multiple single-element structures to one, two, three, or four registers
7934///
7935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x2)
7936#[inline]
7937#[target_feature(enable = "neon")]
7938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
7940#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
7941#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7942#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7943pub unsafe fn vld1_s32_x2(a: *const i32) -> int32x2x2_t {
7944    #[allow(improper_ctypes)]
7945    extern "unadjusted" {
7946        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v2i32.p0i32")]
7947        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v2i32.p0i32")]
7948        fn vld1_s32_x2_(a: *const i32) -> int32x2x2_t;
7949    }
7950vld1_s32_x2_(a)
7951}
7952
7953/// Load multiple single-element structures to one, two, three, or four registers
7954///
7955/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x2)
7956#[inline]
7957#[target_feature(enable = "neon")]
7958#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7959#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
7960#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
7961#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7962#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7963pub unsafe fn vld1_s64_x2(a: *const i64) -> int64x1x2_t {
7964    #[allow(improper_ctypes)]
7965    extern "unadjusted" {
7966        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v1i64.p0i64")]
7967        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v1i64.p0i64")]
7968        fn vld1_s64_x2_(a: *const i64) -> int64x1x2_t;
7969    }
7970vld1_s64_x2_(a)
7971}
7972
7973/// Load multiple single-element structures to one, two, three, or four registers
7974///
7975/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x2)
7976#[inline]
7977#[target_feature(enable = "neon")]
7978#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7979#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
7980#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
7981#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
7982#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
7983pub unsafe fn vld1q_s8_x2(a: *const i8) -> int8x16x2_t {
7984    #[allow(improper_ctypes)]
7985    extern "unadjusted" {
7986        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v16i8.p0i8")]
7987        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v16i8.p0i8")]
7988        fn vld1q_s8_x2_(a: *const i8) -> int8x16x2_t;
7989    }
7990vld1q_s8_x2_(a)
7991}
7992
7993/// Load multiple single-element structures to one, two, three, or four registers
7994///
7995/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x2)
7996#[inline]
7997#[target_feature(enable = "neon")]
7998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
7999#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8000#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8001#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8002#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8003pub unsafe fn vld1q_s16_x2(a: *const i16) -> int16x8x2_t {
8004    #[allow(improper_ctypes)]
8005    extern "unadjusted" {
8006        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v8i16.p0i16")]
8007        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v8i16.p0i16")]
8008        fn vld1q_s16_x2_(a: *const i16) -> int16x8x2_t;
8009    }
8010vld1q_s16_x2_(a)
8011}
8012
8013/// Load multiple single-element structures to one, two, three, or four registers
8014///
8015/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x2)
8016#[inline]
8017#[target_feature(enable = "neon")]
8018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8020#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8021#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8022#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8023pub unsafe fn vld1q_s32_x2(a: *const i32) -> int32x4x2_t {
8024    #[allow(improper_ctypes)]
8025    extern "unadjusted" {
8026        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4i32.p0i32")]
8027        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v4i32.p0i32")]
8028        fn vld1q_s32_x2_(a: *const i32) -> int32x4x2_t;
8029    }
8030vld1q_s32_x2_(a)
8031}
8032
8033/// Load multiple single-element structures to one, two, three, or four registers
8034///
8035/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x2)
8036#[inline]
8037#[target_feature(enable = "neon")]
8038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8040#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8041#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8042#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8043pub unsafe fn vld1q_s64_x2(a: *const i64) -> int64x2x2_t {
8044    #[allow(improper_ctypes)]
8045    extern "unadjusted" {
8046        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v2i64.p0i64")]
8047        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v2i64.p0i64")]
8048        fn vld1q_s64_x2_(a: *const i64) -> int64x2x2_t;
8049    }
8050vld1q_s64_x2_(a)
8051}
8052
8053/// Load multiple single-element structures to one, two, three, or four registers
8054///
8055/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x3)
8056#[inline]
8057#[target_feature(enable = "neon")]
8058#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8059#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8060#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8061#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8062#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8063pub unsafe fn vld1_s8_x3(a: *const i8) -> int8x8x3_t {
8064    #[allow(improper_ctypes)]
8065    extern "unadjusted" {
8066        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v8i8.p0i8")]
8067        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v8i8.p0i8")]
8068        fn vld1_s8_x3_(a: *const i8) -> int8x8x3_t;
8069    }
8070vld1_s8_x3_(a)
8071}
8072
8073/// Load multiple single-element structures to one, two, three, or four registers
8074///
8075/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x3)
8076#[inline]
8077#[target_feature(enable = "neon")]
8078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8080#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8081#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8082#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8083pub unsafe fn vld1_s16_x3(a: *const i16) -> int16x4x3_t {
8084    #[allow(improper_ctypes)]
8085    extern "unadjusted" {
8086        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4i16.p0i16")]
8087        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v4i16.p0i16")]
8088        fn vld1_s16_x3_(a: *const i16) -> int16x4x3_t;
8089    }
8090vld1_s16_x3_(a)
8091}
8092
8093/// Load multiple single-element structures to one, two, three, or four registers
8094///
8095/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x3)
8096#[inline]
8097#[target_feature(enable = "neon")]
8098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8100#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8101#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8102#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8103pub unsafe fn vld1_s32_x3(a: *const i32) -> int32x2x3_t {
8104    #[allow(improper_ctypes)]
8105    extern "unadjusted" {
8106        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v2i32.p0i32")]
8107        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v2i32.p0i32")]
8108        fn vld1_s32_x3_(a: *const i32) -> int32x2x3_t;
8109    }
8110vld1_s32_x3_(a)
8111}
8112
8113/// Load multiple single-element structures to one, two, three, or four registers
8114///
8115/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x3)
8116#[inline]
8117#[target_feature(enable = "neon")]
8118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8119#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8120#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8121#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8122#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8123pub unsafe fn vld1_s64_x3(a: *const i64) -> int64x1x3_t {
8124    #[allow(improper_ctypes)]
8125    extern "unadjusted" {
8126        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v1i64.p0i64")]
8127        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v1i64.p0i64")]
8128        fn vld1_s64_x3_(a: *const i64) -> int64x1x3_t;
8129    }
8130vld1_s64_x3_(a)
8131}
8132
8133/// Load multiple single-element structures to one, two, three, or four registers
8134///
8135/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x3)
8136#[inline]
8137#[target_feature(enable = "neon")]
8138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8139#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8140#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8141#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8142#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8143pub unsafe fn vld1q_s8_x3(a: *const i8) -> int8x16x3_t {
8144    #[allow(improper_ctypes)]
8145    extern "unadjusted" {
8146        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v16i8.p0i8")]
8147        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v16i8.p0i8")]
8148        fn vld1q_s8_x3_(a: *const i8) -> int8x16x3_t;
8149    }
8150vld1q_s8_x3_(a)
8151}
8152
8153/// Load multiple single-element structures to one, two, three, or four registers
8154///
8155/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x3)
8156#[inline]
8157#[target_feature(enable = "neon")]
8158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8160#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8161#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8162#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8163pub unsafe fn vld1q_s16_x3(a: *const i16) -> int16x8x3_t {
8164    #[allow(improper_ctypes)]
8165    extern "unadjusted" {
8166        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v8i16.p0i16")]
8167        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v8i16.p0i16")]
8168        fn vld1q_s16_x3_(a: *const i16) -> int16x8x3_t;
8169    }
8170vld1q_s16_x3_(a)
8171}
8172
8173/// Load multiple single-element structures to one, two, three, or four registers
8174///
8175/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x3)
8176#[inline]
8177#[target_feature(enable = "neon")]
8178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8180#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8181#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8182#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8183pub unsafe fn vld1q_s32_x3(a: *const i32) -> int32x4x3_t {
8184    #[allow(improper_ctypes)]
8185    extern "unadjusted" {
8186        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4i32.p0i32")]
8187        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v4i32.p0i32")]
8188        fn vld1q_s32_x3_(a: *const i32) -> int32x4x3_t;
8189    }
8190vld1q_s32_x3_(a)
8191}
8192
8193/// Load multiple single-element structures to one, two, three, or four registers
8194///
8195/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x3)
8196#[inline]
8197#[target_feature(enable = "neon")]
8198#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8199#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8200#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8201#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8202#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8203pub unsafe fn vld1q_s64_x3(a: *const i64) -> int64x2x3_t {
8204    #[allow(improper_ctypes)]
8205    extern "unadjusted" {
8206        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v2i64.p0i64")]
8207        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v2i64.p0i64")]
8208        fn vld1q_s64_x3_(a: *const i64) -> int64x2x3_t;
8209    }
8210vld1q_s64_x3_(a)
8211}
8212
8213/// Load multiple single-element structures to one, two, three, or four registers
8214///
8215/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s8_x4)
8216#[inline]
8217#[target_feature(enable = "neon")]
8218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8220#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8221#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8222#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8223pub unsafe fn vld1_s8_x4(a: *const i8) -> int8x8x4_t {
8224    #[allow(improper_ctypes)]
8225    extern "unadjusted" {
8226        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v8i8.p0i8")]
8227        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v8i8.p0i8")]
8228        fn vld1_s8_x4_(a: *const i8) -> int8x8x4_t;
8229    }
8230vld1_s8_x4_(a)
8231}
8232
8233/// Load multiple single-element structures to one, two, three, or four registers
8234///
8235/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s16_x4)
8236#[inline]
8237#[target_feature(enable = "neon")]
8238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8239#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8240#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8241#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8242#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8243pub unsafe fn vld1_s16_x4(a: *const i16) -> int16x4x4_t {
8244    #[allow(improper_ctypes)]
8245    extern "unadjusted" {
8246        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4i16.p0i16")]
8247        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v4i16.p0i16")]
8248        fn vld1_s16_x4_(a: *const i16) -> int16x4x4_t;
8249    }
8250vld1_s16_x4_(a)
8251}
8252
8253/// Load multiple single-element structures to one, two, three, or four registers
8254///
8255/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s32_x4)
8256#[inline]
8257#[target_feature(enable = "neon")]
8258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8259#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8260#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8261#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8262#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8263pub unsafe fn vld1_s32_x4(a: *const i32) -> int32x2x4_t {
8264    #[allow(improper_ctypes)]
8265    extern "unadjusted" {
8266        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v2i32.p0i32")]
8267        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v2i32.p0i32")]
8268        fn vld1_s32_x4_(a: *const i32) -> int32x2x4_t;
8269    }
8270vld1_s32_x4_(a)
8271}
8272
8273/// Load multiple single-element structures to one, two, three, or four registers
8274///
8275/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_s64_x4)
8276#[inline]
8277#[target_feature(enable = "neon")]
8278#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8279#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8280#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8281#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8282#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8283pub unsafe fn vld1_s64_x4(a: *const i64) -> int64x1x4_t {
8284    #[allow(improper_ctypes)]
8285    extern "unadjusted" {
8286        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v1i64.p0i64")]
8287        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v1i64.p0i64")]
8288        fn vld1_s64_x4_(a: *const i64) -> int64x1x4_t;
8289    }
8290vld1_s64_x4_(a)
8291}
8292
8293/// Load multiple single-element structures to one, two, three, or four registers
8294///
8295/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s8_x4)
8296#[inline]
8297#[target_feature(enable = "neon")]
8298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8300#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8301#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8302#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8303pub unsafe fn vld1q_s8_x4(a: *const i8) -> int8x16x4_t {
8304    #[allow(improper_ctypes)]
8305    extern "unadjusted" {
8306        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v16i8.p0i8")]
8307        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v16i8.p0i8")]
8308        fn vld1q_s8_x4_(a: *const i8) -> int8x16x4_t;
8309    }
8310vld1q_s8_x4_(a)
8311}
8312
8313/// Load multiple single-element structures to one, two, three, or four registers
8314///
8315/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s16_x4)
8316#[inline]
8317#[target_feature(enable = "neon")]
8318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8320#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8321#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8322#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8323pub unsafe fn vld1q_s16_x4(a: *const i16) -> int16x8x4_t {
8324    #[allow(improper_ctypes)]
8325    extern "unadjusted" {
8326        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v8i16.p0i16")]
8327        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v8i16.p0i16")]
8328        fn vld1q_s16_x4_(a: *const i16) -> int16x8x4_t;
8329    }
8330vld1q_s16_x4_(a)
8331}
8332
8333/// Load multiple single-element structures to one, two, three, or four registers
8334///
8335/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s32_x4)
8336#[inline]
8337#[target_feature(enable = "neon")]
8338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8339#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8340#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8341#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8342#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8343pub unsafe fn vld1q_s32_x4(a: *const i32) -> int32x4x4_t {
8344    #[allow(improper_ctypes)]
8345    extern "unadjusted" {
8346        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4i32.p0i32")]
8347        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v4i32.p0i32")]
8348        fn vld1q_s32_x4_(a: *const i32) -> int32x4x4_t;
8349    }
8350vld1q_s32_x4_(a)
8351}
8352
8353/// Load multiple single-element structures to one, two, three, or four registers
8354///
8355/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_s64_x4)
8356#[inline]
8357#[target_feature(enable = "neon")]
8358#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8359#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8360#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8361#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8362#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8363pub unsafe fn vld1q_s64_x4(a: *const i64) -> int64x2x4_t {
8364    #[allow(improper_ctypes)]
8365    extern "unadjusted" {
8366        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v2i64.p0i64")]
8367        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v2i64.p0i64")]
8368        fn vld1q_s64_x4_(a: *const i64) -> int64x2x4_t;
8369    }
8370vld1q_s64_x4_(a)
8371}
8372
8373/// Load multiple single-element structures to one, two, three, or four registers
8374///
8375/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x2)
8376#[inline]
8377#[target_feature(enable = "neon")]
8378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8380#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8381#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8382#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8383pub unsafe fn vld1_u8_x2(a: *const u8) -> uint8x8x2_t {
8384    transmute(vld1_s8_x2(transmute(a)))
8385}
8386
8387/// Load multiple single-element structures to one, two, three, or four registers
8388///
8389/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x2)
8390#[inline]
8391#[target_feature(enable = "neon")]
8392#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8393#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8394#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8395#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8396#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8397pub unsafe fn vld1_u16_x2(a: *const u16) -> uint16x4x2_t {
8398    transmute(vld1_s16_x2(transmute(a)))
8399}
8400
8401/// Load multiple single-element structures to one, two, three, or four registers
8402///
8403/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x2)
8404#[inline]
8405#[target_feature(enable = "neon")]
8406#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8407#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8408#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8409#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8410#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8411pub unsafe fn vld1_u32_x2(a: *const u32) -> uint32x2x2_t {
8412    transmute(vld1_s32_x2(transmute(a)))
8413}
8414
8415/// Load multiple single-element structures to one, two, three, or four registers
8416///
8417/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x2)
8418#[inline]
8419#[target_feature(enable = "neon")]
8420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8422#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8423#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8424#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8425pub unsafe fn vld1_u64_x2(a: *const u64) -> uint64x1x2_t {
8426    transmute(vld1_s64_x2(transmute(a)))
8427}
8428
8429/// Load multiple single-element structures to one, two, three, or four registers
8430///
8431/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x2)
8432#[inline]
8433#[target_feature(enable = "neon")]
8434#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8435#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8436#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8437#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8438#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8439pub unsafe fn vld1q_u8_x2(a: *const u8) -> uint8x16x2_t {
8440    transmute(vld1q_s8_x2(transmute(a)))
8441}
8442
8443/// Load multiple single-element structures to one, two, three, or four registers
8444///
8445/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x2)
8446#[inline]
8447#[target_feature(enable = "neon")]
8448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8450#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8451#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8452#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8453pub unsafe fn vld1q_u16_x2(a: *const u16) -> uint16x8x2_t {
8454    transmute(vld1q_s16_x2(transmute(a)))
8455}
8456
8457/// Load multiple single-element structures to one, two, three, or four registers
8458///
8459/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x2)
8460#[inline]
8461#[target_feature(enable = "neon")]
8462#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8463#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8464#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8465#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8466#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8467pub unsafe fn vld1q_u32_x2(a: *const u32) -> uint32x4x2_t {
8468    transmute(vld1q_s32_x2(transmute(a)))
8469}
8470
8471/// Load multiple single-element structures to one, two, three, or four registers
8472///
8473/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x2)
8474#[inline]
8475#[target_feature(enable = "neon")]
8476#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8477#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8478#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8479#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8480#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8481pub unsafe fn vld1q_u64_x2(a: *const u64) -> uint64x2x2_t {
8482    transmute(vld1q_s64_x2(transmute(a)))
8483}
8484
8485/// Load multiple single-element structures to one, two, three, or four registers
8486///
8487/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x3)
8488#[inline]
8489#[target_feature(enable = "neon")]
8490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8492#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8493#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8494#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8495pub unsafe fn vld1_u8_x3(a: *const u8) -> uint8x8x3_t {
8496    transmute(vld1_s8_x3(transmute(a)))
8497}
8498
8499/// Load multiple single-element structures to one, two, three, or four registers
8500///
8501/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x3)
8502#[inline]
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(vld1))]
8506#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8507#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8508#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8509pub unsafe fn vld1_u16_x3(a: *const u16) -> uint16x4x3_t {
8510    transmute(vld1_s16_x3(transmute(a)))
8511}
8512
8513/// Load multiple single-element structures to one, two, three, or four registers
8514///
8515/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x3)
8516#[inline]
8517#[target_feature(enable = "neon")]
8518#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8519#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8520#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8521#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8522#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8523pub unsafe fn vld1_u32_x3(a: *const u32) -> uint32x2x3_t {
8524    transmute(vld1_s32_x3(transmute(a)))
8525}
8526
8527/// Load multiple single-element structures to one, two, three, or four registers
8528///
8529/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x3)
8530#[inline]
8531#[target_feature(enable = "neon")]
8532#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8533#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8534#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8535#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8536#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8537pub unsafe fn vld1_u64_x3(a: *const u64) -> uint64x1x3_t {
8538    transmute(vld1_s64_x3(transmute(a)))
8539}
8540
8541/// Load multiple single-element structures to one, two, three, or four registers
8542///
8543/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x3)
8544#[inline]
8545#[target_feature(enable = "neon")]
8546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8548#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8549#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8550#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8551pub unsafe fn vld1q_u8_x3(a: *const u8) -> uint8x16x3_t {
8552    transmute(vld1q_s8_x3(transmute(a)))
8553}
8554
8555/// Load multiple single-element structures to one, two, three, or four registers
8556///
8557/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x3)
8558#[inline]
8559#[target_feature(enable = "neon")]
8560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8562#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8563#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8564#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8565pub unsafe fn vld1q_u16_x3(a: *const u16) -> uint16x8x3_t {
8566    transmute(vld1q_s16_x3(transmute(a)))
8567}
8568
8569/// Load multiple single-element structures to one, two, three, or four registers
8570///
8571/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x3)
8572#[inline]
8573#[target_feature(enable = "neon")]
8574#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8575#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8576#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8577#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8578#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8579pub unsafe fn vld1q_u32_x3(a: *const u32) -> uint32x4x3_t {
8580    transmute(vld1q_s32_x3(transmute(a)))
8581}
8582
8583/// Load multiple single-element structures to one, two, three, or four registers
8584///
8585/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x3)
8586#[inline]
8587#[target_feature(enable = "neon")]
8588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8589#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8590#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8591#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8592#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8593pub unsafe fn vld1q_u64_x3(a: *const u64) -> uint64x2x3_t {
8594    transmute(vld1q_s64_x3(transmute(a)))
8595}
8596
8597/// Load multiple single-element structures to one, two, three, or four registers
8598///
8599/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u8_x4)
8600#[inline]
8601#[target_feature(enable = "neon")]
8602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8603#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8604#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8605#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8606#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8607pub unsafe fn vld1_u8_x4(a: *const u8) -> uint8x8x4_t {
8608    transmute(vld1_s8_x4(transmute(a)))
8609}
8610
8611/// Load multiple single-element structures to one, two, three, or four registers
8612///
8613/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u16_x4)
8614#[inline]
8615#[target_feature(enable = "neon")]
8616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8617#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8618#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8619#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8620#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8621pub unsafe fn vld1_u16_x4(a: *const u16) -> uint16x4x4_t {
8622    transmute(vld1_s16_x4(transmute(a)))
8623}
8624
8625/// Load multiple single-element structures to one, two, three, or four registers
8626///
8627/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u32_x4)
8628#[inline]
8629#[target_feature(enable = "neon")]
8630#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8631#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8632#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8633#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8634#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8635pub unsafe fn vld1_u32_x4(a: *const u32) -> uint32x2x4_t {
8636    transmute(vld1_s32_x4(transmute(a)))
8637}
8638
8639/// Load multiple single-element structures to one, two, three, or four registers
8640///
8641/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_u64_x4)
8642#[inline]
8643#[target_feature(enable = "neon")]
8644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8646#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8647#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8648#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8649pub unsafe fn vld1_u64_x4(a: *const u64) -> uint64x1x4_t {
8650    transmute(vld1_s64_x4(transmute(a)))
8651}
8652
8653/// Load multiple single-element structures to one, two, three, or four registers
8654///
8655/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u8_x4)
8656#[inline]
8657#[target_feature(enable = "neon")]
8658#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8659#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8660#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8661#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8662#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8663pub unsafe fn vld1q_u8_x4(a: *const u8) -> uint8x16x4_t {
8664    transmute(vld1q_s8_x4(transmute(a)))
8665}
8666
8667/// Load multiple single-element structures to one, two, three, or four registers
8668///
8669/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u16_x4)
8670#[inline]
8671#[target_feature(enable = "neon")]
8672#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8673#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8674#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8675#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8676#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8677pub unsafe fn vld1q_u16_x4(a: *const u16) -> uint16x8x4_t {
8678    transmute(vld1q_s16_x4(transmute(a)))
8679}
8680
8681/// Load multiple single-element structures to one, two, three, or four registers
8682///
8683/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u32_x4)
8684#[inline]
8685#[target_feature(enable = "neon")]
8686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8688#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8689#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8690#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8691pub unsafe fn vld1q_u32_x4(a: *const u32) -> uint32x4x4_t {
8692    transmute(vld1q_s32_x4(transmute(a)))
8693}
8694
8695/// Load multiple single-element structures to one, two, three, or four registers
8696///
8697/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_u64_x4)
8698#[inline]
8699#[target_feature(enable = "neon")]
8700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8701#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8702#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8703#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8704#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8705pub unsafe fn vld1q_u64_x4(a: *const u64) -> uint64x2x4_t {
8706    transmute(vld1q_s64_x4(transmute(a)))
8707}
8708
8709/// Load multiple single-element structures to one, two, three, or four registers
8710///
8711/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x2)
8712#[inline]
8713#[target_feature(enable = "neon")]
8714#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8715#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8716#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8717#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8718#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8719pub unsafe fn vld1_p8_x2(a: *const p8) -> poly8x8x2_t {
8720    transmute(vld1_s8_x2(transmute(a)))
8721}
8722
8723/// Load multiple single-element structures to one, two, three, or four registers
8724///
8725/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x3)
8726#[inline]
8727#[target_feature(enable = "neon")]
8728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8730#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8731#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8732#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8733pub unsafe fn vld1_p8_x3(a: *const p8) -> poly8x8x3_t {
8734    transmute(vld1_s8_x3(transmute(a)))
8735}
8736
8737/// Load multiple single-element structures to one, two, three, or four registers
8738///
8739/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p8_x4)
8740#[inline]
8741#[target_feature(enable = "neon")]
8742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8743#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8744#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8745#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8746#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8747pub unsafe fn vld1_p8_x4(a: *const p8) -> poly8x8x4_t {
8748    transmute(vld1_s8_x4(transmute(a)))
8749}
8750
8751/// Load multiple single-element structures to one, two, three, or four registers
8752///
8753/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x2)
8754#[inline]
8755#[target_feature(enable = "neon")]
8756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8758#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8759#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8760#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8761pub unsafe fn vld1q_p8_x2(a: *const p8) -> poly8x16x2_t {
8762    transmute(vld1q_s8_x2(transmute(a)))
8763}
8764
8765/// Load multiple single-element structures to one, two, three, or four registers
8766///
8767/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x3)
8768#[inline]
8769#[target_feature(enable = "neon")]
8770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8772#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8773#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8774#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8775pub unsafe fn vld1q_p8_x3(a: *const p8) -> poly8x16x3_t {
8776    transmute(vld1q_s8_x3(transmute(a)))
8777}
8778
8779/// Load multiple single-element structures to one, two, three, or four registers
8780///
8781/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p8_x4)
8782#[inline]
8783#[target_feature(enable = "neon")]
8784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8785#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8786#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8787#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8788#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8789pub unsafe fn vld1q_p8_x4(a: *const p8) -> poly8x16x4_t {
8790    transmute(vld1q_s8_x4(transmute(a)))
8791}
8792
8793/// Load multiple single-element structures to one, two, three, or four registers
8794///
8795/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x2)
8796#[inline]
8797#[target_feature(enable = "neon")]
8798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8799#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8800#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8801#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8802#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8803pub unsafe fn vld1_p16_x2(a: *const p16) -> poly16x4x2_t {
8804    transmute(vld1_s16_x2(transmute(a)))
8805}
8806
8807/// Load multiple single-element structures to one, two, three, or four registers
8808///
8809/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x3)
8810#[inline]
8811#[target_feature(enable = "neon")]
8812#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8813#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8814#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8815#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8816#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8817pub unsafe fn vld1_p16_x3(a: *const p16) -> poly16x4x3_t {
8818    transmute(vld1_s16_x3(transmute(a)))
8819}
8820
8821/// Load multiple single-element structures to one, two, three, or four registers
8822///
8823/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p16_x4)
8824#[inline]
8825#[target_feature(enable = "neon")]
8826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8827#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8828#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8829#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8830#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8831pub unsafe fn vld1_p16_x4(a: *const p16) -> poly16x4x4_t {
8832    transmute(vld1_s16_x4(transmute(a)))
8833}
8834
8835/// Load multiple single-element structures to one, two, three, or four registers
8836///
8837/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x2)
8838#[inline]
8839#[target_feature(enable = "neon")]
8840#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8841#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8842#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8843#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8844#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8845pub unsafe fn vld1q_p16_x2(a: *const p16) -> poly16x8x2_t {
8846    transmute(vld1q_s16_x2(transmute(a)))
8847}
8848
8849/// Load multiple single-element structures to one, two, three, or four registers
8850///
8851/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x3)
8852#[inline]
8853#[target_feature(enable = "neon")]
8854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8856#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8857#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8858#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8859pub unsafe fn vld1q_p16_x3(a: *const p16) -> poly16x8x3_t {
8860    transmute(vld1q_s16_x3(transmute(a)))
8861}
8862
8863/// Load multiple single-element structures to one, two, three, or four registers
8864///
8865/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p16_x4)
8866#[inline]
8867#[target_feature(enable = "neon")]
8868#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8869#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8870#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8871#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8872#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8873pub unsafe fn vld1q_p16_x4(a: *const p16) -> poly16x8x4_t {
8874    transmute(vld1q_s16_x4(transmute(a)))
8875}
8876
8877/// Load multiple single-element structures to one, two, three, or four registers
8878///
8879/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x2)
8880#[inline]
8881#[target_feature(enable = "neon,aes")]
8882#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8884#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8885#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8886#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8887pub unsafe fn vld1_p64_x2(a: *const p64) -> poly64x1x2_t {
8888    transmute(vld1_s64_x2(transmute(a)))
8889}
8890
8891/// Load multiple single-element structures to one, two, three, or four registers
8892///
8893/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x3)
8894#[inline]
8895#[target_feature(enable = "neon,aes")]
8896#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8898#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8899#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8900#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8901pub unsafe fn vld1_p64_x3(a: *const p64) -> poly64x1x3_t {
8902    transmute(vld1_s64_x3(transmute(a)))
8903}
8904
8905/// Load multiple single-element structures to one, two, three, or four registers
8906///
8907/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_p64_x4)
8908#[inline]
8909#[target_feature(enable = "neon,aes")]
8910#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8912#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8913#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8914#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8915pub unsafe fn vld1_p64_x4(a: *const p64) -> poly64x1x4_t {
8916    transmute(vld1_s64_x4(transmute(a)))
8917}
8918
8919/// Load multiple single-element structures to one, two, three, or four registers
8920///
8921/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x2)
8922#[inline]
8923#[target_feature(enable = "neon,aes")]
8924#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8926#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8927#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8928#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8929pub unsafe fn vld1q_p64_x2(a: *const p64) -> poly64x2x2_t {
8930    transmute(vld1q_s64_x2(transmute(a)))
8931}
8932
8933/// Load multiple single-element structures to one, two, three, or four registers
8934///
8935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x3)
8936#[inline]
8937#[target_feature(enable = "neon,aes")]
8938#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8940#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8941#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8942#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8943pub unsafe fn vld1q_p64_x3(a: *const p64) -> poly64x2x3_t {
8944    transmute(vld1q_s64_x3(transmute(a)))
8945}
8946
8947/// Load multiple single-element structures to one, two, three, or four registers
8948///
8949/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_p64_x4)
8950#[inline]
8951#[target_feature(enable = "neon,aes")]
8952#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
8953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
8954#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8955#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8956#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8957pub unsafe fn vld1q_p64_x4(a: *const p64) -> poly64x2x4_t {
8958    transmute(vld1q_s64_x4(transmute(a)))
8959}
8960
8961/// Load multiple single-element structures to one, two, three, or four registers
8962///
8963/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x2)
8964#[inline]
8965#[target_feature(enable = "neon")]
8966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8967#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8968#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8969#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8970#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8971pub unsafe fn vld1_f32_x2(a: *const f32) -> float32x2x2_t {
8972    #[allow(improper_ctypes)]
8973    extern "unadjusted" {
8974        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v2f32.p0f32")]
8975        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v2f32.p0f32")]
8976        fn vld1_f32_x2_(a: *const f32) -> float32x2x2_t;
8977    }
8978vld1_f32_x2_(a)
8979}
8980
8981/// Load multiple single-element structures to one, two, three, or four registers
8982///
8983/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x2)
8984#[inline]
8985#[target_feature(enable = "neon")]
8986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
8987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
8988#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
8989#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
8990#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
8991pub unsafe fn vld1q_f32_x2(a: *const f32) -> float32x4x2_t {
8992    #[allow(improper_ctypes)]
8993    extern "unadjusted" {
8994        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x2.v4f32.p0f32")]
8995        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x2.v4f32.p0f32")]
8996        fn vld1q_f32_x2_(a: *const f32) -> float32x4x2_t;
8997    }
8998vld1q_f32_x2_(a)
8999}
9000
9001/// Load multiple single-element structures to one, two, three, or four registers
9002///
9003/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x3)
9004#[inline]
9005#[target_feature(enable = "neon")]
9006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
9008#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
9009#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9010#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9011pub unsafe fn vld1_f32_x3(a: *const f32) -> float32x2x3_t {
9012    #[allow(improper_ctypes)]
9013    extern "unadjusted" {
9014        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v2f32.p0f32")]
9015        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v2f32.p0f32")]
9016        fn vld1_f32_x3_(a: *const f32) -> float32x2x3_t;
9017    }
9018vld1_f32_x3_(a)
9019}
9020
9021/// Load multiple single-element structures to one, two, three, or four registers
9022///
9023/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x3)
9024#[inline]
9025#[target_feature(enable = "neon")]
9026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
9028#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
9029#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9030#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9031pub unsafe fn vld1q_f32_x3(a: *const f32) -> float32x4x3_t {
9032    #[allow(improper_ctypes)]
9033    extern "unadjusted" {
9034        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x3.v4f32.p0f32")]
9035        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x3.v4f32.p0f32")]
9036        fn vld1q_f32_x3_(a: *const f32) -> float32x4x3_t;
9037    }
9038vld1q_f32_x3_(a)
9039}
9040
9041/// Load multiple single-element structures to one, two, three, or four registers
9042///
9043/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1_f32_x4)
9044#[inline]
9045#[target_feature(enable = "neon")]
9046#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9047#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
9048#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
9049#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9050#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9051pub unsafe fn vld1_f32_x4(a: *const f32) -> float32x2x4_t {
9052    #[allow(improper_ctypes)]
9053    extern "unadjusted" {
9054        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v2f32.p0f32")]
9055        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v2f32.p0f32")]
9056        fn vld1_f32_x4_(a: *const f32) -> float32x2x4_t;
9057    }
9058vld1_f32_x4_(a)
9059}
9060
9061/// Load multiple single-element structures to one, two, three, or four registers
9062///
9063/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld1q_f32_x4)
9064#[inline]
9065#[target_feature(enable = "neon")]
9066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld1))]
9068#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld1))]
9069#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9070#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9071pub unsafe fn vld1q_f32_x4(a: *const f32) -> float32x4x4_t {
9072    #[allow(improper_ctypes)]
9073    extern "unadjusted" {
9074        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld1x4.v4f32.p0f32")]
9075        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld1x4.v4f32.p0f32")]
9076        fn vld1q_f32_x4_(a: *const f32) -> float32x4x4_t;
9077    }
9078vld1q_f32_x4_(a)
9079}
9080
9081/// Load multiple 2-element structures to two registers
9082///
9083/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s8)
9084#[inline]
9085#[cfg(target_arch = "arm")]
9086#[target_feature(enable = "neon,v7")]
9087#[cfg_attr(test, assert_instr(vld2))]
9088#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9089pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
9090    #[allow(improper_ctypes)]
9091    extern "unadjusted" {
9092        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i8.p0i8")]
9093        fn vld2_s8_(ptr: *const i8, size: i32) -> int8x8x2_t;
9094    }
9095vld2_s8_(a as *const i8, 1)
9096}
9097
9098/// Load multiple 2-element structures to two registers
9099///
9100/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s8)
9101#[inline]
9102#[cfg(not(target_arch = "arm"))]
9103#[target_feature(enable = "neon")]
9104#[cfg_attr(test, assert_instr(ld2))]
9105#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9106pub unsafe fn vld2_s8(a: *const i8) -> int8x8x2_t {
9107    #[allow(improper_ctypes)]
9108    extern "unadjusted" {
9109        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2.v8i8.p0v8i8")]
9110        fn vld2_s8_(ptr: *const int8x8_t) -> int8x8x2_t;
9111    }
9112vld2_s8_(a as _)
9113}
9114
9115/// Load multiple 2-element structures to two registers
9116///
9117/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)
9118#[inline]
9119#[cfg(target_arch = "arm")]
9120#[target_feature(enable = "neon,v7")]
9121#[cfg_attr(test, assert_instr(vld2))]
9122#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9123pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
9124    #[allow(improper_ctypes)]
9125    extern "unadjusted" {
9126        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i16.p0i8")]
9127        fn vld2_s16_(ptr: *const i8, size: i32) -> int16x4x2_t;
9128    }
9129vld2_s16_(a as *const i8, 2)
9130}
9131
9132/// Load multiple 2-element structures to two registers
9133///
9134/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s16)
9135#[inline]
9136#[cfg(not(target_arch = "arm"))]
9137#[target_feature(enable = "neon")]
9138#[cfg_attr(test, assert_instr(ld2))]
9139#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9140pub unsafe fn vld2_s16(a: *const i16) -> int16x4x2_t {
9141    #[allow(improper_ctypes)]
9142    extern "unadjusted" {
9143        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2.v4i16.p0v4i16")]
9144        fn vld2_s16_(ptr: *const int16x4_t) -> int16x4x2_t;
9145    }
9146vld2_s16_(a as _)
9147}
9148
9149/// Load multiple 2-element structures to two registers
9150///
9151/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)
9152#[inline]
9153#[cfg(target_arch = "arm")]
9154#[target_feature(enable = "neon,v7")]
9155#[cfg_attr(test, assert_instr(vld2))]
9156#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9157pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
9158    #[allow(improper_ctypes)]
9159    extern "unadjusted" {
9160        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2i32.p0i8")]
9161        fn vld2_s32_(ptr: *const i8, size: i32) -> int32x2x2_t;
9162    }
9163vld2_s32_(a as *const i8, 4)
9164}
9165
9166/// Load multiple 2-element structures to two registers
9167///
9168/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s32)
9169#[inline]
9170#[cfg(not(target_arch = "arm"))]
9171#[target_feature(enable = "neon")]
9172#[cfg_attr(test, assert_instr(ld2))]
9173#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9174pub unsafe fn vld2_s32(a: *const i32) -> int32x2x2_t {
9175    #[allow(improper_ctypes)]
9176    extern "unadjusted" {
9177        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2.v2i32.p0v2i32")]
9178        fn vld2_s32_(ptr: *const int32x2_t) -> int32x2x2_t;
9179    }
9180vld2_s32_(a as _)
9181}
9182
9183/// Load multiple 2-element structures to two registers
9184///
9185/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)
9186#[inline]
9187#[cfg(target_arch = "arm")]
9188#[target_feature(enable = "neon,v7")]
9189#[cfg_attr(test, assert_instr(vld2))]
9190#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9191pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
9192    #[allow(improper_ctypes)]
9193    extern "unadjusted" {
9194        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v16i8.p0i8")]
9195        fn vld2q_s8_(ptr: *const i8, size: i32) -> int8x16x2_t;
9196    }
9197vld2q_s8_(a as *const i8, 1)
9198}
9199
9200/// Load multiple 2-element structures to two registers
9201///
9202/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s8)
9203#[inline]
9204#[cfg(not(target_arch = "arm"))]
9205#[target_feature(enable = "neon")]
9206#[cfg_attr(test, assert_instr(ld2))]
9207#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9208pub unsafe fn vld2q_s8(a: *const i8) -> int8x16x2_t {
9209    #[allow(improper_ctypes)]
9210    extern "unadjusted" {
9211        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2.v16i8.p0v16i8")]
9212        fn vld2q_s8_(ptr: *const int8x16_t) -> int8x16x2_t;
9213    }
9214vld2q_s8_(a as _)
9215}
9216
9217/// Load multiple 2-element structures to two registers
9218///
9219/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)
9220#[inline]
9221#[cfg(target_arch = "arm")]
9222#[target_feature(enable = "neon,v7")]
9223#[cfg_attr(test, assert_instr(vld2))]
9224#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9225pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
9226    #[allow(improper_ctypes)]
9227    extern "unadjusted" {
9228        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v8i16.p0i8")]
9229        fn vld2q_s16_(ptr: *const i8, size: i32) -> int16x8x2_t;
9230    }
9231vld2q_s16_(a as *const i8, 2)
9232}
9233
9234/// Load multiple 2-element structures to two registers
9235///
9236/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s16)
9237#[inline]
9238#[cfg(not(target_arch = "arm"))]
9239#[target_feature(enable = "neon")]
9240#[cfg_attr(test, assert_instr(ld2))]
9241#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9242pub unsafe fn vld2q_s16(a: *const i16) -> int16x8x2_t {
9243    #[allow(improper_ctypes)]
9244    extern "unadjusted" {
9245        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2.v8i16.p0v8i16")]
9246        fn vld2q_s16_(ptr: *const int16x8_t) -> int16x8x2_t;
9247    }
9248vld2q_s16_(a as _)
9249}
9250
9251/// Load multiple 2-element structures to two registers
9252///
9253/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)
9254#[inline]
9255#[cfg(target_arch = "arm")]
9256#[target_feature(enable = "neon,v7")]
9257#[cfg_attr(test, assert_instr(vld2))]
9258#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9259pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
9260    #[allow(improper_ctypes)]
9261    extern "unadjusted" {
9262        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4i32.p0i8")]
9263        fn vld2q_s32_(ptr: *const i8, size: i32) -> int32x4x2_t;
9264    }
9265vld2q_s32_(a as *const i8, 4)
9266}
9267
9268/// Load multiple 2-element structures to two registers
9269///
9270/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_s32)
9271#[inline]
9272#[cfg(not(target_arch = "arm"))]
9273#[target_feature(enable = "neon")]
9274#[cfg_attr(test, assert_instr(ld2))]
9275#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9276pub unsafe fn vld2q_s32(a: *const i32) -> int32x4x2_t {
9277    #[allow(improper_ctypes)]
9278    extern "unadjusted" {
9279        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2.v4i32.p0v4i32")]
9280        fn vld2q_s32_(ptr: *const int32x4_t) -> int32x4x2_t;
9281    }
9282vld2q_s32_(a as _)
9283}
9284
9285/// Load multiple 2-element structures to two registers
9286///
9287/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)
9288#[inline]
9289#[cfg(target_arch = "arm")]
9290#[target_feature(enable = "neon,v7")]
9291#[cfg_attr(test, assert_instr(nop))]
9292#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9293pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
9294    #[allow(improper_ctypes)]
9295    extern "unadjusted" {
9296        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v1i64.p0i8")]
9297        fn vld2_s64_(ptr: *const i8, size: i32) -> int64x1x2_t;
9298    }
9299vld2_s64_(a as *const i8, 8)
9300}
9301
9302/// Load multiple 2-element structures to two registers
9303///
9304/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_s64)
9305#[inline]
9306#[cfg(not(target_arch = "arm"))]
9307#[target_feature(enable = "neon")]
9308#[cfg_attr(test, assert_instr(nop))]
9309#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9310pub unsafe fn vld2_s64(a: *const i64) -> int64x1x2_t {
9311    #[allow(improper_ctypes)]
9312    extern "unadjusted" {
9313        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2.v1i64.p0v1i64")]
9314        fn vld2_s64_(ptr: *const int64x1_t) -> int64x1x2_t;
9315    }
9316vld2_s64_(a as _)
9317}
9318
9319/// Load multiple 2-element structures to two registers
9320///
9321/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u8)
9322#[inline]
9323#[target_feature(enable = "neon")]
9324#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9325#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9326#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9327#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9328#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9329pub unsafe fn vld2_u8(a: *const u8) -> uint8x8x2_t {
9330    transmute(vld2_s8(transmute(a)))
9331}
9332
9333/// Load multiple 2-element structures to two registers
9334///
9335/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u16)
9336#[inline]
9337#[target_feature(enable = "neon")]
9338#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9339#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9340#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9341#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9342#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9343pub unsafe fn vld2_u16(a: *const u16) -> uint16x4x2_t {
9344    transmute(vld2_s16(transmute(a)))
9345}
9346
9347/// Load multiple 2-element structures to two registers
9348///
9349/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u32)
9350#[inline]
9351#[target_feature(enable = "neon")]
9352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9354#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9355#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9356#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9357pub unsafe fn vld2_u32(a: *const u32) -> uint32x2x2_t {
9358    transmute(vld2_s32(transmute(a)))
9359}
9360
9361/// Load multiple 2-element structures to two registers
9362///
9363/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u8)
9364#[inline]
9365#[target_feature(enable = "neon")]
9366#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9367#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9368#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9369#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9370#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9371pub unsafe fn vld2q_u8(a: *const u8) -> uint8x16x2_t {
9372    transmute(vld2q_s8(transmute(a)))
9373}
9374
9375/// Load multiple 2-element structures to two registers
9376///
9377/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u16)
9378#[inline]
9379#[target_feature(enable = "neon")]
9380#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9381#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9382#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9383#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9384#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9385pub unsafe fn vld2q_u16(a: *const u16) -> uint16x8x2_t {
9386    transmute(vld2q_s16(transmute(a)))
9387}
9388
9389/// Load multiple 2-element structures to two registers
9390///
9391/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_u32)
9392#[inline]
9393#[target_feature(enable = "neon")]
9394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9396#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9397#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9398#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9399pub unsafe fn vld2q_u32(a: *const u32) -> uint32x4x2_t {
9400    transmute(vld2q_s32(transmute(a)))
9401}
9402
9403/// Load multiple 2-element structures to two registers
9404///
9405/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p8)
9406#[inline]
9407#[target_feature(enable = "neon")]
9408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9410#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9411#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9412#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9413pub unsafe fn vld2_p8(a: *const p8) -> poly8x8x2_t {
9414    transmute(vld2_s8(transmute(a)))
9415}
9416
9417/// Load multiple 2-element structures to two registers
9418///
9419/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p16)
9420#[inline]
9421#[target_feature(enable = "neon")]
9422#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9423#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9424#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9425#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9426#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9427pub unsafe fn vld2_p16(a: *const p16) -> poly16x4x2_t {
9428    transmute(vld2_s16(transmute(a)))
9429}
9430
9431/// Load multiple 2-element structures to two registers
9432///
9433/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p8)
9434#[inline]
9435#[target_feature(enable = "neon")]
9436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9438#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9439#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9440#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9441pub unsafe fn vld2q_p8(a: *const p8) -> poly8x16x2_t {
9442    transmute(vld2q_s8(transmute(a)))
9443}
9444
9445/// Load multiple 2-element structures to two registers
9446///
9447/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_p16)
9448#[inline]
9449#[target_feature(enable = "neon")]
9450#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9451#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9452#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2))]
9453#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9454#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9455pub unsafe fn vld2q_p16(a: *const p16) -> poly16x8x2_t {
9456    transmute(vld2q_s16(transmute(a)))
9457}
9458
9459/// Load multiple 2-element structures to two registers
9460///
9461/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_u64)
9462#[inline]
9463#[target_feature(enable = "neon")]
9464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9465#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
9466#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
9467#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9468#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9469pub unsafe fn vld2_u64(a: *const u64) -> uint64x1x2_t {
9470    transmute(vld2_s64(transmute(a)))
9471}
9472
9473/// Load multiple 2-element structures to two registers
9474///
9475/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_p64)
9476#[inline]
9477#[target_feature(enable = "neon,aes")]
9478#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9479#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
9480#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
9481#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9482#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9483pub unsafe fn vld2_p64(a: *const p64) -> poly64x1x2_t {
9484    transmute(vld2_s64(transmute(a)))
9485}
9486
9487/// Load multiple 2-element structures to two registers
9488///
9489/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)
9490#[inline]
9491#[cfg(target_arch = "arm")]
9492#[target_feature(enable = "neon,v7")]
9493#[cfg_attr(test, assert_instr(vld2))]
9494#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9495pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
9496    #[allow(improper_ctypes)]
9497    extern "unadjusted" {
9498        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v2f32.p0i8")]
9499        fn vld2_f32_(ptr: *const i8, size: i32) -> float32x2x2_t;
9500    }
9501vld2_f32_(a as *const i8, 4)
9502}
9503
9504/// Load multiple 2-element structures to two registers
9505///
9506/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_f32)
9507#[inline]
9508#[cfg(not(target_arch = "arm"))]
9509#[target_feature(enable = "neon")]
9510#[cfg_attr(test, assert_instr(ld2))]
9511#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9512pub unsafe fn vld2_f32(a: *const f32) -> float32x2x2_t {
9513    #[allow(improper_ctypes)]
9514    extern "unadjusted" {
9515        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2.v2f32.p0v2f32")]
9516        fn vld2_f32_(ptr: *const float32x2_t) -> float32x2x2_t;
9517    }
9518vld2_f32_(a as _)
9519}
9520
9521/// Load multiple 2-element structures to two registers
9522///
9523/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)
9524#[inline]
9525#[cfg(target_arch = "arm")]
9526#[target_feature(enable = "neon,v7")]
9527#[cfg_attr(test, assert_instr(vld2))]
9528#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9529pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
9530    #[allow(improper_ctypes)]
9531    extern "unadjusted" {
9532        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2.v4f32.p0i8")]
9533        fn vld2q_f32_(ptr: *const i8, size: i32) -> float32x4x2_t;
9534    }
9535vld2q_f32_(a as *const i8, 4)
9536}
9537
9538/// Load multiple 2-element structures to two registers
9539///
9540/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_f32)
9541#[inline]
9542#[cfg(not(target_arch = "arm"))]
9543#[target_feature(enable = "neon")]
9544#[cfg_attr(test, assert_instr(ld2))]
9545#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9546pub unsafe fn vld2q_f32(a: *const f32) -> float32x4x2_t {
9547    #[allow(improper_ctypes)]
9548    extern "unadjusted" {
9549        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2.v4f32.p0v4f32")]
9550        fn vld2q_f32_(ptr: *const float32x4_t) -> float32x4x2_t;
9551    }
9552vld2q_f32_(a as _)
9553}
9554
9555/// Load single 2-element structure and replicate to all lanes of two registers
9556///
9557/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)
9558#[inline]
9559#[cfg(target_arch = "arm")]
9560#[target_feature(enable = "neon,v7")]
9561#[cfg_attr(test, assert_instr(vld2))]
9562#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9563pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
9564    #[allow(improper_ctypes)]
9565    extern "unadjusted" {
9566        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i8.p0i8")]
9567        fn vld2_dup_s8_(ptr: *const i8, size: i32) -> int8x8x2_t;
9568    }
9569vld2_dup_s8_(a as *const i8, 1)
9570}
9571
9572/// Load single 2-element structure and replicate to all lanes of two registers
9573///
9574/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s8)
9575#[inline]
9576#[cfg(not(target_arch = "arm"))]
9577#[target_feature(enable = "neon")]
9578#[cfg_attr(test, assert_instr(ld2r))]
9579#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9580pub unsafe fn vld2_dup_s8(a: *const i8) -> int8x8x2_t {
9581    #[allow(improper_ctypes)]
9582    extern "unadjusted" {
9583        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2r.v8i8.p0i8")]
9584        fn vld2_dup_s8_(ptr: *const i8) -> int8x8x2_t;
9585    }
9586vld2_dup_s8_(a as _)
9587}
9588
9589/// Load single 2-element structure and replicate to all lanes of two registers
9590///
9591/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)
9592#[inline]
9593#[cfg(target_arch = "arm")]
9594#[target_feature(enable = "neon,v7")]
9595#[cfg_attr(test, assert_instr(vld2))]
9596#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9597pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
9598    #[allow(improper_ctypes)]
9599    extern "unadjusted" {
9600        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i16.p0i8")]
9601        fn vld2_dup_s16_(ptr: *const i8, size: i32) -> int16x4x2_t;
9602    }
9603vld2_dup_s16_(a as *const i8, 2)
9604}
9605
9606/// Load single 2-element structure and replicate to all lanes of two registers
9607///
9608/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s16)
9609#[inline]
9610#[cfg(not(target_arch = "arm"))]
9611#[target_feature(enable = "neon")]
9612#[cfg_attr(test, assert_instr(ld2r))]
9613#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9614pub unsafe fn vld2_dup_s16(a: *const i16) -> int16x4x2_t {
9615    #[allow(improper_ctypes)]
9616    extern "unadjusted" {
9617        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2r.v4i16.p0i16")]
9618        fn vld2_dup_s16_(ptr: *const i16) -> int16x4x2_t;
9619    }
9620vld2_dup_s16_(a as _)
9621}
9622
9623/// Load single 2-element structure and replicate to all lanes of two registers
9624///
9625/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)
9626#[inline]
9627#[cfg(target_arch = "arm")]
9628#[target_feature(enable = "neon,v7")]
9629#[cfg_attr(test, assert_instr(vld2))]
9630#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9631pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
9632    #[allow(improper_ctypes)]
9633    extern "unadjusted" {
9634        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2i32.p0i8")]
9635        fn vld2_dup_s32_(ptr: *const i8, size: i32) -> int32x2x2_t;
9636    }
9637vld2_dup_s32_(a as *const i8, 4)
9638}
9639
9640/// Load single 2-element structure and replicate to all lanes of two registers
9641///
9642/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s32)
9643#[inline]
9644#[cfg(not(target_arch = "arm"))]
9645#[target_feature(enable = "neon")]
9646#[cfg_attr(test, assert_instr(ld2r))]
9647#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9648pub unsafe fn vld2_dup_s32(a: *const i32) -> int32x2x2_t {
9649    #[allow(improper_ctypes)]
9650    extern "unadjusted" {
9651        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2r.v2i32.p0i32")]
9652        fn vld2_dup_s32_(ptr: *const i32) -> int32x2x2_t;
9653    }
9654vld2_dup_s32_(a as _)
9655}
9656
9657/// Load single 2-element structure and replicate to all lanes of two registers
9658///
9659/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)
9660#[inline]
9661#[cfg(target_arch = "arm")]
9662#[target_feature(enable = "neon,v7")]
9663#[cfg_attr(test, assert_instr(vld2))]
9664#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9665pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
9666    #[allow(improper_ctypes)]
9667    extern "unadjusted" {
9668        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v16i8.p0i8")]
9669        fn vld2q_dup_s8_(ptr: *const i8, size: i32) -> int8x16x2_t;
9670    }
9671vld2q_dup_s8_(a as *const i8, 1)
9672}
9673
9674/// Load single 2-element structure and replicate to all lanes of two registers
9675///
9676/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s8)
9677#[inline]
9678#[cfg(not(target_arch = "arm"))]
9679#[target_feature(enable = "neon")]
9680#[cfg_attr(test, assert_instr(ld2r))]
9681#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9682pub unsafe fn vld2q_dup_s8(a: *const i8) -> int8x16x2_t {
9683    #[allow(improper_ctypes)]
9684    extern "unadjusted" {
9685        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2r.v16i8.p0i8")]
9686        fn vld2q_dup_s8_(ptr: *const i8) -> int8x16x2_t;
9687    }
9688vld2q_dup_s8_(a as _)
9689}
9690
9691/// Load single 2-element structure and replicate to all lanes of two registers
9692///
9693/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s16)
9694#[inline]
9695#[cfg(target_arch = "arm")]
9696#[target_feature(enable = "neon,v7")]
9697#[cfg_attr(test, assert_instr(vld2))]
9698#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9699pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
9700    #[allow(improper_ctypes)]
9701    extern "unadjusted" {
9702        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v8i16.p0i8")]
9703        fn vld2q_dup_s16_(ptr: *const i8, size: i32) -> int16x8x2_t;
9704    }
9705vld2q_dup_s16_(a as *const i8, 2)
9706}
9707
9708/// Load single 2-element structure and replicate to all lanes of two registers
9709///
9710/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s16)
9711#[inline]
9712#[cfg(not(target_arch = "arm"))]
9713#[target_feature(enable = "neon")]
9714#[cfg_attr(test, assert_instr(ld2r))]
9715#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9716pub unsafe fn vld2q_dup_s16(a: *const i16) -> int16x8x2_t {
9717    #[allow(improper_ctypes)]
9718    extern "unadjusted" {
9719        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2r.v8i16.p0i16")]
9720        fn vld2q_dup_s16_(ptr: *const i16) -> int16x8x2_t;
9721    }
9722vld2q_dup_s16_(a as _)
9723}
9724
9725/// Load single 2-element structure and replicate to all lanes of two registers
9726///
9727/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s32)
9728#[inline]
9729#[cfg(target_arch = "arm")]
9730#[target_feature(enable = "neon,v7")]
9731#[cfg_attr(test, assert_instr(vld2))]
9732#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9733pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
9734    #[allow(improper_ctypes)]
9735    extern "unadjusted" {
9736        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4i32.p0i8")]
9737        fn vld2q_dup_s32_(ptr: *const i8, size: i32) -> int32x4x2_t;
9738    }
9739vld2q_dup_s32_(a as *const i8, 4)
9740}
9741
9742/// Load single 2-element structure and replicate to all lanes of two registers
9743///
9744/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_s32)
9745#[inline]
9746#[cfg(not(target_arch = "arm"))]
9747#[target_feature(enable = "neon")]
9748#[cfg_attr(test, assert_instr(ld2r))]
9749#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9750pub unsafe fn vld2q_dup_s32(a: *const i32) -> int32x4x2_t {
9751    #[allow(improper_ctypes)]
9752    extern "unadjusted" {
9753        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2r.v4i32.p0i32")]
9754        fn vld2q_dup_s32_(ptr: *const i32) -> int32x4x2_t;
9755    }
9756vld2q_dup_s32_(a as _)
9757}
9758
9759/// Load single 2-element structure and replicate to all lanes of two registers
9760///
9761/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)
9762#[inline]
9763#[cfg(target_arch = "arm")]
9764#[target_feature(enable = "neon,v7")]
9765#[cfg_attr(test, assert_instr(nop))]
9766#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9767pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
9768    #[allow(improper_ctypes)]
9769    extern "unadjusted" {
9770        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v1i64.p0i8")]
9771        fn vld2_dup_s64_(ptr: *const i8, size: i32) -> int64x1x2_t;
9772    }
9773vld2_dup_s64_(a as *const i8, 8)
9774}
9775
9776/// Load single 2-element structure and replicate to all lanes of two registers
9777///
9778/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_s64)
9779#[inline]
9780#[cfg(not(target_arch = "arm"))]
9781#[target_feature(enable = "neon")]
9782#[cfg_attr(test, assert_instr(ld2r))]
9783#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9784pub unsafe fn vld2_dup_s64(a: *const i64) -> int64x1x2_t {
9785    #[allow(improper_ctypes)]
9786    extern "unadjusted" {
9787        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2r.v1i64.p0i64")]
9788        fn vld2_dup_s64_(ptr: *const i64) -> int64x1x2_t;
9789    }
9790vld2_dup_s64_(a as _)
9791}
9792
9793/// Load single 2-element structure and replicate to all lanes of two registers
9794///
9795/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u8)
9796#[inline]
9797#[target_feature(enable = "neon")]
9798#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9799#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9800#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9801#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9802#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9803pub unsafe fn vld2_dup_u8(a: *const u8) -> uint8x8x2_t {
9804    transmute(vld2_dup_s8(transmute(a)))
9805}
9806
9807/// Load single 2-element structure and replicate to all lanes of two registers
9808///
9809/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u16)
9810#[inline]
9811#[target_feature(enable = "neon")]
9812#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9813#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9814#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9815#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9816#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9817pub unsafe fn vld2_dup_u16(a: *const u16) -> uint16x4x2_t {
9818    transmute(vld2_dup_s16(transmute(a)))
9819}
9820
9821/// Load single 2-element structure and replicate to all lanes of two registers
9822///
9823/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u32)
9824#[inline]
9825#[target_feature(enable = "neon")]
9826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9827#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9828#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9829#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9830#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9831pub unsafe fn vld2_dup_u32(a: *const u32) -> uint32x2x2_t {
9832    transmute(vld2_dup_s32(transmute(a)))
9833}
9834
9835/// Load single 2-element structure and replicate to all lanes of two registers
9836///
9837/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u8)
9838#[inline]
9839#[target_feature(enable = "neon")]
9840#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9841#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9842#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9843#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9844#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9845pub unsafe fn vld2q_dup_u8(a: *const u8) -> uint8x16x2_t {
9846    transmute(vld2q_dup_s8(transmute(a)))
9847}
9848
9849/// Load single 2-element structure and replicate to all lanes of two registers
9850///
9851/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u16)
9852#[inline]
9853#[target_feature(enable = "neon")]
9854#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9855#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9856#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9857#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9858#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9859pub unsafe fn vld2q_dup_u16(a: *const u16) -> uint16x8x2_t {
9860    transmute(vld2q_dup_s16(transmute(a)))
9861}
9862
9863/// Load single 2-element structure and replicate to all lanes of two registers
9864///
9865/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_u32)
9866#[inline]
9867#[target_feature(enable = "neon")]
9868#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9869#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9870#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9871#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9872#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9873pub unsafe fn vld2q_dup_u32(a: *const u32) -> uint32x4x2_t {
9874    transmute(vld2q_dup_s32(transmute(a)))
9875}
9876
9877/// Load single 2-element structure and replicate to all lanes of two registers
9878///
9879/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p8)
9880#[inline]
9881#[target_feature(enable = "neon")]
9882#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9884#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9885#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9886#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9887pub unsafe fn vld2_dup_p8(a: *const p8) -> poly8x8x2_t {
9888    transmute(vld2_dup_s8(transmute(a)))
9889}
9890
9891/// Load single 2-element structure and replicate to all lanes of two registers
9892///
9893/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p16)
9894#[inline]
9895#[target_feature(enable = "neon")]
9896#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9897#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9898#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9899#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9900#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9901pub unsafe fn vld2_dup_p16(a: *const p16) -> poly16x4x2_t {
9902    transmute(vld2_dup_s16(transmute(a)))
9903}
9904
9905/// Load single 2-element structure and replicate to all lanes of two registers
9906///
9907/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p8)
9908#[inline]
9909#[target_feature(enable = "neon")]
9910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9912#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9913#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9914#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9915pub unsafe fn vld2q_dup_p8(a: *const p8) -> poly8x16x2_t {
9916    transmute(vld2q_dup_s8(transmute(a)))
9917}
9918
9919/// Load single 2-element structure and replicate to all lanes of two registers
9920///
9921/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_p16)
9922#[inline]
9923#[target_feature(enable = "neon")]
9924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2))]
9926#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9927#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9928#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9929pub unsafe fn vld2q_dup_p16(a: *const p16) -> poly16x8x2_t {
9930    transmute(vld2q_dup_s16(transmute(a)))
9931}
9932
9933/// Load single 2-element structure and replicate to all lanes of two registers
9934///
9935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_u64)
9936#[inline]
9937#[target_feature(enable = "neon")]
9938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
9939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
9940#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9941#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9942#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9943pub unsafe fn vld2_dup_u64(a: *const u64) -> uint64x1x2_t {
9944    transmute(vld2_dup_s64(transmute(a)))
9945}
9946
9947/// Load single 2-element structure and replicate to all lanes of two registers
9948///
9949/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_p64)
9950#[inline]
9951#[target_feature(enable = "neon,aes")]
9952#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
9953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
9954#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2r))]
9955#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
9956#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
9957pub unsafe fn vld2_dup_p64(a: *const p64) -> poly64x1x2_t {
9958    transmute(vld2_dup_s64(transmute(a)))
9959}
9960
9961/// Load single 2-element structure and replicate to all lanes of two registers
9962///
9963/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)
9964#[inline]
9965#[cfg(target_arch = "arm")]
9966#[target_feature(enable = "neon,v7")]
9967#[cfg_attr(test, assert_instr(vld2))]
9968#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
9969pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
9970    #[allow(improper_ctypes)]
9971    extern "unadjusted" {
9972        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v2f32.p0i8")]
9973        fn vld2_dup_f32_(ptr: *const i8, size: i32) -> float32x2x2_t;
9974    }
9975vld2_dup_f32_(a as *const i8, 4)
9976}
9977
9978/// Load single 2-element structure and replicate to all lanes of two registers
9979///
9980/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_dup_f32)
9981#[inline]
9982#[cfg(not(target_arch = "arm"))]
9983#[target_feature(enable = "neon")]
9984#[cfg_attr(test, assert_instr(ld2r))]
9985#[stable(feature = "neon_intrinsics", since = "1.59.0")]
9986pub unsafe fn vld2_dup_f32(a: *const f32) -> float32x2x2_t {
9987    #[allow(improper_ctypes)]
9988    extern "unadjusted" {
9989        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2r.v2f32.p0f32")]
9990        fn vld2_dup_f32_(ptr: *const f32) -> float32x2x2_t;
9991    }
9992vld2_dup_f32_(a as _)
9993}
9994
9995/// Load single 2-element structure and replicate to all lanes of two registers
9996///
9997/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)
9998#[inline]
9999#[cfg(target_arch = "arm")]
10000#[target_feature(enable = "neon,v7")]
10001#[cfg_attr(test, assert_instr(vld2))]
10002#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10003pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
10004    #[allow(improper_ctypes)]
10005    extern "unadjusted" {
10006        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2dup.v4f32.p0i8")]
10007        fn vld2q_dup_f32_(ptr: *const i8, size: i32) -> float32x4x2_t;
10008    }
10009vld2q_dup_f32_(a as *const i8, 4)
10010}
10011
10012/// Load single 2-element structure and replicate to all lanes of two registers
10013///
10014/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_dup_f32)
10015#[inline]
10016#[cfg(not(target_arch = "arm"))]
10017#[target_feature(enable = "neon")]
10018#[cfg_attr(test, assert_instr(ld2r))]
10019#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10020pub unsafe fn vld2q_dup_f32(a: *const f32) -> float32x4x2_t {
10021    #[allow(improper_ctypes)]
10022    extern "unadjusted" {
10023        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2r.v4f32.p0f32")]
10024        fn vld2q_dup_f32_(ptr: *const f32) -> float32x4x2_t;
10025    }
10026vld2q_dup_f32_(a as _)
10027}
10028
10029/// Load multiple 2-element structures to two registers
10030///
10031/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)
10032#[inline]
10033#[cfg(target_arch = "arm")]
10034#[target_feature(enable = "neon,v7")]
10035#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
10036#[rustc_legacy_const_generics(2)]
10037#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10038pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
10039    static_assert_uimm_bits!(LANE, 3);
10040    #[allow(improper_ctypes)]
10041    extern "unadjusted" {
10042        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i8.p0i8")]
10043        fn vld2_lane_s8_(ptr: *const i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32) -> int8x8x2_t;
10044    }
10045vld2_lane_s8_(a as _, b.0, b.1, LANE, 1)
10046}
10047
10048/// Load multiple 2-element structures to two registers
10049///
10050/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s8)
10051#[inline]
10052#[cfg(not(target_arch = "arm"))]
10053#[target_feature(enable = "neon")]
10054#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
10055#[rustc_legacy_const_generics(2)]
10056#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10057pub unsafe fn vld2_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x2_t) -> int8x8x2_t {
10058    static_assert_uimm_bits!(LANE, 3);
10059    #[allow(improper_ctypes)]
10060    extern "unadjusted" {
10061        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2lane.v8i8.p0i8")]
10062        fn vld2_lane_s8_(a: int8x8_t, b: int8x8_t, n: i64, ptr: *const i8) -> int8x8x2_t;
10063    }
10064vld2_lane_s8_(b.0, b.1, LANE as i64, a as _)
10065}
10066
10067/// Load multiple 2-element structures to two registers
10068///
10069/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)
10070#[inline]
10071#[cfg(target_arch = "arm")]
10072#[target_feature(enable = "neon,v7")]
10073#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
10074#[rustc_legacy_const_generics(2)]
10075#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10076pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
10077    static_assert_uimm_bits!(LANE, 2);
10078    #[allow(improper_ctypes)]
10079    extern "unadjusted" {
10080        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i16.p0i8")]
10081        fn vld2_lane_s16_(ptr: *const i8, a: int16x4_t, b: int16x4_t, n: i32, size: i32) -> int16x4x2_t;
10082    }
10083vld2_lane_s16_(a as _, b.0, b.1, LANE, 2)
10084}
10085
10086/// Load multiple 2-element structures to two registers
10087///
10088/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s16)
10089#[inline]
10090#[cfg(not(target_arch = "arm"))]
10091#[target_feature(enable = "neon")]
10092#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
10093#[rustc_legacy_const_generics(2)]
10094#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10095pub unsafe fn vld2_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x2_t) -> int16x4x2_t {
10096    static_assert_uimm_bits!(LANE, 2);
10097    #[allow(improper_ctypes)]
10098    extern "unadjusted" {
10099        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2lane.v4i16.p0i8")]
10100        fn vld2_lane_s16_(a: int16x4_t, b: int16x4_t, n: i64, ptr: *const i8) -> int16x4x2_t;
10101    }
10102vld2_lane_s16_(b.0, b.1, LANE as i64, a as _)
10103}
10104
10105/// Load multiple 2-element structures to two registers
10106///
10107/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s32)
10108#[inline]
10109#[cfg(target_arch = "arm")]
10110#[target_feature(enable = "neon,v7")]
10111#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
10112#[rustc_legacy_const_generics(2)]
10113#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10114pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
10115    static_assert_uimm_bits!(LANE, 1);
10116    #[allow(improper_ctypes)]
10117    extern "unadjusted" {
10118        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2i32.p0i8")]
10119        fn vld2_lane_s32_(ptr: *const i8, a: int32x2_t, b: int32x2_t, n: i32, size: i32) -> int32x2x2_t;
10120    }
10121vld2_lane_s32_(a as _, b.0, b.1, LANE, 4)
10122}
10123
10124/// Load multiple 2-element structures to two registers
10125///
10126/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_s32)
10127#[inline]
10128#[cfg(not(target_arch = "arm"))]
10129#[target_feature(enable = "neon")]
10130#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
10131#[rustc_legacy_const_generics(2)]
10132#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10133pub unsafe fn vld2_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x2_t) -> int32x2x2_t {
10134    static_assert_uimm_bits!(LANE, 1);
10135    #[allow(improper_ctypes)]
10136    extern "unadjusted" {
10137        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2lane.v2i32.p0i8")]
10138        fn vld2_lane_s32_(a: int32x2_t, b: int32x2_t, n: i64, ptr: *const i8) -> int32x2x2_t;
10139    }
10140vld2_lane_s32_(b.0, b.1, LANE as i64, a as _)
10141}
10142
10143/// Load multiple 2-element structures to two registers
10144///
10145/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)
10146#[inline]
10147#[cfg(target_arch = "arm")]
10148#[target_feature(enable = "neon,v7")]
10149#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
10150#[rustc_legacy_const_generics(2)]
10151#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10152pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
10153    static_assert_uimm_bits!(LANE, 3);
10154    #[allow(improper_ctypes)]
10155    extern "unadjusted" {
10156        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v8i16.p0i8")]
10157        fn vld2q_lane_s16_(ptr: *const i8, a: int16x8_t, b: int16x8_t, n: i32, size: i32) -> int16x8x2_t;
10158    }
10159vld2q_lane_s16_(a as _, b.0, b.1, LANE, 2)
10160}
10161
10162/// Load multiple 2-element structures to two registers
10163///
10164/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s16)
10165#[inline]
10166#[cfg(not(target_arch = "arm"))]
10167#[target_feature(enable = "neon")]
10168#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
10169#[rustc_legacy_const_generics(2)]
10170#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10171pub unsafe fn vld2q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x2_t) -> int16x8x2_t {
10172    static_assert_uimm_bits!(LANE, 3);
10173    #[allow(improper_ctypes)]
10174    extern "unadjusted" {
10175        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2lane.v8i16.p0i8")]
10176        fn vld2q_lane_s16_(a: int16x8_t, b: int16x8_t, n: i64, ptr: *const i8) -> int16x8x2_t;
10177    }
10178vld2q_lane_s16_(b.0, b.1, LANE as i64, a as _)
10179}
10180
10181/// Load multiple 2-element structures to two registers
10182///
10183/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)
10184#[inline]
10185#[cfg(target_arch = "arm")]
10186#[target_feature(enable = "neon,v7")]
10187#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
10188#[rustc_legacy_const_generics(2)]
10189#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10190pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
10191    static_assert_uimm_bits!(LANE, 2);
10192    #[allow(improper_ctypes)]
10193    extern "unadjusted" {
10194        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4i32.p0i8")]
10195        fn vld2q_lane_s32_(ptr: *const i8, a: int32x4_t, b: int32x4_t, n: i32, size: i32) -> int32x4x2_t;
10196    }
10197vld2q_lane_s32_(a as _, b.0, b.1, LANE, 4)
10198}
10199
10200/// Load multiple 2-element structures to two registers
10201///
10202/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_s32)
10203#[inline]
10204#[cfg(not(target_arch = "arm"))]
10205#[target_feature(enable = "neon")]
10206#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
10207#[rustc_legacy_const_generics(2)]
10208#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10209pub unsafe fn vld2q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x2_t) -> int32x4x2_t {
10210    static_assert_uimm_bits!(LANE, 2);
10211    #[allow(improper_ctypes)]
10212    extern "unadjusted" {
10213        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2lane.v4i32.p0i8")]
10214        fn vld2q_lane_s32_(a: int32x4_t, b: int32x4_t, n: i64, ptr: *const i8) -> int32x4x2_t;
10215    }
10216vld2q_lane_s32_(b.0, b.1, LANE as i64, a as _)
10217}
10218
10219/// Load multiple 2-element structures to two registers
10220///
10221/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u8)
10222#[inline]
10223#[target_feature(enable = "neon")]
10224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
10226#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2, LANE = 0))]
10227#[rustc_legacy_const_generics(2)]
10228#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10229#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10230pub unsafe fn vld2_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x2_t) -> uint8x8x2_t {
10231    static_assert_uimm_bits!(LANE, 3);
10232    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
10233}
10234
10235/// Load multiple 2-element structures to two registers
10236///
10237/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u16)
10238#[inline]
10239#[target_feature(enable = "neon")]
10240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
10242#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2, LANE = 0))]
10243#[rustc_legacy_const_generics(2)]
10244#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10245#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10246pub unsafe fn vld2_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x2_t) -> uint16x4x2_t {
10247    static_assert_uimm_bits!(LANE, 2);
10248    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
10249}
10250
10251/// Load multiple 2-element structures to two registers
10252///
10253/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_u32)
10254#[inline]
10255#[target_feature(enable = "neon")]
10256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10257#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
10258#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2, LANE = 0))]
10259#[rustc_legacy_const_generics(2)]
10260#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10261#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10262pub unsafe fn vld2_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x2_t) -> uint32x2x2_t {
10263    static_assert_uimm_bits!(LANE, 1);
10264    transmute(vld2_lane_s32::<LANE>(transmute(a), transmute(b)))
10265}
10266
10267/// Load multiple 2-element structures to two registers
10268///
10269/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u16)
10270#[inline]
10271#[target_feature(enable = "neon")]
10272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
10274#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2, LANE = 0))]
10275#[rustc_legacy_const_generics(2)]
10276#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10277#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10278pub unsafe fn vld2q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x2_t) -> uint16x8x2_t {
10279    static_assert_uimm_bits!(LANE, 3);
10280    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
10281}
10282
10283/// Load multiple 2-element structures to two registers
10284///
10285/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_u32)
10286#[inline]
10287#[target_feature(enable = "neon")]
10288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
10290#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2, LANE = 0))]
10291#[rustc_legacy_const_generics(2)]
10292#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10293#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10294pub unsafe fn vld2q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x2_t) -> uint32x4x2_t {
10295    static_assert_uimm_bits!(LANE, 2);
10296    transmute(vld2q_lane_s32::<LANE>(transmute(a), transmute(b)))
10297}
10298
10299/// Load multiple 2-element structures to two registers
10300///
10301/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p8)
10302#[inline]
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(vld2, LANE = 0))]
10306#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2, LANE = 0))]
10307#[rustc_legacy_const_generics(2)]
10308#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10309#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10310pub unsafe fn vld2_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x2_t) -> poly8x8x2_t {
10311    static_assert_uimm_bits!(LANE, 3);
10312    transmute(vld2_lane_s8::<LANE>(transmute(a), transmute(b)))
10313}
10314
10315/// Load multiple 2-element structures to two registers
10316///
10317/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_p16)
10318#[inline]
10319#[target_feature(enable = "neon")]
10320#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10321#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
10322#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2, LANE = 0))]
10323#[rustc_legacy_const_generics(2)]
10324#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10325#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10326pub unsafe fn vld2_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x2_t) -> poly16x4x2_t {
10327    static_assert_uimm_bits!(LANE, 2);
10328    transmute(vld2_lane_s16::<LANE>(transmute(a), transmute(b)))
10329}
10330
10331/// Load multiple 2-element structures to two registers
10332///
10333/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_p16)
10334#[inline]
10335#[target_feature(enable = "neon")]
10336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10337#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld2, LANE = 0))]
10338#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld2, LANE = 0))]
10339#[rustc_legacy_const_generics(2)]
10340#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10341#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10342pub unsafe fn vld2q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x2_t) -> poly16x8x2_t {
10343    static_assert_uimm_bits!(LANE, 3);
10344    transmute(vld2q_lane_s16::<LANE>(transmute(a), transmute(b)))
10345}
10346
10347/// Load multiple 2-element structures to two registers
10348///
10349/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)
10350#[inline]
10351#[cfg(target_arch = "arm")]
10352#[target_feature(enable = "neon,v7")]
10353#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
10354#[rustc_legacy_const_generics(2)]
10355#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10356pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
10357    static_assert_uimm_bits!(LANE, 1);
10358    #[allow(improper_ctypes)]
10359    extern "unadjusted" {
10360        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v2f32.p0i8")]
10361        fn vld2_lane_f32_(ptr: *const i8, a: float32x2_t, b: float32x2_t, n: i32, size: i32) -> float32x2x2_t;
10362    }
10363vld2_lane_f32_(a as _, b.0, b.1, LANE, 4)
10364}
10365
10366/// Load multiple 2-element structures to two registers
10367///
10368/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2_lane_f32)
10369#[inline]
10370#[cfg(not(target_arch = "arm"))]
10371#[target_feature(enable = "neon")]
10372#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
10373#[rustc_legacy_const_generics(2)]
10374#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10375pub unsafe fn vld2_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x2_t) -> float32x2x2_t {
10376    static_assert_uimm_bits!(LANE, 1);
10377    #[allow(improper_ctypes)]
10378    extern "unadjusted" {
10379        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2lane.v2f32.p0i8")]
10380        fn vld2_lane_f32_(a: float32x2_t, b: float32x2_t, n: i64, ptr: *const i8) -> float32x2x2_t;
10381    }
10382vld2_lane_f32_(b.0, b.1, LANE as i64, a as _)
10383}
10384
10385/// Load multiple 2-element structures to two registers
10386///
10387/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)
10388#[inline]
10389#[cfg(target_arch = "arm")]
10390#[target_feature(enable = "neon,v7")]
10391#[cfg_attr(test, assert_instr(vld2, LANE = 0))]
10392#[rustc_legacy_const_generics(2)]
10393#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10394pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
10395    static_assert_uimm_bits!(LANE, 2);
10396    #[allow(improper_ctypes)]
10397    extern "unadjusted" {
10398        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld2lane.v4f32.p0i8")]
10399        fn vld2q_lane_f32_(ptr: *const i8, a: float32x4_t, b: float32x4_t, n: i32, size: i32) -> float32x4x2_t;
10400    }
10401vld2q_lane_f32_(a as _, b.0, b.1, LANE, 4)
10402}
10403
10404/// Load multiple 2-element structures to two registers
10405///
10406/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld2q_lane_f32)
10407#[inline]
10408#[cfg(not(target_arch = "arm"))]
10409#[target_feature(enable = "neon")]
10410#[cfg_attr(test, assert_instr(ld2, LANE = 0))]
10411#[rustc_legacy_const_generics(2)]
10412#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10413pub unsafe fn vld2q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x2_t) -> float32x4x2_t {
10414    static_assert_uimm_bits!(LANE, 2);
10415    #[allow(improper_ctypes)]
10416    extern "unadjusted" {
10417        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld2lane.v4f32.p0i8")]
10418        fn vld2q_lane_f32_(a: float32x4_t, b: float32x4_t, n: i64, ptr: *const i8) -> float32x4x2_t;
10419    }
10420vld2q_lane_f32_(b.0, b.1, LANE as i64, a as _)
10421}
10422
10423/// Load multiple 3-element structures to three registers
10424///
10425/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)
10426#[inline]
10427#[cfg(target_arch = "arm")]
10428#[target_feature(enable = "neon,v7")]
10429#[cfg_attr(test, assert_instr(vld3))]
10430#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10431pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
10432    #[allow(improper_ctypes)]
10433    extern "unadjusted" {
10434        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i8.p0i8")]
10435        fn vld3_s8_(ptr: *const i8, size: i32) -> int8x8x3_t;
10436    }
10437vld3_s8_(a as *const i8, 1)
10438}
10439
10440/// Load multiple 3-element structures to three registers
10441///
10442/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s8)
10443#[inline]
10444#[cfg(not(target_arch = "arm"))]
10445#[target_feature(enable = "neon")]
10446#[cfg_attr(test, assert_instr(ld3))]
10447#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10448pub unsafe fn vld3_s8(a: *const i8) -> int8x8x3_t {
10449    #[allow(improper_ctypes)]
10450    extern "unadjusted" {
10451        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3.v8i8.p0v8i8")]
10452        fn vld3_s8_(ptr: *const int8x8_t) -> int8x8x3_t;
10453    }
10454vld3_s8_(a as _)
10455}
10456
10457/// Load multiple 3-element structures to three registers
10458///
10459/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)
10460#[inline]
10461#[cfg(target_arch = "arm")]
10462#[target_feature(enable = "neon,v7")]
10463#[cfg_attr(test, assert_instr(vld3))]
10464#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10465pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
10466    #[allow(improper_ctypes)]
10467    extern "unadjusted" {
10468        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i16.p0i8")]
10469        fn vld3_s16_(ptr: *const i8, size: i32) -> int16x4x3_t;
10470    }
10471vld3_s16_(a as *const i8, 2)
10472}
10473
10474/// Load multiple 3-element structures to three registers
10475///
10476/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s16)
10477#[inline]
10478#[cfg(not(target_arch = "arm"))]
10479#[target_feature(enable = "neon")]
10480#[cfg_attr(test, assert_instr(ld3))]
10481#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10482pub unsafe fn vld3_s16(a: *const i16) -> int16x4x3_t {
10483    #[allow(improper_ctypes)]
10484    extern "unadjusted" {
10485        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3.v4i16.p0v4i16")]
10486        fn vld3_s16_(ptr: *const int16x4_t) -> int16x4x3_t;
10487    }
10488vld3_s16_(a as _)
10489}
10490
10491/// Load multiple 3-element structures to three registers
10492///
10493/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)
10494#[inline]
10495#[cfg(target_arch = "arm")]
10496#[target_feature(enable = "neon,v7")]
10497#[cfg_attr(test, assert_instr(vld3))]
10498#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10499pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
10500    #[allow(improper_ctypes)]
10501    extern "unadjusted" {
10502        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2i32.p0i8")]
10503        fn vld3_s32_(ptr: *const i8, size: i32) -> int32x2x3_t;
10504    }
10505vld3_s32_(a as *const i8, 4)
10506}
10507
10508/// Load multiple 3-element structures to three registers
10509///
10510/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s32)
10511#[inline]
10512#[cfg(not(target_arch = "arm"))]
10513#[target_feature(enable = "neon")]
10514#[cfg_attr(test, assert_instr(ld3))]
10515#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10516pub unsafe fn vld3_s32(a: *const i32) -> int32x2x3_t {
10517    #[allow(improper_ctypes)]
10518    extern "unadjusted" {
10519        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3.v2i32.p0v2i32")]
10520        fn vld3_s32_(ptr: *const int32x2_t) -> int32x2x3_t;
10521    }
10522vld3_s32_(a as _)
10523}
10524
10525/// Load multiple 3-element structures to three registers
10526///
10527/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)
10528#[inline]
10529#[cfg(target_arch = "arm")]
10530#[target_feature(enable = "neon,v7")]
10531#[cfg_attr(test, assert_instr(vld3))]
10532#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10533pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
10534    #[allow(improper_ctypes)]
10535    extern "unadjusted" {
10536        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v16i8.p0i8")]
10537        fn vld3q_s8_(ptr: *const i8, size: i32) -> int8x16x3_t;
10538    }
10539vld3q_s8_(a as *const i8, 1)
10540}
10541
10542/// Load multiple 3-element structures to three registers
10543///
10544/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s8)
10545#[inline]
10546#[cfg(not(target_arch = "arm"))]
10547#[target_feature(enable = "neon")]
10548#[cfg_attr(test, assert_instr(ld3))]
10549#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10550pub unsafe fn vld3q_s8(a: *const i8) -> int8x16x3_t {
10551    #[allow(improper_ctypes)]
10552    extern "unadjusted" {
10553        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3.v16i8.p0v16i8")]
10554        fn vld3q_s8_(ptr: *const int8x16_t) -> int8x16x3_t;
10555    }
10556vld3q_s8_(a as _)
10557}
10558
10559/// Load multiple 3-element structures to three registers
10560///
10561/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)
10562#[inline]
10563#[cfg(target_arch = "arm")]
10564#[target_feature(enable = "neon,v7")]
10565#[cfg_attr(test, assert_instr(vld3))]
10566#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10567pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
10568    #[allow(improper_ctypes)]
10569    extern "unadjusted" {
10570        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v8i16.p0i8")]
10571        fn vld3q_s16_(ptr: *const i8, size: i32) -> int16x8x3_t;
10572    }
10573vld3q_s16_(a as *const i8, 2)
10574}
10575
10576/// Load multiple 3-element structures to three registers
10577///
10578/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s16)
10579#[inline]
10580#[cfg(not(target_arch = "arm"))]
10581#[target_feature(enable = "neon")]
10582#[cfg_attr(test, assert_instr(ld3))]
10583#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10584pub unsafe fn vld3q_s16(a: *const i16) -> int16x8x3_t {
10585    #[allow(improper_ctypes)]
10586    extern "unadjusted" {
10587        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3.v8i16.p0v8i16")]
10588        fn vld3q_s16_(ptr: *const int16x8_t) -> int16x8x3_t;
10589    }
10590vld3q_s16_(a as _)
10591}
10592
10593/// Load multiple 3-element structures to three registers
10594///
10595/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)
10596#[inline]
10597#[cfg(target_arch = "arm")]
10598#[target_feature(enable = "neon,v7")]
10599#[cfg_attr(test, assert_instr(vld3))]
10600#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10601pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
10602    #[allow(improper_ctypes)]
10603    extern "unadjusted" {
10604        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4i32.p0i8")]
10605        fn vld3q_s32_(ptr: *const i8, size: i32) -> int32x4x3_t;
10606    }
10607vld3q_s32_(a as *const i8, 4)
10608}
10609
10610/// Load multiple 3-element structures to three registers
10611///
10612/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_s32)
10613#[inline]
10614#[cfg(not(target_arch = "arm"))]
10615#[target_feature(enable = "neon")]
10616#[cfg_attr(test, assert_instr(ld3))]
10617#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10618pub unsafe fn vld3q_s32(a: *const i32) -> int32x4x3_t {
10619    #[allow(improper_ctypes)]
10620    extern "unadjusted" {
10621        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3.v4i32.p0v4i32")]
10622        fn vld3q_s32_(ptr: *const int32x4_t) -> int32x4x3_t;
10623    }
10624vld3q_s32_(a as _)
10625}
10626
10627/// Load multiple 3-element structures to three registers
10628///
10629/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)
10630#[inline]
10631#[cfg(target_arch = "arm")]
10632#[target_feature(enable = "neon,v7")]
10633#[cfg_attr(test, assert_instr(nop))]
10634#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10635pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
10636    #[allow(improper_ctypes)]
10637    extern "unadjusted" {
10638        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v1i64.p0i8")]
10639        fn vld3_s64_(ptr: *const i8, size: i32) -> int64x1x3_t;
10640    }
10641vld3_s64_(a as *const i8, 8)
10642}
10643
10644/// Load multiple 3-element structures to three registers
10645///
10646/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_s64)
10647#[inline]
10648#[cfg(not(target_arch = "arm"))]
10649#[target_feature(enable = "neon")]
10650#[cfg_attr(test, assert_instr(nop))]
10651#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10652pub unsafe fn vld3_s64(a: *const i64) -> int64x1x3_t {
10653    #[allow(improper_ctypes)]
10654    extern "unadjusted" {
10655        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3.v1i64.p0v1i64")]
10656        fn vld3_s64_(ptr: *const int64x1_t) -> int64x1x3_t;
10657    }
10658vld3_s64_(a as _)
10659}
10660
10661/// Load multiple 3-element structures to three registers
10662///
10663/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u8)
10664#[inline]
10665#[target_feature(enable = "neon")]
10666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10668#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10669#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10670#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10671pub unsafe fn vld3_u8(a: *const u8) -> uint8x8x3_t {
10672    transmute(vld3_s8(transmute(a)))
10673}
10674
10675/// Load multiple 3-element structures to three registers
10676///
10677/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u16)
10678#[inline]
10679#[target_feature(enable = "neon")]
10680#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10681#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10682#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10683#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10684#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10685pub unsafe fn vld3_u16(a: *const u16) -> uint16x4x3_t {
10686    transmute(vld3_s16(transmute(a)))
10687}
10688
10689/// Load multiple 3-element structures to three registers
10690///
10691/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u32)
10692#[inline]
10693#[target_feature(enable = "neon")]
10694#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10695#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10696#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10697#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10698#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10699pub unsafe fn vld3_u32(a: *const u32) -> uint32x2x3_t {
10700    transmute(vld3_s32(transmute(a)))
10701}
10702
10703/// Load multiple 3-element structures to three registers
10704///
10705/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u8)
10706#[inline]
10707#[target_feature(enable = "neon")]
10708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10710#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10711#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10712#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10713pub unsafe fn vld3q_u8(a: *const u8) -> uint8x16x3_t {
10714    transmute(vld3q_s8(transmute(a)))
10715}
10716
10717/// Load multiple 3-element structures to three registers
10718///
10719/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u16)
10720#[inline]
10721#[target_feature(enable = "neon")]
10722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10724#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10725#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10726#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10727pub unsafe fn vld3q_u16(a: *const u16) -> uint16x8x3_t {
10728    transmute(vld3q_s16(transmute(a)))
10729}
10730
10731/// Load multiple 3-element structures to three registers
10732///
10733/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_u32)
10734#[inline]
10735#[target_feature(enable = "neon")]
10736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10737#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10738#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10739#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10740#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10741pub unsafe fn vld3q_u32(a: *const u32) -> uint32x4x3_t {
10742    transmute(vld3q_s32(transmute(a)))
10743}
10744
10745/// Load multiple 3-element structures to three registers
10746///
10747/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p8)
10748#[inline]
10749#[target_feature(enable = "neon")]
10750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10751#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10752#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10753#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10754#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10755pub unsafe fn vld3_p8(a: *const p8) -> poly8x8x3_t {
10756    transmute(vld3_s8(transmute(a)))
10757}
10758
10759/// Load multiple 3-element structures to three registers
10760///
10761/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p16)
10762#[inline]
10763#[target_feature(enable = "neon")]
10764#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10765#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10766#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10767#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10768#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10769pub unsafe fn vld3_p16(a: *const p16) -> poly16x4x3_t {
10770    transmute(vld3_s16(transmute(a)))
10771}
10772
10773/// Load multiple 3-element structures to three registers
10774///
10775/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p8)
10776#[inline]
10777#[target_feature(enable = "neon")]
10778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10780#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10781#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10782#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10783pub unsafe fn vld3q_p8(a: *const p8) -> poly8x16x3_t {
10784    transmute(vld3q_s8(transmute(a)))
10785}
10786
10787/// Load multiple 3-element structures to three registers
10788///
10789/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_p16)
10790#[inline]
10791#[target_feature(enable = "neon")]
10792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
10794#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3))]
10795#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10796#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10797pub unsafe fn vld3q_p16(a: *const p16) -> poly16x8x3_t {
10798    transmute(vld3q_s16(transmute(a)))
10799}
10800
10801/// Load multiple 3-element structures to three registers
10802///
10803/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_u64)
10804#[inline]
10805#[target_feature(enable = "neon")]
10806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
10807#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
10808#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
10809#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10810#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10811pub unsafe fn vld3_u64(a: *const u64) -> uint64x1x3_t {
10812    transmute(vld3_s64(transmute(a)))
10813}
10814
10815/// Load multiple 3-element structures to three registers
10816///
10817/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_p64)
10818#[inline]
10819#[target_feature(enable = "neon,aes")]
10820#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
10821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
10822#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
10823#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
10824#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
10825pub unsafe fn vld3_p64(a: *const p64) -> poly64x1x3_t {
10826    transmute(vld3_s64(transmute(a)))
10827}
10828
10829/// Load multiple 3-element structures to three registers
10830///
10831/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)
10832#[inline]
10833#[cfg(target_arch = "arm")]
10834#[target_feature(enable = "neon,v7")]
10835#[cfg_attr(test, assert_instr(vld3))]
10836#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10837pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
10838    #[allow(improper_ctypes)]
10839    extern "unadjusted" {
10840        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v2f32.p0i8")]
10841        fn vld3_f32_(ptr: *const i8, size: i32) -> float32x2x3_t;
10842    }
10843vld3_f32_(a as *const i8, 4)
10844}
10845
10846/// Load multiple 3-element structures to three registers
10847///
10848/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_f32)
10849#[inline]
10850#[cfg(not(target_arch = "arm"))]
10851#[target_feature(enable = "neon")]
10852#[cfg_attr(test, assert_instr(ld3))]
10853#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10854pub unsafe fn vld3_f32(a: *const f32) -> float32x2x3_t {
10855    #[allow(improper_ctypes)]
10856    extern "unadjusted" {
10857        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3.v2f32.p0v2f32")]
10858        fn vld3_f32_(ptr: *const float32x2_t) -> float32x2x3_t;
10859    }
10860vld3_f32_(a as _)
10861}
10862
10863/// Load multiple 3-element structures to three registers
10864///
10865/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)
10866#[inline]
10867#[cfg(target_arch = "arm")]
10868#[target_feature(enable = "neon,v7")]
10869#[cfg_attr(test, assert_instr(vld3))]
10870#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10871pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
10872    #[allow(improper_ctypes)]
10873    extern "unadjusted" {
10874        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3.v4f32.p0i8")]
10875        fn vld3q_f32_(ptr: *const i8, size: i32) -> float32x4x3_t;
10876    }
10877vld3q_f32_(a as *const i8, 4)
10878}
10879
10880/// Load multiple 3-element structures to three registers
10881///
10882/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_f32)
10883#[inline]
10884#[cfg(not(target_arch = "arm"))]
10885#[target_feature(enable = "neon")]
10886#[cfg_attr(test, assert_instr(ld3))]
10887#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10888pub unsafe fn vld3q_f32(a: *const f32) -> float32x4x3_t {
10889    #[allow(improper_ctypes)]
10890    extern "unadjusted" {
10891        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3.v4f32.p0v4f32")]
10892        fn vld3q_f32_(ptr: *const float32x4_t) -> float32x4x3_t;
10893    }
10894vld3q_f32_(a as _)
10895}
10896
10897/// Load single 3-element structure and replicate to all lanes of three registers
10898///
10899/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)
10900#[inline]
10901#[cfg(target_arch = "arm")]
10902#[target_feature(enable = "neon,v7")]
10903#[cfg_attr(test, assert_instr(vld3))]
10904#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10905pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
10906    #[allow(improper_ctypes)]
10907    extern "unadjusted" {
10908        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i8.p0i8")]
10909        fn vld3_dup_s8_(ptr: *const i8, size: i32) -> int8x8x3_t;
10910    }
10911vld3_dup_s8_(a as *const i8, 1)
10912}
10913
10914/// Load single 3-element structure and replicate to all lanes of three registers
10915///
10916/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s8)
10917#[inline]
10918#[cfg(not(target_arch = "arm"))]
10919#[target_feature(enable = "neon")]
10920#[cfg_attr(test, assert_instr(ld3r))]
10921#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10922pub unsafe fn vld3_dup_s8(a: *const i8) -> int8x8x3_t {
10923    #[allow(improper_ctypes)]
10924    extern "unadjusted" {
10925        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3r.v8i8.p0i8")]
10926        fn vld3_dup_s8_(ptr: *const i8) -> int8x8x3_t;
10927    }
10928vld3_dup_s8_(a as _)
10929}
10930
10931/// Load single 3-element structure and replicate to all lanes of three registers
10932///
10933/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)
10934#[inline]
10935#[cfg(target_arch = "arm")]
10936#[target_feature(enable = "neon,v7")]
10937#[cfg_attr(test, assert_instr(vld3))]
10938#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10939pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
10940    #[allow(improper_ctypes)]
10941    extern "unadjusted" {
10942        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i16.p0i8")]
10943        fn vld3_dup_s16_(ptr: *const i8, size: i32) -> int16x4x3_t;
10944    }
10945vld3_dup_s16_(a as *const i8, 2)
10946}
10947
10948/// Load single 3-element structure and replicate to all lanes of three registers
10949///
10950/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s16)
10951#[inline]
10952#[cfg(not(target_arch = "arm"))]
10953#[target_feature(enable = "neon")]
10954#[cfg_attr(test, assert_instr(ld3r))]
10955#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10956pub unsafe fn vld3_dup_s16(a: *const i16) -> int16x4x3_t {
10957    #[allow(improper_ctypes)]
10958    extern "unadjusted" {
10959        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3r.v4i16.p0i16")]
10960        fn vld3_dup_s16_(ptr: *const i16) -> int16x4x3_t;
10961    }
10962vld3_dup_s16_(a as _)
10963}
10964
10965/// Load single 3-element structure and replicate to all lanes of three registers
10966///
10967/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)
10968#[inline]
10969#[cfg(target_arch = "arm")]
10970#[target_feature(enable = "neon,v7")]
10971#[cfg_attr(test, assert_instr(vld3))]
10972#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
10973pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
10974    #[allow(improper_ctypes)]
10975    extern "unadjusted" {
10976        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2i32.p0i8")]
10977        fn vld3_dup_s32_(ptr: *const i8, size: i32) -> int32x2x3_t;
10978    }
10979vld3_dup_s32_(a as *const i8, 4)
10980}
10981
10982/// Load single 3-element structure and replicate to all lanes of three registers
10983///
10984/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s32)
10985#[inline]
10986#[cfg(not(target_arch = "arm"))]
10987#[target_feature(enable = "neon")]
10988#[cfg_attr(test, assert_instr(ld3r))]
10989#[stable(feature = "neon_intrinsics", since = "1.59.0")]
10990pub unsafe fn vld3_dup_s32(a: *const i32) -> int32x2x3_t {
10991    #[allow(improper_ctypes)]
10992    extern "unadjusted" {
10993        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3r.v2i32.p0i32")]
10994        fn vld3_dup_s32_(ptr: *const i32) -> int32x2x3_t;
10995    }
10996vld3_dup_s32_(a as _)
10997}
10998
10999/// Load single 3-element structure and replicate to all lanes of three registers
11000///
11001/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)
11002#[inline]
11003#[cfg(target_arch = "arm")]
11004#[target_feature(enable = "neon,v7")]
11005#[cfg_attr(test, assert_instr(vld3))]
11006#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11007pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
11008    #[allow(improper_ctypes)]
11009    extern "unadjusted" {
11010        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v16i8.p0i8")]
11011        fn vld3q_dup_s8_(ptr: *const i8, size: i32) -> int8x16x3_t;
11012    }
11013vld3q_dup_s8_(a as *const i8, 1)
11014}
11015
11016/// Load single 3-element structure and replicate to all lanes of three registers
11017///
11018/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s8)
11019#[inline]
11020#[cfg(not(target_arch = "arm"))]
11021#[target_feature(enable = "neon")]
11022#[cfg_attr(test, assert_instr(ld3r))]
11023#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11024pub unsafe fn vld3q_dup_s8(a: *const i8) -> int8x16x3_t {
11025    #[allow(improper_ctypes)]
11026    extern "unadjusted" {
11027        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3r.v16i8.p0i8")]
11028        fn vld3q_dup_s8_(ptr: *const i8) -> int8x16x3_t;
11029    }
11030vld3q_dup_s8_(a as _)
11031}
11032
11033/// Load single 3-element structure and replicate to all lanes of three registers
11034///
11035/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)
11036#[inline]
11037#[cfg(target_arch = "arm")]
11038#[target_feature(enable = "neon,v7")]
11039#[cfg_attr(test, assert_instr(vld3))]
11040#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11041pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
11042    #[allow(improper_ctypes)]
11043    extern "unadjusted" {
11044        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v8i16.p0i8")]
11045        fn vld3q_dup_s16_(ptr: *const i8, size: i32) -> int16x8x3_t;
11046    }
11047vld3q_dup_s16_(a as *const i8, 2)
11048}
11049
11050/// Load single 3-element structure and replicate to all lanes of three registers
11051///
11052/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s16)
11053#[inline]
11054#[cfg(not(target_arch = "arm"))]
11055#[target_feature(enable = "neon")]
11056#[cfg_attr(test, assert_instr(ld3r))]
11057#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11058pub unsafe fn vld3q_dup_s16(a: *const i16) -> int16x8x3_t {
11059    #[allow(improper_ctypes)]
11060    extern "unadjusted" {
11061        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3r.v8i16.p0i16")]
11062        fn vld3q_dup_s16_(ptr: *const i16) -> int16x8x3_t;
11063    }
11064vld3q_dup_s16_(a as _)
11065}
11066
11067/// Load single 3-element structure and replicate to all lanes of three registers
11068///
11069/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)
11070#[inline]
11071#[cfg(target_arch = "arm")]
11072#[target_feature(enable = "neon,v7")]
11073#[cfg_attr(test, assert_instr(vld3))]
11074#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11075pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
11076    #[allow(improper_ctypes)]
11077    extern "unadjusted" {
11078        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4i32.p0i8")]
11079        fn vld3q_dup_s32_(ptr: *const i8, size: i32) -> int32x4x3_t;
11080    }
11081vld3q_dup_s32_(a as *const i8, 4)
11082}
11083
11084/// Load single 3-element structure and replicate to all lanes of three registers
11085///
11086/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_s32)
11087#[inline]
11088#[cfg(not(target_arch = "arm"))]
11089#[target_feature(enable = "neon")]
11090#[cfg_attr(test, assert_instr(ld3r))]
11091#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11092pub unsafe fn vld3q_dup_s32(a: *const i32) -> int32x4x3_t {
11093    #[allow(improper_ctypes)]
11094    extern "unadjusted" {
11095        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3r.v4i32.p0i32")]
11096        fn vld3q_dup_s32_(ptr: *const i32) -> int32x4x3_t;
11097    }
11098vld3q_dup_s32_(a as _)
11099}
11100
11101/// Load single 3-element structure and replicate to all lanes of three registers
11102///
11103/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)
11104#[inline]
11105#[cfg(target_arch = "arm")]
11106#[target_feature(enable = "neon,v7")]
11107#[cfg_attr(test, assert_instr(nop))]
11108#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11109pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
11110    #[allow(improper_ctypes)]
11111    extern "unadjusted" {
11112        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v1i64.p0i8")]
11113        fn vld3_dup_s64_(ptr: *const i8, size: i32) -> int64x1x3_t;
11114    }
11115vld3_dup_s64_(a as *const i8, 8)
11116}
11117
11118/// Load single 3-element structure and replicate to all lanes of three registers
11119///
11120/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_s64)
11121#[inline]
11122#[cfg(not(target_arch = "arm"))]
11123#[target_feature(enable = "neon")]
11124#[cfg_attr(test, assert_instr(ld3r))]
11125#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11126pub unsafe fn vld3_dup_s64(a: *const i64) -> int64x1x3_t {
11127    #[allow(improper_ctypes)]
11128    extern "unadjusted" {
11129        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3r.v1i64.p0i64")]
11130        fn vld3_dup_s64_(ptr: *const i64) -> int64x1x3_t;
11131    }
11132vld3_dup_s64_(a as _)
11133}
11134
11135/// Load single 3-element structure and replicate to all lanes of three registers
11136///
11137/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u8)
11138#[inline]
11139#[target_feature(enable = "neon")]
11140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11141#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11142#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11143#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11144#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11145pub unsafe fn vld3_dup_u8(a: *const u8) -> uint8x8x3_t {
11146    transmute(vld3_dup_s8(transmute(a)))
11147}
11148
11149/// Load single 3-element structure and replicate to all lanes of three registers
11150///
11151/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u16)
11152#[inline]
11153#[target_feature(enable = "neon")]
11154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11155#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11156#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11157#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11158#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11159pub unsafe fn vld3_dup_u16(a: *const u16) -> uint16x4x3_t {
11160    transmute(vld3_dup_s16(transmute(a)))
11161}
11162
11163/// Load single 3-element structure and replicate to all lanes of three registers
11164///
11165/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u32)
11166#[inline]
11167#[target_feature(enable = "neon")]
11168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11170#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11171#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11172#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11173pub unsafe fn vld3_dup_u32(a: *const u32) -> uint32x2x3_t {
11174    transmute(vld3_dup_s32(transmute(a)))
11175}
11176
11177/// Load single 3-element structure and replicate to all lanes of three registers
11178///
11179/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u8)
11180#[inline]
11181#[target_feature(enable = "neon")]
11182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11184#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11185#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11186#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11187pub unsafe fn vld3q_dup_u8(a: *const u8) -> uint8x16x3_t {
11188    transmute(vld3q_dup_s8(transmute(a)))
11189}
11190
11191/// Load single 3-element structure and replicate to all lanes of three registers
11192///
11193/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u16)
11194#[inline]
11195#[target_feature(enable = "neon")]
11196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11198#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11199#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11200#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11201pub unsafe fn vld3q_dup_u16(a: *const u16) -> uint16x8x3_t {
11202    transmute(vld3q_dup_s16(transmute(a)))
11203}
11204
11205/// Load single 3-element structure and replicate to all lanes of three registers
11206///
11207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_u32)
11208#[inline]
11209#[target_feature(enable = "neon")]
11210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11212#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11213#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11214#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11215pub unsafe fn vld3q_dup_u32(a: *const u32) -> uint32x4x3_t {
11216    transmute(vld3q_dup_s32(transmute(a)))
11217}
11218
11219/// Load single 3-element structure and replicate to all lanes of three registers
11220///
11221/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p8)
11222#[inline]
11223#[target_feature(enable = "neon")]
11224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11226#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11227#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11228#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11229pub unsafe fn vld3_dup_p8(a: *const p8) -> poly8x8x3_t {
11230    transmute(vld3_dup_s8(transmute(a)))
11231}
11232
11233/// Load single 3-element structure and replicate to all lanes of three registers
11234///
11235/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p16)
11236#[inline]
11237#[target_feature(enable = "neon")]
11238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11239#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11240#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11241#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11242#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11243pub unsafe fn vld3_dup_p16(a: *const p16) -> poly16x4x3_t {
11244    transmute(vld3_dup_s16(transmute(a)))
11245}
11246
11247/// Load single 3-element structure and replicate to all lanes of three registers
11248///
11249/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p8)
11250#[inline]
11251#[target_feature(enable = "neon")]
11252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11253#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11254#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11255#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11256#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11257pub unsafe fn vld3q_dup_p8(a: *const p8) -> poly8x16x3_t {
11258    transmute(vld3q_dup_s8(transmute(a)))
11259}
11260
11261/// Load single 3-element structure and replicate to all lanes of three registers
11262///
11263/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_p16)
11264#[inline]
11265#[target_feature(enable = "neon")]
11266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3))]
11268#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11269#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11270#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11271pub unsafe fn vld3q_dup_p16(a: *const p16) -> poly16x8x3_t {
11272    transmute(vld3q_dup_s16(transmute(a)))
11273}
11274
11275/// Load single 3-element structure and replicate to all lanes of three registers
11276///
11277/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_u64)
11278#[inline]
11279#[target_feature(enable = "neon")]
11280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11281#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
11282#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11283#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11284#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11285pub unsafe fn vld3_dup_u64(a: *const u64) -> uint64x1x3_t {
11286    transmute(vld3_dup_s64(transmute(a)))
11287}
11288
11289/// Load single 3-element structure and replicate to all lanes of three registers
11290///
11291/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_p64)
11292#[inline]
11293#[target_feature(enable = "neon,aes")]
11294#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
11295#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
11296#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3r))]
11297#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11298#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11299pub unsafe fn vld3_dup_p64(a: *const p64) -> poly64x1x3_t {
11300    transmute(vld3_dup_s64(transmute(a)))
11301}
11302
11303/// Load single 3-element structure and replicate to all lanes of three registers
11304///
11305/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)
11306#[inline]
11307#[cfg(target_arch = "arm")]
11308#[target_feature(enable = "neon,v7")]
11309#[cfg_attr(test, assert_instr(vld3))]
11310#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11311pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
11312    #[allow(improper_ctypes)]
11313    extern "unadjusted" {
11314        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v2f32.p0i8")]
11315        fn vld3_dup_f32_(ptr: *const i8, size: i32) -> float32x2x3_t;
11316    }
11317vld3_dup_f32_(a as *const i8, 4)
11318}
11319
11320/// Load single 3-element structure and replicate to all lanes of three registers
11321///
11322/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_dup_f32)
11323#[inline]
11324#[cfg(not(target_arch = "arm"))]
11325#[target_feature(enable = "neon")]
11326#[cfg_attr(test, assert_instr(ld3r))]
11327#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11328pub unsafe fn vld3_dup_f32(a: *const f32) -> float32x2x3_t {
11329    #[allow(improper_ctypes)]
11330    extern "unadjusted" {
11331        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3r.v2f32.p0f32")]
11332        fn vld3_dup_f32_(ptr: *const f32) -> float32x2x3_t;
11333    }
11334vld3_dup_f32_(a as _)
11335}
11336
11337/// Load single 3-element structure and replicate to all lanes of three registers
11338///
11339/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)
11340#[inline]
11341#[cfg(target_arch = "arm")]
11342#[target_feature(enable = "neon,v7")]
11343#[cfg_attr(test, assert_instr(vld3))]
11344#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11345pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
11346    #[allow(improper_ctypes)]
11347    extern "unadjusted" {
11348        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3dup.v4f32.p0i8")]
11349        fn vld3q_dup_f32_(ptr: *const i8, size: i32) -> float32x4x3_t;
11350    }
11351vld3q_dup_f32_(a as *const i8, 4)
11352}
11353
11354/// Load single 3-element structure and replicate to all lanes of three registers
11355///
11356/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_dup_f32)
11357#[inline]
11358#[cfg(not(target_arch = "arm"))]
11359#[target_feature(enable = "neon")]
11360#[cfg_attr(test, assert_instr(ld3r))]
11361#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11362pub unsafe fn vld3q_dup_f32(a: *const f32) -> float32x4x3_t {
11363    #[allow(improper_ctypes)]
11364    extern "unadjusted" {
11365        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3r.v4f32.p0f32")]
11366        fn vld3q_dup_f32_(ptr: *const f32) -> float32x4x3_t;
11367    }
11368vld3q_dup_f32_(a as _)
11369}
11370
11371/// Load multiple 3-element structures to two registers
11372///
11373/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)
11374#[inline]
11375#[cfg(target_arch = "arm")]
11376#[target_feature(enable = "neon,v7")]
11377#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
11378#[rustc_legacy_const_generics(2)]
11379#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11380pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
11381    static_assert_uimm_bits!(LANE, 3);
11382    #[allow(improper_ctypes)]
11383    extern "unadjusted" {
11384        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i8.p0i8")]
11385        fn vld3_lane_s8_(ptr: *const i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i32, size: i32) -> int8x8x3_t;
11386    }
11387vld3_lane_s8_(a as _, b.0, b.1, b.2, LANE, 1)
11388}
11389
11390/// Load multiple 3-element structures to two registers
11391///
11392/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s8)
11393#[inline]
11394#[cfg(not(target_arch = "arm"))]
11395#[target_feature(enable = "neon")]
11396#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
11397#[rustc_legacy_const_generics(2)]
11398#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11399pub unsafe fn vld3_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x3_t) -> int8x8x3_t {
11400    static_assert_uimm_bits!(LANE, 3);
11401    #[allow(improper_ctypes)]
11402    extern "unadjusted" {
11403        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3lane.v8i8.p0i8")]
11404        fn vld3_lane_s8_(a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i64, ptr: *const i8) -> int8x8x3_t;
11405    }
11406vld3_lane_s8_(b.0, b.1, b.2, LANE as i64, a as _)
11407}
11408
11409/// Load multiple 3-element structures to two registers
11410///
11411/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)
11412#[inline]
11413#[cfg(target_arch = "arm")]
11414#[target_feature(enable = "neon,v7")]
11415#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
11416#[rustc_legacy_const_generics(2)]
11417#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11418pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
11419    static_assert_uimm_bits!(LANE, 2);
11420    #[allow(improper_ctypes)]
11421    extern "unadjusted" {
11422        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i16.p0i8")]
11423        fn vld3_lane_s16_(ptr: *const i8, a: int16x4_t, b: int16x4_t, c: int16x4_t, n: i32, size: i32) -> int16x4x3_t;
11424    }
11425vld3_lane_s16_(a as _, b.0, b.1, b.2, LANE, 2)
11426}
11427
11428/// Load multiple 3-element structures to two registers
11429///
11430/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s16)
11431#[inline]
11432#[cfg(not(target_arch = "arm"))]
11433#[target_feature(enable = "neon")]
11434#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
11435#[rustc_legacy_const_generics(2)]
11436#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11437pub unsafe fn vld3_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x3_t) -> int16x4x3_t {
11438    static_assert_uimm_bits!(LANE, 2);
11439    #[allow(improper_ctypes)]
11440    extern "unadjusted" {
11441        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3lane.v4i16.p0i8")]
11442        fn vld3_lane_s16_(a: int16x4_t, b: int16x4_t, c: int16x4_t, n: i64, ptr: *const i8) -> int16x4x3_t;
11443    }
11444vld3_lane_s16_(b.0, b.1, b.2, LANE as i64, a as _)
11445}
11446
11447/// Load multiple 3-element structures to two registers
11448///
11449/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)
11450#[inline]
11451#[cfg(target_arch = "arm")]
11452#[target_feature(enable = "neon,v7")]
11453#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
11454#[rustc_legacy_const_generics(2)]
11455#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11456pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
11457    static_assert_uimm_bits!(LANE, 1);
11458    #[allow(improper_ctypes)]
11459    extern "unadjusted" {
11460        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2i32.p0i8")]
11461        fn vld3_lane_s32_(ptr: *const i8, a: int32x2_t, b: int32x2_t, c: int32x2_t, n: i32, size: i32) -> int32x2x3_t;
11462    }
11463vld3_lane_s32_(a as _, b.0, b.1, b.2, LANE, 4)
11464}
11465
11466/// Load multiple 3-element structures to two registers
11467///
11468/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_s32)
11469#[inline]
11470#[cfg(not(target_arch = "arm"))]
11471#[target_feature(enable = "neon")]
11472#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
11473#[rustc_legacy_const_generics(2)]
11474#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11475pub unsafe fn vld3_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x3_t) -> int32x2x3_t {
11476    static_assert_uimm_bits!(LANE, 1);
11477    #[allow(improper_ctypes)]
11478    extern "unadjusted" {
11479        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3lane.v2i32.p0i8")]
11480        fn vld3_lane_s32_(a: int32x2_t, b: int32x2_t, c: int32x2_t, n: i64, ptr: *const i8) -> int32x2x3_t;
11481    }
11482vld3_lane_s32_(b.0, b.1, b.2, LANE as i64, a as _)
11483}
11484
11485/// Load multiple 3-element structures to two registers
11486///
11487/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)
11488#[inline]
11489#[cfg(target_arch = "arm")]
11490#[target_feature(enable = "neon,v7")]
11491#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
11492#[rustc_legacy_const_generics(2)]
11493#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11494pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
11495    static_assert_uimm_bits!(LANE, 3);
11496    #[allow(improper_ctypes)]
11497    extern "unadjusted" {
11498        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v8i16.p0i8")]
11499        fn vld3q_lane_s16_(ptr: *const i8, a: int16x8_t, b: int16x8_t, c: int16x8_t, n: i32, size: i32) -> int16x8x3_t;
11500    }
11501vld3q_lane_s16_(a as _, b.0, b.1, b.2, LANE, 2)
11502}
11503
11504/// Load multiple 3-element structures to two registers
11505///
11506/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s16)
11507#[inline]
11508#[cfg(not(target_arch = "arm"))]
11509#[target_feature(enable = "neon")]
11510#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
11511#[rustc_legacy_const_generics(2)]
11512#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11513pub unsafe fn vld3q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x3_t) -> int16x8x3_t {
11514    static_assert_uimm_bits!(LANE, 3);
11515    #[allow(improper_ctypes)]
11516    extern "unadjusted" {
11517        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3lane.v8i16.p0i8")]
11518        fn vld3q_lane_s16_(a: int16x8_t, b: int16x8_t, c: int16x8_t, n: i64, ptr: *const i8) -> int16x8x3_t;
11519    }
11520vld3q_lane_s16_(b.0, b.1, b.2, LANE as i64, a as _)
11521}
11522
11523/// Load multiple 3-element structures to two registers
11524///
11525/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)
11526#[inline]
11527#[cfg(target_arch = "arm")]
11528#[target_feature(enable = "neon,v7")]
11529#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
11530#[rustc_legacy_const_generics(2)]
11531#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11532pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
11533    static_assert_uimm_bits!(LANE, 2);
11534    #[allow(improper_ctypes)]
11535    extern "unadjusted" {
11536        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4i32.p0i8")]
11537        fn vld3q_lane_s32_(ptr: *const i8, a: int32x4_t, b: int32x4_t, c: int32x4_t, n: i32, size: i32) -> int32x4x3_t;
11538    }
11539vld3q_lane_s32_(a as _, b.0, b.1, b.2, LANE, 4)
11540}
11541
11542/// Load multiple 3-element structures to two registers
11543///
11544/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_s32)
11545#[inline]
11546#[cfg(not(target_arch = "arm"))]
11547#[target_feature(enable = "neon")]
11548#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
11549#[rustc_legacy_const_generics(2)]
11550#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11551pub unsafe fn vld3q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x3_t) -> int32x4x3_t {
11552    static_assert_uimm_bits!(LANE, 2);
11553    #[allow(improper_ctypes)]
11554    extern "unadjusted" {
11555        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3lane.v4i32.p0i8")]
11556        fn vld3q_lane_s32_(a: int32x4_t, b: int32x4_t, c: int32x4_t, n: i64, ptr: *const i8) -> int32x4x3_t;
11557    }
11558vld3q_lane_s32_(b.0, b.1, b.2, LANE as i64, a as _)
11559}
11560
11561/// Load multiple 3-element structures to three registers
11562///
11563/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u8)
11564#[inline]
11565#[target_feature(enable = "neon")]
11566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
11568#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3, LANE = 0))]
11569#[rustc_legacy_const_generics(2)]
11570#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11571#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11572pub unsafe fn vld3_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x3_t) -> uint8x8x3_t {
11573    static_assert_uimm_bits!(LANE, 3);
11574    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
11575}
11576
11577/// Load multiple 3-element structures to three registers
11578///
11579/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u16)
11580#[inline]
11581#[target_feature(enable = "neon")]
11582#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11583#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
11584#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3, LANE = 0))]
11585#[rustc_legacy_const_generics(2)]
11586#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11587#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11588pub unsafe fn vld3_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x3_t) -> uint16x4x3_t {
11589    static_assert_uimm_bits!(LANE, 2);
11590    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
11591}
11592
11593/// Load multiple 3-element structures to three registers
11594///
11595/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_u32)
11596#[inline]
11597#[target_feature(enable = "neon")]
11598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11599#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
11600#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3, LANE = 0))]
11601#[rustc_legacy_const_generics(2)]
11602#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11603#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11604pub unsafe fn vld3_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x3_t) -> uint32x2x3_t {
11605    static_assert_uimm_bits!(LANE, 1);
11606    transmute(vld3_lane_s32::<LANE>(transmute(a), transmute(b)))
11607}
11608
11609/// Load multiple 3-element structures to three registers
11610///
11611/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u16)
11612#[inline]
11613#[target_feature(enable = "neon")]
11614#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11615#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
11616#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3, LANE = 0))]
11617#[rustc_legacy_const_generics(2)]
11618#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11619#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11620pub unsafe fn vld3q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x3_t) -> uint16x8x3_t {
11621    static_assert_uimm_bits!(LANE, 3);
11622    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
11623}
11624
11625/// Load multiple 3-element structures to three registers
11626///
11627/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_u32)
11628#[inline]
11629#[target_feature(enable = "neon")]
11630#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11631#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
11632#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3, LANE = 0))]
11633#[rustc_legacy_const_generics(2)]
11634#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11635#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11636pub unsafe fn vld3q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x3_t) -> uint32x4x3_t {
11637    static_assert_uimm_bits!(LANE, 2);
11638    transmute(vld3q_lane_s32::<LANE>(transmute(a), transmute(b)))
11639}
11640
11641/// Load multiple 3-element structures to three registers
11642///
11643/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p8)
11644#[inline]
11645#[target_feature(enable = "neon")]
11646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11647#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
11648#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3, LANE = 0))]
11649#[rustc_legacy_const_generics(2)]
11650#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11651#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11652pub unsafe fn vld3_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x3_t) -> poly8x8x3_t {
11653    static_assert_uimm_bits!(LANE, 3);
11654    transmute(vld3_lane_s8::<LANE>(transmute(a), transmute(b)))
11655}
11656
11657/// Load multiple 3-element structures to three registers
11658///
11659/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_p16)
11660#[inline]
11661#[target_feature(enable = "neon")]
11662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
11664#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3, LANE = 0))]
11665#[rustc_legacy_const_generics(2)]
11666#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11667#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11668pub unsafe fn vld3_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x3_t) -> poly16x4x3_t {
11669    static_assert_uimm_bits!(LANE, 2);
11670    transmute(vld3_lane_s16::<LANE>(transmute(a), transmute(b)))
11671}
11672
11673/// Load multiple 3-element structures to three registers
11674///
11675/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_p16)
11676#[inline]
11677#[target_feature(enable = "neon")]
11678#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
11679#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld3, LANE = 0))]
11680#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld3, LANE = 0))]
11681#[rustc_legacy_const_generics(2)]
11682#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
11683#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
11684pub unsafe fn vld3q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x3_t) -> poly16x8x3_t {
11685    static_assert_uimm_bits!(LANE, 3);
11686    transmute(vld3q_lane_s16::<LANE>(transmute(a), transmute(b)))
11687}
11688
11689/// Load multiple 3-element structures to three registers
11690///
11691/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)
11692#[inline]
11693#[cfg(target_arch = "arm")]
11694#[target_feature(enable = "neon,v7")]
11695#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
11696#[rustc_legacy_const_generics(2)]
11697#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11698pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
11699    static_assert_uimm_bits!(LANE, 1);
11700    #[allow(improper_ctypes)]
11701    extern "unadjusted" {
11702        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v2f32.p0i8")]
11703        fn vld3_lane_f32_(ptr: *const i8, a: float32x2_t, b: float32x2_t, c: float32x2_t, n: i32, size: i32) -> float32x2x3_t;
11704    }
11705vld3_lane_f32_(a as _, b.0, b.1, b.2, LANE, 4)
11706}
11707
11708/// Load multiple 3-element structures to three registers
11709///
11710/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3_lane_f32)
11711#[inline]
11712#[cfg(not(target_arch = "arm"))]
11713#[target_feature(enable = "neon")]
11714#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
11715#[rustc_legacy_const_generics(2)]
11716#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11717pub unsafe fn vld3_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x3_t) -> float32x2x3_t {
11718    static_assert_uimm_bits!(LANE, 1);
11719    #[allow(improper_ctypes)]
11720    extern "unadjusted" {
11721        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3lane.v2f32.p0i8")]
11722        fn vld3_lane_f32_(a: float32x2_t, b: float32x2_t, c: float32x2_t, n: i64, ptr: *const i8) -> float32x2x3_t;
11723    }
11724vld3_lane_f32_(b.0, b.1, b.2, LANE as i64, a as _)
11725}
11726
11727/// Load multiple 3-element structures to three registers
11728///
11729/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)
11730#[inline]
11731#[cfg(target_arch = "arm")]
11732#[target_feature(enable = "neon,v7")]
11733#[cfg_attr(test, assert_instr(vld3, LANE = 0))]
11734#[rustc_legacy_const_generics(2)]
11735#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11736pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
11737    static_assert_uimm_bits!(LANE, 2);
11738    #[allow(improper_ctypes)]
11739    extern "unadjusted" {
11740        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld3lane.v4f32.p0i8")]
11741        fn vld3q_lane_f32_(ptr: *const i8, a: float32x4_t, b: float32x4_t, c: float32x4_t, n: i32, size: i32) -> float32x4x3_t;
11742    }
11743vld3q_lane_f32_(a as _, b.0, b.1, b.2, LANE, 4)
11744}
11745
11746/// Load multiple 3-element structures to three registers
11747///
11748/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld3q_lane_f32)
11749#[inline]
11750#[cfg(not(target_arch = "arm"))]
11751#[target_feature(enable = "neon")]
11752#[cfg_attr(test, assert_instr(ld3, LANE = 0))]
11753#[rustc_legacy_const_generics(2)]
11754#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11755pub unsafe fn vld3q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x3_t) -> float32x4x3_t {
11756    static_assert_uimm_bits!(LANE, 2);
11757    #[allow(improper_ctypes)]
11758    extern "unadjusted" {
11759        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld3lane.v4f32.p0i8")]
11760        fn vld3q_lane_f32_(a: float32x4_t, b: float32x4_t, c: float32x4_t, n: i64, ptr: *const i8) -> float32x4x3_t;
11761    }
11762vld3q_lane_f32_(b.0, b.1, b.2, LANE as i64, a as _)
11763}
11764
11765/// Load multiple 4-element structures to four registers
11766///
11767/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)
11768#[inline]
11769#[cfg(target_arch = "arm")]
11770#[target_feature(enable = "neon,v7")]
11771#[cfg_attr(test, assert_instr(vld4))]
11772#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11773pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
11774    #[allow(improper_ctypes)]
11775    extern "unadjusted" {
11776        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i8.p0i8")]
11777        fn vld4_s8_(ptr: *const i8, size: i32) -> int8x8x4_t;
11778    }
11779vld4_s8_(a as *const i8, 1)
11780}
11781
11782/// Load multiple 4-element structures to four registers
11783///
11784/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s8)
11785#[inline]
11786#[cfg(not(target_arch = "arm"))]
11787#[target_feature(enable = "neon")]
11788#[cfg_attr(test, assert_instr(ld4))]
11789#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11790pub unsafe fn vld4_s8(a: *const i8) -> int8x8x4_t {
11791    #[allow(improper_ctypes)]
11792    extern "unadjusted" {
11793        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4.v8i8.p0v8i8")]
11794        fn vld4_s8_(ptr: *const int8x8_t) -> int8x8x4_t;
11795    }
11796vld4_s8_(a as _)
11797}
11798
11799/// Load multiple 4-element structures to four registers
11800///
11801/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)
11802#[inline]
11803#[cfg(target_arch = "arm")]
11804#[target_feature(enable = "neon,v7")]
11805#[cfg_attr(test, assert_instr(vld4))]
11806#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11807pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
11808    #[allow(improper_ctypes)]
11809    extern "unadjusted" {
11810        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i16.p0i8")]
11811        fn vld4_s16_(ptr: *const i8, size: i32) -> int16x4x4_t;
11812    }
11813vld4_s16_(a as *const i8, 2)
11814}
11815
11816/// Load multiple 4-element structures to four registers
11817///
11818/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s16)
11819#[inline]
11820#[cfg(not(target_arch = "arm"))]
11821#[target_feature(enable = "neon")]
11822#[cfg_attr(test, assert_instr(ld4))]
11823#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11824pub unsafe fn vld4_s16(a: *const i16) -> int16x4x4_t {
11825    #[allow(improper_ctypes)]
11826    extern "unadjusted" {
11827        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4.v4i16.p0v4i16")]
11828        fn vld4_s16_(ptr: *const int16x4_t) -> int16x4x4_t;
11829    }
11830vld4_s16_(a as _)
11831}
11832
11833/// Load multiple 4-element structures to four registers
11834///
11835/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)
11836#[inline]
11837#[cfg(target_arch = "arm")]
11838#[target_feature(enable = "neon,v7")]
11839#[cfg_attr(test, assert_instr(vld4))]
11840#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11841pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
11842    #[allow(improper_ctypes)]
11843    extern "unadjusted" {
11844        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2i32.p0i8")]
11845        fn vld4_s32_(ptr: *const i8, size: i32) -> int32x2x4_t;
11846    }
11847vld4_s32_(a as *const i8, 4)
11848}
11849
11850/// Load multiple 4-element structures to four registers
11851///
11852/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s32)
11853#[inline]
11854#[cfg(not(target_arch = "arm"))]
11855#[target_feature(enable = "neon")]
11856#[cfg_attr(test, assert_instr(ld4))]
11857#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11858pub unsafe fn vld4_s32(a: *const i32) -> int32x2x4_t {
11859    #[allow(improper_ctypes)]
11860    extern "unadjusted" {
11861        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4.v2i32.p0v2i32")]
11862        fn vld4_s32_(ptr: *const int32x2_t) -> int32x2x4_t;
11863    }
11864vld4_s32_(a as _)
11865}
11866
11867/// Load multiple 4-element structures to four registers
11868///
11869/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)
11870#[inline]
11871#[cfg(target_arch = "arm")]
11872#[target_feature(enable = "neon,v7")]
11873#[cfg_attr(test, assert_instr(vld4))]
11874#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11875pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
11876    #[allow(improper_ctypes)]
11877    extern "unadjusted" {
11878        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v16i8.p0i8")]
11879        fn vld4q_s8_(ptr: *const i8, size: i32) -> int8x16x4_t;
11880    }
11881vld4q_s8_(a as *const i8, 1)
11882}
11883
11884/// Load multiple 4-element structures to four registers
11885///
11886/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s8)
11887#[inline]
11888#[cfg(not(target_arch = "arm"))]
11889#[target_feature(enable = "neon")]
11890#[cfg_attr(test, assert_instr(ld4))]
11891#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11892pub unsafe fn vld4q_s8(a: *const i8) -> int8x16x4_t {
11893    #[allow(improper_ctypes)]
11894    extern "unadjusted" {
11895        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4.v16i8.p0v16i8")]
11896        fn vld4q_s8_(ptr: *const int8x16_t) -> int8x16x4_t;
11897    }
11898vld4q_s8_(a as _)
11899}
11900
11901/// Load multiple 4-element structures to four registers
11902///
11903/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)
11904#[inline]
11905#[cfg(target_arch = "arm")]
11906#[target_feature(enable = "neon,v7")]
11907#[cfg_attr(test, assert_instr(vld4))]
11908#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11909pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
11910    #[allow(improper_ctypes)]
11911    extern "unadjusted" {
11912        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v8i16.p0i8")]
11913        fn vld4q_s16_(ptr: *const i8, size: i32) -> int16x8x4_t;
11914    }
11915vld4q_s16_(a as *const i8, 2)
11916}
11917
11918/// Load multiple 4-element structures to four registers
11919///
11920/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s16)
11921#[inline]
11922#[cfg(not(target_arch = "arm"))]
11923#[target_feature(enable = "neon")]
11924#[cfg_attr(test, assert_instr(ld4))]
11925#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11926pub unsafe fn vld4q_s16(a: *const i16) -> int16x8x4_t {
11927    #[allow(improper_ctypes)]
11928    extern "unadjusted" {
11929        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4.v8i16.p0v8i16")]
11930        fn vld4q_s16_(ptr: *const int16x8_t) -> int16x8x4_t;
11931    }
11932vld4q_s16_(a as _)
11933}
11934
11935/// Load multiple 4-element structures to four registers
11936///
11937/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)
11938#[inline]
11939#[cfg(target_arch = "arm")]
11940#[target_feature(enable = "neon,v7")]
11941#[cfg_attr(test, assert_instr(vld4))]
11942#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11943pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
11944    #[allow(improper_ctypes)]
11945    extern "unadjusted" {
11946        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4i32.p0i8")]
11947        fn vld4q_s32_(ptr: *const i8, size: i32) -> int32x4x4_t;
11948    }
11949vld4q_s32_(a as *const i8, 4)
11950}
11951
11952/// Load multiple 4-element structures to four registers
11953///
11954/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_s32)
11955#[inline]
11956#[cfg(not(target_arch = "arm"))]
11957#[target_feature(enable = "neon")]
11958#[cfg_attr(test, assert_instr(ld4))]
11959#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11960pub unsafe fn vld4q_s32(a: *const i32) -> int32x4x4_t {
11961    #[allow(improper_ctypes)]
11962    extern "unadjusted" {
11963        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4.v4i32.p0v4i32")]
11964        fn vld4q_s32_(ptr: *const int32x4_t) -> int32x4x4_t;
11965    }
11966vld4q_s32_(a as _)
11967}
11968
11969/// Load multiple 4-element structures to four registers
11970///
11971/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)
11972#[inline]
11973#[cfg(target_arch = "arm")]
11974#[target_feature(enable = "neon,v7")]
11975#[cfg_attr(test, assert_instr(nop))]
11976#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
11977pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
11978    #[allow(improper_ctypes)]
11979    extern "unadjusted" {
11980        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v1i64.p0i8")]
11981        fn vld4_s64_(ptr: *const i8, size: i32) -> int64x1x4_t;
11982    }
11983vld4_s64_(a as *const i8, 8)
11984}
11985
11986/// Load multiple 4-element structures to four registers
11987///
11988/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_s64)
11989#[inline]
11990#[cfg(not(target_arch = "arm"))]
11991#[target_feature(enable = "neon")]
11992#[cfg_attr(test, assert_instr(nop))]
11993#[stable(feature = "neon_intrinsics", since = "1.59.0")]
11994pub unsafe fn vld4_s64(a: *const i64) -> int64x1x4_t {
11995    #[allow(improper_ctypes)]
11996    extern "unadjusted" {
11997        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4.v1i64.p0v1i64")]
11998        fn vld4_s64_(ptr: *const int64x1_t) -> int64x1x4_t;
11999    }
12000vld4_s64_(a as _)
12001}
12002
12003/// Load multiple 4-element structures to four registers
12004///
12005/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u8)
12006#[inline]
12007#[target_feature(enable = "neon")]
12008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12009#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12010#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12011#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12012#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12013pub unsafe fn vld4_u8(a: *const u8) -> uint8x8x4_t {
12014    transmute(vld4_s8(transmute(a)))
12015}
12016
12017/// Load multiple 4-element structures to four registers
12018///
12019/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u16)
12020#[inline]
12021#[target_feature(enable = "neon")]
12022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12023#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12024#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12025#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12026#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12027pub unsafe fn vld4_u16(a: *const u16) -> uint16x4x4_t {
12028    transmute(vld4_s16(transmute(a)))
12029}
12030
12031/// Load multiple 4-element structures to four registers
12032///
12033/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u32)
12034#[inline]
12035#[target_feature(enable = "neon")]
12036#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12037#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12038#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12039#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12040#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12041pub unsafe fn vld4_u32(a: *const u32) -> uint32x2x4_t {
12042    transmute(vld4_s32(transmute(a)))
12043}
12044
12045/// Load multiple 4-element structures to four registers
12046///
12047/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u8)
12048#[inline]
12049#[target_feature(enable = "neon")]
12050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12052#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12053#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12054#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12055pub unsafe fn vld4q_u8(a: *const u8) -> uint8x16x4_t {
12056    transmute(vld4q_s8(transmute(a)))
12057}
12058
12059/// Load multiple 4-element structures to four registers
12060///
12061/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u16)
12062#[inline]
12063#[target_feature(enable = "neon")]
12064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12065#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12066#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12067#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12068#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12069pub unsafe fn vld4q_u16(a: *const u16) -> uint16x8x4_t {
12070    transmute(vld4q_s16(transmute(a)))
12071}
12072
12073/// Load multiple 4-element structures to four registers
12074///
12075/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_u32)
12076#[inline]
12077#[target_feature(enable = "neon")]
12078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12080#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12081#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12082#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12083pub unsafe fn vld4q_u32(a: *const u32) -> uint32x4x4_t {
12084    transmute(vld4q_s32(transmute(a)))
12085}
12086
12087/// Load multiple 4-element structures to four registers
12088///
12089/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p8)
12090#[inline]
12091#[target_feature(enable = "neon")]
12092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12093#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12094#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12095#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12096#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12097pub unsafe fn vld4_p8(a: *const p8) -> poly8x8x4_t {
12098    transmute(vld4_s8(transmute(a)))
12099}
12100
12101/// Load multiple 4-element structures to four registers
12102///
12103/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p16)
12104#[inline]
12105#[target_feature(enable = "neon")]
12106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12108#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12109#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12110#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12111pub unsafe fn vld4_p16(a: *const p16) -> poly16x4x4_t {
12112    transmute(vld4_s16(transmute(a)))
12113}
12114
12115/// Load multiple 4-element structures to four registers
12116///
12117/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p8)
12118#[inline]
12119#[target_feature(enable = "neon")]
12120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12121#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12122#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12123#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12124#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12125pub unsafe fn vld4q_p8(a: *const p8) -> poly8x16x4_t {
12126    transmute(vld4q_s8(transmute(a)))
12127}
12128
12129/// Load multiple 4-element structures to four registers
12130///
12131/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_p16)
12132#[inline]
12133#[target_feature(enable = "neon")]
12134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12136#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4))]
12137#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12138#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12139pub unsafe fn vld4q_p16(a: *const p16) -> poly16x8x4_t {
12140    transmute(vld4q_s16(transmute(a)))
12141}
12142
12143/// Load multiple 4-element structures to four registers
12144///
12145/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_u64)
12146#[inline]
12147#[target_feature(enable = "neon")]
12148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
12150#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
12151#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12152#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12153pub unsafe fn vld4_u64(a: *const u64) -> uint64x1x4_t {
12154    transmute(vld4_s64(transmute(a)))
12155}
12156
12157/// Load multiple 4-element structures to four registers
12158///
12159/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_p64)
12160#[inline]
12161#[target_feature(enable = "neon,aes")]
12162#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
12163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
12164#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
12165#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12166#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12167pub unsafe fn vld4_p64(a: *const p64) -> poly64x1x4_t {
12168    transmute(vld4_s64(transmute(a)))
12169}
12170
12171/// Load multiple 4-element structures to four registers
12172///
12173/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)
12174#[inline]
12175#[cfg(target_arch = "arm")]
12176#[target_feature(enable = "neon,v7")]
12177#[cfg_attr(test, assert_instr(vld4))]
12178#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12179pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
12180    #[allow(improper_ctypes)]
12181    extern "unadjusted" {
12182        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v2f32.p0i8")]
12183        fn vld4_f32_(ptr: *const i8, size: i32) -> float32x2x4_t;
12184    }
12185vld4_f32_(a as *const i8, 4)
12186}
12187
12188/// Load multiple 4-element structures to four registers
12189///
12190/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_f32)
12191#[inline]
12192#[cfg(not(target_arch = "arm"))]
12193#[target_feature(enable = "neon")]
12194#[cfg_attr(test, assert_instr(ld4))]
12195#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12196pub unsafe fn vld4_f32(a: *const f32) -> float32x2x4_t {
12197    #[allow(improper_ctypes)]
12198    extern "unadjusted" {
12199        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4.v2f32.p0v2f32")]
12200        fn vld4_f32_(ptr: *const float32x2_t) -> float32x2x4_t;
12201    }
12202vld4_f32_(a as _)
12203}
12204
12205/// Load multiple 4-element structures to four registers
12206///
12207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)
12208#[inline]
12209#[cfg(target_arch = "arm")]
12210#[target_feature(enable = "neon,v7")]
12211#[cfg_attr(test, assert_instr(vld4))]
12212#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12213pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
12214    #[allow(improper_ctypes)]
12215    extern "unadjusted" {
12216        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4.v4f32.p0i8")]
12217        fn vld4q_f32_(ptr: *const i8, size: i32) -> float32x4x4_t;
12218    }
12219vld4q_f32_(a as *const i8, 4)
12220}
12221
12222/// Load multiple 4-element structures to four registers
12223///
12224/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_f32)
12225#[inline]
12226#[cfg(not(target_arch = "arm"))]
12227#[target_feature(enable = "neon")]
12228#[cfg_attr(test, assert_instr(ld4))]
12229#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12230pub unsafe fn vld4q_f32(a: *const f32) -> float32x4x4_t {
12231    #[allow(improper_ctypes)]
12232    extern "unadjusted" {
12233        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4.v4f32.p0v4f32")]
12234        fn vld4q_f32_(ptr: *const float32x4_t) -> float32x4x4_t;
12235    }
12236vld4q_f32_(a as _)
12237}
12238
12239/// Load single 4-element structure and replicate to all lanes of four registers
12240///
12241/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)
12242#[inline]
12243#[cfg(target_arch = "arm")]
12244#[target_feature(enable = "neon,v7")]
12245#[cfg_attr(test, assert_instr(vld4))]
12246#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12247pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
12248    #[allow(improper_ctypes)]
12249    extern "unadjusted" {
12250        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i8.p0i8")]
12251        fn vld4_dup_s8_(ptr: *const i8, size: i32) -> int8x8x4_t;
12252    }
12253vld4_dup_s8_(a as *const i8, 1)
12254}
12255
12256/// Load single 4-element structure and replicate to all lanes of four registers
12257///
12258/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s8)
12259#[inline]
12260#[cfg(not(target_arch = "arm"))]
12261#[target_feature(enable = "neon")]
12262#[cfg_attr(test, assert_instr(ld4r))]
12263#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12264pub unsafe fn vld4_dup_s8(a: *const i8) -> int8x8x4_t {
12265    #[allow(improper_ctypes)]
12266    extern "unadjusted" {
12267        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4r.v8i8.p0i8")]
12268        fn vld4_dup_s8_(ptr: *const i8) -> int8x8x4_t;
12269    }
12270vld4_dup_s8_(a as _)
12271}
12272
12273/// Load single 4-element structure and replicate to all lanes of four registers
12274///
12275/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s16)
12276#[inline]
12277#[cfg(target_arch = "arm")]
12278#[target_feature(enable = "neon,v7")]
12279#[cfg_attr(test, assert_instr(vld4))]
12280#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12281pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
12282    #[allow(improper_ctypes)]
12283    extern "unadjusted" {
12284        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i16.p0i8")]
12285        fn vld4_dup_s16_(ptr: *const i8, size: i32) -> int16x4x4_t;
12286    }
12287vld4_dup_s16_(a as *const i8, 2)
12288}
12289
12290/// Load single 4-element structure and replicate to all lanes of four registers
12291///
12292/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s16)
12293#[inline]
12294#[cfg(not(target_arch = "arm"))]
12295#[target_feature(enable = "neon")]
12296#[cfg_attr(test, assert_instr(ld4r))]
12297#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12298pub unsafe fn vld4_dup_s16(a: *const i16) -> int16x4x4_t {
12299    #[allow(improper_ctypes)]
12300    extern "unadjusted" {
12301        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4r.v4i16.p0i16")]
12302        fn vld4_dup_s16_(ptr: *const i16) -> int16x4x4_t;
12303    }
12304vld4_dup_s16_(a as _)
12305}
12306
12307/// Load single 4-element structure and replicate to all lanes of four registers
12308///
12309/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)
12310#[inline]
12311#[cfg(target_arch = "arm")]
12312#[target_feature(enable = "neon,v7")]
12313#[cfg_attr(test, assert_instr(vld4))]
12314#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12315pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
12316    #[allow(improper_ctypes)]
12317    extern "unadjusted" {
12318        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2i32.p0i8")]
12319        fn vld4_dup_s32_(ptr: *const i8, size: i32) -> int32x2x4_t;
12320    }
12321vld4_dup_s32_(a as *const i8, 4)
12322}
12323
12324/// Load single 4-element structure and replicate to all lanes of four registers
12325///
12326/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s32)
12327#[inline]
12328#[cfg(not(target_arch = "arm"))]
12329#[target_feature(enable = "neon")]
12330#[cfg_attr(test, assert_instr(ld4r))]
12331#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12332pub unsafe fn vld4_dup_s32(a: *const i32) -> int32x2x4_t {
12333    #[allow(improper_ctypes)]
12334    extern "unadjusted" {
12335        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4r.v2i32.p0i32")]
12336        fn vld4_dup_s32_(ptr: *const i32) -> int32x2x4_t;
12337    }
12338vld4_dup_s32_(a as _)
12339}
12340
12341/// Load single 4-element structure and replicate to all lanes of four registers
12342///
12343/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)
12344#[inline]
12345#[cfg(target_arch = "arm")]
12346#[target_feature(enable = "neon,v7")]
12347#[cfg_attr(test, assert_instr(vld4))]
12348#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12349pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
12350    #[allow(improper_ctypes)]
12351    extern "unadjusted" {
12352        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v16i8.p0i8")]
12353        fn vld4q_dup_s8_(ptr: *const i8, size: i32) -> int8x16x4_t;
12354    }
12355vld4q_dup_s8_(a as *const i8, 1)
12356}
12357
12358/// Load single 4-element structure and replicate to all lanes of four registers
12359///
12360/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s8)
12361#[inline]
12362#[cfg(not(target_arch = "arm"))]
12363#[target_feature(enable = "neon")]
12364#[cfg_attr(test, assert_instr(ld4r))]
12365#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12366pub unsafe fn vld4q_dup_s8(a: *const i8) -> int8x16x4_t {
12367    #[allow(improper_ctypes)]
12368    extern "unadjusted" {
12369        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4r.v16i8.p0i8")]
12370        fn vld4q_dup_s8_(ptr: *const i8) -> int8x16x4_t;
12371    }
12372vld4q_dup_s8_(a as _)
12373}
12374
12375/// Load single 4-element structure and replicate to all lanes of four registers
12376///
12377/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s16)
12378#[inline]
12379#[cfg(target_arch = "arm")]
12380#[target_feature(enable = "neon,v7")]
12381#[cfg_attr(test, assert_instr(vld4))]
12382#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12383pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
12384    #[allow(improper_ctypes)]
12385    extern "unadjusted" {
12386        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v8i16.p0i8")]
12387        fn vld4q_dup_s16_(ptr: *const i8, size: i32) -> int16x8x4_t;
12388    }
12389vld4q_dup_s16_(a as *const i8, 2)
12390}
12391
12392/// Load single 4-element structure and replicate to all lanes of four registers
12393///
12394/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s16)
12395#[inline]
12396#[cfg(not(target_arch = "arm"))]
12397#[target_feature(enable = "neon")]
12398#[cfg_attr(test, assert_instr(ld4r))]
12399#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12400pub unsafe fn vld4q_dup_s16(a: *const i16) -> int16x8x4_t {
12401    #[allow(improper_ctypes)]
12402    extern "unadjusted" {
12403        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4r.v8i16.p0i16")]
12404        fn vld4q_dup_s16_(ptr: *const i16) -> int16x8x4_t;
12405    }
12406vld4q_dup_s16_(a as _)
12407}
12408
12409/// Load single 4-element structure and replicate to all lanes of four registers
12410///
12411/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)
12412#[inline]
12413#[cfg(target_arch = "arm")]
12414#[target_feature(enable = "neon,v7")]
12415#[cfg_attr(test, assert_instr(vld4))]
12416#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12417pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
12418    #[allow(improper_ctypes)]
12419    extern "unadjusted" {
12420        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4i32.p0i8")]
12421        fn vld4q_dup_s32_(ptr: *const i8, size: i32) -> int32x4x4_t;
12422    }
12423vld4q_dup_s32_(a as *const i8, 4)
12424}
12425
12426/// Load single 4-element structure and replicate to all lanes of four registers
12427///
12428/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_s32)
12429#[inline]
12430#[cfg(not(target_arch = "arm"))]
12431#[target_feature(enable = "neon")]
12432#[cfg_attr(test, assert_instr(ld4r))]
12433#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12434pub unsafe fn vld4q_dup_s32(a: *const i32) -> int32x4x4_t {
12435    #[allow(improper_ctypes)]
12436    extern "unadjusted" {
12437        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4r.v4i32.p0i32")]
12438        fn vld4q_dup_s32_(ptr: *const i32) -> int32x4x4_t;
12439    }
12440vld4q_dup_s32_(a as _)
12441}
12442
12443/// Load single 4-element structure and replicate to all lanes of four registers
12444///
12445/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)
12446#[inline]
12447#[cfg(target_arch = "arm")]
12448#[target_feature(enable = "neon,v7")]
12449#[cfg_attr(test, assert_instr(nop))]
12450#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12451pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
12452    #[allow(improper_ctypes)]
12453    extern "unadjusted" {
12454        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v1i64.p0i8")]
12455        fn vld4_dup_s64_(ptr: *const i8, size: i32) -> int64x1x4_t;
12456    }
12457vld4_dup_s64_(a as *const i8, 8)
12458}
12459
12460/// Load single 4-element structure and replicate to all lanes of four registers
12461///
12462/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_s64)
12463#[inline]
12464#[cfg(not(target_arch = "arm"))]
12465#[target_feature(enable = "neon")]
12466#[cfg_attr(test, assert_instr(ld4r))]
12467#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12468pub unsafe fn vld4_dup_s64(a: *const i64) -> int64x1x4_t {
12469    #[allow(improper_ctypes)]
12470    extern "unadjusted" {
12471        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4r.v1i64.p0i64")]
12472        fn vld4_dup_s64_(ptr: *const i64) -> int64x1x4_t;
12473    }
12474vld4_dup_s64_(a as _)
12475}
12476
12477/// Load single 4-element structure and replicate to all lanes of four registers
12478///
12479/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u8)
12480#[inline]
12481#[target_feature(enable = "neon")]
12482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12484#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12485#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12486#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12487pub unsafe fn vld4_dup_u8(a: *const u8) -> uint8x8x4_t {
12488    transmute(vld4_dup_s8(transmute(a)))
12489}
12490
12491/// Load single 4-element structure and replicate to all lanes of four registers
12492///
12493/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u16)
12494#[inline]
12495#[target_feature(enable = "neon")]
12496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12498#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12499#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12500#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12501pub unsafe fn vld4_dup_u16(a: *const u16) -> uint16x4x4_t {
12502    transmute(vld4_dup_s16(transmute(a)))
12503}
12504
12505/// Load single 4-element structure and replicate to all lanes of four registers
12506///
12507/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u32)
12508#[inline]
12509#[target_feature(enable = "neon")]
12510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12511#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12512#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12513#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12514#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12515pub unsafe fn vld4_dup_u32(a: *const u32) -> uint32x2x4_t {
12516    transmute(vld4_dup_s32(transmute(a)))
12517}
12518
12519/// Load single 4-element structure and replicate to all lanes of four registers
12520///
12521/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u8)
12522#[inline]
12523#[target_feature(enable = "neon")]
12524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12525#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12526#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12527#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12528#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12529pub unsafe fn vld4q_dup_u8(a: *const u8) -> uint8x16x4_t {
12530    transmute(vld4q_dup_s8(transmute(a)))
12531}
12532
12533/// Load single 4-element structure and replicate to all lanes of four registers
12534///
12535/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u16)
12536#[inline]
12537#[target_feature(enable = "neon")]
12538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12540#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12541#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12542#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12543pub unsafe fn vld4q_dup_u16(a: *const u16) -> uint16x8x4_t {
12544    transmute(vld4q_dup_s16(transmute(a)))
12545}
12546
12547/// Load single 4-element structure and replicate to all lanes of four registers
12548///
12549/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_u32)
12550#[inline]
12551#[target_feature(enable = "neon")]
12552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12554#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12555#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12556#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12557pub unsafe fn vld4q_dup_u32(a: *const u32) -> uint32x4x4_t {
12558    transmute(vld4q_dup_s32(transmute(a)))
12559}
12560
12561/// Load single 4-element structure and replicate to all lanes of four registers
12562///
12563/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p8)
12564#[inline]
12565#[target_feature(enable = "neon")]
12566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12568#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12569#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12570#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12571pub unsafe fn vld4_dup_p8(a: *const p8) -> poly8x8x4_t {
12572    transmute(vld4_dup_s8(transmute(a)))
12573}
12574
12575/// Load single 4-element structure and replicate to all lanes of four registers
12576///
12577/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p16)
12578#[inline]
12579#[target_feature(enable = "neon")]
12580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12582#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12583#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12584#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12585pub unsafe fn vld4_dup_p16(a: *const p16) -> poly16x4x4_t {
12586    transmute(vld4_dup_s16(transmute(a)))
12587}
12588
12589/// Load single 4-element structure and replicate to all lanes of four registers
12590///
12591/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p8)
12592#[inline]
12593#[target_feature(enable = "neon")]
12594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12596#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12597#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12598#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12599pub unsafe fn vld4q_dup_p8(a: *const p8) -> poly8x16x4_t {
12600    transmute(vld4q_dup_s8(transmute(a)))
12601}
12602
12603/// Load single 4-element structure and replicate to all lanes of four registers
12604///
12605/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_p16)
12606#[inline]
12607#[target_feature(enable = "neon")]
12608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4))]
12610#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12611#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12612#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12613pub unsafe fn vld4q_dup_p16(a: *const p16) -> poly16x8x4_t {
12614    transmute(vld4q_dup_s16(transmute(a)))
12615}
12616
12617/// Load single 4-element structure and replicate to all lanes of four registers
12618///
12619/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_u64)
12620#[inline]
12621#[target_feature(enable = "neon")]
12622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
12624#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12625#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12626#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12627pub unsafe fn vld4_dup_u64(a: *const u64) -> uint64x1x4_t {
12628    transmute(vld4_dup_s64(transmute(a)))
12629}
12630
12631/// Load single 4-element structure and replicate to all lanes of four registers
12632///
12633/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_p64)
12634#[inline]
12635#[target_feature(enable = "neon,aes")]
12636#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
12637#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
12638#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4r))]
12639#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12640#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12641pub unsafe fn vld4_dup_p64(a: *const p64) -> poly64x1x4_t {
12642    transmute(vld4_dup_s64(transmute(a)))
12643}
12644
12645/// Load single 4-element structure and replicate to all lanes of four registers
12646///
12647/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)
12648#[inline]
12649#[cfg(target_arch = "arm")]
12650#[target_feature(enable = "neon,v7")]
12651#[cfg_attr(test, assert_instr(vld4))]
12652#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12653pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
12654    #[allow(improper_ctypes)]
12655    extern "unadjusted" {
12656        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v2f32.p0i8")]
12657        fn vld4_dup_f32_(ptr: *const i8, size: i32) -> float32x2x4_t;
12658    }
12659vld4_dup_f32_(a as *const i8, 4)
12660}
12661
12662/// Load single 4-element structure and replicate to all lanes of four registers
12663///
12664/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_dup_f32)
12665#[inline]
12666#[cfg(not(target_arch = "arm"))]
12667#[target_feature(enable = "neon")]
12668#[cfg_attr(test, assert_instr(ld4r))]
12669#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12670pub unsafe fn vld4_dup_f32(a: *const f32) -> float32x2x4_t {
12671    #[allow(improper_ctypes)]
12672    extern "unadjusted" {
12673        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4r.v2f32.p0f32")]
12674        fn vld4_dup_f32_(ptr: *const f32) -> float32x2x4_t;
12675    }
12676vld4_dup_f32_(a as _)
12677}
12678
12679/// Load single 4-element structure and replicate to all lanes of four registers
12680///
12681/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)
12682#[inline]
12683#[cfg(target_arch = "arm")]
12684#[target_feature(enable = "neon,v7")]
12685#[cfg_attr(test, assert_instr(vld4))]
12686#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12687pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
12688    #[allow(improper_ctypes)]
12689    extern "unadjusted" {
12690        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4dup.v4f32.p0i8")]
12691        fn vld4q_dup_f32_(ptr: *const i8, size: i32) -> float32x4x4_t;
12692    }
12693vld4q_dup_f32_(a as *const i8, 4)
12694}
12695
12696/// Load single 4-element structure and replicate to all lanes of four registers
12697///
12698/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_dup_f32)
12699#[inline]
12700#[cfg(not(target_arch = "arm"))]
12701#[target_feature(enable = "neon")]
12702#[cfg_attr(test, assert_instr(ld4r))]
12703#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12704pub unsafe fn vld4q_dup_f32(a: *const f32) -> float32x4x4_t {
12705    #[allow(improper_ctypes)]
12706    extern "unadjusted" {
12707        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4r.v4f32.p0f32")]
12708        fn vld4q_dup_f32_(ptr: *const f32) -> float32x4x4_t;
12709    }
12710vld4q_dup_f32_(a as _)
12711}
12712
12713/// Load multiple 4-element structures to four registers
12714///
12715/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)
12716#[inline]
12717#[cfg(target_arch = "arm")]
12718#[target_feature(enable = "neon,v7")]
12719#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
12720#[rustc_legacy_const_generics(2)]
12721#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12722pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
12723    static_assert_uimm_bits!(LANE, 3);
12724    #[allow(improper_ctypes)]
12725    extern "unadjusted" {
12726        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i8.p0i8")]
12727        fn vld4_lane_s8_(ptr: *const i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, n: i32, size: i32) -> int8x8x4_t;
12728    }
12729vld4_lane_s8_(a as _, b.0, b.1, b.2, b.3, LANE, 1)
12730}
12731
12732/// Load multiple 4-element structures to four registers
12733///
12734/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s8)
12735#[inline]
12736#[cfg(not(target_arch = "arm"))]
12737#[target_feature(enable = "neon")]
12738#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
12739#[rustc_legacy_const_generics(2)]
12740#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12741pub unsafe fn vld4_lane_s8<const LANE: i32>(a: *const i8, b: int8x8x4_t) -> int8x8x4_t {
12742    static_assert_uimm_bits!(LANE, 3);
12743    #[allow(improper_ctypes)]
12744    extern "unadjusted" {
12745        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4lane.v8i8.p0i8")]
12746        fn vld4_lane_s8_(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, n: i64, ptr: *const i8) -> int8x8x4_t;
12747    }
12748vld4_lane_s8_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
12749}
12750
12751/// Load multiple 4-element structures to four registers
12752///
12753/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)
12754#[inline]
12755#[cfg(target_arch = "arm")]
12756#[target_feature(enable = "neon,v7")]
12757#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
12758#[rustc_legacy_const_generics(2)]
12759#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12760pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
12761    static_assert_uimm_bits!(LANE, 2);
12762    #[allow(improper_ctypes)]
12763    extern "unadjusted" {
12764        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i16.p0i8")]
12765        fn vld4_lane_s16_(ptr: *const i8, a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, n: i32, size: i32) -> int16x4x4_t;
12766    }
12767vld4_lane_s16_(a as _, b.0, b.1, b.2, b.3, LANE, 2)
12768}
12769
12770/// Load multiple 4-element structures to four registers
12771///
12772/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s16)
12773#[inline]
12774#[cfg(not(target_arch = "arm"))]
12775#[target_feature(enable = "neon")]
12776#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
12777#[rustc_legacy_const_generics(2)]
12778#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12779pub unsafe fn vld4_lane_s16<const LANE: i32>(a: *const i16, b: int16x4x4_t) -> int16x4x4_t {
12780    static_assert_uimm_bits!(LANE, 2);
12781    #[allow(improper_ctypes)]
12782    extern "unadjusted" {
12783        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4lane.v4i16.p0i8")]
12784        fn vld4_lane_s16_(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, n: i64, ptr: *const i8) -> int16x4x4_t;
12785    }
12786vld4_lane_s16_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
12787}
12788
12789/// Load multiple 4-element structures to four registers
12790///
12791/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)
12792#[inline]
12793#[cfg(target_arch = "arm")]
12794#[target_feature(enable = "neon,v7")]
12795#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
12796#[rustc_legacy_const_generics(2)]
12797#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12798pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
12799    static_assert_uimm_bits!(LANE, 1);
12800    #[allow(improper_ctypes)]
12801    extern "unadjusted" {
12802        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2i32.p0i8")]
12803        fn vld4_lane_s32_(ptr: *const i8, a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, n: i32, size: i32) -> int32x2x4_t;
12804    }
12805vld4_lane_s32_(a as _, b.0, b.1, b.2, b.3, LANE, 4)
12806}
12807
12808/// Load multiple 4-element structures to four registers
12809///
12810/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_s32)
12811#[inline]
12812#[cfg(not(target_arch = "arm"))]
12813#[target_feature(enable = "neon")]
12814#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
12815#[rustc_legacy_const_generics(2)]
12816#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12817pub unsafe fn vld4_lane_s32<const LANE: i32>(a: *const i32, b: int32x2x4_t) -> int32x2x4_t {
12818    static_assert_uimm_bits!(LANE, 1);
12819    #[allow(improper_ctypes)]
12820    extern "unadjusted" {
12821        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4lane.v2i32.p0i8")]
12822        fn vld4_lane_s32_(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, n: i64, ptr: *const i8) -> int32x2x4_t;
12823    }
12824vld4_lane_s32_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
12825}
12826
12827/// Load multiple 4-element structures to four registers
12828///
12829/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)
12830#[inline]
12831#[cfg(target_arch = "arm")]
12832#[target_feature(enable = "neon,v7")]
12833#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
12834#[rustc_legacy_const_generics(2)]
12835#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12836pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
12837    static_assert_uimm_bits!(LANE, 3);
12838    #[allow(improper_ctypes)]
12839    extern "unadjusted" {
12840        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v8i16.p0i8")]
12841        fn vld4q_lane_s16_(ptr: *const i8, a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, n: i32, size: i32) -> int16x8x4_t;
12842    }
12843vld4q_lane_s16_(a as _, b.0, b.1, b.2, b.3, LANE, 2)
12844}
12845
12846/// Load multiple 4-element structures to four registers
12847///
12848/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s16)
12849#[inline]
12850#[cfg(not(target_arch = "arm"))]
12851#[target_feature(enable = "neon")]
12852#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
12853#[rustc_legacy_const_generics(2)]
12854#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12855pub unsafe fn vld4q_lane_s16<const LANE: i32>(a: *const i16, b: int16x8x4_t) -> int16x8x4_t {
12856    static_assert_uimm_bits!(LANE, 3);
12857    #[allow(improper_ctypes)]
12858    extern "unadjusted" {
12859        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4lane.v8i16.p0i8")]
12860        fn vld4q_lane_s16_(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, n: i64, ptr: *const i8) -> int16x8x4_t;
12861    }
12862vld4q_lane_s16_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
12863}
12864
12865/// Load multiple 4-element structures to four registers
12866///
12867/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)
12868#[inline]
12869#[cfg(target_arch = "arm")]
12870#[target_feature(enable = "neon,v7")]
12871#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
12872#[rustc_legacy_const_generics(2)]
12873#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
12874pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
12875    static_assert_uimm_bits!(LANE, 2);
12876    #[allow(improper_ctypes)]
12877    extern "unadjusted" {
12878        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4i32.p0i8")]
12879        fn vld4q_lane_s32_(ptr: *const i8, a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, n: i32, size: i32) -> int32x4x4_t;
12880    }
12881vld4q_lane_s32_(a as _, b.0, b.1, b.2, b.3, LANE, 4)
12882}
12883
12884/// Load multiple 4-element structures to four registers
12885///
12886/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_s32)
12887#[inline]
12888#[cfg(not(target_arch = "arm"))]
12889#[target_feature(enable = "neon")]
12890#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
12891#[rustc_legacy_const_generics(2)]
12892#[stable(feature = "neon_intrinsics", since = "1.59.0")]
12893pub unsafe fn vld4q_lane_s32<const LANE: i32>(a: *const i32, b: int32x4x4_t) -> int32x4x4_t {
12894    static_assert_uimm_bits!(LANE, 2);
12895    #[allow(improper_ctypes)]
12896    extern "unadjusted" {
12897        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4lane.v4i32.p0i8")]
12898        fn vld4q_lane_s32_(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, n: i64, ptr: *const i8) -> int32x4x4_t;
12899    }
12900vld4q_lane_s32_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
12901}
12902
12903/// Load multiple 4-element structures to four registers
12904///
12905/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u8)
12906#[inline]
12907#[target_feature(enable = "neon")]
12908#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12909#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
12910#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4, LANE = 0))]
12911#[rustc_legacy_const_generics(2)]
12912#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12913#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12914pub unsafe fn vld4_lane_u8<const LANE: i32>(a: *const u8, b: uint8x8x4_t) -> uint8x8x4_t {
12915    static_assert_uimm_bits!(LANE, 3);
12916    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
12917}
12918
12919/// Load multiple 4-element structures to four registers
12920///
12921/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u16)
12922#[inline]
12923#[target_feature(enable = "neon")]
12924#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12925#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
12926#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4, LANE = 0))]
12927#[rustc_legacy_const_generics(2)]
12928#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12929#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12930pub unsafe fn vld4_lane_u16<const LANE: i32>(a: *const u16, b: uint16x4x4_t) -> uint16x4x4_t {
12931    static_assert_uimm_bits!(LANE, 2);
12932    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
12933}
12934
12935/// Load multiple 4-element structures to four registers
12936///
12937/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_u32)
12938#[inline]
12939#[target_feature(enable = "neon")]
12940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
12942#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4, LANE = 0))]
12943#[rustc_legacy_const_generics(2)]
12944#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12945#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12946pub unsafe fn vld4_lane_u32<const LANE: i32>(a: *const u32, b: uint32x2x4_t) -> uint32x2x4_t {
12947    static_assert_uimm_bits!(LANE, 1);
12948    transmute(vld4_lane_s32::<LANE>(transmute(a), transmute(b)))
12949}
12950
12951/// Load multiple 4-element structures to four registers
12952///
12953/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u16)
12954#[inline]
12955#[target_feature(enable = "neon")]
12956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12957#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
12958#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4, LANE = 0))]
12959#[rustc_legacy_const_generics(2)]
12960#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12961#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12962pub unsafe fn vld4q_lane_u16<const LANE: i32>(a: *const u16, b: uint16x8x4_t) -> uint16x8x4_t {
12963    static_assert_uimm_bits!(LANE, 3);
12964    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
12965}
12966
12967/// Load multiple 4-element structures to four registers
12968///
12969/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_u32)
12970#[inline]
12971#[target_feature(enable = "neon")]
12972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12973#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
12974#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4, LANE = 0))]
12975#[rustc_legacy_const_generics(2)]
12976#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12977#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12978pub unsafe fn vld4q_lane_u32<const LANE: i32>(a: *const u32, b: uint32x4x4_t) -> uint32x4x4_t {
12979    static_assert_uimm_bits!(LANE, 2);
12980    transmute(vld4q_lane_s32::<LANE>(transmute(a), transmute(b)))
12981}
12982
12983/// Load multiple 4-element structures to four registers
12984///
12985/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p8)
12986#[inline]
12987#[target_feature(enable = "neon")]
12988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
12989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
12990#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4, LANE = 0))]
12991#[rustc_legacy_const_generics(2)]
12992#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
12993#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
12994pub unsafe fn vld4_lane_p8<const LANE: i32>(a: *const p8, b: poly8x8x4_t) -> poly8x8x4_t {
12995    static_assert_uimm_bits!(LANE, 3);
12996    transmute(vld4_lane_s8::<LANE>(transmute(a), transmute(b)))
12997}
12998
12999/// Load multiple 4-element structures to four registers
13000///
13001/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_p16)
13002#[inline]
13003#[target_feature(enable = "neon")]
13004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13005#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
13006#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4, LANE = 0))]
13007#[rustc_legacy_const_generics(2)]
13008#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13009#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13010pub unsafe fn vld4_lane_p16<const LANE: i32>(a: *const p16, b: poly16x4x4_t) -> poly16x4x4_t {
13011    static_assert_uimm_bits!(LANE, 2);
13012    transmute(vld4_lane_s16::<LANE>(transmute(a), transmute(b)))
13013}
13014
13015/// Load multiple 4-element structures to four registers
13016///
13017/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_p16)
13018#[inline]
13019#[target_feature(enable = "neon")]
13020#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vld4, LANE = 0))]
13022#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ld4, LANE = 0))]
13023#[rustc_legacy_const_generics(2)]
13024#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13025#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13026pub unsafe fn vld4q_lane_p16<const LANE: i32>(a: *const p16, b: poly16x8x4_t) -> poly16x8x4_t {
13027    static_assert_uimm_bits!(LANE, 3);
13028    transmute(vld4q_lane_s16::<LANE>(transmute(a), transmute(b)))
13029}
13030
13031/// Load multiple 4-element structures to four registers
13032///
13033/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)
13034#[inline]
13035#[cfg(target_arch = "arm")]
13036#[target_feature(enable = "neon,v7")]
13037#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
13038#[rustc_legacy_const_generics(2)]
13039#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13040pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
13041    static_assert_uimm_bits!(LANE, 1);
13042    #[allow(improper_ctypes)]
13043    extern "unadjusted" {
13044        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v2f32.p0i8")]
13045        fn vld4_lane_f32_(ptr: *const i8, a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, n: i32, size: i32) -> float32x2x4_t;
13046    }
13047vld4_lane_f32_(a as _, b.0, b.1, b.2, b.3, LANE, 4)
13048}
13049
13050/// Load multiple 4-element structures to four registers
13051///
13052/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4_lane_f32)
13053#[inline]
13054#[cfg(not(target_arch = "arm"))]
13055#[target_feature(enable = "neon")]
13056#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
13057#[rustc_legacy_const_generics(2)]
13058#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13059pub unsafe fn vld4_lane_f32<const LANE: i32>(a: *const f32, b: float32x2x4_t) -> float32x2x4_t {
13060    static_assert_uimm_bits!(LANE, 1);
13061    #[allow(improper_ctypes)]
13062    extern "unadjusted" {
13063        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4lane.v2f32.p0i8")]
13064        fn vld4_lane_f32_(a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, n: i64, ptr: *const i8) -> float32x2x4_t;
13065    }
13066vld4_lane_f32_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
13067}
13068
13069/// Load multiple 4-element structures to four registers
13070///
13071/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)
13072#[inline]
13073#[cfg(target_arch = "arm")]
13074#[target_feature(enable = "neon,v7")]
13075#[cfg_attr(test, assert_instr(vld4, LANE = 0))]
13076#[rustc_legacy_const_generics(2)]
13077#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13078pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
13079    static_assert_uimm_bits!(LANE, 2);
13080    #[allow(improper_ctypes)]
13081    extern "unadjusted" {
13082        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vld4lane.v4f32.p0i8")]
13083        fn vld4q_lane_f32_(ptr: *const i8, a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, n: i32, size: i32) -> float32x4x4_t;
13084    }
13085vld4q_lane_f32_(a as _, b.0, b.1, b.2, b.3, LANE, 4)
13086}
13087
13088/// Load multiple 4-element structures to four registers
13089///
13090/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vld4q_lane_f32)
13091#[inline]
13092#[cfg(not(target_arch = "arm"))]
13093#[target_feature(enable = "neon")]
13094#[cfg_attr(test, assert_instr(ld4, LANE = 0))]
13095#[rustc_legacy_const_generics(2)]
13096#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13097pub unsafe fn vld4q_lane_f32<const LANE: i32>(a: *const f32, b: float32x4x4_t) -> float32x4x4_t {
13098    static_assert_uimm_bits!(LANE, 2);
13099    #[allow(improper_ctypes)]
13100    extern "unadjusted" {
13101        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ld4lane.v4f32.p0i8")]
13102        fn vld4q_lane_f32_(a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, n: i64, ptr: *const i8) -> float32x4x4_t;
13103    }
13104vld4q_lane_f32_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
13105}
13106
13107/// Store multiple single-element structures from one, two, three, or four registers
13108///
13109/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s8)
13110#[inline]
13111#[target_feature(enable = "neon")]
13112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13114#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13115#[rustc_legacy_const_generics(2)]
13116#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13117#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13118pub unsafe fn vst1_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8_t) {
13119    static_assert_uimm_bits!(LANE, 3);
13120    *a = simd_extract!(b, LANE as u32);
13121}
13122
13123/// Store multiple single-element structures from one, two, three, or four registers
13124///
13125/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s16)
13126#[inline]
13127#[target_feature(enable = "neon")]
13128#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13129#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13130#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13131#[rustc_legacy_const_generics(2)]
13132#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13133#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13134pub unsafe fn vst1_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4_t) {
13135    static_assert_uimm_bits!(LANE, 2);
13136    *a = simd_extract!(b, LANE as u32);
13137}
13138
13139/// Store multiple single-element structures from one, two, three, or four registers
13140///
13141/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s32)
13142#[inline]
13143#[target_feature(enable = "neon")]
13144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13146#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13147#[rustc_legacy_const_generics(2)]
13148#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13149#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13150pub unsafe fn vst1_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2_t) {
13151    static_assert_uimm_bits!(LANE, 1);
13152    *a = simd_extract!(b, LANE as u32);
13153}
13154
13155/// Store multiple single-element structures from one, two, three, or four registers
13156///
13157/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_s64)
13158#[inline]
13159#[target_feature(enable = "neon")]
13160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13161#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13162#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13163#[rustc_legacy_const_generics(2)]
13164#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13165#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13166pub unsafe fn vst1_lane_s64<const LANE: i32>(a: *mut i64, b: int64x1_t) {
13167    static_assert!(LANE == 0);
13168    *a = simd_extract!(b, LANE as u32);
13169}
13170
13171/// Store multiple single-element structures from one, two, three, or four registers
13172///
13173/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s8)
13174#[inline]
13175#[target_feature(enable = "neon")]
13176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13177#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13178#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13179#[rustc_legacy_const_generics(2)]
13180#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13181#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13182pub unsafe fn vst1q_lane_s8<const LANE: i32>(a: *mut i8, b: int8x16_t) {
13183    static_assert_uimm_bits!(LANE, 4);
13184    *a = simd_extract!(b, LANE as u32);
13185}
13186
13187/// Store multiple single-element structures from one, two, three, or four registers
13188///
13189/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s16)
13190#[inline]
13191#[target_feature(enable = "neon")]
13192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13194#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13195#[rustc_legacy_const_generics(2)]
13196#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13197#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13198pub unsafe fn vst1q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8_t) {
13199    static_assert_uimm_bits!(LANE, 3);
13200    *a = simd_extract!(b, LANE as u32);
13201}
13202
13203/// Store multiple single-element structures from one, two, three, or four registers
13204///
13205/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s32)
13206#[inline]
13207#[target_feature(enable = "neon")]
13208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13210#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13211#[rustc_legacy_const_generics(2)]
13212#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13213#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13214pub unsafe fn vst1q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4_t) {
13215    static_assert_uimm_bits!(LANE, 2);
13216    *a = simd_extract!(b, LANE as u32);
13217}
13218
13219/// Store multiple single-element structures from one, two, three, or four registers
13220///
13221/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_s64)
13222#[inline]
13223#[target_feature(enable = "neon")]
13224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13226#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13227#[rustc_legacy_const_generics(2)]
13228#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13229#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13230pub unsafe fn vst1q_lane_s64<const LANE: i32>(a: *mut i64, b: int64x2_t) {
13231    static_assert_uimm_bits!(LANE, 1);
13232    *a = simd_extract!(b, LANE as u32);
13233}
13234
13235/// Store multiple single-element structures from one, two, three, or four registers
13236///
13237/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u8)
13238#[inline]
13239#[target_feature(enable = "neon")]
13240#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13241#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13242#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13243#[rustc_legacy_const_generics(2)]
13244#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13245#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13246pub unsafe fn vst1_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8_t) {
13247    static_assert_uimm_bits!(LANE, 3);
13248    *a = simd_extract!(b, LANE as u32);
13249}
13250
13251/// Store multiple single-element structures from one, two, three, or four registers
13252///
13253/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u16)
13254#[inline]
13255#[target_feature(enable = "neon")]
13256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13257#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13258#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13259#[rustc_legacy_const_generics(2)]
13260#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13261#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13262pub unsafe fn vst1_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4_t) {
13263    static_assert_uimm_bits!(LANE, 2);
13264    *a = simd_extract!(b, LANE as u32);
13265}
13266
13267/// Store multiple single-element structures from one, two, three, or four registers
13268///
13269/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u32)
13270#[inline]
13271#[target_feature(enable = "neon")]
13272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13274#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13275#[rustc_legacy_const_generics(2)]
13276#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13277#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13278pub unsafe fn vst1_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2_t) {
13279    static_assert_uimm_bits!(LANE, 1);
13280    *a = simd_extract!(b, LANE as u32);
13281}
13282
13283/// Store multiple single-element structures from one, two, three, or four registers
13284///
13285/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_u64)
13286#[inline]
13287#[target_feature(enable = "neon")]
13288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13290#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13291#[rustc_legacy_const_generics(2)]
13292#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13293#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13294pub unsafe fn vst1_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x1_t) {
13295    static_assert!(LANE == 0);
13296    *a = simd_extract!(b, LANE as u32);
13297}
13298
13299/// Store multiple single-element structures from one, two, three, or four registers
13300///
13301/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u8)
13302#[inline]
13303#[target_feature(enable = "neon")]
13304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13305#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13306#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13307#[rustc_legacy_const_generics(2)]
13308#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13309#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13310pub unsafe fn vst1q_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x16_t) {
13311    static_assert_uimm_bits!(LANE, 4);
13312    *a = simd_extract!(b, LANE as u32);
13313}
13314
13315/// Store multiple single-element structures from one, two, three, or four registers
13316///
13317/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u16)
13318#[inline]
13319#[target_feature(enable = "neon")]
13320#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13321#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13322#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13323#[rustc_legacy_const_generics(2)]
13324#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13325#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13326pub unsafe fn vst1q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8_t) {
13327    static_assert_uimm_bits!(LANE, 3);
13328    *a = simd_extract!(b, LANE as u32);
13329}
13330
13331/// Store multiple single-element structures from one, two, three, or four registers
13332///
13333/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u32)
13334#[inline]
13335#[target_feature(enable = "neon")]
13336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13337#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13338#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13339#[rustc_legacy_const_generics(2)]
13340#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13341#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13342pub unsafe fn vst1q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4_t) {
13343    static_assert_uimm_bits!(LANE, 2);
13344    *a = simd_extract!(b, LANE as u32);
13345}
13346
13347/// Store multiple single-element structures from one, two, three, or four registers
13348///
13349/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_u64)
13350#[inline]
13351#[target_feature(enable = "neon")]
13352#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13353#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13354#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13355#[rustc_legacy_const_generics(2)]
13356#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13357#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13358pub unsafe fn vst1q_lane_u64<const LANE: i32>(a: *mut u64, b: uint64x2_t) {
13359    static_assert_uimm_bits!(LANE, 1);
13360    *a = simd_extract!(b, LANE as u32);
13361}
13362
13363/// Store multiple single-element structures from one, two, three, or four registers
13364///
13365/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p8)
13366#[inline]
13367#[target_feature(enable = "neon")]
13368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13369#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13370#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13371#[rustc_legacy_const_generics(2)]
13372#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13373#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13374pub unsafe fn vst1_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8_t) {
13375    static_assert_uimm_bits!(LANE, 3);
13376    *a = simd_extract!(b, LANE as u32);
13377}
13378
13379/// Store multiple single-element structures from one, two, three, or four registers
13380///
13381/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p16)
13382#[inline]
13383#[target_feature(enable = "neon")]
13384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13386#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13387#[rustc_legacy_const_generics(2)]
13388#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13389#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13390pub unsafe fn vst1_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4_t) {
13391    static_assert_uimm_bits!(LANE, 2);
13392    *a = simd_extract!(b, LANE as u32);
13393}
13394
13395/// Store multiple single-element structures from one, two, three, or four registers
13396///
13397/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p8)
13398#[inline]
13399#[target_feature(enable = "neon")]
13400#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13401#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13402#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13403#[rustc_legacy_const_generics(2)]
13404#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13405#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13406pub unsafe fn vst1q_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x16_t) {
13407    static_assert_uimm_bits!(LANE, 4);
13408    *a = simd_extract!(b, LANE as u32);
13409}
13410
13411/// Store multiple single-element structures from one, two, three, or four registers
13412///
13413/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p16)
13414#[inline]
13415#[target_feature(enable = "neon")]
13416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13418#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13419#[rustc_legacy_const_generics(2)]
13420#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13421#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13422pub unsafe fn vst1q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8_t) {
13423    static_assert_uimm_bits!(LANE, 3);
13424    *a = simd_extract!(b, LANE as u32);
13425}
13426
13427/// Store multiple single-element structures from one, two, three, or four registers
13428///
13429/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_p64)
13430#[inline]
13431#[target_feature(enable = "neon,aes")]
13432#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
13433#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13434#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13435#[rustc_legacy_const_generics(2)]
13436#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13437#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13438pub unsafe fn vst1_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x1_t) {
13439    static_assert!(LANE == 0);
13440    *a = simd_extract!(b, LANE as u32);
13441}
13442
13443/// Store multiple single-element structures from one, two, three, or four registers
13444///
13445/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_p64)
13446#[inline]
13447#[target_feature(enable = "neon,aes")]
13448#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
13449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13450#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13451#[rustc_legacy_const_generics(2)]
13452#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13453#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13454pub unsafe fn vst1q_lane_p64<const LANE: i32>(a: *mut p64, b: poly64x2_t) {
13455    static_assert_uimm_bits!(LANE, 1);
13456    *a = simd_extract!(b, LANE as u32);
13457}
13458
13459/// Store multiple single-element structures from one, two, three, or four registers
13460///
13461/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_lane_f32)
13462#[inline]
13463#[target_feature(enable = "neon")]
13464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13465#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13466#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13467#[rustc_legacy_const_generics(2)]
13468#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13469#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13470pub unsafe fn vst1_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2_t) {
13471    static_assert_uimm_bits!(LANE, 1);
13472    *a = simd_extract!(b, LANE as u32);
13473}
13474
13475/// Store multiple single-element structures from one, two, three, or four registers
13476///
13477/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_lane_f32)
13478#[inline]
13479#[target_feature(enable = "neon")]
13480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
13481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
13482#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
13483#[rustc_legacy_const_generics(2)]
13484#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
13485#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
13486pub unsafe fn vst1q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4_t) {
13487    static_assert_uimm_bits!(LANE, 2);
13488    *a = simd_extract!(b, LANE as u32);
13489}
13490
13491/// Store multiple single-element structures from one, two, three, or four registers
13492///
13493/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)
13494#[inline]
13495#[cfg(target_arch = "arm")]
13496#[target_feature(enable = "neon,v7")]
13497#[cfg_attr(test, assert_instr(vst1))]
13498#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13499pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
13500    #[allow(improper_ctypes)]
13501    extern "unadjusted" {
13502        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0i8.v8i8")]
13503        fn vst1_s8_x2_(ptr: *mut i8, a: int8x8_t, b: int8x8_t);
13504    }
13505vst1_s8_x2_(a, b.0, b.1)
13506}
13507
13508/// Store multiple single-element structures from one, two, three, or four registers
13509///
13510/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x2)
13511#[inline]
13512#[cfg(not(target_arch = "arm"))]
13513#[target_feature(enable = "neon")]
13514#[cfg_attr(test, assert_instr(st1))]
13515#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13516pub unsafe fn vst1_s8_x2(a: *mut i8, b: int8x8x2_t) {
13517    #[allow(improper_ctypes)]
13518    extern "unadjusted" {
13519        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v8i8.p0i8")]
13520        fn vst1_s8_x2_(a: int8x8_t, b: int8x8_t, ptr: *mut i8);
13521    }
13522vst1_s8_x2_(b.0, b.1, a)
13523}
13524
13525/// Store multiple single-element structures from one, two, three, or four registers
13526///
13527/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)
13528#[inline]
13529#[cfg(target_arch = "arm")]
13530#[target_feature(enable = "neon,v7")]
13531#[cfg_attr(test, assert_instr(vst1))]
13532#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13533pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
13534    #[allow(improper_ctypes)]
13535    extern "unadjusted" {
13536        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0i16.v4i16")]
13537        fn vst1_s16_x2_(ptr: *mut i16, a: int16x4_t, b: int16x4_t);
13538    }
13539vst1_s16_x2_(a, b.0, b.1)
13540}
13541
13542/// Store multiple single-element structures from one, two, three, or four registers
13543///
13544/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x2)
13545#[inline]
13546#[cfg(not(target_arch = "arm"))]
13547#[target_feature(enable = "neon")]
13548#[cfg_attr(test, assert_instr(st1))]
13549#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13550pub unsafe fn vst1_s16_x2(a: *mut i16, b: int16x4x2_t) {
13551    #[allow(improper_ctypes)]
13552    extern "unadjusted" {
13553        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v4i16.p0i16")]
13554        fn vst1_s16_x2_(a: int16x4_t, b: int16x4_t, ptr: *mut i16);
13555    }
13556vst1_s16_x2_(b.0, b.1, a)
13557}
13558
13559/// Store multiple single-element structures from one, two, three, or four registers
13560///
13561/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)
13562#[inline]
13563#[cfg(target_arch = "arm")]
13564#[target_feature(enable = "neon,v7")]
13565#[cfg_attr(test, assert_instr(vst1))]
13566#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13567pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
13568    #[allow(improper_ctypes)]
13569    extern "unadjusted" {
13570        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0i32.v2i32")]
13571        fn vst1_s32_x2_(ptr: *mut i32, a: int32x2_t, b: int32x2_t);
13572    }
13573vst1_s32_x2_(a, b.0, b.1)
13574}
13575
13576/// Store multiple single-element structures from one, two, three, or four registers
13577///
13578/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x2)
13579#[inline]
13580#[cfg(not(target_arch = "arm"))]
13581#[target_feature(enable = "neon")]
13582#[cfg_attr(test, assert_instr(st1))]
13583#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13584pub unsafe fn vst1_s32_x2(a: *mut i32, b: int32x2x2_t) {
13585    #[allow(improper_ctypes)]
13586    extern "unadjusted" {
13587        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v2i32.p0i32")]
13588        fn vst1_s32_x2_(a: int32x2_t, b: int32x2_t, ptr: *mut i32);
13589    }
13590vst1_s32_x2_(b.0, b.1, a)
13591}
13592
13593/// Store multiple single-element structures from one, two, three, or four registers
13594///
13595/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)
13596#[inline]
13597#[cfg(target_arch = "arm")]
13598#[target_feature(enable = "neon,v7")]
13599#[cfg_attr(test, assert_instr(vst1))]
13600#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13601pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
13602    #[allow(improper_ctypes)]
13603    extern "unadjusted" {
13604        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0i64.v1i64")]
13605        fn vst1_s64_x2_(ptr: *mut i64, a: int64x1_t, b: int64x1_t);
13606    }
13607vst1_s64_x2_(a, b.0, b.1)
13608}
13609
13610/// Store multiple single-element structures from one, two, three, or four registers
13611///
13612/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x2)
13613#[inline]
13614#[cfg(not(target_arch = "arm"))]
13615#[target_feature(enable = "neon")]
13616#[cfg_attr(test, assert_instr(st1))]
13617#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13618pub unsafe fn vst1_s64_x2(a: *mut i64, b: int64x1x2_t) {
13619    #[allow(improper_ctypes)]
13620    extern "unadjusted" {
13621        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v1i64.p0i64")]
13622        fn vst1_s64_x2_(a: int64x1_t, b: int64x1_t, ptr: *mut i64);
13623    }
13624vst1_s64_x2_(b.0, b.1, a)
13625}
13626
13627/// Store multiple single-element structures from one, two, three, or four registers
13628///
13629/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)
13630#[inline]
13631#[cfg(target_arch = "arm")]
13632#[target_feature(enable = "neon,v7")]
13633#[cfg_attr(test, assert_instr(vst1))]
13634#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13635pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
13636    #[allow(improper_ctypes)]
13637    extern "unadjusted" {
13638        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0i8.v16i8")]
13639        fn vst1q_s8_x2_(ptr: *mut i8, a: int8x16_t, b: int8x16_t);
13640    }
13641vst1q_s8_x2_(a, b.0, b.1)
13642}
13643
13644/// Store multiple single-element structures from one, two, three, or four registers
13645///
13646/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x2)
13647#[inline]
13648#[cfg(not(target_arch = "arm"))]
13649#[target_feature(enable = "neon")]
13650#[cfg_attr(test, assert_instr(st1))]
13651#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13652pub unsafe fn vst1q_s8_x2(a: *mut i8, b: int8x16x2_t) {
13653    #[allow(improper_ctypes)]
13654    extern "unadjusted" {
13655        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v16i8.p0i8")]
13656        fn vst1q_s8_x2_(a: int8x16_t, b: int8x16_t, ptr: *mut i8);
13657    }
13658vst1q_s8_x2_(b.0, b.1, a)
13659}
13660
13661/// Store multiple single-element structures from one, two, three, or four registers
13662///
13663/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)
13664#[inline]
13665#[cfg(target_arch = "arm")]
13666#[target_feature(enable = "neon,v7")]
13667#[cfg_attr(test, assert_instr(vst1))]
13668#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13669pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
13670    #[allow(improper_ctypes)]
13671    extern "unadjusted" {
13672        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0i16.v8i16")]
13673        fn vst1q_s16_x2_(ptr: *mut i16, a: int16x8_t, b: int16x8_t);
13674    }
13675vst1q_s16_x2_(a, b.0, b.1)
13676}
13677
13678/// Store multiple single-element structures from one, two, three, or four registers
13679///
13680/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x2)
13681#[inline]
13682#[cfg(not(target_arch = "arm"))]
13683#[target_feature(enable = "neon")]
13684#[cfg_attr(test, assert_instr(st1))]
13685#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13686pub unsafe fn vst1q_s16_x2(a: *mut i16, b: int16x8x2_t) {
13687    #[allow(improper_ctypes)]
13688    extern "unadjusted" {
13689        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v8i16.p0i16")]
13690        fn vst1q_s16_x2_(a: int16x8_t, b: int16x8_t, ptr: *mut i16);
13691    }
13692vst1q_s16_x2_(b.0, b.1, a)
13693}
13694
13695/// Store multiple single-element structures from one, two, three, or four registers
13696///
13697/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)
13698#[inline]
13699#[cfg(target_arch = "arm")]
13700#[target_feature(enable = "neon,v7")]
13701#[cfg_attr(test, assert_instr(vst1))]
13702#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13703pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
13704    #[allow(improper_ctypes)]
13705    extern "unadjusted" {
13706        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0i32.v4i32")]
13707        fn vst1q_s32_x2_(ptr: *mut i32, a: int32x4_t, b: int32x4_t);
13708    }
13709vst1q_s32_x2_(a, b.0, b.1)
13710}
13711
13712/// Store multiple single-element structures from one, two, three, or four registers
13713///
13714/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x2)
13715#[inline]
13716#[cfg(not(target_arch = "arm"))]
13717#[target_feature(enable = "neon")]
13718#[cfg_attr(test, assert_instr(st1))]
13719#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13720pub unsafe fn vst1q_s32_x2(a: *mut i32, b: int32x4x2_t) {
13721    #[allow(improper_ctypes)]
13722    extern "unadjusted" {
13723        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v4i32.p0i32")]
13724        fn vst1q_s32_x2_(a: int32x4_t, b: int32x4_t, ptr: *mut i32);
13725    }
13726vst1q_s32_x2_(b.0, b.1, a)
13727}
13728
13729/// Store multiple single-element structures from one, two, three, or four registers
13730///
13731/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)
13732#[inline]
13733#[cfg(target_arch = "arm")]
13734#[target_feature(enable = "neon,v7")]
13735#[cfg_attr(test, assert_instr(vst1))]
13736#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13737pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
13738    #[allow(improper_ctypes)]
13739    extern "unadjusted" {
13740        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0i64.v2i64")]
13741        fn vst1q_s64_x2_(ptr: *mut i64, a: int64x2_t, b: int64x2_t);
13742    }
13743vst1q_s64_x2_(a, b.0, b.1)
13744}
13745
13746/// Store multiple single-element structures from one, two, three, or four registers
13747///
13748/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x2)
13749#[inline]
13750#[cfg(not(target_arch = "arm"))]
13751#[target_feature(enable = "neon")]
13752#[cfg_attr(test, assert_instr(st1))]
13753#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13754pub unsafe fn vst1q_s64_x2(a: *mut i64, b: int64x2x2_t) {
13755    #[allow(improper_ctypes)]
13756    extern "unadjusted" {
13757        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v2i64.p0i64")]
13758        fn vst1q_s64_x2_(a: int64x2_t, b: int64x2_t, ptr: *mut i64);
13759    }
13760vst1q_s64_x2_(b.0, b.1, a)
13761}
13762
13763/// Store multiple single-element structures from one, two, three, or four registers
13764///
13765/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)
13766#[inline]
13767#[cfg(target_arch = "arm")]
13768#[target_feature(enable = "neon,v7")]
13769#[cfg_attr(test, assert_instr(vst1))]
13770#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13771pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
13772    #[allow(improper_ctypes)]
13773    extern "unadjusted" {
13774        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0i8.v8i8")]
13775        fn vst1_s8_x3_(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t);
13776    }
13777vst1_s8_x3_(a, b.0, b.1, b.2)
13778}
13779
13780/// Store multiple single-element structures from one, two, three, or four registers
13781///
13782/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x3)
13783#[inline]
13784#[cfg(not(target_arch = "arm"))]
13785#[target_feature(enable = "neon")]
13786#[cfg_attr(test, assert_instr(st1))]
13787#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13788pub unsafe fn vst1_s8_x3(a: *mut i8, b: int8x8x3_t) {
13789    #[allow(improper_ctypes)]
13790    extern "unadjusted" {
13791        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v8i8.p0i8")]
13792        fn vst1_s8_x3_(a: int8x8_t, b: int8x8_t, c: int8x8_t, ptr: *mut i8);
13793    }
13794vst1_s8_x3_(b.0, b.1, b.2, a)
13795}
13796
13797/// Store multiple single-element structures from one, two, three, or four registers
13798///
13799/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)
13800#[inline]
13801#[cfg(target_arch = "arm")]
13802#[target_feature(enable = "neon,v7")]
13803#[cfg_attr(test, assert_instr(vst1))]
13804#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13805pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
13806    #[allow(improper_ctypes)]
13807    extern "unadjusted" {
13808        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0i16.v4i16")]
13809        fn vst1_s16_x3_(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t);
13810    }
13811vst1_s16_x3_(a, b.0, b.1, b.2)
13812}
13813
13814/// Store multiple single-element structures from one, two, three, or four registers
13815///
13816/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x3)
13817#[inline]
13818#[cfg(not(target_arch = "arm"))]
13819#[target_feature(enable = "neon")]
13820#[cfg_attr(test, assert_instr(st1))]
13821#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13822pub unsafe fn vst1_s16_x3(a: *mut i16, b: int16x4x3_t) {
13823    #[allow(improper_ctypes)]
13824    extern "unadjusted" {
13825        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v4i16.p0i16")]
13826        fn vst1_s16_x3_(a: int16x4_t, b: int16x4_t, c: int16x4_t, ptr: *mut i16);
13827    }
13828vst1_s16_x3_(b.0, b.1, b.2, a)
13829}
13830
13831/// Store multiple single-element structures from one, two, three, or four registers
13832///
13833/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)
13834#[inline]
13835#[cfg(target_arch = "arm")]
13836#[target_feature(enable = "neon,v7")]
13837#[cfg_attr(test, assert_instr(vst1))]
13838#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13839pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
13840    #[allow(improper_ctypes)]
13841    extern "unadjusted" {
13842        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0i32.v2i32")]
13843        fn vst1_s32_x3_(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t);
13844    }
13845vst1_s32_x3_(a, b.0, b.1, b.2)
13846}
13847
13848/// Store multiple single-element structures from one, two, three, or four registers
13849///
13850/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x3)
13851#[inline]
13852#[cfg(not(target_arch = "arm"))]
13853#[target_feature(enable = "neon")]
13854#[cfg_attr(test, assert_instr(st1))]
13855#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13856pub unsafe fn vst1_s32_x3(a: *mut i32, b: int32x2x3_t) {
13857    #[allow(improper_ctypes)]
13858    extern "unadjusted" {
13859        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v2i32.p0i32")]
13860        fn vst1_s32_x3_(a: int32x2_t, b: int32x2_t, c: int32x2_t, ptr: *mut i32);
13861    }
13862vst1_s32_x3_(b.0, b.1, b.2, a)
13863}
13864
13865/// Store multiple single-element structures from one, two, three, or four registers
13866///
13867/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)
13868#[inline]
13869#[cfg(target_arch = "arm")]
13870#[target_feature(enable = "neon,v7")]
13871#[cfg_attr(test, assert_instr(vst1))]
13872#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13873pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
13874    #[allow(improper_ctypes)]
13875    extern "unadjusted" {
13876        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0i64.v1i64")]
13877        fn vst1_s64_x3_(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t);
13878    }
13879vst1_s64_x3_(a, b.0, b.1, b.2)
13880}
13881
13882/// Store multiple single-element structures from one, two, three, or four registers
13883///
13884/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x3)
13885#[inline]
13886#[cfg(not(target_arch = "arm"))]
13887#[target_feature(enable = "neon")]
13888#[cfg_attr(test, assert_instr(st1))]
13889#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13890pub unsafe fn vst1_s64_x3(a: *mut i64, b: int64x1x3_t) {
13891    #[allow(improper_ctypes)]
13892    extern "unadjusted" {
13893        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v1i64.p0i64")]
13894        fn vst1_s64_x3_(a: int64x1_t, b: int64x1_t, c: int64x1_t, ptr: *mut i64);
13895    }
13896vst1_s64_x3_(b.0, b.1, b.2, a)
13897}
13898
13899/// Store multiple single-element structures from one, two, three, or four registers
13900///
13901/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)
13902#[inline]
13903#[cfg(target_arch = "arm")]
13904#[target_feature(enable = "neon,v7")]
13905#[cfg_attr(test, assert_instr(vst1))]
13906#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13907pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
13908    #[allow(improper_ctypes)]
13909    extern "unadjusted" {
13910        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0i8.v16i8")]
13911        fn vst1q_s8_x3_(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t);
13912    }
13913vst1q_s8_x3_(a, b.0, b.1, b.2)
13914}
13915
13916/// Store multiple single-element structures from one, two, three, or four registers
13917///
13918/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x3)
13919#[inline]
13920#[cfg(not(target_arch = "arm"))]
13921#[target_feature(enable = "neon")]
13922#[cfg_attr(test, assert_instr(st1))]
13923#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13924pub unsafe fn vst1q_s8_x3(a: *mut i8, b: int8x16x3_t) {
13925    #[allow(improper_ctypes)]
13926    extern "unadjusted" {
13927        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v16i8.p0i8")]
13928        fn vst1q_s8_x3_(a: int8x16_t, b: int8x16_t, c: int8x16_t, ptr: *mut i8);
13929    }
13930vst1q_s8_x3_(b.0, b.1, b.2, a)
13931}
13932
13933/// Store multiple single-element structures from one, two, three, or four registers
13934///
13935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)
13936#[inline]
13937#[cfg(target_arch = "arm")]
13938#[target_feature(enable = "neon,v7")]
13939#[cfg_attr(test, assert_instr(vst1))]
13940#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13941pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
13942    #[allow(improper_ctypes)]
13943    extern "unadjusted" {
13944        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0i16.v8i16")]
13945        fn vst1q_s16_x3_(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t);
13946    }
13947vst1q_s16_x3_(a, b.0, b.1, b.2)
13948}
13949
13950/// Store multiple single-element structures from one, two, three, or four registers
13951///
13952/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x3)
13953#[inline]
13954#[cfg(not(target_arch = "arm"))]
13955#[target_feature(enable = "neon")]
13956#[cfg_attr(test, assert_instr(st1))]
13957#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13958pub unsafe fn vst1q_s16_x3(a: *mut i16, b: int16x8x3_t) {
13959    #[allow(improper_ctypes)]
13960    extern "unadjusted" {
13961        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v8i16.p0i16")]
13962        fn vst1q_s16_x3_(a: int16x8_t, b: int16x8_t, c: int16x8_t, ptr: *mut i16);
13963    }
13964vst1q_s16_x3_(b.0, b.1, b.2, a)
13965}
13966
13967/// Store multiple single-element structures from one, two, three, or four registers
13968///
13969/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)
13970#[inline]
13971#[cfg(target_arch = "arm")]
13972#[target_feature(enable = "neon,v7")]
13973#[cfg_attr(test, assert_instr(vst1))]
13974#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
13975pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
13976    #[allow(improper_ctypes)]
13977    extern "unadjusted" {
13978        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0i32.v4i32")]
13979        fn vst1q_s32_x3_(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t);
13980    }
13981vst1q_s32_x3_(a, b.0, b.1, b.2)
13982}
13983
13984/// Store multiple single-element structures from one, two, three, or four registers
13985///
13986/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x3)
13987#[inline]
13988#[cfg(not(target_arch = "arm"))]
13989#[target_feature(enable = "neon")]
13990#[cfg_attr(test, assert_instr(st1))]
13991#[stable(feature = "neon_intrinsics", since = "1.59.0")]
13992pub unsafe fn vst1q_s32_x3(a: *mut i32, b: int32x4x3_t) {
13993    #[allow(improper_ctypes)]
13994    extern "unadjusted" {
13995        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v4i32.p0i32")]
13996        fn vst1q_s32_x3_(a: int32x4_t, b: int32x4_t, c: int32x4_t, ptr: *mut i32);
13997    }
13998vst1q_s32_x3_(b.0, b.1, b.2, a)
13999}
14000
14001/// Store multiple single-element structures from one, two, three, or four registers
14002///
14003/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)
14004#[inline]
14005#[cfg(target_arch = "arm")]
14006#[target_feature(enable = "neon,v7")]
14007#[cfg_attr(test, assert_instr(vst1))]
14008#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14009pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
14010    #[allow(improper_ctypes)]
14011    extern "unadjusted" {
14012        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0i64.v2i64")]
14013        fn vst1q_s64_x3_(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t);
14014    }
14015vst1q_s64_x3_(a, b.0, b.1, b.2)
14016}
14017
14018/// Store multiple single-element structures from one, two, three, or four registers
14019///
14020/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x3)
14021#[inline]
14022#[cfg(not(target_arch = "arm"))]
14023#[target_feature(enable = "neon")]
14024#[cfg_attr(test, assert_instr(st1))]
14025#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14026pub unsafe fn vst1q_s64_x3(a: *mut i64, b: int64x2x3_t) {
14027    #[allow(improper_ctypes)]
14028    extern "unadjusted" {
14029        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v2i64.p0i64")]
14030        fn vst1q_s64_x3_(a: int64x2_t, b: int64x2_t, c: int64x2_t, ptr: *mut i64);
14031    }
14032vst1q_s64_x3_(b.0, b.1, b.2, a)
14033}
14034
14035/// Store multiple single-element structures from one, two, three, or four registers
14036///
14037/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)
14038#[inline]
14039#[cfg(target_arch = "arm")]
14040#[target_feature(enable = "neon,v7")]
14041#[cfg_attr(test, assert_instr(vst1))]
14042#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14043pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
14044    #[allow(improper_ctypes)]
14045    extern "unadjusted" {
14046        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0i8.v8i8")]
14047        fn vst1_s8_x4_(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t);
14048    }
14049vst1_s8_x4_(a, b.0, b.1, b.2, b.3)
14050}
14051
14052/// Store multiple single-element structures from one, two, three, or four registers
14053///
14054/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s8_x4)
14055#[inline]
14056#[cfg(not(target_arch = "arm"))]
14057#[target_feature(enable = "neon")]
14058#[cfg_attr(test, assert_instr(st1))]
14059#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14060pub unsafe fn vst1_s8_x4(a: *mut i8, b: int8x8x4_t) {
14061    #[allow(improper_ctypes)]
14062    extern "unadjusted" {
14063        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v8i8.p0i8")]
14064        fn vst1_s8_x4_(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, ptr: *mut i8);
14065    }
14066vst1_s8_x4_(b.0, b.1, b.2, b.3, a)
14067}
14068
14069/// Store multiple single-element structures from one, two, three, or four registers
14070///
14071/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)
14072#[inline]
14073#[cfg(target_arch = "arm")]
14074#[target_feature(enable = "neon,v7")]
14075#[cfg_attr(test, assert_instr(vst1))]
14076#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14077pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
14078    #[allow(improper_ctypes)]
14079    extern "unadjusted" {
14080        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0i16.v4i16")]
14081        fn vst1_s16_x4_(ptr: *mut i16, a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t);
14082    }
14083vst1_s16_x4_(a, b.0, b.1, b.2, b.3)
14084}
14085
14086/// Store multiple single-element structures from one, two, three, or four registers
14087///
14088/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s16_x4)
14089#[inline]
14090#[cfg(not(target_arch = "arm"))]
14091#[target_feature(enable = "neon")]
14092#[cfg_attr(test, assert_instr(st1))]
14093#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14094pub unsafe fn vst1_s16_x4(a: *mut i16, b: int16x4x4_t) {
14095    #[allow(improper_ctypes)]
14096    extern "unadjusted" {
14097        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v4i16.p0i16")]
14098        fn vst1_s16_x4_(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, ptr: *mut i16);
14099    }
14100vst1_s16_x4_(b.0, b.1, b.2, b.3, a)
14101}
14102
14103/// Store multiple single-element structures from one, two, three, or four registers
14104///
14105/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)
14106#[inline]
14107#[cfg(target_arch = "arm")]
14108#[target_feature(enable = "neon,v7")]
14109#[cfg_attr(test, assert_instr(vst1))]
14110#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14111pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
14112    #[allow(improper_ctypes)]
14113    extern "unadjusted" {
14114        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0i32.v2i32")]
14115        fn vst1_s32_x4_(ptr: *mut i32, a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t);
14116    }
14117vst1_s32_x4_(a, b.0, b.1, b.2, b.3)
14118}
14119
14120/// Store multiple single-element structures from one, two, three, or four registers
14121///
14122/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s32_x4)
14123#[inline]
14124#[cfg(not(target_arch = "arm"))]
14125#[target_feature(enable = "neon")]
14126#[cfg_attr(test, assert_instr(st1))]
14127#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14128pub unsafe fn vst1_s32_x4(a: *mut i32, b: int32x2x4_t) {
14129    #[allow(improper_ctypes)]
14130    extern "unadjusted" {
14131        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v2i32.p0i32")]
14132        fn vst1_s32_x4_(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, ptr: *mut i32);
14133    }
14134vst1_s32_x4_(b.0, b.1, b.2, b.3, a)
14135}
14136
14137/// Store multiple single-element structures from one, two, three, or four registers
14138///
14139/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)
14140#[inline]
14141#[cfg(target_arch = "arm")]
14142#[target_feature(enable = "neon,v7")]
14143#[cfg_attr(test, assert_instr(vst1))]
14144#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14145pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
14146    #[allow(improper_ctypes)]
14147    extern "unadjusted" {
14148        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0i64.v1i64")]
14149        fn vst1_s64_x4_(ptr: *mut i64, a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t);
14150    }
14151vst1_s64_x4_(a, b.0, b.1, b.2, b.3)
14152}
14153
14154/// Store multiple single-element structures from one, two, three, or four registers
14155///
14156/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_s64_x4)
14157#[inline]
14158#[cfg(not(target_arch = "arm"))]
14159#[target_feature(enable = "neon")]
14160#[cfg_attr(test, assert_instr(st1))]
14161#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14162pub unsafe fn vst1_s64_x4(a: *mut i64, b: int64x1x4_t) {
14163    #[allow(improper_ctypes)]
14164    extern "unadjusted" {
14165        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v1i64.p0i64")]
14166        fn vst1_s64_x4_(a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, ptr: *mut i64);
14167    }
14168vst1_s64_x4_(b.0, b.1, b.2, b.3, a)
14169}
14170
14171/// Store multiple single-element structures from one, two, three, or four registers
14172///
14173/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)
14174#[inline]
14175#[cfg(target_arch = "arm")]
14176#[target_feature(enable = "neon,v7")]
14177#[cfg_attr(test, assert_instr(vst1))]
14178#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14179pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
14180    #[allow(improper_ctypes)]
14181    extern "unadjusted" {
14182        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0i8.v16i8")]
14183        fn vst1q_s8_x4_(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t);
14184    }
14185vst1q_s8_x4_(a, b.0, b.1, b.2, b.3)
14186}
14187
14188/// Store multiple single-element structures from one, two, three, or four registers
14189///
14190/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s8_x4)
14191#[inline]
14192#[cfg(not(target_arch = "arm"))]
14193#[target_feature(enable = "neon")]
14194#[cfg_attr(test, assert_instr(st1))]
14195#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14196pub unsafe fn vst1q_s8_x4(a: *mut i8, b: int8x16x4_t) {
14197    #[allow(improper_ctypes)]
14198    extern "unadjusted" {
14199        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v16i8.p0i8")]
14200        fn vst1q_s8_x4_(a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, ptr: *mut i8);
14201    }
14202vst1q_s8_x4_(b.0, b.1, b.2, b.3, a)
14203}
14204
14205/// Store multiple single-element structures from one, two, three, or four registers
14206///
14207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)
14208#[inline]
14209#[cfg(target_arch = "arm")]
14210#[target_feature(enable = "neon,v7")]
14211#[cfg_attr(test, assert_instr(vst1))]
14212#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14213pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
14214    #[allow(improper_ctypes)]
14215    extern "unadjusted" {
14216        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0i16.v8i16")]
14217        fn vst1q_s16_x4_(ptr: *mut i16, a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t);
14218    }
14219vst1q_s16_x4_(a, b.0, b.1, b.2, b.3)
14220}
14221
14222/// Store multiple single-element structures from one, two, three, or four registers
14223///
14224/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s16_x4)
14225#[inline]
14226#[cfg(not(target_arch = "arm"))]
14227#[target_feature(enable = "neon")]
14228#[cfg_attr(test, assert_instr(st1))]
14229#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14230pub unsafe fn vst1q_s16_x4(a: *mut i16, b: int16x8x4_t) {
14231    #[allow(improper_ctypes)]
14232    extern "unadjusted" {
14233        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v8i16.p0i16")]
14234        fn vst1q_s16_x4_(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, ptr: *mut i16);
14235    }
14236vst1q_s16_x4_(b.0, b.1, b.2, b.3, a)
14237}
14238
14239/// Store multiple single-element structures from one, two, three, or four registers
14240///
14241/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)
14242#[inline]
14243#[cfg(target_arch = "arm")]
14244#[target_feature(enable = "neon,v7")]
14245#[cfg_attr(test, assert_instr(vst1))]
14246#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14247pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
14248    #[allow(improper_ctypes)]
14249    extern "unadjusted" {
14250        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0i32.v4i32")]
14251        fn vst1q_s32_x4_(ptr: *mut i32, a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t);
14252    }
14253vst1q_s32_x4_(a, b.0, b.1, b.2, b.3)
14254}
14255
14256/// Store multiple single-element structures from one, two, three, or four registers
14257///
14258/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s32_x4)
14259#[inline]
14260#[cfg(not(target_arch = "arm"))]
14261#[target_feature(enable = "neon")]
14262#[cfg_attr(test, assert_instr(st1))]
14263#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14264pub unsafe fn vst1q_s32_x4(a: *mut i32, b: int32x4x4_t) {
14265    #[allow(improper_ctypes)]
14266    extern "unadjusted" {
14267        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v4i32.p0i32")]
14268        fn vst1q_s32_x4_(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, ptr: *mut i32);
14269    }
14270vst1q_s32_x4_(b.0, b.1, b.2, b.3, a)
14271}
14272
14273/// Store multiple single-element structures from one, two, three, or four registers
14274///
14275/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)
14276#[inline]
14277#[cfg(target_arch = "arm")]
14278#[target_feature(enable = "neon,v7")]
14279#[cfg_attr(test, assert_instr(vst1))]
14280#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14281pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
14282    #[allow(improper_ctypes)]
14283    extern "unadjusted" {
14284        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0i64.v2i64")]
14285        fn vst1q_s64_x4_(ptr: *mut i64, a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t);
14286    }
14287vst1q_s64_x4_(a, b.0, b.1, b.2, b.3)
14288}
14289
14290/// Store multiple single-element structures from one, two, three, or four registers
14291///
14292/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_s64_x4)
14293#[inline]
14294#[cfg(not(target_arch = "arm"))]
14295#[target_feature(enable = "neon")]
14296#[cfg_attr(test, assert_instr(st1))]
14297#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14298pub unsafe fn vst1q_s64_x4(a: *mut i64, b: int64x2x4_t) {
14299    #[allow(improper_ctypes)]
14300    extern "unadjusted" {
14301        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v2i64.p0i64")]
14302        fn vst1q_s64_x4_(a: int64x2_t, b: int64x2_t, c: int64x2_t, d: int64x2_t, ptr: *mut i64);
14303    }
14304vst1q_s64_x4_(b.0, b.1, b.2, b.3, a)
14305}
14306
14307/// Store multiple single-element structures to one, two, three, or four registers
14308///
14309/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x2)
14310#[inline]
14311#[target_feature(enable = "neon")]
14312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14314#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14315#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14316#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14317pub unsafe fn vst1_u8_x2(a: *mut u8, b: uint8x8x2_t) {
14318    vst1_s8_x2(transmute(a), transmute(b))
14319}
14320
14321/// Store multiple single-element structures to one, two, three, or four registers
14322///
14323/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x2)
14324#[inline]
14325#[target_feature(enable = "neon")]
14326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14327#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14328#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14329#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14330#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14331pub unsafe fn vst1_u16_x2(a: *mut u16, b: uint16x4x2_t) {
14332    vst1_s16_x2(transmute(a), transmute(b))
14333}
14334
14335/// Store multiple single-element structures to one, two, three, or four registers
14336///
14337/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x2)
14338#[inline]
14339#[target_feature(enable = "neon")]
14340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14342#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14343#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14344#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14345pub unsafe fn vst1_u32_x2(a: *mut u32, b: uint32x2x2_t) {
14346    vst1_s32_x2(transmute(a), transmute(b))
14347}
14348
14349/// Store multiple single-element structures to one, two, three, or four registers
14350///
14351/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x2)
14352#[inline]
14353#[target_feature(enable = "neon")]
14354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14356#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14357#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14358#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14359pub unsafe fn vst1_u64_x2(a: *mut u64, b: uint64x1x2_t) {
14360    vst1_s64_x2(transmute(a), transmute(b))
14361}
14362
14363/// Store multiple single-element structures to one, two, three, or four registers
14364///
14365/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x2)
14366#[inline]
14367#[target_feature(enable = "neon")]
14368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14369#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14370#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14371#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14372#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14373pub unsafe fn vst1q_u8_x2(a: *mut u8, b: uint8x16x2_t) {
14374    vst1q_s8_x2(transmute(a), transmute(b))
14375}
14376
14377/// Store multiple single-element structures to one, two, three, or four registers
14378///
14379/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x2)
14380#[inline]
14381#[target_feature(enable = "neon")]
14382#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14383#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14384#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14385#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14386#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14387pub unsafe fn vst1q_u16_x2(a: *mut u16, b: uint16x8x2_t) {
14388    vst1q_s16_x2(transmute(a), transmute(b))
14389}
14390
14391/// Store multiple single-element structures to one, two, three, or four registers
14392///
14393/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x2)
14394#[inline]
14395#[target_feature(enable = "neon")]
14396#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14398#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14399#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14400#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14401pub unsafe fn vst1q_u32_x2(a: *mut u32, b: uint32x4x2_t) {
14402    vst1q_s32_x2(transmute(a), transmute(b))
14403}
14404
14405/// Store multiple single-element structures to one, two, three, or four registers
14406///
14407/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x2)
14408#[inline]
14409#[target_feature(enable = "neon")]
14410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14412#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14413#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14414#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14415pub unsafe fn vst1q_u64_x2(a: *mut u64, b: uint64x2x2_t) {
14416    vst1q_s64_x2(transmute(a), transmute(b))
14417}
14418
14419/// Store multiple single-element structures to one, two, three, or four registers
14420///
14421/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x3)
14422#[inline]
14423#[target_feature(enable = "neon")]
14424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14425#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14426#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14427#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14428#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14429pub unsafe fn vst1_u8_x3(a: *mut u8, b: uint8x8x3_t) {
14430    vst1_s8_x3(transmute(a), transmute(b))
14431}
14432
14433/// Store multiple single-element structures to one, two, three, or four registers
14434///
14435/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x3)
14436#[inline]
14437#[target_feature(enable = "neon")]
14438#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14440#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14441#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14442#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14443pub unsafe fn vst1_u16_x3(a: *mut u16, b: uint16x4x3_t) {
14444    vst1_s16_x3(transmute(a), transmute(b))
14445}
14446
14447/// Store multiple single-element structures to one, two, three, or four registers
14448///
14449/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x3)
14450#[inline]
14451#[target_feature(enable = "neon")]
14452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14454#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14455#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14456#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14457pub unsafe fn vst1_u32_x3(a: *mut u32, b: uint32x2x3_t) {
14458    vst1_s32_x3(transmute(a), transmute(b))
14459}
14460
14461/// Store multiple single-element structures to one, two, three, or four registers
14462///
14463/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x3)
14464#[inline]
14465#[target_feature(enable = "neon")]
14466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14467#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14468#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14469#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14470#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14471pub unsafe fn vst1_u64_x3(a: *mut u64, b: uint64x1x3_t) {
14472    vst1_s64_x3(transmute(a), transmute(b))
14473}
14474
14475/// Store multiple single-element structures to one, two, three, or four registers
14476///
14477/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x3)
14478#[inline]
14479#[target_feature(enable = "neon")]
14480#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14482#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14483#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14484#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14485pub unsafe fn vst1q_u8_x3(a: *mut u8, b: uint8x16x3_t) {
14486    vst1q_s8_x3(transmute(a), transmute(b))
14487}
14488
14489/// Store multiple single-element structures to one, two, three, or four registers
14490///
14491/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x3)
14492#[inline]
14493#[target_feature(enable = "neon")]
14494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14495#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14496#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14497#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14498#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14499pub unsafe fn vst1q_u16_x3(a: *mut u16, b: uint16x8x3_t) {
14500    vst1q_s16_x3(transmute(a), transmute(b))
14501}
14502
14503/// Store multiple single-element structures to one, two, three, or four registers
14504///
14505/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x3)
14506#[inline]
14507#[target_feature(enable = "neon")]
14508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14509#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14510#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14511#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14512#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14513pub unsafe fn vst1q_u32_x3(a: *mut u32, b: uint32x4x3_t) {
14514    vst1q_s32_x3(transmute(a), transmute(b))
14515}
14516
14517/// Store multiple single-element structures to one, two, three, or four registers
14518///
14519/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x3)
14520#[inline]
14521#[target_feature(enable = "neon")]
14522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14523#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14524#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14525#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14526#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14527pub unsafe fn vst1q_u64_x3(a: *mut u64, b: uint64x2x3_t) {
14528    vst1q_s64_x3(transmute(a), transmute(b))
14529}
14530
14531/// Store multiple single-element structures to one, two, three, or four registers
14532///
14533/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u8_x4)
14534#[inline]
14535#[target_feature(enable = "neon")]
14536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14537#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14538#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14539#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14540#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14541pub unsafe fn vst1_u8_x4(a: *mut u8, b: uint8x8x4_t) {
14542    vst1_s8_x4(transmute(a), transmute(b))
14543}
14544
14545/// Store multiple single-element structures to one, two, three, or four registers
14546///
14547/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u16_x4)
14548#[inline]
14549#[target_feature(enable = "neon")]
14550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14551#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14552#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14553#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14554#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14555pub unsafe fn vst1_u16_x4(a: *mut u16, b: uint16x4x4_t) {
14556    vst1_s16_x4(transmute(a), transmute(b))
14557}
14558
14559/// Store multiple single-element structures to one, two, three, or four registers
14560///
14561/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u32_x4)
14562#[inline]
14563#[target_feature(enable = "neon")]
14564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14565#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14566#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14567#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14568#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14569pub unsafe fn vst1_u32_x4(a: *mut u32, b: uint32x2x4_t) {
14570    vst1_s32_x4(transmute(a), transmute(b))
14571}
14572
14573/// Store multiple single-element structures to one, two, three, or four registers
14574///
14575/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_u64_x4)
14576#[inline]
14577#[target_feature(enable = "neon")]
14578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14579#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14580#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14581#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14582#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14583pub unsafe fn vst1_u64_x4(a: *mut u64, b: uint64x1x4_t) {
14584    vst1_s64_x4(transmute(a), transmute(b))
14585}
14586
14587/// Store multiple single-element structures to one, two, three, or four registers
14588///
14589/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u8_x4)
14590#[inline]
14591#[target_feature(enable = "neon")]
14592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14593#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14594#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14595#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14596#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14597pub unsafe fn vst1q_u8_x4(a: *mut u8, b: uint8x16x4_t) {
14598    vst1q_s8_x4(transmute(a), transmute(b))
14599}
14600
14601/// Store multiple single-element structures to one, two, three, or four registers
14602///
14603/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u16_x4)
14604#[inline]
14605#[target_feature(enable = "neon")]
14606#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14607#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14608#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14609#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14610#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14611pub unsafe fn vst1q_u16_x4(a: *mut u16, b: uint16x8x4_t) {
14612    vst1q_s16_x4(transmute(a), transmute(b))
14613}
14614
14615/// Store multiple single-element structures to one, two, three, or four registers
14616///
14617/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u32_x4)
14618#[inline]
14619#[target_feature(enable = "neon")]
14620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14622#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14623#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14624#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14625pub unsafe fn vst1q_u32_x4(a: *mut u32, b: uint32x4x4_t) {
14626    vst1q_s32_x4(transmute(a), transmute(b))
14627}
14628
14629/// Store multiple single-element structures to one, two, three, or four registers
14630///
14631/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_u64_x4)
14632#[inline]
14633#[target_feature(enable = "neon")]
14634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14635#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14636#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14637#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14638#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14639pub unsafe fn vst1q_u64_x4(a: *mut u64, b: uint64x2x4_t) {
14640    vst1q_s64_x4(transmute(a), transmute(b))
14641}
14642
14643/// Store multiple single-element structures to one, two, three, or four registers
14644///
14645/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x2)
14646#[inline]
14647#[target_feature(enable = "neon")]
14648#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14649#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14650#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14651#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14652#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14653pub unsafe fn vst1_p8_x2(a: *mut p8, b: poly8x8x2_t) {
14654    vst1_s8_x2(transmute(a), transmute(b))
14655}
14656
14657/// Store multiple single-element structures to one, two, three, or four registers
14658///
14659/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x3)
14660#[inline]
14661#[target_feature(enable = "neon")]
14662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14664#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14665#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14666#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14667pub unsafe fn vst1_p8_x3(a: *mut p8, b: poly8x8x3_t) {
14668    vst1_s8_x3(transmute(a), transmute(b))
14669}
14670
14671/// Store multiple single-element structures to one, two, three, or four registers
14672///
14673/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p8_x4)
14674#[inline]
14675#[target_feature(enable = "neon")]
14676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14678#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14679#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14680#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14681pub unsafe fn vst1_p8_x4(a: *mut p8, b: poly8x8x4_t) {
14682    vst1_s8_x4(transmute(a), transmute(b))
14683}
14684
14685/// Store multiple single-element structures to one, two, three, or four registers
14686///
14687/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x2)
14688#[inline]
14689#[target_feature(enable = "neon")]
14690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14691#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14692#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14693#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14694#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14695pub unsafe fn vst1q_p8_x2(a: *mut p8, b: poly8x16x2_t) {
14696    vst1q_s8_x2(transmute(a), transmute(b))
14697}
14698
14699/// Store multiple single-element structures to one, two, three, or four registers
14700///
14701/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x3)
14702#[inline]
14703#[target_feature(enable = "neon")]
14704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14706#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14707#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14708#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14709pub unsafe fn vst1q_p8_x3(a: *mut p8, b: poly8x16x3_t) {
14710    vst1q_s8_x3(transmute(a), transmute(b))
14711}
14712
14713/// Store multiple single-element structures to one, two, three, or four registers
14714///
14715/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p8_x4)
14716#[inline]
14717#[target_feature(enable = "neon")]
14718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14720#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14721#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14722#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14723pub unsafe fn vst1q_p8_x4(a: *mut p8, b: poly8x16x4_t) {
14724    vst1q_s8_x4(transmute(a), transmute(b))
14725}
14726
14727/// Store multiple single-element structures to one, two, three, or four registers
14728///
14729/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x2)
14730#[inline]
14731#[target_feature(enable = "neon")]
14732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14734#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14735#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14736#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14737pub unsafe fn vst1_p16_x2(a: *mut p16, b: poly16x4x2_t) {
14738    vst1_s16_x2(transmute(a), transmute(b))
14739}
14740
14741/// Store multiple single-element structures to one, two, three, or four registers
14742///
14743/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x3)
14744#[inline]
14745#[target_feature(enable = "neon")]
14746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14748#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14749#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14750#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14751pub unsafe fn vst1_p16_x3(a: *mut p16, b: poly16x4x3_t) {
14752    vst1_s16_x3(transmute(a), transmute(b))
14753}
14754
14755/// Store multiple single-element structures to one, two, three, or four registers
14756///
14757/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p16_x4)
14758#[inline]
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(vst1))]
14762#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14763#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14764#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14765pub unsafe fn vst1_p16_x4(a: *mut p16, b: poly16x4x4_t) {
14766    vst1_s16_x4(transmute(a), transmute(b))
14767}
14768
14769/// Store multiple single-element structures to one, two, three, or four registers
14770///
14771/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x2)
14772#[inline]
14773#[target_feature(enable = "neon")]
14774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14775#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14776#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14777#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14778#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14779pub unsafe fn vst1q_p16_x2(a: *mut p16, b: poly16x8x2_t) {
14780    vst1q_s16_x2(transmute(a), transmute(b))
14781}
14782
14783/// Store multiple single-element structures to one, two, three, or four registers
14784///
14785/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x3)
14786#[inline]
14787#[target_feature(enable = "neon")]
14788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14790#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14791#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14792#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14793pub unsafe fn vst1q_p16_x3(a: *mut p16, b: poly16x8x3_t) {
14794    vst1q_s16_x3(transmute(a), transmute(b))
14795}
14796
14797/// Store multiple single-element structures to one, two, three, or four registers
14798///
14799/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p16_x4)
14800#[inline]
14801#[target_feature(enable = "neon")]
14802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
14803#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14804#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14805#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14806#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14807pub unsafe fn vst1q_p16_x4(a: *mut p16, b: poly16x8x4_t) {
14808    vst1q_s16_x4(transmute(a), transmute(b))
14809}
14810
14811/// Store multiple single-element structures to one, two, three, or four registers
14812///
14813/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x2)
14814#[inline]
14815#[target_feature(enable = "neon,aes")]
14816#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
14817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst1))]
14818#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14819#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14820#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14821pub unsafe fn vst1_p64_x2(a: *mut p64, b: poly64x1x2_t) {
14822    vst1_s64_x2(transmute(a), transmute(b))
14823}
14824
14825/// Store multiple single-element structures to one, two, three, or four registers
14826///
14827/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x3)
14828#[inline]
14829#[target_feature(enable = "neon,aes")]
14830#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
14831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
14832#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14833#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14834#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14835pub unsafe fn vst1_p64_x3(a: *mut p64, b: poly64x1x3_t) {
14836    vst1_s64_x3(transmute(a), transmute(b))
14837}
14838
14839/// Store multiple single-element structures to one, two, three, or four registers
14840///
14841/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_p64_x4)
14842#[inline]
14843#[target_feature(enable = "neon,aes")]
14844#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
14845#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
14846#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14847#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14848#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14849pub unsafe fn vst1_p64_x4(a: *mut p64, b: poly64x1x4_t) {
14850    vst1_s64_x4(transmute(a), transmute(b))
14851}
14852
14853/// Store multiple single-element structures to one, two, three, or four registers
14854///
14855/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x2)
14856#[inline]
14857#[target_feature(enable = "neon,aes")]
14858#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
14859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
14860#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14861#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14862#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14863pub unsafe fn vst1q_p64_x2(a: *mut p64, b: poly64x2x2_t) {
14864    vst1q_s64_x2(transmute(a), transmute(b))
14865}
14866
14867/// Store multiple single-element structures to one, two, three, or four registers
14868///
14869/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x3)
14870#[inline]
14871#[target_feature(enable = "neon,aes")]
14872#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
14873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
14874#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14875#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14876#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14877pub unsafe fn vst1q_p64_x3(a: *mut p64, b: poly64x2x3_t) {
14878    vst1q_s64_x3(transmute(a), transmute(b))
14879}
14880
14881/// Store multiple single-element structures to one, two, three, or four registers
14882///
14883/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_p64_x4)
14884#[inline]
14885#[target_feature(enable = "neon,aes")]
14886#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
14887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
14888#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st1))]
14889#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
14890#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
14891pub unsafe fn vst1q_p64_x4(a: *mut p64, b: poly64x2x4_t) {
14892    vst1q_s64_x4(transmute(a), transmute(b))
14893}
14894
14895/// Store multiple single-element structures to one, two, three, or four registers
14896///
14897/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)
14898#[inline]
14899#[cfg(target_arch = "arm")]
14900#[target_feature(enable = "neon,v7")]
14901#[cfg_attr(test, assert_instr(vst1))]
14902#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14903pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
14904    #[allow(improper_ctypes)]
14905    extern "unadjusted" {
14906        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0f32.v2f32")]
14907        fn vst1_f32_x2_(ptr: *mut f32, a: float32x2_t, b: float32x2_t);
14908    }
14909vst1_f32_x2_(a, b.0, b.1)
14910}
14911
14912/// Store multiple single-element structures to one, two, three, or four registers
14913///
14914/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x2)
14915#[inline]
14916#[cfg(not(target_arch = "arm"))]
14917#[target_feature(enable = "neon")]
14918#[cfg_attr(test, assert_instr(st1))]
14919#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14920pub unsafe fn vst1_f32_x2(a: *mut f32, b: float32x2x2_t) {
14921    #[allow(improper_ctypes)]
14922    extern "unadjusted" {
14923        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v2f32.p0f32")]
14924        fn vst1_f32_x2_(a: float32x2_t, b: float32x2_t, ptr: *mut f32);
14925    }
14926vst1_f32_x2_(b.0, b.1, a)
14927}
14928
14929/// Store multiple single-element structures to one, two, three, or four registers
14930///
14931/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)
14932#[inline]
14933#[cfg(target_arch = "arm")]
14934#[target_feature(enable = "neon,v7")]
14935#[cfg_attr(test, assert_instr(vst1))]
14936#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14937pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
14938    #[allow(improper_ctypes)]
14939    extern "unadjusted" {
14940        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x2.p0f32.v4f32")]
14941        fn vst1q_f32_x2_(ptr: *mut f32, a: float32x4_t, b: float32x4_t);
14942    }
14943vst1q_f32_x2_(a, b.0, b.1)
14944}
14945
14946/// Store multiple single-element structures to one, two, three, or four registers
14947///
14948/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x2)
14949#[inline]
14950#[cfg(not(target_arch = "arm"))]
14951#[target_feature(enable = "neon")]
14952#[cfg_attr(test, assert_instr(st1))]
14953#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14954pub unsafe fn vst1q_f32_x2(a: *mut f32, b: float32x4x2_t) {
14955    #[allow(improper_ctypes)]
14956    extern "unadjusted" {
14957        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x2.v4f32.p0f32")]
14958        fn vst1q_f32_x2_(a: float32x4_t, b: float32x4_t, ptr: *mut f32);
14959    }
14960vst1q_f32_x2_(b.0, b.1, a)
14961}
14962
14963/// Store multiple single-element structures to one, two, three, or four registers
14964///
14965/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x3)
14966#[inline]
14967#[cfg(target_arch = "arm")]
14968#[target_feature(enable = "neon,v7")]
14969#[cfg_attr(test, assert_instr(vst1))]
14970#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
14971pub unsafe fn vst1_f32_x3(a: *mut f32, b: float32x2x3_t) {
14972    #[allow(improper_ctypes)]
14973    extern "unadjusted" {
14974        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0f32.v2f32")]
14975        fn vst1_f32_x3_(ptr: *mut f32, a: float32x2_t, b: float32x2_t, c: float32x2_t);
14976    }
14977vst1_f32_x3_(a, b.0, b.1, b.2)
14978}
14979
14980/// Store multiple single-element structures to one, two, three, or four registers
14981///
14982/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x3)
14983#[inline]
14984#[cfg(not(target_arch = "arm"))]
14985#[target_feature(enable = "neon")]
14986#[cfg_attr(test, assert_instr(st1))]
14987#[stable(feature = "neon_intrinsics", since = "1.59.0")]
14988pub unsafe fn vst1_f32_x3(a: *mut f32, b: float32x2x3_t) {
14989    #[allow(improper_ctypes)]
14990    extern "unadjusted" {
14991        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v2f32.p0f32")]
14992        fn vst1_f32_x3_(a: float32x2_t, b: float32x2_t, c: float32x2_t, ptr: *mut f32);
14993    }
14994vst1_f32_x3_(b.0, b.1, b.2, a)
14995}
14996
14997/// Store multiple single-element structures to one, two, three, or four registers
14998///
14999/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x3)
15000#[inline]
15001#[cfg(target_arch = "arm")]
15002#[target_feature(enable = "neon,v7")]
15003#[cfg_attr(test, assert_instr(vst1))]
15004#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15005pub unsafe fn vst1q_f32_x3(a: *mut f32, b: float32x4x3_t) {
15006    #[allow(improper_ctypes)]
15007    extern "unadjusted" {
15008        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x3.p0f32.v4f32")]
15009        fn vst1q_f32_x3_(ptr: *mut f32, a: float32x4_t, b: float32x4_t, c: float32x4_t);
15010    }
15011vst1q_f32_x3_(a, b.0, b.1, b.2)
15012}
15013
15014/// Store multiple single-element structures to one, two, three, or four registers
15015///
15016/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x3)
15017#[inline]
15018#[cfg(not(target_arch = "arm"))]
15019#[target_feature(enable = "neon")]
15020#[cfg_attr(test, assert_instr(st1))]
15021#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15022pub unsafe fn vst1q_f32_x3(a: *mut f32, b: float32x4x3_t) {
15023    #[allow(improper_ctypes)]
15024    extern "unadjusted" {
15025        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x3.v4f32.p0f32")]
15026        fn vst1q_f32_x3_(a: float32x4_t, b: float32x4_t, c: float32x4_t, ptr: *mut f32);
15027    }
15028vst1q_f32_x3_(b.0, b.1, b.2, a)
15029}
15030
15031/// Store multiple single-element structures to one, two, three, or four registers
15032///
15033/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)
15034#[inline]
15035#[cfg(target_arch = "arm")]
15036#[target_feature(enable = "neon,v7")]
15037#[cfg_attr(test, assert_instr(vst1))]
15038#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15039pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
15040    #[allow(improper_ctypes)]
15041    extern "unadjusted" {
15042        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0f32.v2f32")]
15043        fn vst1_f32_x4_(ptr: *mut f32, a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t);
15044    }
15045vst1_f32_x4_(a, b.0, b.1, b.2, b.3)
15046}
15047
15048/// Store multiple single-element structures to one, two, three, or four registers
15049///
15050/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1_f32_x4)
15051#[inline]
15052#[cfg(not(target_arch = "arm"))]
15053#[target_feature(enable = "neon")]
15054#[cfg_attr(test, assert_instr(st1))]
15055#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15056pub unsafe fn vst1_f32_x4(a: *mut f32, b: float32x2x4_t) {
15057    #[allow(improper_ctypes)]
15058    extern "unadjusted" {
15059        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v2f32.p0f32")]
15060        fn vst1_f32_x4_(a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, ptr: *mut f32);
15061    }
15062vst1_f32_x4_(b.0, b.1, b.2, b.3, a)
15063}
15064
15065/// Store multiple single-element structures to one, two, three, or four registers
15066///
15067/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)
15068#[inline]
15069#[cfg(target_arch = "arm")]
15070#[target_feature(enable = "neon,v7")]
15071#[cfg_attr(test, assert_instr(vst1))]
15072#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15073pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
15074    #[allow(improper_ctypes)]
15075    extern "unadjusted" {
15076        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst1x4.p0f32.v4f32")]
15077        fn vst1q_f32_x4_(ptr: *mut f32, a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t);
15078    }
15079vst1q_f32_x4_(a, b.0, b.1, b.2, b.3)
15080}
15081
15082/// Store multiple single-element structures to one, two, three, or four registers
15083///
15084/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst1q_f32_x4)
15085#[inline]
15086#[cfg(not(target_arch = "arm"))]
15087#[target_feature(enable = "neon")]
15088#[cfg_attr(test, assert_instr(st1))]
15089#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15090pub unsafe fn vst1q_f32_x4(a: *mut f32, b: float32x4x4_t) {
15091    #[allow(improper_ctypes)]
15092    extern "unadjusted" {
15093        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st1x4.v4f32.p0f32")]
15094        fn vst1q_f32_x4_(a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, ptr: *mut f32);
15095    }
15096vst1q_f32_x4_(b.0, b.1, b.2, b.3, a)
15097}
15098
15099/// Store multiple 2-element structures from two registers
15100///
15101/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)
15102#[inline]
15103#[cfg(target_arch = "arm")]
15104#[target_feature(enable = "neon,v7")]
15105#[cfg_attr(test, assert_instr(vst2))]
15106#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15107pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
15108    #[allow(improper_ctypes)]
15109    extern "unadjusted" {
15110        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0i8.v8i8")]
15111        fn vst2_s8_(ptr: *mut i8, a: int8x8_t, b: int8x8_t, size: i32);
15112    }
15113vst2_s8_(a as _, b.0, b.1, 1)
15114}
15115
15116/// Store multiple 2-element structures from two registers
15117///
15118/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s8)
15119#[inline]
15120#[cfg(not(target_arch = "arm"))]
15121#[target_feature(enable = "neon")]
15122#[cfg_attr(test, assert_instr(st2))]
15123#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15124pub unsafe fn vst2_s8(a: *mut i8, b: int8x8x2_t) {
15125    #[allow(improper_ctypes)]
15126    extern "unadjusted" {
15127        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2.v8i8.p0i8")]
15128        fn vst2_s8_(a: int8x8_t, b: int8x8_t, ptr: *mut i8);
15129    }
15130vst2_s8_(b.0, b.1, a as _)
15131}
15132
15133/// Store multiple 2-element structures from two registers
15134///
15135/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)
15136#[inline]
15137#[cfg(target_arch = "arm")]
15138#[target_feature(enable = "neon,v7")]
15139#[cfg_attr(test, assert_instr(vst2))]
15140#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15141pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
15142    #[allow(improper_ctypes)]
15143    extern "unadjusted" {
15144        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0i8.v4i16")]
15145        fn vst2_s16_(ptr: *mut i8, a: int16x4_t, b: int16x4_t, size: i32);
15146    }
15147vst2_s16_(a as _, b.0, b.1, 2)
15148}
15149
15150/// Store multiple 2-element structures from two registers
15151///
15152/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s16)
15153#[inline]
15154#[cfg(not(target_arch = "arm"))]
15155#[target_feature(enable = "neon")]
15156#[cfg_attr(test, assert_instr(st2))]
15157#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15158pub unsafe fn vst2_s16(a: *mut i16, b: int16x4x2_t) {
15159    #[allow(improper_ctypes)]
15160    extern "unadjusted" {
15161        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2.v4i16.p0i8")]
15162        fn vst2_s16_(a: int16x4_t, b: int16x4_t, ptr: *mut i8);
15163    }
15164vst2_s16_(b.0, b.1, a as _)
15165}
15166
15167/// Store multiple 2-element structures from two registers
15168///
15169/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)
15170#[inline]
15171#[cfg(target_arch = "arm")]
15172#[target_feature(enable = "neon,v7")]
15173#[cfg_attr(test, assert_instr(vst2))]
15174#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15175pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
15176    #[allow(improper_ctypes)]
15177    extern "unadjusted" {
15178        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0i8.v2i32")]
15179        fn vst2_s32_(ptr: *mut i8, a: int32x2_t, b: int32x2_t, size: i32);
15180    }
15181vst2_s32_(a as _, b.0, b.1, 4)
15182}
15183
15184/// Store multiple 2-element structures from two registers
15185///
15186/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s32)
15187#[inline]
15188#[cfg(not(target_arch = "arm"))]
15189#[target_feature(enable = "neon")]
15190#[cfg_attr(test, assert_instr(st2))]
15191#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15192pub unsafe fn vst2_s32(a: *mut i32, b: int32x2x2_t) {
15193    #[allow(improper_ctypes)]
15194    extern "unadjusted" {
15195        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2.v2i32.p0i8")]
15196        fn vst2_s32_(a: int32x2_t, b: int32x2_t, ptr: *mut i8);
15197    }
15198vst2_s32_(b.0, b.1, a as _)
15199}
15200
15201/// Store multiple 2-element structures from two registers
15202///
15203/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)
15204#[inline]
15205#[cfg(target_arch = "arm")]
15206#[target_feature(enable = "neon,v7")]
15207#[cfg_attr(test, assert_instr(vst2))]
15208#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15209pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
15210    #[allow(improper_ctypes)]
15211    extern "unadjusted" {
15212        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0i8.v16i8")]
15213        fn vst2q_s8_(ptr: *mut i8, a: int8x16_t, b: int8x16_t, size: i32);
15214    }
15215vst2q_s8_(a as _, b.0, b.1, 1)
15216}
15217
15218/// Store multiple 2-element structures from two registers
15219///
15220/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s8)
15221#[inline]
15222#[cfg(not(target_arch = "arm"))]
15223#[target_feature(enable = "neon")]
15224#[cfg_attr(test, assert_instr(st2))]
15225#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15226pub unsafe fn vst2q_s8(a: *mut i8, b: int8x16x2_t) {
15227    #[allow(improper_ctypes)]
15228    extern "unadjusted" {
15229        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2.v16i8.p0i8")]
15230        fn vst2q_s8_(a: int8x16_t, b: int8x16_t, ptr: *mut i8);
15231    }
15232vst2q_s8_(b.0, b.1, a as _)
15233}
15234
15235/// Store multiple 2-element structures from two registers
15236///
15237/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)
15238#[inline]
15239#[cfg(target_arch = "arm")]
15240#[target_feature(enable = "neon,v7")]
15241#[cfg_attr(test, assert_instr(vst2))]
15242#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15243pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
15244    #[allow(improper_ctypes)]
15245    extern "unadjusted" {
15246        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0i8.v8i16")]
15247        fn vst2q_s16_(ptr: *mut i8, a: int16x8_t, b: int16x8_t, size: i32);
15248    }
15249vst2q_s16_(a as _, b.0, b.1, 2)
15250}
15251
15252/// Store multiple 2-element structures from two registers
15253///
15254/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s16)
15255#[inline]
15256#[cfg(not(target_arch = "arm"))]
15257#[target_feature(enable = "neon")]
15258#[cfg_attr(test, assert_instr(st2))]
15259#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15260pub unsafe fn vst2q_s16(a: *mut i16, b: int16x8x2_t) {
15261    #[allow(improper_ctypes)]
15262    extern "unadjusted" {
15263        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2.v8i16.p0i8")]
15264        fn vst2q_s16_(a: int16x8_t, b: int16x8_t, ptr: *mut i8);
15265    }
15266vst2q_s16_(b.0, b.1, a as _)
15267}
15268
15269/// Store multiple 2-element structures from two registers
15270///
15271/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)
15272#[inline]
15273#[cfg(target_arch = "arm")]
15274#[target_feature(enable = "neon,v7")]
15275#[cfg_attr(test, assert_instr(vst2))]
15276#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15277pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
15278    #[allow(improper_ctypes)]
15279    extern "unadjusted" {
15280        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0i8.v4i32")]
15281        fn vst2q_s32_(ptr: *mut i8, a: int32x4_t, b: int32x4_t, size: i32);
15282    }
15283vst2q_s32_(a as _, b.0, b.1, 4)
15284}
15285
15286/// Store multiple 2-element structures from two registers
15287///
15288/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_s32)
15289#[inline]
15290#[cfg(not(target_arch = "arm"))]
15291#[target_feature(enable = "neon")]
15292#[cfg_attr(test, assert_instr(st2))]
15293#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15294pub unsafe fn vst2q_s32(a: *mut i32, b: int32x4x2_t) {
15295    #[allow(improper_ctypes)]
15296    extern "unadjusted" {
15297        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2.v4i32.p0i8")]
15298        fn vst2q_s32_(a: int32x4_t, b: int32x4_t, ptr: *mut i8);
15299    }
15300vst2q_s32_(b.0, b.1, a as _)
15301}
15302
15303/// Store multiple 2-element structures from two registers
15304///
15305/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)
15306#[inline]
15307#[cfg(target_arch = "arm")]
15308#[target_feature(enable = "neon,v7")]
15309#[cfg_attr(test, assert_instr(nop))]
15310#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15311pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
15312    #[allow(improper_ctypes)]
15313    extern "unadjusted" {
15314        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0i8.v1i64")]
15315        fn vst2_s64_(ptr: *mut i8, a: int64x1_t, b: int64x1_t, size: i32);
15316    }
15317vst2_s64_(a as _, b.0, b.1, 8)
15318}
15319
15320/// Store multiple 2-element structures from two registers
15321///
15322/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_s64)
15323#[inline]
15324#[cfg(not(target_arch = "arm"))]
15325#[target_feature(enable = "neon")]
15326#[cfg_attr(test, assert_instr(nop))]
15327#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15328pub unsafe fn vst2_s64(a: *mut i64, b: int64x1x2_t) {
15329    #[allow(improper_ctypes)]
15330    extern "unadjusted" {
15331        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2.v1i64.p0i8")]
15332        fn vst2_s64_(a: int64x1_t, b: int64x1_t, ptr: *mut i8);
15333    }
15334vst2_s64_(b.0, b.1, a as _)
15335}
15336
15337/// Store multiple 2-element structures from two registers
15338///
15339/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u8)
15340#[inline]
15341#[target_feature(enable = "neon")]
15342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
15344#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15345#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15346#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15347pub unsafe fn vst2_u8(a: *mut u8, b: uint8x8x2_t) {
15348    vst2_s8(transmute(a), transmute(b))
15349}
15350
15351/// Store multiple 2-element structures from two registers
15352///
15353/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u16)
15354#[inline]
15355#[target_feature(enable = "neon")]
15356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15357#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
15358#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15359#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15360#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15361pub unsafe fn vst2_u16(a: *mut u16, b: uint16x4x2_t) {
15362    vst2_s16(transmute(a), transmute(b))
15363}
15364
15365/// Store multiple 2-element structures from two registers
15366///
15367/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u32)
15368#[inline]
15369#[target_feature(enable = "neon")]
15370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15371#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
15372#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15373#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15374#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15375pub unsafe fn vst2_u32(a: *mut u32, b: uint32x2x2_t) {
15376    vst2_s32(transmute(a), transmute(b))
15377}
15378
15379/// Store multiple 2-element structures from two registers
15380///
15381/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u8)
15382#[inline]
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(vst2))]
15386#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15387#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15388#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15389pub unsafe fn vst2q_u8(a: *mut u8, b: uint8x16x2_t) {
15390    vst2q_s8(transmute(a), transmute(b))
15391}
15392
15393/// Store multiple 2-element structures from two registers
15394///
15395/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u16)
15396#[inline]
15397#[target_feature(enable = "neon")]
15398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15399#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
15400#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15401#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15402#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15403pub unsafe fn vst2q_u16(a: *mut u16, b: uint16x8x2_t) {
15404    vst2q_s16(transmute(a), transmute(b))
15405}
15406
15407/// Store multiple 2-element structures from two registers
15408///
15409/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_u32)
15410#[inline]
15411#[target_feature(enable = "neon")]
15412#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15413#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
15414#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15415#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15416#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15417pub unsafe fn vst2q_u32(a: *mut u32, b: uint32x4x2_t) {
15418    vst2q_s32(transmute(a), transmute(b))
15419}
15420
15421/// Store multiple 2-element structures from two registers
15422///
15423/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p8)
15424#[inline]
15425#[target_feature(enable = "neon")]
15426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15427#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
15428#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15429#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15430#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15431pub unsafe fn vst2_p8(a: *mut p8, b: poly8x8x2_t) {
15432    vst2_s8(transmute(a), transmute(b))
15433}
15434
15435/// Store multiple 2-element structures from two registers
15436///
15437/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p16)
15438#[inline]
15439#[target_feature(enable = "neon")]
15440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
15442#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15443#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15444#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15445pub unsafe fn vst2_p16(a: *mut p16, b: poly16x4x2_t) {
15446    vst2_s16(transmute(a), transmute(b))
15447}
15448
15449/// Store multiple 2-element structures from two registers
15450///
15451/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p8)
15452#[inline]
15453#[target_feature(enable = "neon")]
15454#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15455#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
15456#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15457#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15458#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15459pub unsafe fn vst2q_p8(a: *mut p8, b: poly8x16x2_t) {
15460    vst2q_s8(transmute(a), transmute(b))
15461}
15462
15463/// Store multiple 2-element structures from two registers
15464///
15465/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_p16)
15466#[inline]
15467#[target_feature(enable = "neon")]
15468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2))]
15470#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2))]
15471#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15472#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15473pub unsafe fn vst2q_p16(a: *mut p16, b: poly16x8x2_t) {
15474    vst2q_s16(transmute(a), transmute(b))
15475}
15476
15477/// Store multiple 2-element structures from two registers
15478///
15479/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_u64)
15480#[inline]
15481#[target_feature(enable = "neon")]
15482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
15484#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
15485#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15486#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15487pub unsafe fn vst2_u64(a: *mut u64, b: uint64x1x2_t) {
15488    vst2_s64(transmute(a), transmute(b))
15489}
15490
15491/// Store multiple 2-element structures from two registers
15492///
15493/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_p64)
15494#[inline]
15495#[target_feature(enable = "neon,aes")]
15496#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
15497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
15498#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
15499#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15500#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15501pub unsafe fn vst2_p64(a: *mut p64, b: poly64x1x2_t) {
15502    vst2_s64(transmute(a), transmute(b))
15503}
15504
15505/// Store multiple 2-element structures from two registers
15506///
15507/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)
15508#[inline]
15509#[cfg(target_arch = "arm")]
15510#[target_feature(enable = "neon,v7")]
15511#[cfg_attr(test, assert_instr(vst2))]
15512#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15513pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
15514    #[allow(improper_ctypes)]
15515    extern "unadjusted" {
15516        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0i8.v2f32")]
15517        fn vst2_f32_(ptr: *mut i8, a: float32x2_t, b: float32x2_t, size: i32);
15518    }
15519vst2_f32_(a as _, b.0, b.1, 4)
15520}
15521
15522/// Store multiple 2-element structures from two registers
15523///
15524/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_f32)
15525#[inline]
15526#[cfg(not(target_arch = "arm"))]
15527#[target_feature(enable = "neon")]
15528#[cfg_attr(test, assert_instr(st2))]
15529#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15530pub unsafe fn vst2_f32(a: *mut f32, b: float32x2x2_t) {
15531    #[allow(improper_ctypes)]
15532    extern "unadjusted" {
15533        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2.v2f32.p0i8")]
15534        fn vst2_f32_(a: float32x2_t, b: float32x2_t, ptr: *mut i8);
15535    }
15536vst2_f32_(b.0, b.1, a as _)
15537}
15538
15539/// Store multiple 2-element structures from two registers
15540///
15541/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)
15542#[inline]
15543#[cfg(target_arch = "arm")]
15544#[target_feature(enable = "neon,v7")]
15545#[cfg_attr(test, assert_instr(vst2))]
15546#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15547pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
15548    #[allow(improper_ctypes)]
15549    extern "unadjusted" {
15550        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2.p0i8.v4f32")]
15551        fn vst2q_f32_(ptr: *mut i8, a: float32x4_t, b: float32x4_t, size: i32);
15552    }
15553vst2q_f32_(a as _, b.0, b.1, 4)
15554}
15555
15556/// Store multiple 2-element structures from two registers
15557///
15558/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_f32)
15559#[inline]
15560#[cfg(not(target_arch = "arm"))]
15561#[target_feature(enable = "neon")]
15562#[cfg_attr(test, assert_instr(st2))]
15563#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15564pub unsafe fn vst2q_f32(a: *mut f32, b: float32x4x2_t) {
15565    #[allow(improper_ctypes)]
15566    extern "unadjusted" {
15567        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2.v4f32.p0i8")]
15568        fn vst2q_f32_(a: float32x4_t, b: float32x4_t, ptr: *mut i8);
15569    }
15570vst2q_f32_(b.0, b.1, a as _)
15571}
15572
15573/// Store multiple 2-element structures from two registers
15574///
15575/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)
15576#[inline]
15577#[cfg(target_arch = "arm")]
15578#[target_feature(enable = "neon,v7")]
15579#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
15580#[rustc_legacy_const_generics(2)]
15581#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15582pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
15583    static_assert_uimm_bits!(LANE, 3);
15584    #[allow(improper_ctypes)]
15585    extern "unadjusted" {
15586        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0i8.v8i8")]
15587        fn vst2_lane_s8_(ptr: *mut i8, a: int8x8_t, b: int8x8_t, n: i32, size: i32);
15588    }
15589vst2_lane_s8_(a as _, b.0, b.1, LANE, 1)
15590}
15591
15592/// Store multiple 2-element structures from two registers
15593///
15594/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s8)
15595#[inline]
15596#[cfg(not(target_arch = "arm"))]
15597#[target_feature(enable = "neon")]
15598#[cfg_attr(test, assert_instr(st2, LANE = 0))]
15599#[rustc_legacy_const_generics(2)]
15600#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15601pub unsafe fn vst2_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x2_t) {
15602    static_assert_uimm_bits!(LANE, 3);
15603    #[allow(improper_ctypes)]
15604    extern "unadjusted" {
15605        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2lane.v8i8.p0i8")]
15606        fn vst2_lane_s8_(a: int8x8_t, b: int8x8_t, n: i64, ptr: *mut i8);
15607    }
15608vst2_lane_s8_(b.0, b.1, LANE as i64, a as _)
15609}
15610
15611/// Store multiple 2-element structures from two registers
15612///
15613/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)
15614#[inline]
15615#[cfg(target_arch = "arm")]
15616#[target_feature(enable = "neon,v7")]
15617#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
15618#[rustc_legacy_const_generics(2)]
15619#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15620pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
15621    static_assert_uimm_bits!(LANE, 2);
15622    #[allow(improper_ctypes)]
15623    extern "unadjusted" {
15624        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0i8.v4i16")]
15625        fn vst2_lane_s16_(ptr: *mut i8, a: int16x4_t, b: int16x4_t, n: i32, size: i32);
15626    }
15627vst2_lane_s16_(a as _, b.0, b.1, LANE, 2)
15628}
15629
15630/// Store multiple 2-element structures from two registers
15631///
15632/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s16)
15633#[inline]
15634#[cfg(not(target_arch = "arm"))]
15635#[target_feature(enable = "neon")]
15636#[cfg_attr(test, assert_instr(st2, LANE = 0))]
15637#[rustc_legacy_const_generics(2)]
15638#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15639pub unsafe fn vst2_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x2_t) {
15640    static_assert_uimm_bits!(LANE, 2);
15641    #[allow(improper_ctypes)]
15642    extern "unadjusted" {
15643        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2lane.v4i16.p0i8")]
15644        fn vst2_lane_s16_(a: int16x4_t, b: int16x4_t, n: i64, ptr: *mut i8);
15645    }
15646vst2_lane_s16_(b.0, b.1, LANE as i64, a as _)
15647}
15648
15649/// Store multiple 2-element structures from two registers
15650///
15651/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)
15652#[inline]
15653#[cfg(target_arch = "arm")]
15654#[target_feature(enable = "neon,v7")]
15655#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
15656#[rustc_legacy_const_generics(2)]
15657#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15658pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
15659    static_assert_uimm_bits!(LANE, 1);
15660    #[allow(improper_ctypes)]
15661    extern "unadjusted" {
15662        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0i8.v2i32")]
15663        fn vst2_lane_s32_(ptr: *mut i8, a: int32x2_t, b: int32x2_t, n: i32, size: i32);
15664    }
15665vst2_lane_s32_(a as _, b.0, b.1, LANE, 4)
15666}
15667
15668/// Store multiple 2-element structures from two registers
15669///
15670/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_s32)
15671#[inline]
15672#[cfg(not(target_arch = "arm"))]
15673#[target_feature(enable = "neon")]
15674#[cfg_attr(test, assert_instr(st2, LANE = 0))]
15675#[rustc_legacy_const_generics(2)]
15676#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15677pub unsafe fn vst2_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x2_t) {
15678    static_assert_uimm_bits!(LANE, 1);
15679    #[allow(improper_ctypes)]
15680    extern "unadjusted" {
15681        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2lane.v2i32.p0i8")]
15682        fn vst2_lane_s32_(a: int32x2_t, b: int32x2_t, n: i64, ptr: *mut i8);
15683    }
15684vst2_lane_s32_(b.0, b.1, LANE as i64, a as _)
15685}
15686
15687/// Store multiple 2-element structures from two registers
15688///
15689/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)
15690#[inline]
15691#[cfg(target_arch = "arm")]
15692#[target_feature(enable = "neon,v7")]
15693#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
15694#[rustc_legacy_const_generics(2)]
15695#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15696pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
15697    static_assert_uimm_bits!(LANE, 3);
15698    #[allow(improper_ctypes)]
15699    extern "unadjusted" {
15700        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0i8.v8i16")]
15701        fn vst2q_lane_s16_(ptr: *mut i8, a: int16x8_t, b: int16x8_t, n: i32, size: i32);
15702    }
15703vst2q_lane_s16_(a as _, b.0, b.1, LANE, 2)
15704}
15705
15706/// Store multiple 2-element structures from two registers
15707///
15708/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s16)
15709#[inline]
15710#[cfg(not(target_arch = "arm"))]
15711#[target_feature(enable = "neon")]
15712#[cfg_attr(test, assert_instr(st2, LANE = 0))]
15713#[rustc_legacy_const_generics(2)]
15714#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15715pub unsafe fn vst2q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x2_t) {
15716    static_assert_uimm_bits!(LANE, 3);
15717    #[allow(improper_ctypes)]
15718    extern "unadjusted" {
15719        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2lane.v8i16.p0i8")]
15720        fn vst2q_lane_s16_(a: int16x8_t, b: int16x8_t, n: i64, ptr: *mut i8);
15721    }
15722vst2q_lane_s16_(b.0, b.1, LANE as i64, a as _)
15723}
15724
15725/// Store multiple 2-element structures from two registers
15726///
15727/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)
15728#[inline]
15729#[cfg(target_arch = "arm")]
15730#[target_feature(enable = "neon,v7")]
15731#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
15732#[rustc_legacy_const_generics(2)]
15733#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15734pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
15735    static_assert_uimm_bits!(LANE, 2);
15736    #[allow(improper_ctypes)]
15737    extern "unadjusted" {
15738        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0i8.v4i32")]
15739        fn vst2q_lane_s32_(ptr: *mut i8, a: int32x4_t, b: int32x4_t, n: i32, size: i32);
15740    }
15741vst2q_lane_s32_(a as _, b.0, b.1, LANE, 4)
15742}
15743
15744/// Store multiple 2-element structures from two registers
15745///
15746/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_s32)
15747#[inline]
15748#[cfg(not(target_arch = "arm"))]
15749#[target_feature(enable = "neon")]
15750#[cfg_attr(test, assert_instr(st2, LANE = 0))]
15751#[rustc_legacy_const_generics(2)]
15752#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15753pub unsafe fn vst2q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x2_t) {
15754    static_assert_uimm_bits!(LANE, 2);
15755    #[allow(improper_ctypes)]
15756    extern "unadjusted" {
15757        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2lane.v4i32.p0i8")]
15758        fn vst2q_lane_s32_(a: int32x4_t, b: int32x4_t, n: i64, ptr: *mut i8);
15759    }
15760vst2q_lane_s32_(b.0, b.1, LANE as i64, a as _)
15761}
15762
15763/// Store multiple 2-element structures from two registers
15764///
15765/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u8)
15766#[inline]
15767#[target_feature(enable = "neon")]
15768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15769#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
15770#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2, LANE = 0))]
15771#[rustc_legacy_const_generics(2)]
15772#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15773#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15774pub unsafe fn vst2_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x2_t) {
15775    static_assert_uimm_bits!(LANE, 3);
15776    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
15777}
15778
15779/// Store multiple 2-element structures from two registers
15780///
15781/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u16)
15782#[inline]
15783#[target_feature(enable = "neon")]
15784#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15785#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
15786#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2, LANE = 0))]
15787#[rustc_legacy_const_generics(2)]
15788#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15789#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15790pub unsafe fn vst2_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x2_t) {
15791    static_assert_uimm_bits!(LANE, 2);
15792    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
15793}
15794
15795/// Store multiple 2-element structures from two registers
15796///
15797/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_u32)
15798#[inline]
15799#[target_feature(enable = "neon")]
15800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
15802#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2, LANE = 0))]
15803#[rustc_legacy_const_generics(2)]
15804#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15805#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15806pub unsafe fn vst2_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x2_t) {
15807    static_assert_uimm_bits!(LANE, 1);
15808    vst2_lane_s32::<LANE>(transmute(a), transmute(b))
15809}
15810
15811/// Store multiple 2-element structures from two registers
15812///
15813/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u16)
15814#[inline]
15815#[target_feature(enable = "neon")]
15816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
15818#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2, LANE = 0))]
15819#[rustc_legacy_const_generics(2)]
15820#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15821#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15822pub unsafe fn vst2q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x2_t) {
15823    static_assert_uimm_bits!(LANE, 3);
15824    vst2q_lane_s16::<LANE>(transmute(a), transmute(b))
15825}
15826
15827/// Store multiple 2-element structures from two registers
15828///
15829/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_u32)
15830#[inline]
15831#[target_feature(enable = "neon")]
15832#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15833#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
15834#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2, LANE = 0))]
15835#[rustc_legacy_const_generics(2)]
15836#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15837#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15838pub unsafe fn vst2q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x2_t) {
15839    static_assert_uimm_bits!(LANE, 2);
15840    vst2q_lane_s32::<LANE>(transmute(a), transmute(b))
15841}
15842
15843/// Store multiple 2-element structures from two registers
15844///
15845/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p8)
15846#[inline]
15847#[target_feature(enable = "neon")]
15848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15849#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
15850#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2, LANE = 0))]
15851#[rustc_legacy_const_generics(2)]
15852#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15853#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15854pub unsafe fn vst2_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x2_t) {
15855    static_assert_uimm_bits!(LANE, 3);
15856    vst2_lane_s8::<LANE>(transmute(a), transmute(b))
15857}
15858
15859/// Store multiple 2-element structures from two registers
15860///
15861/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_p16)
15862#[inline]
15863#[target_feature(enable = "neon")]
15864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15865#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
15866#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2, LANE = 0))]
15867#[rustc_legacy_const_generics(2)]
15868#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15869#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15870pub unsafe fn vst2_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x2_t) {
15871    static_assert_uimm_bits!(LANE, 2);
15872    vst2_lane_s16::<LANE>(transmute(a), transmute(b))
15873}
15874
15875/// Store multiple 2-element structures from two registers
15876///
15877/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_p16)
15878#[inline]
15879#[target_feature(enable = "neon")]
15880#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
15881#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst2, LANE = 0))]
15882#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st2, LANE = 0))]
15883#[rustc_legacy_const_generics(2)]
15884#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
15885#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
15886pub unsafe fn vst2q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x2_t) {
15887    static_assert_uimm_bits!(LANE, 3);
15888    vst2q_lane_s16::<LANE>(transmute(a), transmute(b))
15889}
15890
15891/// Store multiple 2-element structures from two registers
15892///
15893/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)
15894#[inline]
15895#[cfg(target_arch = "arm")]
15896#[target_feature(enable = "neon,v7")]
15897#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
15898#[rustc_legacy_const_generics(2)]
15899#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15900pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
15901    static_assert_uimm_bits!(LANE, 1);
15902    #[allow(improper_ctypes)]
15903    extern "unadjusted" {
15904        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0i8.v2f32")]
15905        fn vst2_lane_f32_(ptr: *mut i8, a: float32x2_t, b: float32x2_t, n: i32, size: i32);
15906    }
15907vst2_lane_f32_(a as _, b.0, b.1, LANE, 4)
15908}
15909
15910/// Store multiple 2-element structures from two registers
15911///
15912/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2_lane_f32)
15913#[inline]
15914#[cfg(not(target_arch = "arm"))]
15915#[target_feature(enable = "neon")]
15916#[cfg_attr(test, assert_instr(st2, LANE = 0))]
15917#[rustc_legacy_const_generics(2)]
15918#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15919pub unsafe fn vst2_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x2_t) {
15920    static_assert_uimm_bits!(LANE, 1);
15921    #[allow(improper_ctypes)]
15922    extern "unadjusted" {
15923        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2lane.v2f32.p0i8")]
15924        fn vst2_lane_f32_(a: float32x2_t, b: float32x2_t, n: i64, ptr: *mut i8);
15925    }
15926vst2_lane_f32_(b.0, b.1, LANE as i64, a as _)
15927}
15928
15929/// Store multiple 2-element structures from two registers
15930///
15931/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)
15932#[inline]
15933#[cfg(target_arch = "arm")]
15934#[target_feature(enable = "neon,v7")]
15935#[cfg_attr(test, assert_instr(vst2, LANE = 0))]
15936#[rustc_legacy_const_generics(2)]
15937#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15938pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
15939    static_assert_uimm_bits!(LANE, 2);
15940    #[allow(improper_ctypes)]
15941    extern "unadjusted" {
15942        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst2lane.p0i8.v4f32")]
15943        fn vst2q_lane_f32_(ptr: *mut i8, a: float32x4_t, b: float32x4_t, n: i32, size: i32);
15944    }
15945vst2q_lane_f32_(a as _, b.0, b.1, LANE, 4)
15946}
15947
15948/// Store multiple 2-element structures from two registers
15949///
15950/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst2q_lane_f32)
15951#[inline]
15952#[cfg(not(target_arch = "arm"))]
15953#[target_feature(enable = "neon")]
15954#[cfg_attr(test, assert_instr(st2, LANE = 0))]
15955#[rustc_legacy_const_generics(2)]
15956#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15957pub unsafe fn vst2q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x2_t) {
15958    static_assert_uimm_bits!(LANE, 2);
15959    #[allow(improper_ctypes)]
15960    extern "unadjusted" {
15961        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st2lane.v4f32.p0i8")]
15962        fn vst2q_lane_f32_(a: float32x4_t, b: float32x4_t, n: i64, ptr: *mut i8);
15963    }
15964vst2q_lane_f32_(b.0, b.1, LANE as i64, a as _)
15965}
15966
15967/// Store multiple 3-element structures from three registers
15968///
15969/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)
15970#[inline]
15971#[cfg(target_arch = "arm")]
15972#[target_feature(enable = "neon,v7")]
15973#[cfg_attr(test, assert_instr(vst3))]
15974#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
15975pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
15976    #[allow(improper_ctypes)]
15977    extern "unadjusted" {
15978        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0i8.v8i8")]
15979        fn vst3_s8_(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, size: i32);
15980    }
15981vst3_s8_(a as _, b.0, b.1, b.2, 1)
15982}
15983
15984/// Store multiple 3-element structures from three registers
15985///
15986/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s8)
15987#[inline]
15988#[cfg(not(target_arch = "arm"))]
15989#[target_feature(enable = "neon")]
15990#[cfg_attr(test, assert_instr(st3))]
15991#[stable(feature = "neon_intrinsics", since = "1.59.0")]
15992pub unsafe fn vst3_s8(a: *mut i8, b: int8x8x3_t) {
15993    #[allow(improper_ctypes)]
15994    extern "unadjusted" {
15995        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3.v8i8.p0i8")]
15996        fn vst3_s8_(a: int8x8_t, b: int8x8_t, c: int8x8_t, ptr: *mut i8);
15997    }
15998vst3_s8_(b.0, b.1, b.2, a as _)
15999}
16000
16001/// Store multiple 3-element structures from three registers
16002///
16003/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)
16004#[inline]
16005#[cfg(target_arch = "arm")]
16006#[target_feature(enable = "neon,v7")]
16007#[cfg_attr(test, assert_instr(vst3))]
16008#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16009pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
16010    #[allow(improper_ctypes)]
16011    extern "unadjusted" {
16012        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0i8.v4i16")]
16013        fn vst3_s16_(ptr: *mut i8, a: int16x4_t, b: int16x4_t, c: int16x4_t, size: i32);
16014    }
16015vst3_s16_(a as _, b.0, b.1, b.2, 2)
16016}
16017
16018/// Store multiple 3-element structures from three registers
16019///
16020/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s16)
16021#[inline]
16022#[cfg(not(target_arch = "arm"))]
16023#[target_feature(enable = "neon")]
16024#[cfg_attr(test, assert_instr(st3))]
16025#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16026pub unsafe fn vst3_s16(a: *mut i16, b: int16x4x3_t) {
16027    #[allow(improper_ctypes)]
16028    extern "unadjusted" {
16029        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3.v4i16.p0i8")]
16030        fn vst3_s16_(a: int16x4_t, b: int16x4_t, c: int16x4_t, ptr: *mut i8);
16031    }
16032vst3_s16_(b.0, b.1, b.2, a as _)
16033}
16034
16035/// Store multiple 3-element structures from three registers
16036///
16037/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)
16038#[inline]
16039#[cfg(target_arch = "arm")]
16040#[target_feature(enable = "neon,v7")]
16041#[cfg_attr(test, assert_instr(vst3))]
16042#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16043pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
16044    #[allow(improper_ctypes)]
16045    extern "unadjusted" {
16046        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0i8.v2i32")]
16047        fn vst3_s32_(ptr: *mut i8, a: int32x2_t, b: int32x2_t, c: int32x2_t, size: i32);
16048    }
16049vst3_s32_(a as _, b.0, b.1, b.2, 4)
16050}
16051
16052/// Store multiple 3-element structures from three registers
16053///
16054/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s32)
16055#[inline]
16056#[cfg(not(target_arch = "arm"))]
16057#[target_feature(enable = "neon")]
16058#[cfg_attr(test, assert_instr(st3))]
16059#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16060pub unsafe fn vst3_s32(a: *mut i32, b: int32x2x3_t) {
16061    #[allow(improper_ctypes)]
16062    extern "unadjusted" {
16063        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3.v2i32.p0i8")]
16064        fn vst3_s32_(a: int32x2_t, b: int32x2_t, c: int32x2_t, ptr: *mut i8);
16065    }
16066vst3_s32_(b.0, b.1, b.2, a as _)
16067}
16068
16069/// Store multiple 3-element structures from three registers
16070///
16071/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)
16072#[inline]
16073#[cfg(target_arch = "arm")]
16074#[target_feature(enable = "neon,v7")]
16075#[cfg_attr(test, assert_instr(vst3))]
16076#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16077pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
16078    #[allow(improper_ctypes)]
16079    extern "unadjusted" {
16080        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0i8.v16i8")]
16081        fn vst3q_s8_(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, size: i32);
16082    }
16083vst3q_s8_(a as _, b.0, b.1, b.2, 1)
16084}
16085
16086/// Store multiple 3-element structures from three registers
16087///
16088/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s8)
16089#[inline]
16090#[cfg(not(target_arch = "arm"))]
16091#[target_feature(enable = "neon")]
16092#[cfg_attr(test, assert_instr(st3))]
16093#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16094pub unsafe fn vst3q_s8(a: *mut i8, b: int8x16x3_t) {
16095    #[allow(improper_ctypes)]
16096    extern "unadjusted" {
16097        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3.v16i8.p0i8")]
16098        fn vst3q_s8_(a: int8x16_t, b: int8x16_t, c: int8x16_t, ptr: *mut i8);
16099    }
16100vst3q_s8_(b.0, b.1, b.2, a as _)
16101}
16102
16103/// Store multiple 3-element structures from three registers
16104///
16105/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)
16106#[inline]
16107#[cfg(target_arch = "arm")]
16108#[target_feature(enable = "neon,v7")]
16109#[cfg_attr(test, assert_instr(vst3))]
16110#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16111pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
16112    #[allow(improper_ctypes)]
16113    extern "unadjusted" {
16114        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0i8.v8i16")]
16115        fn vst3q_s16_(ptr: *mut i8, a: int16x8_t, b: int16x8_t, c: int16x8_t, size: i32);
16116    }
16117vst3q_s16_(a as _, b.0, b.1, b.2, 2)
16118}
16119
16120/// Store multiple 3-element structures from three registers
16121///
16122/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s16)
16123#[inline]
16124#[cfg(not(target_arch = "arm"))]
16125#[target_feature(enable = "neon")]
16126#[cfg_attr(test, assert_instr(st3))]
16127#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16128pub unsafe fn vst3q_s16(a: *mut i16, b: int16x8x3_t) {
16129    #[allow(improper_ctypes)]
16130    extern "unadjusted" {
16131        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3.v8i16.p0i8")]
16132        fn vst3q_s16_(a: int16x8_t, b: int16x8_t, c: int16x8_t, ptr: *mut i8);
16133    }
16134vst3q_s16_(b.0, b.1, b.2, a as _)
16135}
16136
16137/// Store multiple 3-element structures from three registers
16138///
16139/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)
16140#[inline]
16141#[cfg(target_arch = "arm")]
16142#[target_feature(enable = "neon,v7")]
16143#[cfg_attr(test, assert_instr(vst3))]
16144#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16145pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
16146    #[allow(improper_ctypes)]
16147    extern "unadjusted" {
16148        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0i8.v4i32")]
16149        fn vst3q_s32_(ptr: *mut i8, a: int32x4_t, b: int32x4_t, c: int32x4_t, size: i32);
16150    }
16151vst3q_s32_(a as _, b.0, b.1, b.2, 4)
16152}
16153
16154/// Store multiple 3-element structures from three registers
16155///
16156/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_s32)
16157#[inline]
16158#[cfg(not(target_arch = "arm"))]
16159#[target_feature(enable = "neon")]
16160#[cfg_attr(test, assert_instr(st3))]
16161#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16162pub unsafe fn vst3q_s32(a: *mut i32, b: int32x4x3_t) {
16163    #[allow(improper_ctypes)]
16164    extern "unadjusted" {
16165        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3.v4i32.p0i8")]
16166        fn vst3q_s32_(a: int32x4_t, b: int32x4_t, c: int32x4_t, ptr: *mut i8);
16167    }
16168vst3q_s32_(b.0, b.1, b.2, a as _)
16169}
16170
16171/// Store multiple 3-element structures from three registers
16172///
16173/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)
16174#[inline]
16175#[cfg(target_arch = "arm")]
16176#[target_feature(enable = "neon,v7")]
16177#[cfg_attr(test, assert_instr(nop))]
16178#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16179pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
16180    #[allow(improper_ctypes)]
16181    extern "unadjusted" {
16182        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0i8.v1i64")]
16183        fn vst3_s64_(ptr: *mut i8, a: int64x1_t, b: int64x1_t, c: int64x1_t, size: i32);
16184    }
16185vst3_s64_(a as _, b.0, b.1, b.2, 8)
16186}
16187
16188/// Store multiple 3-element structures from three registers
16189///
16190/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_s64)
16191#[inline]
16192#[cfg(not(target_arch = "arm"))]
16193#[target_feature(enable = "neon")]
16194#[cfg_attr(test, assert_instr(nop))]
16195#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16196pub unsafe fn vst3_s64(a: *mut i64, b: int64x1x3_t) {
16197    #[allow(improper_ctypes)]
16198    extern "unadjusted" {
16199        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3.v1i64.p0i8")]
16200        fn vst3_s64_(a: int64x1_t, b: int64x1_t, c: int64x1_t, ptr: *mut i8);
16201    }
16202vst3_s64_(b.0, b.1, b.2, a as _)
16203}
16204
16205/// Store multiple 3-element structures from three registers
16206///
16207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u8)
16208#[inline]
16209#[target_feature(enable = "neon")]
16210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16212#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16213#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16214#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16215pub unsafe fn vst3_u8(a: *mut u8, b: uint8x8x3_t) {
16216    vst3_s8(transmute(a), transmute(b))
16217}
16218
16219/// Store multiple 3-element structures from three registers
16220///
16221/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u16)
16222#[inline]
16223#[target_feature(enable = "neon")]
16224#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16225#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16226#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16227#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16228#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16229pub unsafe fn vst3_u16(a: *mut u16, b: uint16x4x3_t) {
16230    vst3_s16(transmute(a), transmute(b))
16231}
16232
16233/// Store multiple 3-element structures from three registers
16234///
16235/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u32)
16236#[inline]
16237#[target_feature(enable = "neon")]
16238#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16239#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16240#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16241#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16242#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16243pub unsafe fn vst3_u32(a: *mut u32, b: uint32x2x3_t) {
16244    vst3_s32(transmute(a), transmute(b))
16245}
16246
16247/// Store multiple 3-element structures from three registers
16248///
16249/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u8)
16250#[inline]
16251#[target_feature(enable = "neon")]
16252#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16253#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16254#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16255#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16256#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16257pub unsafe fn vst3q_u8(a: *mut u8, b: uint8x16x3_t) {
16258    vst3q_s8(transmute(a), transmute(b))
16259}
16260
16261/// Store multiple 3-element structures from three registers
16262///
16263/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u16)
16264#[inline]
16265#[target_feature(enable = "neon")]
16266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16268#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16269#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16270#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16271pub unsafe fn vst3q_u16(a: *mut u16, b: uint16x8x3_t) {
16272    vst3q_s16(transmute(a), transmute(b))
16273}
16274
16275/// Store multiple 3-element structures from three registers
16276///
16277/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_u32)
16278#[inline]
16279#[target_feature(enable = "neon")]
16280#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16281#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16282#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16283#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16284#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16285pub unsafe fn vst3q_u32(a: *mut u32, b: uint32x4x3_t) {
16286    vst3q_s32(transmute(a), transmute(b))
16287}
16288
16289/// Store multiple 3-element structures from three registers
16290///
16291/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p8)
16292#[inline]
16293#[target_feature(enable = "neon")]
16294#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16295#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16296#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16297#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16298#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16299pub unsafe fn vst3_p8(a: *mut p8, b: poly8x8x3_t) {
16300    vst3_s8(transmute(a), transmute(b))
16301}
16302
16303/// Store multiple 3-element structures from three registers
16304///
16305/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p16)
16306#[inline]
16307#[target_feature(enable = "neon")]
16308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16310#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16311#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16312#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16313pub unsafe fn vst3_p16(a: *mut p16, b: poly16x4x3_t) {
16314    vst3_s16(transmute(a), transmute(b))
16315}
16316
16317/// Store multiple 3-element structures from three registers
16318///
16319/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p8)
16320#[inline]
16321#[target_feature(enable = "neon")]
16322#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16323#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16324#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16325#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16326#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16327pub unsafe fn vst3q_p8(a: *mut p8, b: poly8x16x3_t) {
16328    vst3q_s8(transmute(a), transmute(b))
16329}
16330
16331/// Store multiple 3-element structures from three registers
16332///
16333/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_p16)
16334#[inline]
16335#[target_feature(enable = "neon")]
16336#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16337#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3))]
16338#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3))]
16339#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16340#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16341pub unsafe fn vst3q_p16(a: *mut p16, b: poly16x8x3_t) {
16342    vst3q_s16(transmute(a), transmute(b))
16343}
16344
16345/// Store multiple 3-element structures from three registers
16346///
16347/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_u64)
16348#[inline]
16349#[target_feature(enable = "neon")]
16350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16352#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
16353#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16354#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16355pub unsafe fn vst3_u64(a: *mut u64, b: uint64x1x3_t) {
16356    vst3_s64(transmute(a), transmute(b))
16357}
16358
16359/// Store multiple 3-element structures from three registers
16360///
16361/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_p64)
16362#[inline]
16363#[target_feature(enable = "neon,aes")]
16364#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
16365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
16366#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
16367#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16368#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16369pub unsafe fn vst3_p64(a: *mut p64, b: poly64x1x3_t) {
16370    vst3_s64(transmute(a), transmute(b))
16371}
16372
16373/// Store multiple 3-element structures from three registers
16374///
16375/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)
16376#[inline]
16377#[cfg(target_arch = "arm")]
16378#[target_feature(enable = "neon,v7")]
16379#[cfg_attr(test, assert_instr(vst3))]
16380#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16381pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
16382    #[allow(improper_ctypes)]
16383    extern "unadjusted" {
16384        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0i8.v2f32")]
16385        fn vst3_f32_(ptr: *mut i8, a: float32x2_t, b: float32x2_t, c: float32x2_t, size: i32);
16386    }
16387vst3_f32_(a as _, b.0, b.1, b.2, 4)
16388}
16389
16390/// Store multiple 3-element structures from three registers
16391///
16392/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_f32)
16393#[inline]
16394#[cfg(not(target_arch = "arm"))]
16395#[target_feature(enable = "neon")]
16396#[cfg_attr(test, assert_instr(st3))]
16397#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16398pub unsafe fn vst3_f32(a: *mut f32, b: float32x2x3_t) {
16399    #[allow(improper_ctypes)]
16400    extern "unadjusted" {
16401        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3.v2f32.p0i8")]
16402        fn vst3_f32_(a: float32x2_t, b: float32x2_t, c: float32x2_t, ptr: *mut i8);
16403    }
16404vst3_f32_(b.0, b.1, b.2, a as _)
16405}
16406
16407/// Store multiple 3-element structures from three registers
16408///
16409/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)
16410#[inline]
16411#[cfg(target_arch = "arm")]
16412#[target_feature(enable = "neon,v7")]
16413#[cfg_attr(test, assert_instr(vst3))]
16414#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16415pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
16416    #[allow(improper_ctypes)]
16417    extern "unadjusted" {
16418        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3.p0i8.v4f32")]
16419        fn vst3q_f32_(ptr: *mut i8, a: float32x4_t, b: float32x4_t, c: float32x4_t, size: i32);
16420    }
16421vst3q_f32_(a as _, b.0, b.1, b.2, 4)
16422}
16423
16424/// Store multiple 3-element structures from three registers
16425///
16426/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_f32)
16427#[inline]
16428#[cfg(not(target_arch = "arm"))]
16429#[target_feature(enable = "neon")]
16430#[cfg_attr(test, assert_instr(st3))]
16431#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16432pub unsafe fn vst3q_f32(a: *mut f32, b: float32x4x3_t) {
16433    #[allow(improper_ctypes)]
16434    extern "unadjusted" {
16435        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3.v4f32.p0i8")]
16436        fn vst3q_f32_(a: float32x4_t, b: float32x4_t, c: float32x4_t, ptr: *mut i8);
16437    }
16438vst3q_f32_(b.0, b.1, b.2, a as _)
16439}
16440
16441/// Store multiple 3-element structures from three registers
16442///
16443/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)
16444#[inline]
16445#[cfg(target_arch = "arm")]
16446#[target_feature(enable = "neon,v7")]
16447#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
16448#[rustc_legacy_const_generics(2)]
16449#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16450pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
16451    static_assert_uimm_bits!(LANE, 3);
16452    #[allow(improper_ctypes)]
16453    extern "unadjusted" {
16454        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0i8.v8i8")]
16455        fn vst3_lane_s8_(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i32, size: i32);
16456    }
16457vst3_lane_s8_(a as _, b.0, b.1, b.2, LANE, 1)
16458}
16459
16460/// Store multiple 3-element structures from three registers
16461///
16462/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s8)
16463#[inline]
16464#[cfg(not(target_arch = "arm"))]
16465#[target_feature(enable = "neon")]
16466#[cfg_attr(test, assert_instr(st3, LANE = 0))]
16467#[rustc_legacy_const_generics(2)]
16468#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16469pub unsafe fn vst3_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x3_t) {
16470    static_assert_uimm_bits!(LANE, 3);
16471    #[allow(improper_ctypes)]
16472    extern "unadjusted" {
16473        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3lane.v8i8.p0i8")]
16474        fn vst3_lane_s8_(a: int8x8_t, b: int8x8_t, c: int8x8_t, n: i64, ptr: *mut i8);
16475    }
16476vst3_lane_s8_(b.0, b.1, b.2, LANE as i64, a as _)
16477}
16478
16479/// Store multiple 3-element structures from three registers
16480///
16481/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)
16482#[inline]
16483#[cfg(target_arch = "arm")]
16484#[target_feature(enable = "neon,v7")]
16485#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
16486#[rustc_legacy_const_generics(2)]
16487#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16488pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
16489    static_assert_uimm_bits!(LANE, 2);
16490    #[allow(improper_ctypes)]
16491    extern "unadjusted" {
16492        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0i8.v4i16")]
16493        fn vst3_lane_s16_(ptr: *mut i8, a: int16x4_t, b: int16x4_t, c: int16x4_t, n: i32, size: i32);
16494    }
16495vst3_lane_s16_(a as _, b.0, b.1, b.2, LANE, 2)
16496}
16497
16498/// Store multiple 3-element structures from three registers
16499///
16500/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s16)
16501#[inline]
16502#[cfg(not(target_arch = "arm"))]
16503#[target_feature(enable = "neon")]
16504#[cfg_attr(test, assert_instr(st3, LANE = 0))]
16505#[rustc_legacy_const_generics(2)]
16506#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16507pub unsafe fn vst3_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x3_t) {
16508    static_assert_uimm_bits!(LANE, 2);
16509    #[allow(improper_ctypes)]
16510    extern "unadjusted" {
16511        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3lane.v4i16.p0i8")]
16512        fn vst3_lane_s16_(a: int16x4_t, b: int16x4_t, c: int16x4_t, n: i64, ptr: *mut i8);
16513    }
16514vst3_lane_s16_(b.0, b.1, b.2, LANE as i64, a as _)
16515}
16516
16517/// Store multiple 3-element structures from three registers
16518///
16519/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)
16520#[inline]
16521#[cfg(target_arch = "arm")]
16522#[target_feature(enable = "neon,v7")]
16523#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
16524#[rustc_legacy_const_generics(2)]
16525#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16526pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
16527    static_assert_uimm_bits!(LANE, 1);
16528    #[allow(improper_ctypes)]
16529    extern "unadjusted" {
16530        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0i8.v2i32")]
16531        fn vst3_lane_s32_(ptr: *mut i8, a: int32x2_t, b: int32x2_t, c: int32x2_t, n: i32, size: i32);
16532    }
16533vst3_lane_s32_(a as _, b.0, b.1, b.2, LANE, 4)
16534}
16535
16536/// Store multiple 3-element structures from three registers
16537///
16538/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_s32)
16539#[inline]
16540#[cfg(not(target_arch = "arm"))]
16541#[target_feature(enable = "neon")]
16542#[cfg_attr(test, assert_instr(st3, LANE = 0))]
16543#[rustc_legacy_const_generics(2)]
16544#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16545pub unsafe fn vst3_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x3_t) {
16546    static_assert_uimm_bits!(LANE, 1);
16547    #[allow(improper_ctypes)]
16548    extern "unadjusted" {
16549        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3lane.v2i32.p0i8")]
16550        fn vst3_lane_s32_(a: int32x2_t, b: int32x2_t, c: int32x2_t, n: i64, ptr: *mut i8);
16551    }
16552vst3_lane_s32_(b.0, b.1, b.2, LANE as i64, a as _)
16553}
16554
16555/// Store multiple 3-element structures from three registers
16556///
16557/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)
16558#[inline]
16559#[cfg(target_arch = "arm")]
16560#[target_feature(enable = "neon,v7")]
16561#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
16562#[rustc_legacy_const_generics(2)]
16563#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16564pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
16565    static_assert_uimm_bits!(LANE, 3);
16566    #[allow(improper_ctypes)]
16567    extern "unadjusted" {
16568        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0i8.v8i16")]
16569        fn vst3q_lane_s16_(ptr: *mut i8, a: int16x8_t, b: int16x8_t, c: int16x8_t, n: i32, size: i32);
16570    }
16571vst3q_lane_s16_(a as _, b.0, b.1, b.2, LANE, 2)
16572}
16573
16574/// Store multiple 3-element structures from three registers
16575///
16576/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s16)
16577#[inline]
16578#[cfg(not(target_arch = "arm"))]
16579#[target_feature(enable = "neon")]
16580#[cfg_attr(test, assert_instr(st3, LANE = 0))]
16581#[rustc_legacy_const_generics(2)]
16582#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16583pub unsafe fn vst3q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x3_t) {
16584    static_assert_uimm_bits!(LANE, 3);
16585    #[allow(improper_ctypes)]
16586    extern "unadjusted" {
16587        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3lane.v8i16.p0i8")]
16588        fn vst3q_lane_s16_(a: int16x8_t, b: int16x8_t, c: int16x8_t, n: i64, ptr: *mut i8);
16589    }
16590vst3q_lane_s16_(b.0, b.1, b.2, LANE as i64, a as _)
16591}
16592
16593/// Store multiple 3-element structures from three registers
16594///
16595/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)
16596#[inline]
16597#[cfg(target_arch = "arm")]
16598#[target_feature(enable = "neon,v7")]
16599#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
16600#[rustc_legacy_const_generics(2)]
16601#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16602pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
16603    static_assert_uimm_bits!(LANE, 2);
16604    #[allow(improper_ctypes)]
16605    extern "unadjusted" {
16606        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0i8.v4i32")]
16607        fn vst3q_lane_s32_(ptr: *mut i8, a: int32x4_t, b: int32x4_t, c: int32x4_t, n: i32, size: i32);
16608    }
16609vst3q_lane_s32_(a as _, b.0, b.1, b.2, LANE, 4)
16610}
16611
16612/// Store multiple 3-element structures from three registers
16613///
16614/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_s32)
16615#[inline]
16616#[cfg(not(target_arch = "arm"))]
16617#[target_feature(enable = "neon")]
16618#[cfg_attr(test, assert_instr(st3, LANE = 0))]
16619#[rustc_legacy_const_generics(2)]
16620#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16621pub unsafe fn vst3q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x3_t) {
16622    static_assert_uimm_bits!(LANE, 2);
16623    #[allow(improper_ctypes)]
16624    extern "unadjusted" {
16625        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3lane.v4i32.p0i8")]
16626        fn vst3q_lane_s32_(a: int32x4_t, b: int32x4_t, c: int32x4_t, n: i64, ptr: *mut i8);
16627    }
16628vst3q_lane_s32_(b.0, b.1, b.2, LANE as i64, a as _)
16629}
16630
16631/// Store multiple 3-element structures from three registers
16632///
16633/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u8)
16634#[inline]
16635#[target_feature(enable = "neon")]
16636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16637#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
16638#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3, LANE = 0))]
16639#[rustc_legacy_const_generics(2)]
16640#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16641#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16642pub unsafe fn vst3_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x3_t) {
16643    static_assert_uimm_bits!(LANE, 3);
16644    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
16645}
16646
16647/// Store multiple 3-element structures from three registers
16648///
16649/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u16)
16650#[inline]
16651#[target_feature(enable = "neon")]
16652#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16653#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
16654#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3, LANE = 0))]
16655#[rustc_legacy_const_generics(2)]
16656#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16657#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16658pub unsafe fn vst3_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x3_t) {
16659    static_assert_uimm_bits!(LANE, 2);
16660    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
16661}
16662
16663/// Store multiple 3-element structures from three registers
16664///
16665/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_u32)
16666#[inline]
16667#[target_feature(enable = "neon")]
16668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
16670#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3, LANE = 0))]
16671#[rustc_legacy_const_generics(2)]
16672#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16673#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16674pub unsafe fn vst3_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x3_t) {
16675    static_assert_uimm_bits!(LANE, 1);
16676    vst3_lane_s32::<LANE>(transmute(a), transmute(b))
16677}
16678
16679/// Store multiple 3-element structures from three registers
16680///
16681/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u16)
16682#[inline]
16683#[target_feature(enable = "neon")]
16684#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16685#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
16686#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3, LANE = 0))]
16687#[rustc_legacy_const_generics(2)]
16688#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16689#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16690pub unsafe fn vst3q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x3_t) {
16691    static_assert_uimm_bits!(LANE, 3);
16692    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
16693}
16694
16695/// Store multiple 3-element structures from three registers
16696///
16697/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_u32)
16698#[inline]
16699#[target_feature(enable = "neon")]
16700#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16701#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
16702#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3, LANE = 0))]
16703#[rustc_legacy_const_generics(2)]
16704#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16705#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16706pub unsafe fn vst3q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x3_t) {
16707    static_assert_uimm_bits!(LANE, 2);
16708    vst3q_lane_s32::<LANE>(transmute(a), transmute(b))
16709}
16710
16711/// Store multiple 3-element structures from three registers
16712///
16713/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p8)
16714#[inline]
16715#[target_feature(enable = "neon")]
16716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16717#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
16718#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3, LANE = 0))]
16719#[rustc_legacy_const_generics(2)]
16720#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16721#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16722pub unsafe fn vst3_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x3_t) {
16723    static_assert_uimm_bits!(LANE, 3);
16724    vst3_lane_s8::<LANE>(transmute(a), transmute(b))
16725}
16726
16727/// Store multiple 3-element structures from three registers
16728///
16729/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_p16)
16730#[inline]
16731#[target_feature(enable = "neon")]
16732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
16734#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3, LANE = 0))]
16735#[rustc_legacy_const_generics(2)]
16736#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16737#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16738pub unsafe fn vst3_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x3_t) {
16739    static_assert_uimm_bits!(LANE, 2);
16740    vst3_lane_s16::<LANE>(transmute(a), transmute(b))
16741}
16742
16743/// Store multiple 3-element structures from three registers
16744///
16745/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_p16)
16746#[inline]
16747#[target_feature(enable = "neon")]
16748#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
16749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst3, LANE = 0))]
16750#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st3, LANE = 0))]
16751#[rustc_legacy_const_generics(2)]
16752#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
16753#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
16754pub unsafe fn vst3q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x3_t) {
16755    static_assert_uimm_bits!(LANE, 3);
16756    vst3q_lane_s16::<LANE>(transmute(a), transmute(b))
16757}
16758
16759/// Store multiple 3-element structures from three registers
16760///
16761/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)
16762#[inline]
16763#[cfg(target_arch = "arm")]
16764#[target_feature(enable = "neon,v7")]
16765#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
16766#[rustc_legacy_const_generics(2)]
16767#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16768pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
16769    static_assert_uimm_bits!(LANE, 1);
16770    #[allow(improper_ctypes)]
16771    extern "unadjusted" {
16772        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0i8.v2f32")]
16773        fn vst3_lane_f32_(ptr: *mut i8, a: float32x2_t, b: float32x2_t, c: float32x2_t, n: i32, size: i32);
16774    }
16775vst3_lane_f32_(a as _, b.0, b.1, b.2, LANE, 4)
16776}
16777
16778/// Store multiple 3-element structures from three registers
16779///
16780/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3_lane_f32)
16781#[inline]
16782#[cfg(not(target_arch = "arm"))]
16783#[target_feature(enable = "neon")]
16784#[cfg_attr(test, assert_instr(st3, LANE = 0))]
16785#[rustc_legacy_const_generics(2)]
16786#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16787pub unsafe fn vst3_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x3_t) {
16788    static_assert_uimm_bits!(LANE, 1);
16789    #[allow(improper_ctypes)]
16790    extern "unadjusted" {
16791        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3lane.v2f32.p0i8")]
16792        fn vst3_lane_f32_(a: float32x2_t, b: float32x2_t, c: float32x2_t, n: i64, ptr: *mut i8);
16793    }
16794vst3_lane_f32_(b.0, b.1, b.2, LANE as i64, a as _)
16795}
16796
16797/// Store multiple 3-element structures from three registers
16798///
16799/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)
16800#[inline]
16801#[cfg(target_arch = "arm")]
16802#[target_feature(enable = "neon,v7")]
16803#[cfg_attr(test, assert_instr(vst3, LANE = 0))]
16804#[rustc_legacy_const_generics(2)]
16805#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16806pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
16807    static_assert_uimm_bits!(LANE, 2);
16808    #[allow(improper_ctypes)]
16809    extern "unadjusted" {
16810        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst3lane.p0i8.v4f32")]
16811        fn vst3q_lane_f32_(ptr: *mut i8, a: float32x4_t, b: float32x4_t, c: float32x4_t, n: i32, size: i32);
16812    }
16813vst3q_lane_f32_(a as _, b.0, b.1, b.2, LANE, 4)
16814}
16815
16816/// Store multiple 3-element structures from three registers
16817///
16818/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst3q_lane_f32)
16819#[inline]
16820#[cfg(not(target_arch = "arm"))]
16821#[target_feature(enable = "neon")]
16822#[cfg_attr(test, assert_instr(st3, LANE = 0))]
16823#[rustc_legacy_const_generics(2)]
16824#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16825pub unsafe fn vst3q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x3_t) {
16826    static_assert_uimm_bits!(LANE, 2);
16827    #[allow(improper_ctypes)]
16828    extern "unadjusted" {
16829        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st3lane.v4f32.p0i8")]
16830        fn vst3q_lane_f32_(a: float32x4_t, b: float32x4_t, c: float32x4_t, n: i64, ptr: *mut i8);
16831    }
16832vst3q_lane_f32_(b.0, b.1, b.2, LANE as i64, a as _)
16833}
16834
16835/// Store multiple 4-element structures from four registers
16836///
16837/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)
16838#[inline]
16839#[cfg(target_arch = "arm")]
16840#[target_feature(enable = "neon,v7")]
16841#[cfg_attr(test, assert_instr(vst4))]
16842#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16843pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
16844    #[allow(improper_ctypes)]
16845    extern "unadjusted" {
16846        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0i8.v8i8")]
16847        fn vst4_s8_(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, size: i32);
16848    }
16849vst4_s8_(a as _, b.0, b.1, b.2, b.3, 1)
16850}
16851
16852/// Store multiple 4-element structures from four registers
16853///
16854/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s8)
16855#[inline]
16856#[cfg(not(target_arch = "arm"))]
16857#[target_feature(enable = "neon")]
16858#[cfg_attr(test, assert_instr(st4))]
16859#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16860pub unsafe fn vst4_s8(a: *mut i8, b: int8x8x4_t) {
16861    #[allow(improper_ctypes)]
16862    extern "unadjusted" {
16863        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4.v8i8.p0i8")]
16864        fn vst4_s8_(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, ptr: *mut i8);
16865    }
16866vst4_s8_(b.0, b.1, b.2, b.3, a as _)
16867}
16868
16869/// Store multiple 4-element structures from four registers
16870///
16871/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)
16872#[inline]
16873#[cfg(target_arch = "arm")]
16874#[target_feature(enable = "neon,v7")]
16875#[cfg_attr(test, assert_instr(vst4))]
16876#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16877pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
16878    #[allow(improper_ctypes)]
16879    extern "unadjusted" {
16880        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0i8.v4i16")]
16881        fn vst4_s16_(ptr: *mut i8, a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, size: i32);
16882    }
16883vst4_s16_(a as _, b.0, b.1, b.2, b.3, 2)
16884}
16885
16886/// Store multiple 4-element structures from four registers
16887///
16888/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s16)
16889#[inline]
16890#[cfg(not(target_arch = "arm"))]
16891#[target_feature(enable = "neon")]
16892#[cfg_attr(test, assert_instr(st4))]
16893#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16894pub unsafe fn vst4_s16(a: *mut i16, b: int16x4x4_t) {
16895    #[allow(improper_ctypes)]
16896    extern "unadjusted" {
16897        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4.v4i16.p0i8")]
16898        fn vst4_s16_(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, ptr: *mut i8);
16899    }
16900vst4_s16_(b.0, b.1, b.2, b.3, a as _)
16901}
16902
16903/// Store multiple 4-element structures from four registers
16904///
16905/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)
16906#[inline]
16907#[cfg(target_arch = "arm")]
16908#[target_feature(enable = "neon,v7")]
16909#[cfg_attr(test, assert_instr(vst4))]
16910#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16911pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
16912    #[allow(improper_ctypes)]
16913    extern "unadjusted" {
16914        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0i8.v2i32")]
16915        fn vst4_s32_(ptr: *mut i8, a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, size: i32);
16916    }
16917vst4_s32_(a as _, b.0, b.1, b.2, b.3, 4)
16918}
16919
16920/// Store multiple 4-element structures from four registers
16921///
16922/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s32)
16923#[inline]
16924#[cfg(not(target_arch = "arm"))]
16925#[target_feature(enable = "neon")]
16926#[cfg_attr(test, assert_instr(st4))]
16927#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16928pub unsafe fn vst4_s32(a: *mut i32, b: int32x2x4_t) {
16929    #[allow(improper_ctypes)]
16930    extern "unadjusted" {
16931        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4.v2i32.p0i8")]
16932        fn vst4_s32_(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, ptr: *mut i8);
16933    }
16934vst4_s32_(b.0, b.1, b.2, b.3, a as _)
16935}
16936
16937/// Store multiple 4-element structures from four registers
16938///
16939/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)
16940#[inline]
16941#[cfg(target_arch = "arm")]
16942#[target_feature(enable = "neon,v7")]
16943#[cfg_attr(test, assert_instr(vst4))]
16944#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16945pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
16946    #[allow(improper_ctypes)]
16947    extern "unadjusted" {
16948        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0i8.v16i8")]
16949        fn vst4q_s8_(ptr: *mut i8, a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, size: i32);
16950    }
16951vst4q_s8_(a as _, b.0, b.1, b.2, b.3, 1)
16952}
16953
16954/// Store multiple 4-element structures from four registers
16955///
16956/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s8)
16957#[inline]
16958#[cfg(not(target_arch = "arm"))]
16959#[target_feature(enable = "neon")]
16960#[cfg_attr(test, assert_instr(st4))]
16961#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16962pub unsafe fn vst4q_s8(a: *mut i8, b: int8x16x4_t) {
16963    #[allow(improper_ctypes)]
16964    extern "unadjusted" {
16965        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4.v16i8.p0i8")]
16966        fn vst4q_s8_(a: int8x16_t, b: int8x16_t, c: int8x16_t, d: int8x16_t, ptr: *mut i8);
16967    }
16968vst4q_s8_(b.0, b.1, b.2, b.3, a as _)
16969}
16970
16971/// Store multiple 4-element structures from four registers
16972///
16973/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)
16974#[inline]
16975#[cfg(target_arch = "arm")]
16976#[target_feature(enable = "neon,v7")]
16977#[cfg_attr(test, assert_instr(vst4))]
16978#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
16979pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
16980    #[allow(improper_ctypes)]
16981    extern "unadjusted" {
16982        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0i8.v8i16")]
16983        fn vst4q_s16_(ptr: *mut i8, a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, size: i32);
16984    }
16985vst4q_s16_(a as _, b.0, b.1, b.2, b.3, 2)
16986}
16987
16988/// Store multiple 4-element structures from four registers
16989///
16990/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s16)
16991#[inline]
16992#[cfg(not(target_arch = "arm"))]
16993#[target_feature(enable = "neon")]
16994#[cfg_attr(test, assert_instr(st4))]
16995#[stable(feature = "neon_intrinsics", since = "1.59.0")]
16996pub unsafe fn vst4q_s16(a: *mut i16, b: int16x8x4_t) {
16997    #[allow(improper_ctypes)]
16998    extern "unadjusted" {
16999        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4.v8i16.p0i8")]
17000        fn vst4q_s16_(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, ptr: *mut i8);
17001    }
17002vst4q_s16_(b.0, b.1, b.2, b.3, a as _)
17003}
17004
17005/// Store multiple 4-element structures from four registers
17006///
17007/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)
17008#[inline]
17009#[cfg(target_arch = "arm")]
17010#[target_feature(enable = "neon,v7")]
17011#[cfg_attr(test, assert_instr(vst4))]
17012#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17013pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
17014    #[allow(improper_ctypes)]
17015    extern "unadjusted" {
17016        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0i8.v4i32")]
17017        fn vst4q_s32_(ptr: *mut i8, a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, size: i32);
17018    }
17019vst4q_s32_(a as _, b.0, b.1, b.2, b.3, 4)
17020}
17021
17022/// Store multiple 4-element structures from four registers
17023///
17024/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_s32)
17025#[inline]
17026#[cfg(not(target_arch = "arm"))]
17027#[target_feature(enable = "neon")]
17028#[cfg_attr(test, assert_instr(st4))]
17029#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17030pub unsafe fn vst4q_s32(a: *mut i32, b: int32x4x4_t) {
17031    #[allow(improper_ctypes)]
17032    extern "unadjusted" {
17033        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4.v4i32.p0i8")]
17034        fn vst4q_s32_(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, ptr: *mut i8);
17035    }
17036vst4q_s32_(b.0, b.1, b.2, b.3, a as _)
17037}
17038
17039/// Store multiple 4-element structures from four registers
17040///
17041/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)
17042#[inline]
17043#[cfg(target_arch = "arm")]
17044#[target_feature(enable = "neon,v7")]
17045#[cfg_attr(test, assert_instr(nop))]
17046#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17047pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
17048    #[allow(improper_ctypes)]
17049    extern "unadjusted" {
17050        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0i8.v1i64")]
17051        fn vst4_s64_(ptr: *mut i8, a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, size: i32);
17052    }
17053vst4_s64_(a as _, b.0, b.1, b.2, b.3, 8)
17054}
17055
17056/// Store multiple 4-element structures from four registers
17057///
17058/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_s64)
17059#[inline]
17060#[cfg(not(target_arch = "arm"))]
17061#[target_feature(enable = "neon")]
17062#[cfg_attr(test, assert_instr(nop))]
17063#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17064pub unsafe fn vst4_s64(a: *mut i64, b: int64x1x4_t) {
17065    #[allow(improper_ctypes)]
17066    extern "unadjusted" {
17067        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4.v1i64.p0i8")]
17068        fn vst4_s64_(a: int64x1_t, b: int64x1_t, c: int64x1_t, d: int64x1_t, ptr: *mut i8);
17069    }
17070vst4_s64_(b.0, b.1, b.2, b.3, a as _)
17071}
17072
17073/// Store multiple 4-element structures from four registers
17074///
17075/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u8)
17076#[inline]
17077#[target_feature(enable = "neon")]
17078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17079#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
17080#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17081#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17082#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17083pub unsafe fn vst4_u8(a: *mut u8, b: uint8x8x4_t) {
17084    vst4_s8(transmute(a), transmute(b))
17085}
17086
17087/// Store multiple 4-element structures from four registers
17088///
17089/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u16)
17090#[inline]
17091#[target_feature(enable = "neon")]
17092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17093#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
17094#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17095#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17096#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17097pub unsafe fn vst4_u16(a: *mut u16, b: uint16x4x4_t) {
17098    vst4_s16(transmute(a), transmute(b))
17099}
17100
17101/// Store multiple 4-element structures from four registers
17102///
17103/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u32)
17104#[inline]
17105#[target_feature(enable = "neon")]
17106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17107#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
17108#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17109#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17110#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17111pub unsafe fn vst4_u32(a: *mut u32, b: uint32x2x4_t) {
17112    vst4_s32(transmute(a), transmute(b))
17113}
17114
17115/// Store multiple 4-element structures from four registers
17116///
17117/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u8)
17118#[inline]
17119#[target_feature(enable = "neon")]
17120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17121#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
17122#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17123#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17124#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17125pub unsafe fn vst4q_u8(a: *mut u8, b: uint8x16x4_t) {
17126    vst4q_s8(transmute(a), transmute(b))
17127}
17128
17129/// Store multiple 4-element structures from four registers
17130///
17131/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u16)
17132#[inline]
17133#[target_feature(enable = "neon")]
17134#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17135#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
17136#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17137#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17138#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17139pub unsafe fn vst4q_u16(a: *mut u16, b: uint16x8x4_t) {
17140    vst4q_s16(transmute(a), transmute(b))
17141}
17142
17143/// Store multiple 4-element structures from four registers
17144///
17145/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_u32)
17146#[inline]
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(vst4))]
17150#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17151#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17152#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17153pub unsafe fn vst4q_u32(a: *mut u32, b: uint32x4x4_t) {
17154    vst4q_s32(transmute(a), transmute(b))
17155}
17156
17157/// Store multiple 4-element structures from four registers
17158///
17159/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p8)
17160#[inline]
17161#[target_feature(enable = "neon")]
17162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
17164#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17165#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17166#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17167pub unsafe fn vst4_p8(a: *mut p8, b: poly8x8x4_t) {
17168    vst4_s8(transmute(a), transmute(b))
17169}
17170
17171/// Store multiple 4-element structures from four registers
17172///
17173/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p16)
17174#[inline]
17175#[target_feature(enable = "neon")]
17176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17177#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
17178#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17179#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17180#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17181pub unsafe fn vst4_p16(a: *mut p16, b: poly16x4x4_t) {
17182    vst4_s16(transmute(a), transmute(b))
17183}
17184
17185/// Store multiple 4-element structures from four registers
17186///
17187/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p8)
17188#[inline]
17189#[target_feature(enable = "neon")]
17190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
17192#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17193#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17194#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17195pub unsafe fn vst4q_p8(a: *mut p8, b: poly8x16x4_t) {
17196    vst4q_s8(transmute(a), transmute(b))
17197}
17198
17199/// Store multiple 4-element structures from four registers
17200///
17201/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_p16)
17202#[inline]
17203#[target_feature(enable = "neon")]
17204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17205#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4))]
17206#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4))]
17207#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17208#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17209pub unsafe fn vst4q_p16(a: *mut p16, b: poly16x8x4_t) {
17210    vst4q_s16(transmute(a), transmute(b))
17211}
17212
17213/// Store multiple 4-element structures from four registers
17214///
17215/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_u64)
17216#[inline]
17217#[target_feature(enable = "neon")]
17218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
17220#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
17221#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17222#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17223pub unsafe fn vst4_u64(a: *mut u64, b: uint64x1x4_t) {
17224    vst4_s64(transmute(a), transmute(b))
17225}
17226
17227/// Store multiple 4-element structures from four registers
17228///
17229/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_p64)
17230#[inline]
17231#[target_feature(enable = "neon,aes")]
17232#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
17233#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
17234#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
17235#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17236#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17237pub unsafe fn vst4_p64(a: *mut p64, b: poly64x1x4_t) {
17238    vst4_s64(transmute(a), transmute(b))
17239}
17240
17241/// Store multiple 4-element structures from four registers
17242///
17243/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)
17244#[inline]
17245#[cfg(target_arch = "arm")]
17246#[target_feature(enable = "neon,v7")]
17247#[cfg_attr(test, assert_instr(vst4))]
17248#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17249pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
17250    #[allow(improper_ctypes)]
17251    extern "unadjusted" {
17252        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0i8.v2f32")]
17253        fn vst4_f32_(ptr: *mut i8, a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, size: i32);
17254    }
17255vst4_f32_(a as _, b.0, b.1, b.2, b.3, 4)
17256}
17257
17258/// Store multiple 4-element structures from four registers
17259///
17260/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_f32)
17261#[inline]
17262#[cfg(not(target_arch = "arm"))]
17263#[target_feature(enable = "neon")]
17264#[cfg_attr(test, assert_instr(st4))]
17265#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17266pub unsafe fn vst4_f32(a: *mut f32, b: float32x2x4_t) {
17267    #[allow(improper_ctypes)]
17268    extern "unadjusted" {
17269        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4.v2f32.p0i8")]
17270        fn vst4_f32_(a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, ptr: *mut i8);
17271    }
17272vst4_f32_(b.0, b.1, b.2, b.3, a as _)
17273}
17274
17275/// Store multiple 4-element structures from four registers
17276///
17277/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)
17278#[inline]
17279#[cfg(target_arch = "arm")]
17280#[target_feature(enable = "neon,v7")]
17281#[cfg_attr(test, assert_instr(vst4))]
17282#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17283pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
17284    #[allow(improper_ctypes)]
17285    extern "unadjusted" {
17286        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4.p0i8.v4f32")]
17287        fn vst4q_f32_(ptr: *mut i8, a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, size: i32);
17288    }
17289vst4q_f32_(a as _, b.0, b.1, b.2, b.3, 4)
17290}
17291
17292/// Store multiple 4-element structures from four registers
17293///
17294/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_f32)
17295#[inline]
17296#[cfg(not(target_arch = "arm"))]
17297#[target_feature(enable = "neon")]
17298#[cfg_attr(test, assert_instr(st4))]
17299#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17300pub unsafe fn vst4q_f32(a: *mut f32, b: float32x4x4_t) {
17301    #[allow(improper_ctypes)]
17302    extern "unadjusted" {
17303        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4.v4f32.p0i8")]
17304        fn vst4q_f32_(a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, ptr: *mut i8);
17305    }
17306vst4q_f32_(b.0, b.1, b.2, b.3, a as _)
17307}
17308
17309/// Store multiple 4-element structures from four registers
17310///
17311/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)
17312#[inline]
17313#[cfg(target_arch = "arm")]
17314#[target_feature(enable = "neon,v7")]
17315#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
17316#[rustc_legacy_const_generics(2)]
17317#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17318pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
17319    static_assert_uimm_bits!(LANE, 3);
17320    #[allow(improper_ctypes)]
17321    extern "unadjusted" {
17322        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0i8.v8i8")]
17323        fn vst4_lane_s8_(ptr: *mut i8, a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, n: i32, size: i32);
17324    }
17325vst4_lane_s8_(a as _, b.0, b.1, b.2, b.3, LANE, 1)
17326}
17327
17328/// Store multiple 4-element structures from four registers
17329///
17330/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s8)
17331#[inline]
17332#[cfg(not(target_arch = "arm"))]
17333#[target_feature(enable = "neon")]
17334#[cfg_attr(test, assert_instr(st4, LANE = 0))]
17335#[rustc_legacy_const_generics(2)]
17336#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17337pub unsafe fn vst4_lane_s8<const LANE: i32>(a: *mut i8, b: int8x8x4_t) {
17338    static_assert_uimm_bits!(LANE, 3);
17339    #[allow(improper_ctypes)]
17340    extern "unadjusted" {
17341        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4lane.v8i8.p0i8")]
17342        fn vst4_lane_s8_(a: int8x8_t, b: int8x8_t, c: int8x8_t, d: int8x8_t, n: i64, ptr: *mut i8);
17343    }
17344vst4_lane_s8_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
17345}
17346
17347/// Store multiple 4-element structures from four registers
17348///
17349/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)
17350#[inline]
17351#[cfg(target_arch = "arm")]
17352#[target_feature(enable = "neon,v7")]
17353#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
17354#[rustc_legacy_const_generics(2)]
17355#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17356pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
17357    static_assert_uimm_bits!(LANE, 2);
17358    #[allow(improper_ctypes)]
17359    extern "unadjusted" {
17360        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0i8.v4i16")]
17361        fn vst4_lane_s16_(ptr: *mut i8, a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, n: i32, size: i32);
17362    }
17363vst4_lane_s16_(a as _, b.0, b.1, b.2, b.3, LANE, 2)
17364}
17365
17366/// Store multiple 4-element structures from four registers
17367///
17368/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s16)
17369#[inline]
17370#[cfg(not(target_arch = "arm"))]
17371#[target_feature(enable = "neon")]
17372#[cfg_attr(test, assert_instr(st4, LANE = 0))]
17373#[rustc_legacy_const_generics(2)]
17374#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17375pub unsafe fn vst4_lane_s16<const LANE: i32>(a: *mut i16, b: int16x4x4_t) {
17376    static_assert_uimm_bits!(LANE, 2);
17377    #[allow(improper_ctypes)]
17378    extern "unadjusted" {
17379        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4lane.v4i16.p0i8")]
17380        fn vst4_lane_s16_(a: int16x4_t, b: int16x4_t, c: int16x4_t, d: int16x4_t, n: i64, ptr: *mut i8);
17381    }
17382vst4_lane_s16_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
17383}
17384
17385/// Store multiple 4-element structures from four registers
17386///
17387/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s32)
17388#[inline]
17389#[cfg(target_arch = "arm")]
17390#[target_feature(enable = "neon,v7")]
17391#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
17392#[rustc_legacy_const_generics(2)]
17393#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17394pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
17395    static_assert_uimm_bits!(LANE, 1);
17396    #[allow(improper_ctypes)]
17397    extern "unadjusted" {
17398        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0i8.v2i32")]
17399        fn vst4_lane_s32_(ptr: *mut i8, a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, n: i32, size: i32);
17400    }
17401vst4_lane_s32_(a as _, b.0, b.1, b.2, b.3, LANE, 4)
17402}
17403
17404/// Store multiple 4-element structures from four registers
17405///
17406/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_s32)
17407#[inline]
17408#[cfg(not(target_arch = "arm"))]
17409#[target_feature(enable = "neon")]
17410#[cfg_attr(test, assert_instr(st4, LANE = 0))]
17411#[rustc_legacy_const_generics(2)]
17412#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17413pub unsafe fn vst4_lane_s32<const LANE: i32>(a: *mut i32, b: int32x2x4_t) {
17414    static_assert_uimm_bits!(LANE, 1);
17415    #[allow(improper_ctypes)]
17416    extern "unadjusted" {
17417        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4lane.v2i32.p0i8")]
17418        fn vst4_lane_s32_(a: int32x2_t, b: int32x2_t, c: int32x2_t, d: int32x2_t, n: i64, ptr: *mut i8);
17419    }
17420vst4_lane_s32_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
17421}
17422
17423/// Store multiple 4-element structures from four registers
17424///
17425/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)
17426#[inline]
17427#[cfg(target_arch = "arm")]
17428#[target_feature(enable = "neon,v7")]
17429#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
17430#[rustc_legacy_const_generics(2)]
17431#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17432pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
17433    static_assert_uimm_bits!(LANE, 3);
17434    #[allow(improper_ctypes)]
17435    extern "unadjusted" {
17436        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0i8.v8i16")]
17437        fn vst4q_lane_s16_(ptr: *mut i8, a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, n: i32, size: i32);
17438    }
17439vst4q_lane_s16_(a as _, b.0, b.1, b.2, b.3, LANE, 2)
17440}
17441
17442/// Store multiple 4-element structures from four registers
17443///
17444/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s16)
17445#[inline]
17446#[cfg(not(target_arch = "arm"))]
17447#[target_feature(enable = "neon")]
17448#[cfg_attr(test, assert_instr(st4, LANE = 0))]
17449#[rustc_legacy_const_generics(2)]
17450#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17451pub unsafe fn vst4q_lane_s16<const LANE: i32>(a: *mut i16, b: int16x8x4_t) {
17452    static_assert_uimm_bits!(LANE, 3);
17453    #[allow(improper_ctypes)]
17454    extern "unadjusted" {
17455        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4lane.v8i16.p0i8")]
17456        fn vst4q_lane_s16_(a: int16x8_t, b: int16x8_t, c: int16x8_t, d: int16x8_t, n: i64, ptr: *mut i8);
17457    }
17458vst4q_lane_s16_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
17459}
17460
17461/// Store multiple 4-element structures from four registers
17462///
17463/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)
17464#[inline]
17465#[cfg(target_arch = "arm")]
17466#[target_feature(enable = "neon,v7")]
17467#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
17468#[rustc_legacy_const_generics(2)]
17469#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17470pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
17471    static_assert_uimm_bits!(LANE, 2);
17472    #[allow(improper_ctypes)]
17473    extern "unadjusted" {
17474        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0i8.v4i32")]
17475        fn vst4q_lane_s32_(ptr: *mut i8, a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, n: i32, size: i32);
17476    }
17477vst4q_lane_s32_(a as _, b.0, b.1, b.2, b.3, LANE, 4)
17478}
17479
17480/// Store multiple 4-element structures from four registers
17481///
17482/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_s32)
17483#[inline]
17484#[cfg(not(target_arch = "arm"))]
17485#[target_feature(enable = "neon")]
17486#[cfg_attr(test, assert_instr(st4, LANE = 0))]
17487#[rustc_legacy_const_generics(2)]
17488#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17489pub unsafe fn vst4q_lane_s32<const LANE: i32>(a: *mut i32, b: int32x4x4_t) {
17490    static_assert_uimm_bits!(LANE, 2);
17491    #[allow(improper_ctypes)]
17492    extern "unadjusted" {
17493        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4lane.v4i32.p0i8")]
17494        fn vst4q_lane_s32_(a: int32x4_t, b: int32x4_t, c: int32x4_t, d: int32x4_t, n: i64, ptr: *mut i8);
17495    }
17496vst4q_lane_s32_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
17497}
17498
17499/// Store multiple 4-element structures from four registers
17500///
17501/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u8)
17502#[inline]
17503#[target_feature(enable = "neon")]
17504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
17506#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4, LANE = 0))]
17507#[rustc_legacy_const_generics(2)]
17508#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17509#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17510pub unsafe fn vst4_lane_u8<const LANE: i32>(a: *mut u8, b: uint8x8x4_t) {
17511    static_assert_uimm_bits!(LANE, 3);
17512    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
17513}
17514
17515/// Store multiple 4-element structures from four registers
17516///
17517/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u16)
17518#[inline]
17519#[target_feature(enable = "neon")]
17520#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17521#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
17522#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4, LANE = 0))]
17523#[rustc_legacy_const_generics(2)]
17524#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17525#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17526pub unsafe fn vst4_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x4x4_t) {
17527    static_assert_uimm_bits!(LANE, 2);
17528    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
17529}
17530
17531/// Store multiple 4-element structures from four registers
17532///
17533/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_u32)
17534#[inline]
17535#[target_feature(enable = "neon")]
17536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17537#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
17538#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4, LANE = 0))]
17539#[rustc_legacy_const_generics(2)]
17540#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17541#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17542pub unsafe fn vst4_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x2x4_t) {
17543    static_assert_uimm_bits!(LANE, 1);
17544    vst4_lane_s32::<LANE>(transmute(a), transmute(b))
17545}
17546
17547/// Store multiple 4-element structures from four registers
17548///
17549/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u16)
17550#[inline]
17551#[target_feature(enable = "neon")]
17552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
17554#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4, LANE = 0))]
17555#[rustc_legacy_const_generics(2)]
17556#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17557#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17558pub unsafe fn vst4q_lane_u16<const LANE: i32>(a: *mut u16, b: uint16x8x4_t) {
17559    static_assert_uimm_bits!(LANE, 3);
17560    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
17561}
17562
17563/// Store multiple 4-element structures from four registers
17564///
17565/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_u32)
17566#[inline]
17567#[target_feature(enable = "neon")]
17568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17569#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
17570#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4, LANE = 0))]
17571#[rustc_legacy_const_generics(2)]
17572#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17573#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17574pub unsafe fn vst4q_lane_u32<const LANE: i32>(a: *mut u32, b: uint32x4x4_t) {
17575    static_assert_uimm_bits!(LANE, 2);
17576    vst4q_lane_s32::<LANE>(transmute(a), transmute(b))
17577}
17578
17579/// Store multiple 4-element structures from four registers
17580///
17581/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p8)
17582#[inline]
17583#[target_feature(enable = "neon")]
17584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17585#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
17586#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4, LANE = 0))]
17587#[rustc_legacy_const_generics(2)]
17588#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17589#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17590pub unsafe fn vst4_lane_p8<const LANE: i32>(a: *mut p8, b: poly8x8x4_t) {
17591    static_assert_uimm_bits!(LANE, 3);
17592    vst4_lane_s8::<LANE>(transmute(a), transmute(b))
17593}
17594
17595/// Store multiple 4-element structures from four registers
17596///
17597/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_p16)
17598#[inline]
17599#[target_feature(enable = "neon")]
17600#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17601#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
17602#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4, LANE = 0))]
17603#[rustc_legacy_const_generics(2)]
17604#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17605#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17606pub unsafe fn vst4_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x4x4_t) {
17607    static_assert_uimm_bits!(LANE, 2);
17608    vst4_lane_s16::<LANE>(transmute(a), transmute(b))
17609}
17610
17611/// Store multiple 4-element structures from four registers
17612///
17613/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_p16)
17614#[inline]
17615#[target_feature(enable = "neon")]
17616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17617#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vst4, LANE = 0))]
17618#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(st4, LANE = 0))]
17619#[rustc_legacy_const_generics(2)]
17620#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17621#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17622pub unsafe fn vst4q_lane_p16<const LANE: i32>(a: *mut p16, b: poly16x8x4_t) {
17623    static_assert_uimm_bits!(LANE, 3);
17624    vst4q_lane_s16::<LANE>(transmute(a), transmute(b))
17625}
17626
17627/// Store multiple 4-element structures from four registers
17628///
17629/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)
17630#[inline]
17631#[cfg(target_arch = "arm")]
17632#[target_feature(enable = "neon,v7")]
17633#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
17634#[rustc_legacy_const_generics(2)]
17635#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17636pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
17637    static_assert_uimm_bits!(LANE, 1);
17638    #[allow(improper_ctypes)]
17639    extern "unadjusted" {
17640        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0i8.v2f32")]
17641        fn vst4_lane_f32_(ptr: *mut i8, a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, n: i32, size: i32);
17642    }
17643vst4_lane_f32_(a as _, b.0, b.1, b.2, b.3, LANE, 4)
17644}
17645
17646/// Store multiple 4-element structures from four registers
17647///
17648/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4_lane_f32)
17649#[inline]
17650#[cfg(not(target_arch = "arm"))]
17651#[target_feature(enable = "neon")]
17652#[cfg_attr(test, assert_instr(st4, LANE = 0))]
17653#[rustc_legacy_const_generics(2)]
17654#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17655pub unsafe fn vst4_lane_f32<const LANE: i32>(a: *mut f32, b: float32x2x4_t) {
17656    static_assert_uimm_bits!(LANE, 1);
17657    #[allow(improper_ctypes)]
17658    extern "unadjusted" {
17659        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4lane.v2f32.p0i8")]
17660        fn vst4_lane_f32_(a: float32x2_t, b: float32x2_t, c: float32x2_t, d: float32x2_t, n: i64, ptr: *mut i8);
17661    }
17662vst4_lane_f32_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
17663}
17664
17665/// Store multiple 4-element structures from four registers
17666///
17667/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)
17668#[inline]
17669#[cfg(target_arch = "arm")]
17670#[target_feature(enable = "neon,v7")]
17671#[cfg_attr(test, assert_instr(vst4, LANE = 0))]
17672#[rustc_legacy_const_generics(2)]
17673#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
17674pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
17675    static_assert_uimm_bits!(LANE, 2);
17676    #[allow(improper_ctypes)]
17677    extern "unadjusted" {
17678        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vst4lane.p0i8.v4f32")]
17679        fn vst4q_lane_f32_(ptr: *mut i8, a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, n: i32, size: i32);
17680    }
17681vst4q_lane_f32_(a as _, b.0, b.1, b.2, b.3, LANE, 4)
17682}
17683
17684/// Store multiple 4-element structures from four registers
17685///
17686/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vst4q_lane_f32)
17687#[inline]
17688#[cfg(not(target_arch = "arm"))]
17689#[target_feature(enable = "neon")]
17690#[cfg_attr(test, assert_instr(st4, LANE = 0))]
17691#[rustc_legacy_const_generics(2)]
17692#[stable(feature = "neon_intrinsics", since = "1.59.0")]
17693pub unsafe fn vst4q_lane_f32<const LANE: i32>(a: *mut f32, b: float32x4x4_t) {
17694    static_assert_uimm_bits!(LANE, 2);
17695    #[allow(improper_ctypes)]
17696    extern "unadjusted" {
17697        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.st4lane.v4f32.p0i8")]
17698        fn vst4q_lane_f32_(a: float32x4_t, b: float32x4_t, c: float32x4_t, d: float32x4_t, n: i64, ptr: *mut i8);
17699    }
17700vst4q_lane_f32_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
17701}
17702
17703/// Dot product vector form with unsigned and signed integers
17704///
17705/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_s32)
17706#[inline]
17707#[target_feature(enable = "neon,i8mm")]
17708#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
17709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
17710#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usdot))]
17711#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
17712#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17713pub unsafe fn vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
17714    #[allow(improper_ctypes)]
17715    extern "unadjusted" {
17716        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v2i32.v8i8")]
17717        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.usdot.v2i32.v8i8")]
17718        fn vusdot_s32_(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t;
17719    }
17720vusdot_s32_(a, b, c)
17721}
17722
17723/// Dot product vector form with unsigned and signed integers
17724///
17725/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_s32)
17726#[inline]
17727#[target_feature(enable = "neon,i8mm")]
17728#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
17729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
17730#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usdot))]
17731#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
17732#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17733pub unsafe fn vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
17734    #[allow(improper_ctypes)]
17735    extern "unadjusted" {
17736        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.usdot.v4i32.v16i8")]
17737        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.usdot.v4i32.v16i8")]
17738        fn vusdotq_s32_(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t;
17739    }
17740vusdotq_s32_(a, b, c)
17741}
17742
17743/// Dot product index form with unsigned and signed integers
17744///
17745/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdot_lane_s32)
17746#[inline]
17747#[target_feature(enable = "neon,i8mm")]
17748#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
17749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
17750#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usdot, LANE = 0))]
17751#[rustc_legacy_const_generics(3)]
17752#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
17753#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17754pub unsafe fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
17755    static_assert_uimm_bits!(LANE, 1);
17756    let c: int32x2_t = transmute(c);
17757    let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
17758    vusdot_s32(a, b, transmute(c))
17759}
17760
17761/// Dot product index form with unsigned and signed integers
17762///
17763/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vusdotq_lane_s32)
17764#[inline]
17765#[target_feature(enable = "neon,i8mm")]
17766#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
17767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
17768#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usdot, LANE = 0))]
17769#[rustc_legacy_const_generics(3)]
17770#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
17771#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17772pub unsafe fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x8_t) -> int32x4_t {
17773    static_assert_uimm_bits!(LANE, 1);
17774    let c: int32x2_t = transmute(c);
17775    let c: int32x4_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
17776    vusdotq_s32(a, b, transmute(c))
17777}
17778
17779/// Dot product index form with signed and unsigned integers
17780///
17781/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudot_lane_s32)
17782#[inline]
17783#[target_feature(enable = "neon,i8mm")]
17784#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
17785#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
17786#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sudot, LANE = 0))]
17787#[rustc_legacy_const_generics(3)]
17788#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
17789#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17790pub unsafe fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x8_t) -> int32x2_t {
17791    static_assert_uimm_bits!(LANE, 1);
17792    let c: uint32x2_t = transmute(c);
17793    let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
17794    vusdot_s32(a, transmute(c), b)
17795}
17796
17797/// Dot product index form with signed and unsigned integers
17798///
17799/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsudotq_lane_s32)
17800#[inline]
17801#[target_feature(enable = "neon,i8mm")]
17802#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
17803#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
17804#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sudot, LANE = 0))]
17805#[rustc_legacy_const_generics(3)]
17806#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
17807#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17808pub unsafe fn vsudotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x8_t) -> int32x4_t {
17809    static_assert_uimm_bits!(LANE, 1);
17810    let c: uint32x2_t = transmute(c);
17811    let c: uint32x4_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
17812    vusdotq_s32(a, transmute(c), b)
17813}
17814
17815/// Multiply
17816///
17817/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s8)
17818#[inline]
17819#[target_feature(enable = "neon")]
17820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17821#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
17822#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17823#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17824#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17825pub unsafe fn vmul_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
17826    simd_mul(a, b)
17827}
17828
17829/// Multiply
17830///
17831/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s8)
17832#[inline]
17833#[target_feature(enable = "neon")]
17834#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17835#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
17836#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17837#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17838#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17839pub unsafe fn vmulq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
17840    simd_mul(a, b)
17841}
17842
17843/// Multiply
17844///
17845/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s16)
17846#[inline]
17847#[target_feature(enable = "neon")]
17848#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17849#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
17850#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17851#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17852#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17853pub unsafe fn vmul_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
17854    simd_mul(a, b)
17855}
17856
17857/// Multiply
17858///
17859/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s16)
17860#[inline]
17861#[target_feature(enable = "neon")]
17862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17863#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
17864#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17865#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17866#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17867pub unsafe fn vmulq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
17868    simd_mul(a, b)
17869}
17870
17871/// Multiply
17872///
17873/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_s32)
17874#[inline]
17875#[target_feature(enable = "neon")]
17876#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17877#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
17878#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17879#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17880#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17881pub unsafe fn vmul_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
17882    simd_mul(a, b)
17883}
17884
17885/// Multiply
17886///
17887/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_s32)
17888#[inline]
17889#[target_feature(enable = "neon")]
17890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17891#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
17892#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17893#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17894#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17895pub unsafe fn vmulq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
17896    simd_mul(a, b)
17897}
17898
17899/// Multiply
17900///
17901/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u8)
17902#[inline]
17903#[target_feature(enable = "neon")]
17904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17905#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
17906#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17907#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17908#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17909pub unsafe fn vmul_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
17910    simd_mul(a, b)
17911}
17912
17913/// Multiply
17914///
17915/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u8)
17916#[inline]
17917#[target_feature(enable = "neon")]
17918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17919#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i8"))]
17920#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17921#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17922#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17923pub unsafe fn vmulq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
17924    simd_mul(a, b)
17925}
17926
17927/// Multiply
17928///
17929/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u16)
17930#[inline]
17931#[target_feature(enable = "neon")]
17932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17933#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
17934#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17935#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17936#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17937pub unsafe fn vmul_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
17938    simd_mul(a, b)
17939}
17940
17941/// Multiply
17942///
17943/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u16)
17944#[inline]
17945#[target_feature(enable = "neon")]
17946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17947#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i16"))]
17948#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17949#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17950#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17951pub unsafe fn vmulq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
17952    simd_mul(a, b)
17953}
17954
17955/// Multiply
17956///
17957/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_u32)
17958#[inline]
17959#[target_feature(enable = "neon")]
17960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17961#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
17962#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17963#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17964#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17965pub unsafe fn vmul_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
17966    simd_mul(a, b)
17967}
17968
17969/// Multiply
17970///
17971/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_u32)
17972#[inline]
17973#[target_feature(enable = "neon")]
17974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17975#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.i32"))]
17976#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
17977#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17978#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17979pub unsafe fn vmulq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
17980    simd_mul(a, b)
17981}
17982
17983/// Polynomial multiply
17984///
17985/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_p8)
17986#[inline]
17987#[target_feature(enable = "neon")]
17988#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
17989#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
17990#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(pmul))]
17991#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
17992#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
17993pub unsafe fn vmul_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
17994    #[allow(improper_ctypes)]
17995    extern "unadjusted" {
17996        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v8i8")]
17997        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.pmul.v8i8")]
17998        fn vmul_p8_(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t;
17999    }
18000vmul_p8_(a, b)
18001}
18002
18003/// Polynomial multiply
18004///
18005/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_p8)
18006#[inline]
18007#[target_feature(enable = "neon")]
18008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18009#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18010#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(pmul))]
18011#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18012#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18013pub unsafe fn vmulq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
18014    #[allow(improper_ctypes)]
18015    extern "unadjusted" {
18016        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulp.v16i8")]
18017        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.pmul.v16i8")]
18018        fn vmulq_p8_(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t;
18019    }
18020vmulq_p8_(a, b)
18021}
18022
18023/// Multiply
18024///
18025/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_f32)
18026#[inline]
18027#[target_feature(enable = "neon")]
18028#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18029#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
18030#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
18031#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18032#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18033pub unsafe fn vmul_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
18034    simd_mul(a, b)
18035}
18036
18037/// Multiply
18038///
18039/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_f32)
18040#[inline]
18041#[target_feature(enable = "neon")]
18042#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18043#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmul.f32"))]
18044#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
18045#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18046#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18047pub unsafe fn vmulq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
18048    simd_mul(a, b)
18049}
18050
18051/// Vector multiply by scalar
18052///
18053/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s16)
18054#[inline]
18055#[target_feature(enable = "neon")]
18056#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18057#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18058#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
18059#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18060#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18061pub unsafe fn vmul_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
18062    simd_mul(a, vdup_n_s16(b))
18063}
18064
18065/// Vector multiply by scalar
18066///
18067/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s16)
18068#[inline]
18069#[target_feature(enable = "neon")]
18070#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18071#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18072#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
18073#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18074#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18075pub unsafe fn vmulq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
18076    simd_mul(a, vdupq_n_s16(b))
18077}
18078
18079/// Vector multiply by scalar
18080///
18081/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_s32)
18082#[inline]
18083#[target_feature(enable = "neon")]
18084#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18085#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18086#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
18087#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18088#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18089pub unsafe fn vmul_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
18090    simd_mul(a, vdup_n_s32(b))
18091}
18092
18093/// Vector multiply by scalar
18094///
18095/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_s32)
18096#[inline]
18097#[target_feature(enable = "neon")]
18098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18100#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
18101#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18102#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18103pub unsafe fn vmulq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
18104    simd_mul(a, vdupq_n_s32(b))
18105}
18106
18107/// Vector multiply by scalar
18108///
18109/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u16)
18110#[inline]
18111#[target_feature(enable = "neon")]
18112#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18113#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18114#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
18115#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18116#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18117pub unsafe fn vmul_n_u16(a: uint16x4_t, b: u16) -> uint16x4_t {
18118    simd_mul(a, vdup_n_u16(b))
18119}
18120
18121/// Vector multiply by scalar
18122///
18123/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u16)
18124#[inline]
18125#[target_feature(enable = "neon")]
18126#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18127#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18128#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
18129#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18130#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18131pub unsafe fn vmulq_n_u16(a: uint16x8_t, b: u16) -> uint16x8_t {
18132    simd_mul(a, vdupq_n_u16(b))
18133}
18134
18135/// Vector multiply by scalar
18136///
18137/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_u32)
18138#[inline]
18139#[target_feature(enable = "neon")]
18140#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18141#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18142#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
18143#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18144#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18145pub unsafe fn vmul_n_u32(a: uint32x2_t, b: u32) -> uint32x2_t {
18146    simd_mul(a, vdup_n_u32(b))
18147}
18148
18149/// Vector multiply by scalar
18150///
18151/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_u32)
18152#[inline]
18153#[target_feature(enable = "neon")]
18154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18155#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18156#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul))]
18157#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18158#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18159pub unsafe fn vmulq_n_u32(a: uint32x4_t, b: u32) -> uint32x4_t {
18160    simd_mul(a, vdupq_n_u32(b))
18161}
18162
18163/// Vector multiply by scalar
18164///
18165/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_n_f32)
18166#[inline]
18167#[target_feature(enable = "neon")]
18168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18170#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
18171#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18172#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18173pub unsafe fn vmul_n_f32(a: float32x2_t, b: f32) -> float32x2_t {
18174    simd_mul(a, vdup_n_f32(b))
18175}
18176
18177/// Vector multiply by scalar
18178///
18179/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_n_f32)
18180#[inline]
18181#[target_feature(enable = "neon")]
18182#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18183#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul))]
18184#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul))]
18185#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18186#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18187pub unsafe fn vmulq_n_f32(a: float32x4_t, b: f32) -> float32x4_t {
18188    simd_mul(a, vdupq_n_f32(b))
18189}
18190
18191/// Multiply
18192///
18193/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s16)
18194#[inline]
18195#[target_feature(enable = "neon")]
18196#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18197#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18198#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18199#[rustc_legacy_const_generics(2)]
18200#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18201#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18202pub unsafe fn vmul_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
18203    static_assert_uimm_bits!(LANE, 2);
18204    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18205}
18206
18207/// Multiply
18208///
18209/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s16)
18210#[inline]
18211#[target_feature(enable = "neon")]
18212#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18213#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18214#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18215#[rustc_legacy_const_generics(2)]
18216#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18217#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18218pub unsafe fn vmul_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
18219    static_assert_uimm_bits!(LANE, 3);
18220    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18221}
18222
18223/// Multiply
18224///
18225/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s16)
18226#[inline]
18227#[target_feature(enable = "neon")]
18228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18229#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18230#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18231#[rustc_legacy_const_generics(2)]
18232#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18233#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18234pub unsafe fn vmulq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
18235    static_assert_uimm_bits!(LANE, 2);
18236    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18237}
18238
18239/// Multiply
18240///
18241/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s16)
18242#[inline]
18243#[target_feature(enable = "neon")]
18244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18245#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18246#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18247#[rustc_legacy_const_generics(2)]
18248#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18249#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18250pub unsafe fn vmulq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
18251    static_assert_uimm_bits!(LANE, 3);
18252    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18253}
18254
18255/// Multiply
18256///
18257/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_s32)
18258#[inline]
18259#[target_feature(enable = "neon")]
18260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18261#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18262#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18263#[rustc_legacy_const_generics(2)]
18264#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18265#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18266pub unsafe fn vmul_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
18267    static_assert_uimm_bits!(LANE, 1);
18268    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18269}
18270
18271/// Multiply
18272///
18273/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_s32)
18274#[inline]
18275#[target_feature(enable = "neon")]
18276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18277#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18278#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18279#[rustc_legacy_const_generics(2)]
18280#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18281#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18282pub unsafe fn vmul_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
18283    static_assert_uimm_bits!(LANE, 2);
18284    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18285}
18286
18287/// Multiply
18288///
18289/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_s32)
18290#[inline]
18291#[target_feature(enable = "neon")]
18292#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18294#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18295#[rustc_legacy_const_generics(2)]
18296#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18297#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18298pub unsafe fn vmulq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
18299    static_assert_uimm_bits!(LANE, 1);
18300    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18301}
18302
18303/// Multiply
18304///
18305/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_s32)
18306#[inline]
18307#[target_feature(enable = "neon")]
18308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18310#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18311#[rustc_legacy_const_generics(2)]
18312#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18313#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18314pub unsafe fn vmulq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
18315    static_assert_uimm_bits!(LANE, 2);
18316    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18317}
18318
18319/// Multiply
18320///
18321/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u16)
18322#[inline]
18323#[target_feature(enable = "neon")]
18324#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18325#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18326#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18327#[rustc_legacy_const_generics(2)]
18328#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18329#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18330pub unsafe fn vmul_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
18331    static_assert_uimm_bits!(LANE, 2);
18332    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18333}
18334
18335/// Multiply
18336///
18337/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u16)
18338#[inline]
18339#[target_feature(enable = "neon")]
18340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18342#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18343#[rustc_legacy_const_generics(2)]
18344#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18345#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18346pub unsafe fn vmul_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint16x4_t {
18347    static_assert_uimm_bits!(LANE, 3);
18348    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18349}
18350
18351/// Multiply
18352///
18353/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u16)
18354#[inline]
18355#[target_feature(enable = "neon")]
18356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18357#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18358#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18359#[rustc_legacy_const_generics(2)]
18360#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18361#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18362pub unsafe fn vmulq_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x4_t) -> uint16x8_t {
18363    static_assert_uimm_bits!(LANE, 2);
18364    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18365}
18366
18367/// Multiply
18368///
18369/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u16)
18370#[inline]
18371#[target_feature(enable = "neon")]
18372#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18373#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18374#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18375#[rustc_legacy_const_generics(2)]
18376#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18377#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18378pub unsafe fn vmulq_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
18379    static_assert_uimm_bits!(LANE, 3);
18380    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18381}
18382
18383/// Multiply
18384///
18385/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_u32)
18386#[inline]
18387#[target_feature(enable = "neon")]
18388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18390#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18391#[rustc_legacy_const_generics(2)]
18392#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18393#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18394pub unsafe fn vmul_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
18395    static_assert_uimm_bits!(LANE, 1);
18396    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18397}
18398
18399/// Multiply
18400///
18401/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_u32)
18402#[inline]
18403#[target_feature(enable = "neon")]
18404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18406#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18407#[rustc_legacy_const_generics(2)]
18408#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18409#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18410pub unsafe fn vmul_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint32x2_t {
18411    static_assert_uimm_bits!(LANE, 2);
18412    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18413}
18414
18415/// Multiply
18416///
18417/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_u32)
18418#[inline]
18419#[target_feature(enable = "neon")]
18420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 1))]
18422#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18423#[rustc_legacy_const_generics(2)]
18424#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18425#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18426pub unsafe fn vmulq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x2_t) -> uint32x4_t {
18427    static_assert_uimm_bits!(LANE, 1);
18428    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18429}
18430
18431/// Multiply
18432///
18433/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_u32)
18434#[inline]
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(vmul, LANE = 1))]
18438#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(mul, LANE = 1))]
18439#[rustc_legacy_const_generics(2)]
18440#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18441#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18442pub unsafe fn vmulq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
18443    static_assert_uimm_bits!(LANE, 2);
18444    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18445}
18446
18447/// Floating-point multiply
18448///
18449/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_lane_f32)
18450#[inline]
18451#[target_feature(enable = "neon")]
18452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
18454#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 0))]
18455#[rustc_legacy_const_generics(2)]
18456#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18457#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18458pub unsafe fn vmul_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t) -> float32x2_t {
18459    static_assert_uimm_bits!(LANE, 1);
18460    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18461}
18462
18463/// Floating-point multiply
18464///
18465/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmul_laneq_f32)
18466#[inline]
18467#[target_feature(enable = "neon")]
18468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
18470#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 0))]
18471#[rustc_legacy_const_generics(2)]
18472#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18473#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18474pub unsafe fn vmul_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x4_t) -> float32x2_t {
18475    static_assert_uimm_bits!(LANE, 2);
18476    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18477}
18478
18479/// Floating-point multiply
18480///
18481/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_lane_f32)
18482#[inline]
18483#[target_feature(enable = "neon")]
18484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
18486#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 0))]
18487#[rustc_legacy_const_generics(2)]
18488#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18489#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18490pub unsafe fn vmulq_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x2_t) -> float32x4_t {
18491    static_assert_uimm_bits!(LANE, 1);
18492    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18493}
18494
18495/// Floating-point multiply
18496///
18497/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmulq_laneq_f32)
18498#[inline]
18499#[target_feature(enable = "neon")]
18500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmul, LANE = 0))]
18502#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmul, LANE = 0))]
18503#[rustc_legacy_const_generics(2)]
18504#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18505#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18506pub unsafe fn vmulq_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t) -> float32x4_t {
18507    static_assert_uimm_bits!(LANE, 2);
18508    simd_mul(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18509}
18510
18511/// Signed multiply long
18512///
18513/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s8)
18514#[inline]
18515#[target_feature(enable = "neon")]
18516#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18517#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s8"))]
18518#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smull))]
18519#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18520#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18521pub unsafe fn vmull_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
18522    #[allow(improper_ctypes)]
18523    extern "unadjusted" {
18524        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v8i8")]
18525        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smull.v8i8")]
18526        fn vmull_s8_(a: int8x8_t, b: int8x8_t) -> int16x8_t;
18527    }
18528vmull_s8_(a, b)
18529}
18530
18531/// Signed multiply long
18532///
18533/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s16)
18534#[inline]
18535#[target_feature(enable = "neon")]
18536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18537#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s16"))]
18538#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smull))]
18539#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18540#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18541pub unsafe fn vmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
18542    #[allow(improper_ctypes)]
18543    extern "unadjusted" {
18544        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v4i16")]
18545        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smull.v4i16")]
18546        fn vmull_s16_(a: int16x4_t, b: int16x4_t) -> int32x4_t;
18547    }
18548vmull_s16_(a, b)
18549}
18550
18551/// Signed multiply long
18552///
18553/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_s32)
18554#[inline]
18555#[target_feature(enable = "neon")]
18556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18557#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.s32"))]
18558#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smull))]
18559#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18560#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18561pub unsafe fn vmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
18562    #[allow(improper_ctypes)]
18563    extern "unadjusted" {
18564        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmulls.v2i32")]
18565        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smull.v2i32")]
18566        fn vmull_s32_(a: int32x2_t, b: int32x2_t) -> int64x2_t;
18567    }
18568vmull_s32_(a, b)
18569}
18570
18571/// Unsigned multiply long
18572///
18573/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u8)
18574#[inline]
18575#[target_feature(enable = "neon")]
18576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18577#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u8"))]
18578#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umull))]
18579#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18580#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18581pub unsafe fn vmull_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
18582    #[allow(improper_ctypes)]
18583    extern "unadjusted" {
18584        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v8i8")]
18585        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umull.v8i8")]
18586        fn vmull_u8_(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t;
18587    }
18588vmull_u8_(a, b)
18589}
18590
18591/// Unsigned multiply long
18592///
18593/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u16)
18594#[inline]
18595#[target_feature(enable = "neon")]
18596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18597#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u16"))]
18598#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umull))]
18599#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18600#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18601pub unsafe fn vmull_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
18602    #[allow(improper_ctypes)]
18603    extern "unadjusted" {
18604        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v4i16")]
18605        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umull.v4i16")]
18606        fn vmull_u16_(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t;
18607    }
18608vmull_u16_(a, b)
18609}
18610
18611/// Unsigned multiply long
18612///
18613/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_u32)
18614#[inline]
18615#[target_feature(enable = "neon")]
18616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18617#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.u32"))]
18618#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umull))]
18619#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18620#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18621pub unsafe fn vmull_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
18622    #[allow(improper_ctypes)]
18623    extern "unadjusted" {
18624        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullu.v2i32")]
18625        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umull.v2i32")]
18626        fn vmull_u32_(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t;
18627    }
18628vmull_u32_(a, b)
18629}
18630
18631/// Polynomial multiply long
18632///
18633/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_p8)
18634#[inline]
18635#[target_feature(enable = "neon")]
18636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18637#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vmull.p8"))]
18638#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(pmull))]
18639#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18640#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18641pub unsafe fn vmull_p8(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t {
18642    #[allow(improper_ctypes)]
18643    extern "unadjusted" {
18644        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmullp.v8i8")]
18645        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.pmull.v8i8")]
18646        fn vmull_p8_(a: poly8x8_t, b: poly8x8_t) -> poly16x8_t;
18647    }
18648vmull_p8_(a, b)
18649}
18650
18651/// Vector long multiply with scalar
18652///
18653/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s16)
18654#[inline]
18655#[target_feature(enable = "neon")]
18656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
18658#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smull))]
18659#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18660#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18661pub unsafe fn vmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
18662    vmull_s16(a, vdup_n_s16(b))
18663}
18664
18665/// Vector long multiply with scalar
18666///
18667/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_s32)
18668#[inline]
18669#[target_feature(enable = "neon")]
18670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
18672#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smull))]
18673#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18674#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18675pub unsafe fn vmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
18676    vmull_s32(a, vdup_n_s32(b))
18677}
18678
18679/// Vector long multiply with scalar
18680///
18681/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u16)
18682#[inline]
18683#[target_feature(enable = "neon")]
18684#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18685#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
18686#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umull))]
18687#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18688#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18689pub unsafe fn vmull_n_u16(a: uint16x4_t, b: u16) -> uint32x4_t {
18690    vmull_u16(a, vdup_n_u16(b))
18691}
18692
18693/// Vector long multiply with scalar
18694///
18695/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_n_u32)
18696#[inline]
18697#[target_feature(enable = "neon")]
18698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull))]
18700#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umull))]
18701#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18702#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18703pub unsafe fn vmull_n_u32(a: uint32x2_t, b: u32) -> uint64x2_t {
18704    vmull_u32(a, vdup_n_u32(b))
18705}
18706
18707/// Vector long multiply by scalar
18708///
18709/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_s16)
18710#[inline]
18711#[target_feature(enable = "neon")]
18712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
18714#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smull, LANE = 1))]
18715#[rustc_legacy_const_generics(2)]
18716#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18717#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18718pub unsafe fn vmull_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
18719    static_assert_uimm_bits!(LANE, 2);
18720    vmull_s16(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18721}
18722
18723/// Vector long multiply by scalar
18724///
18725/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s16)
18726#[inline]
18727#[target_feature(enable = "neon")]
18728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
18730#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smull, LANE = 1))]
18731#[rustc_legacy_const_generics(2)]
18732#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18733#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18734pub unsafe fn vmull_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int32x4_t {
18735    static_assert_uimm_bits!(LANE, 3);
18736    vmull_s16(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18737}
18738
18739/// Vector long multiply by scalar
18740///
18741/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_s32)
18742#[inline]
18743#[target_feature(enable = "neon")]
18744#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18745#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
18746#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smull, LANE = 1))]
18747#[rustc_legacy_const_generics(2)]
18748#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18749#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18750pub unsafe fn vmull_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
18751    static_assert_uimm_bits!(LANE, 1);
18752    vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18753}
18754
18755/// Vector long multiply by scalar
18756///
18757/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_s32)
18758#[inline]
18759#[target_feature(enable = "neon")]
18760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18761#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
18762#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smull, LANE = 1))]
18763#[rustc_legacy_const_generics(2)]
18764#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18765#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18766pub unsafe fn vmull_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int64x2_t {
18767    static_assert_uimm_bits!(LANE, 2);
18768    vmull_s32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18769}
18770
18771/// Vector long multiply by scalar
18772///
18773/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u16)
18774#[inline]
18775#[target_feature(enable = "neon")]
18776#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18777#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
18778#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umull, LANE = 1))]
18779#[rustc_legacy_const_generics(2)]
18780#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18781#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18782pub unsafe fn vmull_lane_u16<const LANE: i32>(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
18783    static_assert_uimm_bits!(LANE, 2);
18784    vmull_u16(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18785}
18786
18787/// Vector long multiply by scalar
18788///
18789/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u16)
18790#[inline]
18791#[target_feature(enable = "neon")]
18792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
18794#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umull, LANE = 1))]
18795#[rustc_legacy_const_generics(2)]
18796#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18797#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18798pub unsafe fn vmull_laneq_u16<const LANE: i32>(a: uint16x4_t, b: uint16x8_t) -> uint32x4_t {
18799    static_assert_uimm_bits!(LANE, 3);
18800    vmull_u16(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]))
18801}
18802
18803/// Vector long multiply by scalar
18804///
18805/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_lane_u32)
18806#[inline]
18807#[target_feature(enable = "neon")]
18808#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18809#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
18810#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umull, LANE = 1))]
18811#[rustc_legacy_const_generics(2)]
18812#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18813#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18814pub unsafe fn vmull_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
18815    static_assert_uimm_bits!(LANE, 1);
18816    vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18817}
18818
18819/// Vector long multiply by scalar
18820///
18821/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_laneq_u32)
18822#[inline]
18823#[target_feature(enable = "neon")]
18824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmull, LANE = 1))]
18826#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umull, LANE = 1))]
18827#[rustc_legacy_const_generics(2)]
18828#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18829#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18830pub unsafe fn vmull_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint32x4_t) -> uint64x2_t {
18831    static_assert_uimm_bits!(LANE, 2);
18832    vmull_u32(a, simd_shuffle!(b, b, [LANE as u32, LANE as u32]))
18833}
18834
18835/// Floating-point fused Multiply-Add to accumulator(vector)
18836///
18837/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_f32)
18838#[inline]
18839#[target_feature(enable = "neon")]
18840#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
18841#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
18842#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmla))]
18843#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18844#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18845pub unsafe fn vfma_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
18846    #[allow(improper_ctypes)]
18847    extern "unadjusted" {
18848        #[cfg_attr(target_arch = "arm", link_name = "llvm.fma.v2f32")]
18849        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.fma.v2f32")]
18850        fn vfma_f32_(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t;
18851    }
18852vfma_f32_(b, c, a)
18853}
18854
18855/// Floating-point fused Multiply-Add to accumulator(vector)
18856///
18857/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_f32)
18858#[inline]
18859#[target_feature(enable = "neon")]
18860#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
18861#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
18862#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmla))]
18863#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18864#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18865pub unsafe fn vfmaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
18866    #[allow(improper_ctypes)]
18867    extern "unadjusted" {
18868        #[cfg_attr(target_arch = "arm", link_name = "llvm.fma.v4f32")]
18869        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.fma.v4f32")]
18870        fn vfmaq_f32_(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t;
18871    }
18872vfmaq_f32_(b, c, a)
18873}
18874
18875/// Floating-point fused Multiply-Add to accumulator(vector)
18876///
18877/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfma_n_f32)
18878#[inline]
18879#[target_feature(enable = "neon")]
18880#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
18881#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
18882#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmla))]
18883#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18884#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18885pub unsafe fn vfma_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
18886    vfma_f32(a, b, vdup_n_f32_vfp4(c))
18887}
18888
18889/// Floating-point fused Multiply-Add to accumulator(vector)
18890///
18891/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmaq_n_f32)
18892#[inline]
18893#[target_feature(enable = "neon")]
18894#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
18895#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfma))]
18896#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmla))]
18897#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18898#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18899pub unsafe fn vfmaq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
18900    vfmaq_f32(a, b, vdupq_n_f32_vfp4(c))
18901}
18902
18903/// Floating-point fused multiply-subtract from accumulator
18904///
18905/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_f32)
18906#[inline]
18907#[target_feature(enable = "neon")]
18908#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
18909#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
18910#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmls))]
18911#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18912#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18913pub unsafe fn vfms_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
18914    let b: float32x2_t = simd_neg(b);
18915    vfma_f32(a, b, c)
18916}
18917
18918/// Floating-point fused multiply-subtract from accumulator
18919///
18920/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_f32)
18921#[inline]
18922#[target_feature(enable = "neon")]
18923#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
18924#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
18925#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmls))]
18926#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18927#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18928pub unsafe fn vfmsq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
18929    let b: float32x4_t = simd_neg(b);
18930    vfmaq_f32(a, b, c)
18931}
18932
18933/// Floating-point fused Multiply-subtract to accumulator(vector)
18934///
18935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfms_n_f32)
18936#[inline]
18937#[target_feature(enable = "neon")]
18938#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
18939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
18940#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmls))]
18941#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18942#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18943pub unsafe fn vfms_n_f32(a: float32x2_t, b: float32x2_t, c: f32) -> float32x2_t {
18944    vfms_f32(a, b, vdup_n_f32_vfp4(c))
18945}
18946
18947/// Floating-point fused Multiply-subtract to accumulator(vector)
18948///
18949/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmsq_n_f32)
18950#[inline]
18951#[target_feature(enable = "neon")]
18952#[cfg_attr(target_arch = "arm", target_feature(enable = "vfp4"))]
18953#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vfms))]
18954#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmls))]
18955#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18956#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18957pub unsafe fn vfmsq_n_f32(a: float32x4_t, b: float32x4_t, c: f32) -> float32x4_t {
18958    vfmsq_f32(a, b, vdupq_n_f32_vfp4(c))
18959}
18960
18961/// Subtract
18962///
18963/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s8)
18964#[inline]
18965#[target_feature(enable = "neon")]
18966#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18967#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
18968#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
18969#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18970#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18971pub unsafe fn vsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
18972    simd_sub(a, b)
18973}
18974
18975/// Subtract
18976///
18977/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s8)
18978#[inline]
18979#[target_feature(enable = "neon")]
18980#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18981#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
18982#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
18983#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18984#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18985pub unsafe fn vsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
18986    simd_sub(a, b)
18987}
18988
18989/// Subtract
18990///
18991/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s16)
18992#[inline]
18993#[target_feature(enable = "neon")]
18994#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
18995#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
18996#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
18997#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
18998#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
18999pub unsafe fn vsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
19000    simd_sub(a, b)
19001}
19002
19003/// Subtract
19004///
19005/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s16)
19006#[inline]
19007#[target_feature(enable = "neon")]
19008#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19009#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
19010#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19011#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19012#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19013pub unsafe fn vsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
19014    simd_sub(a, b)
19015}
19016
19017/// Subtract
19018///
19019/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s32)
19020#[inline]
19021#[target_feature(enable = "neon")]
19022#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19023#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
19024#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19025#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19026#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19027pub unsafe fn vsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
19028    simd_sub(a, b)
19029}
19030
19031/// Subtract
19032///
19033/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s32)
19034#[inline]
19035#[target_feature(enable = "neon")]
19036#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19037#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
19038#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19039#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19040#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19041pub unsafe fn vsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
19042    simd_sub(a, b)
19043}
19044
19045/// Subtract
19046///
19047/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u8)
19048#[inline]
19049#[target_feature(enable = "neon")]
19050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19051#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
19052#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19053#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19054#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19055pub unsafe fn vsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
19056    simd_sub(a, b)
19057}
19058
19059/// Subtract
19060///
19061/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u8)
19062#[inline]
19063#[target_feature(enable = "neon")]
19064#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19065#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i8"))]
19066#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19067#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19068#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19069pub unsafe fn vsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
19070    simd_sub(a, b)
19071}
19072
19073/// Subtract
19074///
19075/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u16)
19076#[inline]
19077#[target_feature(enable = "neon")]
19078#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19079#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
19080#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19081#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19082#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19083pub unsafe fn vsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
19084    simd_sub(a, b)
19085}
19086
19087/// Subtract
19088///
19089/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u16)
19090#[inline]
19091#[target_feature(enable = "neon")]
19092#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19093#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i16"))]
19094#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19095#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19096#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19097pub unsafe fn vsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
19098    simd_sub(a, b)
19099}
19100
19101/// Subtract
19102///
19103/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u32)
19104#[inline]
19105#[target_feature(enable = "neon")]
19106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19107#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
19108#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19109#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19110#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19111pub unsafe fn vsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
19112    simd_sub(a, b)
19113}
19114
19115/// Subtract
19116///
19117/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u32)
19118#[inline]
19119#[target_feature(enable = "neon")]
19120#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19121#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i32"))]
19122#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19123#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19124#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19125pub unsafe fn vsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
19126    simd_sub(a, b)
19127}
19128
19129/// Subtract
19130///
19131/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_s64)
19132#[inline]
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("vsub.i64"))]
19136#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19137#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19138#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19139pub unsafe fn vsub_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
19140    simd_sub(a, b)
19141}
19142
19143/// Subtract
19144///
19145/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_s64)
19146#[inline]
19147#[target_feature(enable = "neon")]
19148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19149#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
19150#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19151#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19152#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19153pub unsafe fn vsubq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
19154    simd_sub(a, b)
19155}
19156
19157/// Subtract
19158///
19159/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_u64)
19160#[inline]
19161#[target_feature(enable = "neon")]
19162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19163#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
19164#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19165#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19166#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19167pub unsafe fn vsub_u64(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
19168    simd_sub(a, b)
19169}
19170
19171/// Subtract
19172///
19173/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_u64)
19174#[inline]
19175#[target_feature(enable = "neon")]
19176#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19177#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.i64"))]
19178#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sub))]
19179#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19180#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19181pub unsafe fn vsubq_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
19182    simd_sub(a, b)
19183}
19184
19185/// Subtract
19186///
19187/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsub_f32)
19188#[inline]
19189#[target_feature(enable = "neon")]
19190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19191#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
19192#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fsub))]
19193#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19194#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19195pub unsafe fn vsub_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
19196    simd_sub(a, b)
19197}
19198
19199/// Subtract
19200///
19201/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubq_f32)
19202#[inline]
19203#[target_feature(enable = "neon")]
19204#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19205#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vsub.f32"))]
19206#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fsub))]
19207#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19208#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19209pub unsafe fn vsubq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
19210    simd_sub(a, b)
19211}
19212
19213/// Bitwise exclusive OR
19214///
19215/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_p8)
19216#[inline]
19217#[target_feature(enable = "neon")]
19218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19220#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
19221#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19222#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19223pub unsafe fn vadd_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8_t {
19224    simd_xor(a, b)
19225}
19226
19227/// Bitwise exclusive OR
19228///
19229/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_p16)
19230#[inline]
19231#[target_feature(enable = "neon")]
19232#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19233#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19234#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
19235#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19236#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19237pub unsafe fn vadd_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4_t {
19238    simd_xor(a, b)
19239}
19240
19241/// Bitwise exclusive OR
19242///
19243/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p8)
19244#[inline]
19245#[target_feature(enable = "neon")]
19246#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19247#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19248#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
19249#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19250#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19251pub unsafe fn vaddq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16_t {
19252    simd_xor(a, b)
19253}
19254
19255/// Bitwise exclusive OR
19256///
19257/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p16)
19258#[inline]
19259#[target_feature(enable = "neon")]
19260#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19261#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19262#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
19263#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19264#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19265pub unsafe fn vaddq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8_t {
19266    simd_xor(a, b)
19267}
19268
19269/// Bitwise exclusive OR
19270///
19271/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vadd_p64)
19272#[inline]
19273#[target_feature(enable = "neon")]
19274#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19275#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19276#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
19277#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19278#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19279pub unsafe fn vadd_p64(a: poly64x1_t, b: poly64x1_t) -> poly64x1_t {
19280    simd_xor(a, b)
19281}
19282
19283/// Bitwise exclusive OR
19284///
19285/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p64)
19286#[inline]
19287#[target_feature(enable = "neon")]
19288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19290#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
19291#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19292#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19293pub unsafe fn vaddq_p64(a: poly64x2_t, b: poly64x2_t) -> poly64x2_t {
19294    simd_xor(a, b)
19295}
19296
19297/// Bitwise exclusive OR
19298///
19299/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaddq_p128)
19300#[inline]
19301#[target_feature(enable = "neon")]
19302#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19303#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
19304#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
19305#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19306#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19307pub unsafe fn vaddq_p128(a: p128, b: p128) -> p128 {
19308    a ^ b
19309}
19310
19311/// Subtract returning high narrow
19312///
19313/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s16)
19314#[inline]
19315#[target_feature(enable = "neon")]
19316#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19317#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19318#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn))]
19319#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19320#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19321pub unsafe fn vsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
19322    let c: i16x8 = i16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
19323    simd_cast(simd_shr(simd_sub(a, b), transmute(c)))
19324}
19325
19326/// Subtract returning high narrow
19327///
19328/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s32)
19329#[inline]
19330#[target_feature(enable = "neon")]
19331#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19332#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19333#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn))]
19334#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19335#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19336pub unsafe fn vsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
19337    let c: i32x4 = i32x4::new(16, 16, 16, 16);
19338    simd_cast(simd_shr(simd_sub(a, b), transmute(c)))
19339}
19340
19341/// Subtract returning high narrow
19342///
19343/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_s64)
19344#[inline]
19345#[target_feature(enable = "neon")]
19346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19348#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn))]
19349#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19350#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19351pub unsafe fn vsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
19352    let c: i64x2 = i64x2::new(32, 32);
19353    simd_cast(simd_shr(simd_sub(a, b), transmute(c)))
19354}
19355
19356/// Subtract returning high narrow
19357///
19358/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u16)
19359#[inline]
19360#[target_feature(enable = "neon")]
19361#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19362#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19363#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn))]
19364#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19365#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19366pub unsafe fn vsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
19367    let c: u16x8 = u16x8::new(8, 8, 8, 8, 8, 8, 8, 8);
19368    simd_cast(simd_shr(simd_sub(a, b), transmute(c)))
19369}
19370
19371/// Subtract returning high narrow
19372///
19373/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u32)
19374#[inline]
19375#[target_feature(enable = "neon")]
19376#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19377#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19378#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn))]
19379#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19380#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19381pub unsafe fn vsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
19382    let c: u32x4 = u32x4::new(16, 16, 16, 16);
19383    simd_cast(simd_shr(simd_sub(a, b), transmute(c)))
19384}
19385
19386/// Subtract returning high narrow
19387///
19388/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_u64)
19389#[inline]
19390#[target_feature(enable = "neon")]
19391#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19392#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19393#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn))]
19394#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19395#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19396pub unsafe fn vsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
19397    let c: u64x2 = u64x2::new(32, 32);
19398    simd_cast(simd_shr(simd_sub(a, b), transmute(c)))
19399}
19400
19401/// Subtract returning high narrow
19402///
19403/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s16)
19404#[inline]
19405#[target_feature(enable = "neon")]
19406#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19407#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19408#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn2))]
19409#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19410#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19411pub unsafe fn vsubhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
19412    let d: int8x8_t = vsubhn_s16(b, c);
19413    simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
19414}
19415
19416/// Subtract returning high narrow
19417///
19418/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s32)
19419#[inline]
19420#[target_feature(enable = "neon")]
19421#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19422#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19423#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn2))]
19424#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19425#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19426pub unsafe fn vsubhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
19427    let d: int16x4_t = vsubhn_s32(b, c);
19428    simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7])
19429}
19430
19431/// Subtract returning high narrow
19432///
19433/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_s64)
19434#[inline]
19435#[target_feature(enable = "neon")]
19436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19438#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn2))]
19439#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19440#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19441pub unsafe fn vsubhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
19442    let d: int32x2_t = vsubhn_s64(b, c);
19443    simd_shuffle!(a, d, [0, 1, 2, 3])
19444}
19445
19446/// Subtract returning high narrow
19447///
19448/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u16)
19449#[inline]
19450#[target_feature(enable = "neon")]
19451#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19452#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19453#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn2))]
19454#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19455#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19456pub unsafe fn vsubhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
19457    let d: uint8x8_t = vsubhn_u16(b, c);
19458    simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
19459}
19460
19461/// Subtract returning high narrow
19462///
19463/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u32)
19464#[inline]
19465#[target_feature(enable = "neon")]
19466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19467#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19468#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn2))]
19469#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19470#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19471pub unsafe fn vsubhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
19472    let d: uint16x4_t = vsubhn_u32(b, c);
19473    simd_shuffle!(a, d, [0, 1, 2, 3, 4, 5, 6, 7])
19474}
19475
19476/// Subtract returning high narrow
19477///
19478/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubhn_high_u64)
19479#[inline]
19480#[target_feature(enable = "neon")]
19481#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19482#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubhn))]
19483#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(subhn2))]
19484#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19485#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19486pub unsafe fn vsubhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
19487    let d: uint32x2_t = vsubhn_u64(b, c);
19488    simd_shuffle!(a, d, [0, 1, 2, 3])
19489}
19490
19491/// Signed halving subtract
19492///
19493/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u8)
19494#[inline]
19495#[target_feature(enable = "neon")]
19496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19497#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u8"))]
19498#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhsub))]
19499#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19500#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19501pub unsafe fn vhsub_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
19502    #[allow(improper_ctypes)]
19503    extern "unadjusted" {
19504        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i8")]
19505        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhsub.v8i8")]
19506        fn vhsub_u8_(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
19507    }
19508vhsub_u8_(a, b)
19509}
19510
19511/// Signed halving subtract
19512///
19513/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u8)
19514#[inline]
19515#[target_feature(enable = "neon")]
19516#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19517#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u8"))]
19518#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhsub))]
19519#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19520#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19521pub unsafe fn vhsubq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
19522    #[allow(improper_ctypes)]
19523    extern "unadjusted" {
19524        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v16i8")]
19525        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhsub.v16i8")]
19526        fn vhsubq_u8_(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
19527    }
19528vhsubq_u8_(a, b)
19529}
19530
19531/// Signed halving subtract
19532///
19533/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u16)
19534#[inline]
19535#[target_feature(enable = "neon")]
19536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19537#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
19538#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhsub))]
19539#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19540#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19541pub unsafe fn vhsub_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
19542    #[allow(improper_ctypes)]
19543    extern "unadjusted" {
19544        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i16")]
19545        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhsub.v4i16")]
19546        fn vhsub_u16_(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
19547    }
19548vhsub_u16_(a, b)
19549}
19550
19551/// Signed halving subtract
19552///
19553/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u16)
19554#[inline]
19555#[target_feature(enable = "neon")]
19556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19557#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u16"))]
19558#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhsub))]
19559#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19560#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19561pub unsafe fn vhsubq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
19562    #[allow(improper_ctypes)]
19563    extern "unadjusted" {
19564        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v8i16")]
19565        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhsub.v8i16")]
19566        fn vhsubq_u16_(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
19567    }
19568vhsubq_u16_(a, b)
19569}
19570
19571/// Signed halving subtract
19572///
19573/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_u32)
19574#[inline]
19575#[target_feature(enable = "neon")]
19576#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19577#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u32"))]
19578#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhsub))]
19579#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19580#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19581pub unsafe fn vhsub_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
19582    #[allow(improper_ctypes)]
19583    extern "unadjusted" {
19584        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v2i32")]
19585        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhsub.v2i32")]
19586        fn vhsub_u32_(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
19587    }
19588vhsub_u32_(a, b)
19589}
19590
19591/// Signed halving subtract
19592///
19593/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_u32)
19594#[inline]
19595#[target_feature(enable = "neon")]
19596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19597#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.u32"))]
19598#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uhsub))]
19599#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19600#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19601pub unsafe fn vhsubq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
19602    #[allow(improper_ctypes)]
19603    extern "unadjusted" {
19604        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubu.v4i32")]
19605        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uhsub.v4i32")]
19606        fn vhsubq_u32_(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
19607    }
19608vhsubq_u32_(a, b)
19609}
19610
19611/// Signed halving subtract
19612///
19613/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s8)
19614#[inline]
19615#[target_feature(enable = "neon")]
19616#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19617#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
19618#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shsub))]
19619#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19620#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19621pub unsafe fn vhsub_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
19622    #[allow(improper_ctypes)]
19623    extern "unadjusted" {
19624        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i8")]
19625        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shsub.v8i8")]
19626        fn vhsub_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
19627    }
19628vhsub_s8_(a, b)
19629}
19630
19631/// Signed halving subtract
19632///
19633/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s8)
19634#[inline]
19635#[target_feature(enable = "neon")]
19636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19637#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s8"))]
19638#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shsub))]
19639#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19640#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19641pub unsafe fn vhsubq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
19642    #[allow(improper_ctypes)]
19643    extern "unadjusted" {
19644        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v16i8")]
19645        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shsub.v16i8")]
19646        fn vhsubq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
19647    }
19648vhsubq_s8_(a, b)
19649}
19650
19651/// Signed halving subtract
19652///
19653/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s16)
19654#[inline]
19655#[target_feature(enable = "neon")]
19656#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19657#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
19658#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shsub))]
19659#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19660#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19661pub unsafe fn vhsub_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
19662    #[allow(improper_ctypes)]
19663    extern "unadjusted" {
19664        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i16")]
19665        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shsub.v4i16")]
19666        fn vhsub_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
19667    }
19668vhsub_s16_(a, b)
19669}
19670
19671/// Signed halving subtract
19672///
19673/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s16)
19674#[inline]
19675#[target_feature(enable = "neon")]
19676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19677#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s16"))]
19678#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shsub))]
19679#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19680#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19681pub unsafe fn vhsubq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
19682    #[allow(improper_ctypes)]
19683    extern "unadjusted" {
19684        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v8i16")]
19685        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shsub.v8i16")]
19686        fn vhsubq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
19687    }
19688vhsubq_s16_(a, b)
19689}
19690
19691/// Signed halving subtract
19692///
19693/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsub_s32)
19694#[inline]
19695#[target_feature(enable = "neon")]
19696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19697#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
19698#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shsub))]
19699#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19700#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19701pub unsafe fn vhsub_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
19702    #[allow(improper_ctypes)]
19703    extern "unadjusted" {
19704        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v2i32")]
19705        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shsub.v2i32")]
19706        fn vhsub_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
19707    }
19708vhsub_s32_(a, b)
19709}
19710
19711/// Signed halving subtract
19712///
19713/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vhsubq_s32)
19714#[inline]
19715#[target_feature(enable = "neon")]
19716#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19717#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vhsub.s32"))]
19718#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shsub))]
19719#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19720#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19721pub unsafe fn vhsubq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
19722    #[allow(improper_ctypes)]
19723    extern "unadjusted" {
19724        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vhsubs.v4i32")]
19725        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.shsub.v4i32")]
19726        fn vhsubq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
19727    }
19728vhsubq_s32_(a, b)
19729}
19730
19731/// Signed Subtract Wide
19732///
19733/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s8)
19734#[inline]
19735#[target_feature(enable = "neon")]
19736#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19737#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
19738#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssubw))]
19739#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19740#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19741pub unsafe fn vsubw_s8(a: int16x8_t, b: int8x8_t) -> int16x8_t {
19742    simd_sub(a, simd_cast(b))
19743}
19744
19745/// Signed Subtract Wide
19746///
19747/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s16)
19748#[inline]
19749#[target_feature(enable = "neon")]
19750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19751#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
19752#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssubw))]
19753#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19754#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19755pub unsafe fn vsubw_s16(a: int32x4_t, b: int16x4_t) -> int32x4_t {
19756    simd_sub(a, simd_cast(b))
19757}
19758
19759/// Signed Subtract Wide
19760///
19761/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_s32)
19762#[inline]
19763#[target_feature(enable = "neon")]
19764#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19765#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
19766#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssubw))]
19767#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19768#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19769pub unsafe fn vsubw_s32(a: int64x2_t, b: int32x2_t) -> int64x2_t {
19770    simd_sub(a, simd_cast(b))
19771}
19772
19773/// Unsigned Subtract Wide
19774///
19775/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u8)
19776#[inline]
19777#[target_feature(enable = "neon")]
19778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
19780#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usubw))]
19781#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19782#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19783pub unsafe fn vsubw_u8(a: uint16x8_t, b: uint8x8_t) -> uint16x8_t {
19784    simd_sub(a, simd_cast(b))
19785}
19786
19787/// Unsigned Subtract Wide
19788///
19789/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u16)
19790#[inline]
19791#[target_feature(enable = "neon")]
19792#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19793#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
19794#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usubw))]
19795#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19796#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19797pub unsafe fn vsubw_u16(a: uint32x4_t, b: uint16x4_t) -> uint32x4_t {
19798    simd_sub(a, simd_cast(b))
19799}
19800
19801/// Unsigned Subtract Wide
19802///
19803/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubw_u32)
19804#[inline]
19805#[target_feature(enable = "neon")]
19806#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19807#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubw))]
19808#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usubw))]
19809#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19810#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19811pub unsafe fn vsubw_u32(a: uint64x2_t, b: uint32x2_t) -> uint64x2_t {
19812    simd_sub(a, simd_cast(b))
19813}
19814
19815/// Signed Subtract Long
19816///
19817/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s8)
19818#[inline]
19819#[target_feature(enable = "neon")]
19820#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19821#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
19822#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssubl))]
19823#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19824#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19825pub unsafe fn vsubl_s8(a: int8x8_t, b: int8x8_t) -> int16x8_t {
19826    let c: int16x8_t = simd_cast(a);
19827    let d: int16x8_t = simd_cast(b);
19828    simd_sub(c, d)
19829}
19830
19831/// Signed Subtract Long
19832///
19833/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s16)
19834#[inline]
19835#[target_feature(enable = "neon")]
19836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19837#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
19838#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssubl))]
19839#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19840#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19841pub unsafe fn vsubl_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
19842    let c: int32x4_t = simd_cast(a);
19843    let d: int32x4_t = simd_cast(b);
19844    simd_sub(c, d)
19845}
19846
19847/// Signed Subtract Long
19848///
19849/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_s32)
19850#[inline]
19851#[target_feature(enable = "neon")]
19852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
19854#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssubl))]
19855#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19856#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19857pub unsafe fn vsubl_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
19858    let c: int64x2_t = simd_cast(a);
19859    let d: int64x2_t = simd_cast(b);
19860    simd_sub(c, d)
19861}
19862
19863/// Unsigned Subtract Long
19864///
19865/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u8)
19866#[inline]
19867#[target_feature(enable = "neon")]
19868#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19869#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
19870#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usubl))]
19871#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19872#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19873pub unsafe fn vsubl_u8(a: uint8x8_t, b: uint8x8_t) -> uint16x8_t {
19874    let c: uint16x8_t = simd_cast(a);
19875    let d: uint16x8_t = simd_cast(b);
19876    simd_sub(c, d)
19877}
19878
19879/// Unsigned Subtract Long
19880///
19881/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u16)
19882#[inline]
19883#[target_feature(enable = "neon")]
19884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19885#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
19886#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usubl))]
19887#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19888#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19889pub unsafe fn vsubl_u16(a: uint16x4_t, b: uint16x4_t) -> uint32x4_t {
19890    let c: uint32x4_t = simd_cast(a);
19891    let d: uint32x4_t = simd_cast(b);
19892    simd_sub(c, d)
19893}
19894
19895/// Unsigned Subtract Long
19896///
19897/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsubl_u32)
19898#[inline]
19899#[target_feature(enable = "neon")]
19900#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
19901#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsubl))]
19902#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usubl))]
19903#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
19904#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19905pub unsafe fn vsubl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
19906    let c: uint64x2_t = simd_cast(a);
19907    let d: uint64x2_t = simd_cast(b);
19908    simd_sub(c, d)
19909}
19910
19911/// Dot product arithmetic (vector)
19912///
19913/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_s32)
19914#[inline]
19915#[target_feature(enable = "neon,dotprod")]
19916#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
19917#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
19918#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sdot))]
19919#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
19920#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19921pub unsafe fn vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
19922    #[allow(improper_ctypes)]
19923    extern "unadjusted" {
19924        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sdot.v2i32.v8i8")]
19925        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sdot.v2i32.v8i8")]
19926        fn vdot_s32_(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t;
19927    }
19928vdot_s32_(a, b, c)
19929}
19930
19931/// Dot product arithmetic (vector)
19932///
19933/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_s32)
19934#[inline]
19935#[target_feature(enable = "neon,dotprod")]
19936#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
19937#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
19938#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sdot))]
19939#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
19940#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19941pub unsafe fn vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
19942    #[allow(improper_ctypes)]
19943    extern "unadjusted" {
19944        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.sdot.v4i32.v16i8")]
19945        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sdot.v4i32.v16i8")]
19946        fn vdotq_s32_(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t;
19947    }
19948vdotq_s32_(a, b, c)
19949}
19950
19951/// Dot product arithmetic (vector)
19952///
19953/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_u32)
19954#[inline]
19955#[target_feature(enable = "neon,dotprod")]
19956#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
19957#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
19958#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(udot))]
19959#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
19960#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19961pub unsafe fn vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
19962    #[allow(improper_ctypes)]
19963    extern "unadjusted" {
19964        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.udot.v2i32.v8i8")]
19965        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.udot.v2i32.v8i8")]
19966        fn vdot_u32_(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t;
19967    }
19968vdot_u32_(a, b, c)
19969}
19970
19971/// Dot product arithmetic (vector)
19972///
19973/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_u32)
19974#[inline]
19975#[target_feature(enable = "neon,dotprod")]
19976#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
19977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
19978#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(udot))]
19979#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
19980#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
19981pub unsafe fn vdotq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
19982    #[allow(improper_ctypes)]
19983    extern "unadjusted" {
19984        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.udot.v4i32.v16i8")]
19985        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.udot.v4i32.v16i8")]
19986        fn vdotq_u32_(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t;
19987    }
19988vdotq_u32_(a, b, c)
19989}
19990
19991/// Dot product arithmetic (indexed)
19992///
19993/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_lane_s32)
19994#[inline]
19995#[target_feature(enable = "neon,dotprod")]
19996#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
19997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
19998#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sdot, LANE = 0))]
19999#[rustc_legacy_const_generics(3)]
20000#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
20001#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20002pub unsafe fn vdot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
20003    static_assert_uimm_bits!(LANE, 1);
20004    let c: int32x2_t = transmute(c);
20005    let c: int32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
20006    vdot_s32(a, b, transmute(c))
20007}
20008
20009/// Dot product arithmetic (indexed)
20010///
20011/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_lane_s32)
20012#[inline]
20013#[target_feature(enable = "neon,dotprod")]
20014#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
20015#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
20016#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sdot, LANE = 0))]
20017#[rustc_legacy_const_generics(3)]
20018#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
20019#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20020pub unsafe fn vdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x8_t) -> int32x4_t {
20021    static_assert_uimm_bits!(LANE, 1);
20022    let c: int32x2_t = transmute(c);
20023    let c: int32x4_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
20024    vdotq_s32(a, b, transmute(c))
20025}
20026
20027/// Dot product arithmetic (indexed)
20028///
20029/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdot_lane_u32)
20030#[inline]
20031#[target_feature(enable = "neon,dotprod")]
20032#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
20033#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
20034#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(udot, LANE = 0))]
20035#[rustc_legacy_const_generics(3)]
20036#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
20037#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20038pub unsafe fn vdot_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
20039    static_assert_uimm_bits!(LANE, 1);
20040    let c: uint32x2_t = transmute(c);
20041    let c: uint32x2_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32]);
20042    vdot_u32(a, b, transmute(c))
20043}
20044
20045/// Dot product arithmetic (indexed)
20046///
20047/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vdotq_lane_u32)
20048#[inline]
20049#[target_feature(enable = "neon,dotprod")]
20050#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
20051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
20052#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(udot, LANE = 0))]
20053#[rustc_legacy_const_generics(3)]
20054#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
20055#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20056pub unsafe fn vdotq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x8_t) -> uint32x4_t {
20057    static_assert_uimm_bits!(LANE, 1);
20058    let c: uint32x2_t = transmute(c);
20059    let c: uint32x4_t = simd_shuffle!(c, c, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
20060    vdotq_u32(a, b, transmute(c))
20061}
20062
20063/// Maximum (vector)
20064///
20065/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s8)
20066#[inline]
20067#[target_feature(enable = "neon")]
20068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20070#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smax))]
20071#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20072#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20073pub unsafe fn vmax_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
20074    #[allow(improper_ctypes)]
20075    extern "unadjusted" {
20076        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v8i8")]
20077        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smax.v8i8")]
20078        fn vmax_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
20079    }
20080vmax_s8_(a, b)
20081}
20082
20083/// Maximum (vector)
20084///
20085/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s8)
20086#[inline]
20087#[target_feature(enable = "neon")]
20088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20089#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20090#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smax))]
20091#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20092#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20093pub unsafe fn vmaxq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
20094    #[allow(improper_ctypes)]
20095    extern "unadjusted" {
20096        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v16i8")]
20097        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smax.v16i8")]
20098        fn vmaxq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
20099    }
20100vmaxq_s8_(a, b)
20101}
20102
20103/// Maximum (vector)
20104///
20105/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s16)
20106#[inline]
20107#[target_feature(enable = "neon")]
20108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20110#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smax))]
20111#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20112#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20113pub unsafe fn vmax_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
20114    #[allow(improper_ctypes)]
20115    extern "unadjusted" {
20116        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4i16")]
20117        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smax.v4i16")]
20118        fn vmax_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
20119    }
20120vmax_s16_(a, b)
20121}
20122
20123/// Maximum (vector)
20124///
20125/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s16)
20126#[inline]
20127#[target_feature(enable = "neon")]
20128#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20129#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20130#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smax))]
20131#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20132#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20133pub unsafe fn vmaxq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
20134    #[allow(improper_ctypes)]
20135    extern "unadjusted" {
20136        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v8i16")]
20137        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smax.v8i16")]
20138        fn vmaxq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
20139    }
20140vmaxq_s16_(a, b)
20141}
20142
20143/// Maximum (vector)
20144///
20145/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_s32)
20146#[inline]
20147#[target_feature(enable = "neon")]
20148#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20149#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20150#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smax))]
20151#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20152#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20153pub unsafe fn vmax_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
20154    #[allow(improper_ctypes)]
20155    extern "unadjusted" {
20156        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v2i32")]
20157        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smax.v2i32")]
20158        fn vmax_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
20159    }
20160vmax_s32_(a, b)
20161}
20162
20163/// Maximum (vector)
20164///
20165/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_s32)
20166#[inline]
20167#[target_feature(enable = "neon")]
20168#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20169#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20170#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smax))]
20171#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20172#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20173pub unsafe fn vmaxq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
20174    #[allow(improper_ctypes)]
20175    extern "unadjusted" {
20176        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4i32")]
20177        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smax.v4i32")]
20178        fn vmaxq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
20179    }
20180vmaxq_s32_(a, b)
20181}
20182
20183/// Maximum (vector)
20184///
20185/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u8)
20186#[inline]
20187#[target_feature(enable = "neon")]
20188#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20189#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20190#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umax))]
20191#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20192#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20193pub unsafe fn vmax_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
20194    #[allow(improper_ctypes)]
20195    extern "unadjusted" {
20196        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v8i8")]
20197        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umax.v8i8")]
20198        fn vmax_u8_(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
20199    }
20200vmax_u8_(a, b)
20201}
20202
20203/// Maximum (vector)
20204///
20205/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u8)
20206#[inline]
20207#[target_feature(enable = "neon")]
20208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20210#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umax))]
20211#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20212#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20213pub unsafe fn vmaxq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
20214    #[allow(improper_ctypes)]
20215    extern "unadjusted" {
20216        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v16i8")]
20217        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umax.v16i8")]
20218        fn vmaxq_u8_(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
20219    }
20220vmaxq_u8_(a, b)
20221}
20222
20223/// Maximum (vector)
20224///
20225/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u16)
20226#[inline]
20227#[target_feature(enable = "neon")]
20228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20229#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20230#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umax))]
20231#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20232#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20233pub unsafe fn vmax_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
20234    #[allow(improper_ctypes)]
20235    extern "unadjusted" {
20236        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v4i16")]
20237        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umax.v4i16")]
20238        fn vmax_u16_(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
20239    }
20240vmax_u16_(a, b)
20241}
20242
20243/// Maximum (vector)
20244///
20245/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u16)
20246#[inline]
20247#[target_feature(enable = "neon")]
20248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20250#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umax))]
20251#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20252#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20253pub unsafe fn vmaxq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
20254    #[allow(improper_ctypes)]
20255    extern "unadjusted" {
20256        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v8i16")]
20257        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umax.v8i16")]
20258        fn vmaxq_u16_(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
20259    }
20260vmaxq_u16_(a, b)
20261}
20262
20263/// Maximum (vector)
20264///
20265/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_u32)
20266#[inline]
20267#[target_feature(enable = "neon")]
20268#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20269#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20270#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umax))]
20271#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20272#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20273pub unsafe fn vmax_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
20274    #[allow(improper_ctypes)]
20275    extern "unadjusted" {
20276        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v2i32")]
20277        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umax.v2i32")]
20278        fn vmax_u32_(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
20279    }
20280vmax_u32_(a, b)
20281}
20282
20283/// Maximum (vector)
20284///
20285/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_u32)
20286#[inline]
20287#[target_feature(enable = "neon")]
20288#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20289#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20290#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umax))]
20291#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20292#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20293pub unsafe fn vmaxq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
20294    #[allow(improper_ctypes)]
20295    extern "unadjusted" {
20296        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxu.v4i32")]
20297        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umax.v4i32")]
20298        fn vmaxq_u32_(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
20299    }
20300vmaxq_u32_(a, b)
20301}
20302
20303/// Maximum (vector)
20304///
20305/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmax_f32)
20306#[inline]
20307#[target_feature(enable = "neon")]
20308#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20309#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20310#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmax))]
20311#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20312#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20313pub unsafe fn vmax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
20314    #[allow(improper_ctypes)]
20315    extern "unadjusted" {
20316        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v2f32")]
20317        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fmax.v2f32")]
20318        fn vmax_f32_(a: float32x2_t, b: float32x2_t) -> float32x2_t;
20319    }
20320vmax_f32_(a, b)
20321}
20322
20323/// Maximum (vector)
20324///
20325/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxq_f32)
20326#[inline]
20327#[target_feature(enable = "neon")]
20328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20329#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmax))]
20330#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmax))]
20331#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20332#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20333pub unsafe fn vmaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
20334    #[allow(improper_ctypes)]
20335    extern "unadjusted" {
20336        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxs.v4f32")]
20337        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fmax.v4f32")]
20338        fn vmaxq_f32_(a: float32x4_t, b: float32x4_t) -> float32x4_t;
20339    }
20340vmaxq_f32_(a, b)
20341}
20342
20343/// Floating-point Maximum Number (vector)
20344///
20345/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnm_f32)
20346#[inline]
20347#[target_feature(enable = "neon")]
20348#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
20349#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
20350#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmaxnm))]
20351#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20352#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20353pub unsafe fn vmaxnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
20354    #[allow(improper_ctypes)]
20355    extern "unadjusted" {
20356        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v2f32")]
20357        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fmaxnm.v2f32")]
20358        fn vmaxnm_f32_(a: float32x2_t, b: float32x2_t) -> float32x2_t;
20359    }
20360vmaxnm_f32_(a, b)
20361}
20362
20363/// Floating-point Maximum Number (vector)
20364///
20365/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmaxnmq_f32)
20366#[inline]
20367#[target_feature(enable = "neon")]
20368#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
20369#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmaxnm))]
20370#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmaxnm))]
20371#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20372#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20373pub unsafe fn vmaxnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
20374    #[allow(improper_ctypes)]
20375    extern "unadjusted" {
20376        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmaxnm.v4f32")]
20377        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fmaxnm.v4f32")]
20378        fn vmaxnmq_f32_(a: float32x4_t, b: float32x4_t) -> float32x4_t;
20379    }
20380vmaxnmq_f32_(a, b)
20381}
20382
20383/// Minimum (vector)
20384///
20385/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s8)
20386#[inline]
20387#[target_feature(enable = "neon")]
20388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20390#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smin))]
20391#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20392#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20393pub unsafe fn vmin_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
20394    #[allow(improper_ctypes)]
20395    extern "unadjusted" {
20396        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v8i8")]
20397        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smin.v8i8")]
20398        fn vmin_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
20399    }
20400vmin_s8_(a, b)
20401}
20402
20403/// Minimum (vector)
20404///
20405/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s8)
20406#[inline]
20407#[target_feature(enable = "neon")]
20408#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20409#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20410#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smin))]
20411#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20412#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20413pub unsafe fn vminq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
20414    #[allow(improper_ctypes)]
20415    extern "unadjusted" {
20416        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v16i8")]
20417        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smin.v16i8")]
20418        fn vminq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
20419    }
20420vminq_s8_(a, b)
20421}
20422
20423/// Minimum (vector)
20424///
20425/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s16)
20426#[inline]
20427#[target_feature(enable = "neon")]
20428#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20429#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20430#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smin))]
20431#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20432#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20433pub unsafe fn vmin_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
20434    #[allow(improper_ctypes)]
20435    extern "unadjusted" {
20436        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4i16")]
20437        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smin.v4i16")]
20438        fn vmin_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
20439    }
20440vmin_s16_(a, b)
20441}
20442
20443/// Minimum (vector)
20444///
20445/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s16)
20446#[inline]
20447#[target_feature(enable = "neon")]
20448#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20449#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20450#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smin))]
20451#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20452#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20453pub unsafe fn vminq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
20454    #[allow(improper_ctypes)]
20455    extern "unadjusted" {
20456        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v8i16")]
20457        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smin.v8i16")]
20458        fn vminq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
20459    }
20460vminq_s16_(a, b)
20461}
20462
20463/// Minimum (vector)
20464///
20465/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_s32)
20466#[inline]
20467#[target_feature(enable = "neon")]
20468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20470#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smin))]
20471#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20472#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20473pub unsafe fn vmin_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
20474    #[allow(improper_ctypes)]
20475    extern "unadjusted" {
20476        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v2i32")]
20477        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smin.v2i32")]
20478        fn vmin_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
20479    }
20480vmin_s32_(a, b)
20481}
20482
20483/// Minimum (vector)
20484///
20485/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_s32)
20486#[inline]
20487#[target_feature(enable = "neon")]
20488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20489#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20490#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(smin))]
20491#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20492#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20493pub unsafe fn vminq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
20494    #[allow(improper_ctypes)]
20495    extern "unadjusted" {
20496        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4i32")]
20497        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.smin.v4i32")]
20498        fn vminq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
20499    }
20500vminq_s32_(a, b)
20501}
20502
20503/// Minimum (vector)
20504///
20505/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u8)
20506#[inline]
20507#[target_feature(enable = "neon")]
20508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20509#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20510#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umin))]
20511#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20512#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20513pub unsafe fn vmin_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
20514    #[allow(improper_ctypes)]
20515    extern "unadjusted" {
20516        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v8i8")]
20517        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umin.v8i8")]
20518        fn vmin_u8_(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t;
20519    }
20520vmin_u8_(a, b)
20521}
20522
20523/// Minimum (vector)
20524///
20525/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u8)
20526#[inline]
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(vmin))]
20530#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umin))]
20531#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20532#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20533pub unsafe fn vminq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
20534    #[allow(improper_ctypes)]
20535    extern "unadjusted" {
20536        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v16i8")]
20537        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umin.v16i8")]
20538        fn vminq_u8_(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t;
20539    }
20540vminq_u8_(a, b)
20541}
20542
20543/// Minimum (vector)
20544///
20545/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u16)
20546#[inline]
20547#[target_feature(enable = "neon")]
20548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20549#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20550#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umin))]
20551#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20552#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20553pub unsafe fn vmin_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
20554    #[allow(improper_ctypes)]
20555    extern "unadjusted" {
20556        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v4i16")]
20557        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umin.v4i16")]
20558        fn vmin_u16_(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t;
20559    }
20560vmin_u16_(a, b)
20561}
20562
20563/// Minimum (vector)
20564///
20565/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u16)
20566#[inline]
20567#[target_feature(enable = "neon")]
20568#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20569#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20570#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umin))]
20571#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20572#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20573pub unsafe fn vminq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
20574    #[allow(improper_ctypes)]
20575    extern "unadjusted" {
20576        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v8i16")]
20577        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umin.v8i16")]
20578        fn vminq_u16_(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t;
20579    }
20580vminq_u16_(a, b)
20581}
20582
20583/// Minimum (vector)
20584///
20585/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_u32)
20586#[inline]
20587#[target_feature(enable = "neon")]
20588#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20589#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20590#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umin))]
20591#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20592#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20593pub unsafe fn vmin_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
20594    #[allow(improper_ctypes)]
20595    extern "unadjusted" {
20596        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v2i32")]
20597        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umin.v2i32")]
20598        fn vmin_u32_(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t;
20599    }
20600vmin_u32_(a, b)
20601}
20602
20603/// Minimum (vector)
20604///
20605/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_u32)
20606#[inline]
20607#[target_feature(enable = "neon")]
20608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20610#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(umin))]
20611#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20612#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20613pub unsafe fn vminq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
20614    #[allow(improper_ctypes)]
20615    extern "unadjusted" {
20616        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminu.v4i32")]
20617        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.umin.v4i32")]
20618        fn vminq_u32_(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t;
20619    }
20620vminq_u32_(a, b)
20621}
20622
20623/// Minimum (vector)
20624///
20625/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmin_f32)
20626#[inline]
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(vmin))]
20630#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmin))]
20631#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20632#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20633pub unsafe fn vmin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
20634    #[allow(improper_ctypes)]
20635    extern "unadjusted" {
20636        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v2f32")]
20637        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fmin.v2f32")]
20638        fn vmin_f32_(a: float32x2_t, b: float32x2_t) -> float32x2_t;
20639    }
20640vmin_f32_(a, b)
20641}
20642
20643/// Minimum (vector)
20644///
20645/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminq_f32)
20646#[inline]
20647#[target_feature(enable = "neon")]
20648#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20649#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vmin))]
20650#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fmin))]
20651#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20652#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20653pub unsafe fn vminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
20654    #[allow(improper_ctypes)]
20655    extern "unadjusted" {
20656        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vmins.v4f32")]
20657        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fmin.v4f32")]
20658        fn vminq_f32_(a: float32x4_t, b: float32x4_t) -> float32x4_t;
20659    }
20660vminq_f32_(a, b)
20661}
20662
20663/// Floating-point Minimum Number (vector)
20664///
20665/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnm_f32)
20666#[inline]
20667#[target_feature(enable = "neon")]
20668#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
20669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
20670#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fminnm))]
20671#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20672#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20673pub unsafe fn vminnm_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
20674    #[allow(improper_ctypes)]
20675    extern "unadjusted" {
20676        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v2f32")]
20677        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fminnm.v2f32")]
20678        fn vminnm_f32_(a: float32x2_t, b: float32x2_t) -> float32x2_t;
20679    }
20680vminnm_f32_(a, b)
20681}
20682
20683/// Floating-point Minimum Number (vector)
20684///
20685/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vminnmq_f32)
20686#[inline]
20687#[target_feature(enable = "neon")]
20688#[cfg_attr(target_arch = "arm", target_feature(enable = "fp-armv8,v8"))]
20689#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vminnm))]
20690#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(fminnm))]
20691#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20692#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20693pub unsafe fn vminnmq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
20694    #[allow(improper_ctypes)]
20695    extern "unadjusted" {
20696        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vminnm.v4f32")]
20697        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.fminnm.v4f32")]
20698        fn vminnmq_f32_(a: float32x4_t, b: float32x4_t) -> float32x4_t;
20699    }
20700vminnmq_f32_(a, b)
20701}
20702
20703/// Floating-point add pairwise
20704///
20705/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vpadd_f32)
20706#[inline]
20707#[target_feature(enable = "neon")]
20708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vpadd))]
20710#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(faddp))]
20711#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20712#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20713pub unsafe fn vpadd_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
20714    #[allow(improper_ctypes)]
20715    extern "unadjusted" {
20716        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vpadd.v2f32")]
20717        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.faddp.v2f32")]
20718        fn vpadd_f32_(a: float32x2_t, b: float32x2_t) -> float32x2_t;
20719    }
20720vpadd_f32_(a, b)
20721}
20722
20723/// Signed saturating doubling multiply long
20724///
20725/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s16)
20726#[inline]
20727#[target_feature(enable = "neon")]
20728#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20729#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
20730#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmull))]
20731#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20732#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20733pub unsafe fn vqdmull_s16(a: int16x4_t, b: int16x4_t) -> int32x4_t {
20734    #[allow(improper_ctypes)]
20735    extern "unadjusted" {
20736        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v4i32")]
20737        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqdmull.v4i32")]
20738        fn vqdmull_s16_(a: int16x4_t, b: int16x4_t) -> int32x4_t;
20739    }
20740vqdmull_s16_(a, b)
20741}
20742
20743/// Signed saturating doubling multiply long
20744///
20745/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_s32)
20746#[inline]
20747#[target_feature(enable = "neon")]
20748#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20749#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
20750#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmull))]
20751#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20752#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20753pub unsafe fn vqdmull_s32(a: int32x2_t, b: int32x2_t) -> int64x2_t {
20754    #[allow(improper_ctypes)]
20755    extern "unadjusted" {
20756        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmull.v2i64")]
20757        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqdmull.v2i64")]
20758        fn vqdmull_s32_(a: int32x2_t, b: int32x2_t) -> int64x2_t;
20759    }
20760vqdmull_s32_(a, b)
20761}
20762
20763/// Vector saturating doubling long multiply with scalar
20764///
20765/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s16)
20766#[inline]
20767#[target_feature(enable = "neon")]
20768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20769#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull))]
20770#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmull))]
20771#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20772#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20773pub unsafe fn vqdmull_n_s16(a: int16x4_t, b: i16) -> int32x4_t {
20774    vqdmull_s16(a, vdup_n_s16(b))
20775}
20776
20777/// Vector saturating doubling long multiply with scalar
20778///
20779/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_n_s32)
20780#[inline]
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(vqdmull))]
20784#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmull))]
20785#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20786#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20787pub unsafe fn vqdmull_n_s32(a: int32x2_t, b: i32) -> int64x2_t {
20788    vqdmull_s32(a, vdup_n_s32(b))
20789}
20790
20791/// Vector saturating doubling long multiply by scalar
20792///
20793/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s16)
20794#[inline]
20795#[target_feature(enable = "neon")]
20796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 2))]
20798#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmull, N = 2))]
20799#[rustc_legacy_const_generics(2)]
20800#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20801#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20802pub unsafe fn vqdmull_lane_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int32x4_t {
20803    static_assert_uimm_bits!(N, 2);
20804    let b: int16x4_t = simd_shuffle!(b, b, [N as u32, N as u32, N as u32, N as u32]);
20805    vqdmull_s16(a, b)
20806}
20807
20808/// Vector saturating doubling long multiply by scalar
20809///
20810/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmull_lane_s32)
20811#[inline]
20812#[target_feature(enable = "neon")]
20813#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20814#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmull, N = 1))]
20815#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmull, N = 1))]
20816#[rustc_legacy_const_generics(2)]
20817#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20818#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20819pub unsafe fn vqdmull_lane_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int64x2_t {
20820    static_assert_uimm_bits!(N, 1);
20821    let b: int32x2_t = simd_shuffle!(b, b, [N as u32, N as u32]);
20822    vqdmull_s32(a, b)
20823}
20824
20825/// Signed saturating doubling multiply-add long
20826///
20827/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s16)
20828#[inline]
20829#[target_feature(enable = "neon")]
20830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
20832#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlal))]
20833#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20834#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20835pub unsafe fn vqdmlal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
20836    vqaddq_s32(a, vqdmull_s16(b, c))
20837}
20838
20839/// Signed saturating doubling multiply-add long
20840///
20841/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_s32)
20842#[inline]
20843#[target_feature(enable = "neon")]
20844#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20845#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
20846#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlal))]
20847#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20848#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20849pub unsafe fn vqdmlal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
20850    vqaddq_s64(a, vqdmull_s32(b, c))
20851}
20852
20853/// Vector widening saturating doubling multiply accumulate with scalar
20854///
20855/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s16)
20856#[inline]
20857#[target_feature(enable = "neon")]
20858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
20860#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlal))]
20861#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20862#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20863pub unsafe fn vqdmlal_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
20864    vqaddq_s32(a, vqdmull_n_s16(b, c))
20865}
20866
20867/// Vector widening saturating doubling multiply accumulate with scalar
20868///
20869/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_n_s32)
20870#[inline]
20871#[target_feature(enable = "neon")]
20872#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal))]
20874#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlal))]
20875#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20876#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20877pub unsafe fn vqdmlal_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
20878    vqaddq_s64(a, vqdmull_n_s32(b, c))
20879}
20880
20881/// Vector widening saturating doubling multiply accumulate with scalar
20882///
20883/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s16)
20884#[inline]
20885#[target_feature(enable = "neon")]
20886#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 2))]
20888#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlal, N = 2))]
20889#[rustc_legacy_const_generics(3)]
20890#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20891#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20892pub unsafe fn vqdmlal_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
20893    static_assert_uimm_bits!(N, 2);
20894    vqaddq_s32(a, vqdmull_lane_s16::<N>(b, c))
20895}
20896
20897/// Vector widening saturating doubling multiply accumulate with scalar
20898///
20899/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlal_lane_s32)
20900#[inline]
20901#[target_feature(enable = "neon")]
20902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlal, N = 1))]
20904#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlal, N = 1))]
20905#[rustc_legacy_const_generics(3)]
20906#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20907#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20908pub unsafe fn vqdmlal_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
20909    static_assert_uimm_bits!(N, 1);
20910    vqaddq_s64(a, vqdmull_lane_s32::<N>(b, c))
20911}
20912
20913/// Signed saturating doubling multiply-subtract long
20914///
20915/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s16)
20916#[inline]
20917#[target_feature(enable = "neon")]
20918#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20919#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
20920#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlsl))]
20921#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20922#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20923pub unsafe fn vqdmlsl_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
20924    vqsubq_s32(a, vqdmull_s16(b, c))
20925}
20926
20927/// Signed saturating doubling multiply-subtract long
20928///
20929/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_s32)
20930#[inline]
20931#[target_feature(enable = "neon")]
20932#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20933#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
20934#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlsl))]
20935#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20936#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20937pub unsafe fn vqdmlsl_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
20938    vqsubq_s64(a, vqdmull_s32(b, c))
20939}
20940
20941/// Vector widening saturating doubling multiply subtract with scalar
20942///
20943/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s16)
20944#[inline]
20945#[target_feature(enable = "neon")]
20946#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20947#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
20948#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlsl))]
20949#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20950#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20951pub unsafe fn vqdmlsl_n_s16(a: int32x4_t, b: int16x4_t, c: i16) -> int32x4_t {
20952    vqsubq_s32(a, vqdmull_n_s16(b, c))
20953}
20954
20955/// Vector widening saturating doubling multiply subtract with scalar
20956///
20957/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_n_s32)
20958#[inline]
20959#[target_feature(enable = "neon")]
20960#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20961#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl))]
20962#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlsl))]
20963#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20964#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20965pub unsafe fn vqdmlsl_n_s32(a: int64x2_t, b: int32x2_t, c: i32) -> int64x2_t {
20966    vqsubq_s64(a, vqdmull_n_s32(b, c))
20967}
20968
20969/// Vector widening saturating doubling multiply subtract with scalar
20970///
20971/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s16)
20972#[inline]
20973#[target_feature(enable = "neon")]
20974#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20975#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 2))]
20976#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlsl, N = 2))]
20977#[rustc_legacy_const_generics(3)]
20978#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20979#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20980pub unsafe fn vqdmlsl_lane_s16<const N: i32>(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
20981    static_assert_uimm_bits!(N, 2);
20982    vqsubq_s32(a, vqdmull_lane_s16::<N>(b, c))
20983}
20984
20985/// Vector widening saturating doubling multiply subtract with scalar
20986///
20987/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_lane_s32)
20988#[inline]
20989#[target_feature(enable = "neon")]
20990#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
20991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmlsl, N = 1))]
20992#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmlsl, N = 1))]
20993#[rustc_legacy_const_generics(3)]
20994#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
20995#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
20996pub unsafe fn vqdmlsl_lane_s32<const N: i32>(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
20997    static_assert_uimm_bits!(N, 1);
20998    vqsubq_s64(a, vqdmull_lane_s32::<N>(b, c))
20999}
21000
21001/// Signed saturating doubling multiply returning high half
21002///
21003/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s16)
21004#[inline]
21005#[target_feature(enable = "neon")]
21006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
21008#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh))]
21009#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21010#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21011pub unsafe fn vqdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
21012    #[allow(improper_ctypes)]
21013    extern "unadjusted" {
21014        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i16")]
21015        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqdmulh.v4i16")]
21016        fn vqdmulh_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
21017    }
21018vqdmulh_s16_(a, b)
21019}
21020
21021/// Signed saturating doubling multiply returning high half
21022///
21023/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s16)
21024#[inline]
21025#[target_feature(enable = "neon")]
21026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
21028#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh))]
21029#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21030#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21031pub unsafe fn vqdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
21032    #[allow(improper_ctypes)]
21033    extern "unadjusted" {
21034        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v8i16")]
21035        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqdmulh.v8i16")]
21036        fn vqdmulhq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
21037    }
21038vqdmulhq_s16_(a, b)
21039}
21040
21041/// Signed saturating doubling multiply returning high half
21042///
21043/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_s32)
21044#[inline]
21045#[target_feature(enable = "neon")]
21046#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21047#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
21048#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh))]
21049#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21050#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21051pub unsafe fn vqdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
21052    #[allow(improper_ctypes)]
21053    extern "unadjusted" {
21054        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v2i32")]
21055        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqdmulh.v2i32")]
21056        fn vqdmulh_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
21057    }
21058vqdmulh_s32_(a, b)
21059}
21060
21061/// Signed saturating doubling multiply returning high half
21062///
21063/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_s32)
21064#[inline]
21065#[target_feature(enable = "neon")]
21066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
21068#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh))]
21069#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21070#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21071pub unsafe fn vqdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
21072    #[allow(improper_ctypes)]
21073    extern "unadjusted" {
21074        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqdmulh.v4i32")]
21075        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqdmulh.v4i32")]
21076        fn vqdmulhq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
21077    }
21078vqdmulhq_s32_(a, b)
21079}
21080
21081/// Vector saturating doubling multiply high with scalar
21082///
21083/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s16)
21084#[inline]
21085#[target_feature(enable = "neon")]
21086#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21087#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
21088#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh))]
21089#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21090#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21091pub unsafe fn vqdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
21092    let b: int16x4_t = vdup_n_s16(b);
21093    vqdmulh_s16(a, b)
21094}
21095
21096/// Vector saturating doubling multiply high with scalar
21097///
21098/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_n_s32)
21099#[inline]
21100#[target_feature(enable = "neon")]
21101#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21102#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
21103#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh))]
21104#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21105#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21106pub unsafe fn vqdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
21107    let b: int32x2_t = vdup_n_s32(b);
21108    vqdmulh_s32(a, b)
21109}
21110
21111/// Vector saturating doubling multiply high with scalar
21112///
21113/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s16)
21114#[inline]
21115#[target_feature(enable = "neon")]
21116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
21118#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh))]
21119#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21120#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21121pub unsafe fn vqdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
21122    let b: int16x8_t = vdupq_n_s16(b);
21123    vqdmulhq_s16(a, b)
21124}
21125
21126/// Vector saturating doubling multiply high with scalar
21127///
21128/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_n_s32)
21129#[inline]
21130#[target_feature(enable = "neon")]
21131#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21132#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh))]
21133#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh))]
21134#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21135#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21136pub unsafe fn vqdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
21137    let b: int32x4_t = vdupq_n_s32(b);
21138    vqdmulhq_s32(a, b)
21139}
21140
21141/// Vector saturating doubling multiply high by scalar
21142///
21143/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s16)
21144#[inline]
21145#[target_feature(enable = "neon")]
21146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
21148#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh, LANE = 0))]
21149#[rustc_legacy_const_generics(2)]
21150#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21151#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21152pub unsafe fn vqdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
21153    static_assert_uimm_bits!(LANE, 3);
21154    vqdmulhq_s16(a, vdupq_n_s16(simd_extract!(b, LANE as u32)))
21155}
21156
21157/// Vector saturating doubling multiply high by scalar
21158///
21159/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s16)
21160#[inline]
21161#[target_feature(enable = "neon")]
21162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
21164#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh, LANE = 0))]
21165#[rustc_legacy_const_generics(2)]
21166#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21167#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21168pub unsafe fn vqdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
21169    static_assert_uimm_bits!(LANE, 3);
21170    vqdmulh_s16(a, vdup_n_s16(simd_extract!(b, LANE as u32)))
21171}
21172
21173/// Vector saturating doubling multiply high by scalar
21174///
21175/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulhq_laneq_s32)
21176#[inline]
21177#[target_feature(enable = "neon")]
21178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
21180#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh, LANE = 0))]
21181#[rustc_legacy_const_generics(2)]
21182#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21183#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21184pub unsafe fn vqdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
21185    static_assert_uimm_bits!(LANE, 2);
21186    vqdmulhq_s32(a, vdupq_n_s32(simd_extract!(b, LANE as u32)))
21187}
21188
21189/// Vector saturating doubling multiply high by scalar
21190///
21191/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_laneq_s32)
21192#[inline]
21193#[target_feature(enable = "neon")]
21194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqdmulh, LANE = 0))]
21196#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqdmulh, LANE = 0))]
21197#[rustc_legacy_const_generics(2)]
21198#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21199#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21200pub unsafe fn vqdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
21201    static_assert_uimm_bits!(LANE, 2);
21202    vqdmulh_s32(a, vdup_n_s32(simd_extract!(b, LANE as u32)))
21203}
21204
21205/// Signed saturating extract narrow
21206///
21207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s16)
21208#[inline]
21209#[target_feature(enable = "neon")]
21210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
21212#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqxtn))]
21213#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21214#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21215pub unsafe fn vqmovn_s16(a: int16x8_t) -> int8x8_t {
21216    #[allow(improper_ctypes)]
21217    extern "unadjusted" {
21218        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v8i8")]
21219        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqxtn.v8i8")]
21220        fn vqmovn_s16_(a: int16x8_t) -> int8x8_t;
21221    }
21222vqmovn_s16_(a)
21223}
21224
21225/// Signed saturating extract narrow
21226///
21227/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s32)
21228#[inline]
21229#[target_feature(enable = "neon")]
21230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21231#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
21232#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqxtn))]
21233#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21234#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21235pub unsafe fn vqmovn_s32(a: int32x4_t) -> int16x4_t {
21236    #[allow(improper_ctypes)]
21237    extern "unadjusted" {
21238        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v4i16")]
21239        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqxtn.v4i16")]
21240        fn vqmovn_s32_(a: int32x4_t) -> int16x4_t;
21241    }
21242vqmovn_s32_(a)
21243}
21244
21245/// Signed saturating extract narrow
21246///
21247/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_s64)
21248#[inline]
21249#[target_feature(enable = "neon")]
21250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
21252#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqxtn))]
21253#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21254#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21255pub unsafe fn vqmovn_s64(a: int64x2_t) -> int32x2_t {
21256    #[allow(improper_ctypes)]
21257    extern "unadjusted" {
21258        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovns.v2i32")]
21259        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqxtn.v2i32")]
21260        fn vqmovn_s64_(a: int64x2_t) -> int32x2_t;
21261    }
21262vqmovn_s64_(a)
21263}
21264
21265/// Unsigned saturating extract narrow
21266///
21267/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u16)
21268#[inline]
21269#[target_feature(enable = "neon")]
21270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
21272#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqxtn))]
21273#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21274#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21275pub unsafe fn vqmovn_u16(a: uint16x8_t) -> uint8x8_t {
21276    #[allow(improper_ctypes)]
21277    extern "unadjusted" {
21278        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v8i8")]
21279        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqxtn.v8i8")]
21280        fn vqmovn_u16_(a: uint16x8_t) -> uint8x8_t;
21281    }
21282vqmovn_u16_(a)
21283}
21284
21285/// Unsigned saturating extract narrow
21286///
21287/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u32)
21288#[inline]
21289#[target_feature(enable = "neon")]
21290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21291#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
21292#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqxtn))]
21293#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21294#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21295pub unsafe fn vqmovn_u32(a: uint32x4_t) -> uint16x4_t {
21296    #[allow(improper_ctypes)]
21297    extern "unadjusted" {
21298        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v4i16")]
21299        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqxtn.v4i16")]
21300        fn vqmovn_u32_(a: uint32x4_t) -> uint16x4_t;
21301    }
21302vqmovn_u32_(a)
21303}
21304
21305/// Unsigned saturating extract narrow
21306///
21307/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovn_u64)
21308#[inline]
21309#[target_feature(enable = "neon")]
21310#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21311#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovn))]
21312#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqxtn))]
21313#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21314#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21315pub unsafe fn vqmovn_u64(a: uint64x2_t) -> uint32x2_t {
21316    #[allow(improper_ctypes)]
21317    extern "unadjusted" {
21318        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnu.v2i32")]
21319        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqxtn.v2i32")]
21320        fn vqmovn_u64_(a: uint64x2_t) -> uint32x2_t;
21321    }
21322vqmovn_u64_(a)
21323}
21324
21325/// Signed saturating extract unsigned narrow
21326///
21327/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s16)
21328#[inline]
21329#[target_feature(enable = "neon")]
21330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
21332#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqxtun))]
21333#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21334#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21335pub unsafe fn vqmovun_s16(a: int16x8_t) -> uint8x8_t {
21336    #[allow(improper_ctypes)]
21337    extern "unadjusted" {
21338        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v8i8")]
21339        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqxtun.v8i8")]
21340        fn vqmovun_s16_(a: int16x8_t) -> uint8x8_t;
21341    }
21342vqmovun_s16_(a)
21343}
21344
21345/// Signed saturating extract unsigned narrow
21346///
21347/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s32)
21348#[inline]
21349#[target_feature(enable = "neon")]
21350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
21352#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqxtun))]
21353#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21354#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21355pub unsafe fn vqmovun_s32(a: int32x4_t) -> uint16x4_t {
21356    #[allow(improper_ctypes)]
21357    extern "unadjusted" {
21358        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v4i16")]
21359        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqxtun.v4i16")]
21360        fn vqmovun_s32_(a: int32x4_t) -> uint16x4_t;
21361    }
21362vqmovun_s32_(a)
21363}
21364
21365/// Signed saturating extract unsigned narrow
21366///
21367/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqmovun_s64)
21368#[inline]
21369#[target_feature(enable = "neon")]
21370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21371#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqmovun))]
21372#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqxtun))]
21373#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21374#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21375pub unsafe fn vqmovun_s64(a: int64x2_t) -> uint32x2_t {
21376    #[allow(improper_ctypes)]
21377    extern "unadjusted" {
21378        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqmovnsu.v2i32")]
21379        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqxtun.v2i32")]
21380        fn vqmovun_s64_(a: int64x2_t) -> uint32x2_t;
21381    }
21382vqmovun_s64_(a)
21383}
21384
21385/// Signed saturating rounding doubling multiply returning high half
21386///
21387/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s16)
21388#[inline]
21389#[target_feature(enable = "neon")]
21390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
21392#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh))]
21393#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21394#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21395pub unsafe fn vqrdmulh_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
21396    #[allow(improper_ctypes)]
21397    extern "unadjusted" {
21398        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i16")]
21399        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrdmulh.v4i16")]
21400        fn vqrdmulh_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
21401    }
21402vqrdmulh_s16_(a, b)
21403}
21404
21405/// Signed saturating rounding doubling multiply returning high half
21406///
21407/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s16)
21408#[inline]
21409#[target_feature(enable = "neon")]
21410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
21412#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh))]
21413#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21414#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21415pub unsafe fn vqrdmulhq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
21416    #[allow(improper_ctypes)]
21417    extern "unadjusted" {
21418        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v8i16")]
21419        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrdmulh.v8i16")]
21420        fn vqrdmulhq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
21421    }
21422vqrdmulhq_s16_(a, b)
21423}
21424
21425/// Signed saturating rounding doubling multiply returning high half
21426///
21427/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_s32)
21428#[inline]
21429#[target_feature(enable = "neon")]
21430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21431#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
21432#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh))]
21433#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21434#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21435pub unsafe fn vqrdmulh_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
21436    #[allow(improper_ctypes)]
21437    extern "unadjusted" {
21438        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v2i32")]
21439        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrdmulh.v2i32")]
21440        fn vqrdmulh_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
21441    }
21442vqrdmulh_s32_(a, b)
21443}
21444
21445/// Signed saturating rounding doubling multiply returning high half
21446///
21447/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_s32)
21448#[inline]
21449#[target_feature(enable = "neon")]
21450#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21451#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
21452#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh))]
21453#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21454#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21455pub unsafe fn vqrdmulhq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
21456    #[allow(improper_ctypes)]
21457    extern "unadjusted" {
21458        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrdmulh.v4i32")]
21459        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrdmulh.v4i32")]
21460        fn vqrdmulhq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
21461    }
21462vqrdmulhq_s32_(a, b)
21463}
21464
21465/// Vector saturating rounding doubling multiply high with scalar
21466///
21467/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s16)
21468#[inline]
21469#[target_feature(enable = "neon")]
21470#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21471#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
21472#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh))]
21473#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21474#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21475pub unsafe fn vqrdmulh_n_s16(a: int16x4_t, b: i16) -> int16x4_t {
21476    vqrdmulh_s16(a, vdup_n_s16(b))
21477}
21478
21479/// Vector saturating rounding doubling multiply high with scalar
21480///
21481/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s16)
21482#[inline]
21483#[target_feature(enable = "neon")]
21484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
21486#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh))]
21487#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21488#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21489pub unsafe fn vqrdmulhq_n_s16(a: int16x8_t, b: i16) -> int16x8_t {
21490    vqrdmulhq_s16(a, vdupq_n_s16(b))
21491}
21492
21493/// Vector saturating rounding doubling multiply high with scalar
21494///
21495/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_n_s32)
21496#[inline]
21497#[target_feature(enable = "neon")]
21498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
21500#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh))]
21501#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21502#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21503pub unsafe fn vqrdmulh_n_s32(a: int32x2_t, b: i32) -> int32x2_t {
21504    vqrdmulh_s32(a, vdup_n_s32(b))
21505}
21506
21507/// Vector saturating rounding doubling multiply high with scalar
21508///
21509/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_n_s32)
21510#[inline]
21511#[target_feature(enable = "neon")]
21512#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21513#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh))]
21514#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh))]
21515#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21516#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21517pub unsafe fn vqrdmulhq_n_s32(a: int32x4_t, b: i32) -> int32x4_t {
21518    vqrdmulhq_s32(a, vdupq_n_s32(b))
21519}
21520
21521/// Vector rounding saturating doubling multiply high by scalar
21522///
21523/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s16)
21524#[inline]
21525#[target_feature(enable = "neon")]
21526#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21527#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
21528#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh, LANE = 1))]
21529#[rustc_legacy_const_generics(2)]
21530#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21531#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21532pub unsafe fn vqrdmulh_lane_s16<const LANE: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
21533    static_assert_uimm_bits!(LANE, 2);
21534    let b: int16x4_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
21535    vqrdmulh_s16(a, b)
21536}
21537
21538/// Vector rounding saturating doubling multiply high by scalar
21539///
21540/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s16)
21541#[inline]
21542#[target_feature(enable = "neon")]
21543#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21544#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
21545#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh, LANE = 1))]
21546#[rustc_legacy_const_generics(2)]
21547#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21548#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21549pub unsafe fn vqrdmulh_laneq_s16<const LANE: i32>(a: int16x4_t, b: int16x8_t) -> int16x4_t {
21550    static_assert_uimm_bits!(LANE, 3);
21551    let b: int16x4_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
21552    vqrdmulh_s16(a, b)
21553}
21554
21555/// Vector rounding saturating doubling multiply high by scalar
21556///
21557/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s16)
21558#[inline]
21559#[target_feature(enable = "neon")]
21560#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21561#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
21562#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh, LANE = 1))]
21563#[rustc_legacy_const_generics(2)]
21564#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21565#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21566pub unsafe fn vqrdmulhq_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int16x8_t {
21567    static_assert_uimm_bits!(LANE, 2);
21568    let b: int16x8_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
21569    vqrdmulhq_s16(a, b)
21570}
21571
21572/// Vector rounding saturating doubling multiply high by scalar
21573///
21574/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s16)
21575#[inline]
21576#[target_feature(enable = "neon")]
21577#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21578#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
21579#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh, LANE = 1))]
21580#[rustc_legacy_const_generics(2)]
21581#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21582#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21583pub unsafe fn vqrdmulhq_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
21584    static_assert_uimm_bits!(LANE, 3);
21585    let b: int16x8_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
21586    vqrdmulhq_s16(a, b)
21587}
21588
21589/// Vector rounding saturating doubling multiply high by scalar
21590///
21591/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_lane_s32)
21592#[inline]
21593#[target_feature(enable = "neon")]
21594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
21596#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh, LANE = 1))]
21597#[rustc_legacy_const_generics(2)]
21598#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21599#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21600pub unsafe fn vqrdmulh_lane_s32<const LANE: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
21601    static_assert_uimm_bits!(LANE, 1);
21602    let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
21603    vqrdmulh_s32(a, b)
21604}
21605
21606/// Vector rounding saturating doubling multiply high by scalar
21607///
21608/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulh_laneq_s32)
21609#[inline]
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(vqrdmulh, LANE = 1))]
21613#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh, LANE = 1))]
21614#[rustc_legacy_const_generics(2)]
21615#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21616#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21617pub unsafe fn vqrdmulh_laneq_s32<const LANE: i32>(a: int32x2_t, b: int32x4_t) -> int32x2_t {
21618    static_assert_uimm_bits!(LANE, 2);
21619    let b: int32x2_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32]);
21620    vqrdmulh_s32(a, b)
21621}
21622
21623/// Vector rounding saturating doubling multiply high by scalar
21624///
21625/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_lane_s32)
21626#[inline]
21627#[target_feature(enable = "neon")]
21628#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21629#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
21630#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh, LANE = 1))]
21631#[rustc_legacy_const_generics(2)]
21632#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21633#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21634pub unsafe fn vqrdmulhq_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int32x4_t {
21635    static_assert_uimm_bits!(LANE, 1);
21636    let b: int32x4_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
21637    vqrdmulhq_s32(a, b)
21638}
21639
21640/// Vector rounding saturating doubling multiply high by scalar
21641///
21642/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrdmulhq_laneq_s32)
21643#[inline]
21644#[target_feature(enable = "neon")]
21645#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21646#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrdmulh, LANE = 1))]
21647#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrdmulh, LANE = 1))]
21648#[rustc_legacy_const_generics(2)]
21649#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21650#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21651pub unsafe fn vqrdmulhq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
21652    static_assert_uimm_bits!(LANE, 2);
21653    let b: int32x4_t = simd_shuffle!(b, b, [LANE as u32, LANE as u32, LANE as u32, LANE as u32]);
21654    vqrdmulhq_s32(a, b)
21655}
21656
21657/// Signed saturating rounding shift left
21658///
21659/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s8)
21660#[inline]
21661#[target_feature(enable = "neon")]
21662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21664#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrshl))]
21665#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21666#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21667pub unsafe fn vqrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
21668    #[allow(improper_ctypes)]
21669    extern "unadjusted" {
21670        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i8")]
21671        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshl.v8i8")]
21672        fn vqrshl_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
21673    }
21674vqrshl_s8_(a, b)
21675}
21676
21677/// Signed saturating rounding shift left
21678///
21679/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s8)
21680#[inline]
21681#[target_feature(enable = "neon")]
21682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21683#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21684#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrshl))]
21685#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21686#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21687pub unsafe fn vqrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
21688    #[allow(improper_ctypes)]
21689    extern "unadjusted" {
21690        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v16i8")]
21691        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshl.v16i8")]
21692        fn vqrshlq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
21693    }
21694vqrshlq_s8_(a, b)
21695}
21696
21697/// Signed saturating rounding shift left
21698///
21699/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s16)
21700#[inline]
21701#[target_feature(enable = "neon")]
21702#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21703#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21704#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrshl))]
21705#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21706#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21707pub unsafe fn vqrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
21708    #[allow(improper_ctypes)]
21709    extern "unadjusted" {
21710        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i16")]
21711        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshl.v4i16")]
21712        fn vqrshl_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
21713    }
21714vqrshl_s16_(a, b)
21715}
21716
21717/// Signed saturating rounding shift left
21718///
21719/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s16)
21720#[inline]
21721#[target_feature(enable = "neon")]
21722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21723#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21724#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrshl))]
21725#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21726#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21727pub unsafe fn vqrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
21728    #[allow(improper_ctypes)]
21729    extern "unadjusted" {
21730        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v8i16")]
21731        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshl.v8i16")]
21732        fn vqrshlq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
21733    }
21734vqrshlq_s16_(a, b)
21735}
21736
21737/// Signed saturating rounding shift left
21738///
21739/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s32)
21740#[inline]
21741#[target_feature(enable = "neon")]
21742#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21743#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21744#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrshl))]
21745#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21746#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21747pub unsafe fn vqrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
21748    #[allow(improper_ctypes)]
21749    extern "unadjusted" {
21750        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i32")]
21751        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshl.v2i32")]
21752        fn vqrshl_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
21753    }
21754vqrshl_s32_(a, b)
21755}
21756
21757/// Signed saturating rounding shift left
21758///
21759/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s32)
21760#[inline]
21761#[target_feature(enable = "neon")]
21762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21763#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21764#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrshl))]
21765#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21766#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21767pub unsafe fn vqrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
21768    #[allow(improper_ctypes)]
21769    extern "unadjusted" {
21770        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v4i32")]
21771        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshl.v4i32")]
21772        fn vqrshlq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
21773    }
21774vqrshlq_s32_(a, b)
21775}
21776
21777/// Signed saturating rounding shift left
21778///
21779/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_s64)
21780#[inline]
21781#[target_feature(enable = "neon")]
21782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21784#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrshl))]
21785#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21786#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21787pub unsafe fn vqrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
21788    #[allow(improper_ctypes)]
21789    extern "unadjusted" {
21790        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v1i64")]
21791        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshl.v1i64")]
21792        fn vqrshl_s64_(a: int64x1_t, b: int64x1_t) -> int64x1_t;
21793    }
21794vqrshl_s64_(a, b)
21795}
21796
21797/// Signed saturating rounding shift left
21798///
21799/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_s64)
21800#[inline]
21801#[target_feature(enable = "neon")]
21802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21803#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21804#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqrshl))]
21805#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21806#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21807pub unsafe fn vqrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
21808    #[allow(improper_ctypes)]
21809    extern "unadjusted" {
21810        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshifts.v2i64")]
21811        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshl.v2i64")]
21812        fn vqrshlq_s64_(a: int64x2_t, b: int64x2_t) -> int64x2_t;
21813    }
21814vqrshlq_s64_(a, b)
21815}
21816
21817/// Unsigned signed saturating rounding shift left
21818///
21819/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u8)
21820#[inline]
21821#[target_feature(enable = "neon")]
21822#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21824#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqrshl))]
21825#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21826#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21827pub unsafe fn vqrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
21828    #[allow(improper_ctypes)]
21829    extern "unadjusted" {
21830        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i8")]
21831        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshl.v8i8")]
21832        fn vqrshl_u8_(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
21833    }
21834vqrshl_u8_(a, b)
21835}
21836
21837/// Unsigned signed saturating rounding shift left
21838///
21839/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u8)
21840#[inline]
21841#[target_feature(enable = "neon")]
21842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21844#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqrshl))]
21845#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21846#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21847pub unsafe fn vqrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
21848    #[allow(improper_ctypes)]
21849    extern "unadjusted" {
21850        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v16i8")]
21851        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshl.v16i8")]
21852        fn vqrshlq_u8_(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
21853    }
21854vqrshlq_u8_(a, b)
21855}
21856
21857/// Unsigned signed saturating rounding shift left
21858///
21859/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u16)
21860#[inline]
21861#[target_feature(enable = "neon")]
21862#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21863#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21864#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqrshl))]
21865#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21866#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21867pub unsafe fn vqrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
21868    #[allow(improper_ctypes)]
21869    extern "unadjusted" {
21870        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i16")]
21871        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshl.v4i16")]
21872        fn vqrshl_u16_(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
21873    }
21874vqrshl_u16_(a, b)
21875}
21876
21877/// Unsigned signed saturating rounding shift left
21878///
21879/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u16)
21880#[inline]
21881#[target_feature(enable = "neon")]
21882#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21883#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21884#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqrshl))]
21885#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21886#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21887pub unsafe fn vqrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
21888    #[allow(improper_ctypes)]
21889    extern "unadjusted" {
21890        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v8i16")]
21891        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshl.v8i16")]
21892        fn vqrshlq_u16_(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
21893    }
21894vqrshlq_u16_(a, b)
21895}
21896
21897/// Unsigned signed saturating rounding shift left
21898///
21899/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u32)
21900#[inline]
21901#[target_feature(enable = "neon")]
21902#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21903#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21904#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqrshl))]
21905#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21906#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21907pub unsafe fn vqrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
21908    #[allow(improper_ctypes)]
21909    extern "unadjusted" {
21910        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i32")]
21911        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshl.v2i32")]
21912        fn vqrshl_u32_(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
21913    }
21914vqrshl_u32_(a, b)
21915}
21916
21917/// Unsigned signed saturating rounding shift left
21918///
21919/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u32)
21920#[inline]
21921#[target_feature(enable = "neon")]
21922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21924#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqrshl))]
21925#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21926#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21927pub unsafe fn vqrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
21928    #[allow(improper_ctypes)]
21929    extern "unadjusted" {
21930        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v4i32")]
21931        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshl.v4i32")]
21932        fn vqrshlq_u32_(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
21933    }
21934vqrshlq_u32_(a, b)
21935}
21936
21937/// Unsigned signed saturating rounding shift left
21938///
21939/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshl_u64)
21940#[inline]
21941#[target_feature(enable = "neon")]
21942#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21943#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21944#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqrshl))]
21945#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21946#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21947pub unsafe fn vqrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
21948    #[allow(improper_ctypes)]
21949    extern "unadjusted" {
21950        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v1i64")]
21951        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshl.v1i64")]
21952        fn vqrshl_u64_(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
21953    }
21954vqrshl_u64_(a, b)
21955}
21956
21957/// Unsigned signed saturating rounding shift left
21958///
21959/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshlq_u64)
21960#[inline]
21961#[target_feature(enable = "neon")]
21962#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
21963#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqrshl))]
21964#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqrshl))]
21965#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
21966#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
21967pub unsafe fn vqrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
21968    #[allow(improper_ctypes)]
21969    extern "unadjusted" {
21970        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftu.v2i64")]
21971        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshl.v2i64")]
21972        fn vqrshlq_u64_(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
21973    }
21974vqrshlq_u64_(a, b)
21975}
21976
21977/// Signed saturating rounded shift right narrow
21978///
21979/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)
21980#[inline]
21981#[cfg(target_arch = "arm")]
21982#[target_feature(enable = "neon,v7")]
21983#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
21984#[rustc_legacy_const_generics(1)]
21985#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
21986pub unsafe fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
21987    static_assert!(N >= 1 && N <= 8);
21988    #[allow(improper_ctypes)]
21989    extern "unadjusted" {
21990        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v8i8")]
21991        fn vqrshrn_n_s16_(a: int16x8_t, n: int16x8_t) -> int8x8_t;
21992    }
21993vqrshrn_n_s16_(a, const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) })
21994}
21995
21996/// Signed saturating rounded shift right narrow
21997///
21998/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s16)
21999#[inline]
22000#[cfg(not(target_arch = "arm"))]
22001#[target_feature(enable = "neon")]
22002#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
22003#[rustc_legacy_const_generics(1)]
22004#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22005pub unsafe fn vqrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
22006    static_assert!(N >= 1 && N <= 8);
22007    #[allow(improper_ctypes)]
22008    extern "unadjusted" {
22009        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshrn.v8i8")]
22010        fn vqrshrn_n_s16_(a: int16x8_t, n: i32) -> int8x8_t;
22011    }
22012vqrshrn_n_s16_(a, N)
22013}
22014
22015/// Signed saturating rounded shift right narrow
22016///
22017/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)
22018#[inline]
22019#[cfg(target_arch = "arm")]
22020#[target_feature(enable = "neon,v7")]
22021#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
22022#[rustc_legacy_const_generics(1)]
22023#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22024pub unsafe fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
22025    static_assert!(N >= 1 && N <= 16);
22026    #[allow(improper_ctypes)]
22027    extern "unadjusted" {
22028        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v4i16")]
22029        fn vqrshrn_n_s32_(a: int32x4_t, n: int32x4_t) -> int16x4_t;
22030    }
22031vqrshrn_n_s32_(a, const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) })
22032}
22033
22034/// Signed saturating rounded shift right narrow
22035///
22036/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s32)
22037#[inline]
22038#[cfg(not(target_arch = "arm"))]
22039#[target_feature(enable = "neon")]
22040#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
22041#[rustc_legacy_const_generics(1)]
22042#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22043pub unsafe fn vqrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
22044    static_assert!(N >= 1 && N <= 16);
22045    #[allow(improper_ctypes)]
22046    extern "unadjusted" {
22047        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshrn.v4i16")]
22048        fn vqrshrn_n_s32_(a: int32x4_t, n: i32) -> int16x4_t;
22049    }
22050vqrshrn_n_s32_(a, N)
22051}
22052
22053/// Signed saturating rounded shift right narrow
22054///
22055/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)
22056#[inline]
22057#[cfg(target_arch = "arm")]
22058#[target_feature(enable = "neon,v7")]
22059#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
22060#[rustc_legacy_const_generics(1)]
22061#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22062pub unsafe fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
22063    static_assert!(N >= 1 && N <= 32);
22064    #[allow(improper_ctypes)]
22065    extern "unadjusted" {
22066        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftns.v2i32")]
22067        fn vqrshrn_n_s64_(a: int64x2_t, n: int64x2_t) -> int32x2_t;
22068    }
22069vqrshrn_n_s64_(a, const { int64x2_t([-N as i64, -N as i64]) })
22070}
22071
22072/// Signed saturating rounded shift right narrow
22073///
22074/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_s64)
22075#[inline]
22076#[cfg(not(target_arch = "arm"))]
22077#[target_feature(enable = "neon")]
22078#[cfg_attr(test, assert_instr(sqrshrn, N = 2))]
22079#[rustc_legacy_const_generics(1)]
22080#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22081pub unsafe fn vqrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
22082    static_assert!(N >= 1 && N <= 32);
22083    #[allow(improper_ctypes)]
22084    extern "unadjusted" {
22085        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshrn.v2i32")]
22086        fn vqrshrn_n_s64_(a: int64x2_t, n: i32) -> int32x2_t;
22087    }
22088vqrshrn_n_s64_(a, N)
22089}
22090
22091/// Unsigned signed saturating rounded shift right narrow
22092///
22093/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)
22094#[inline]
22095#[cfg(target_arch = "arm")]
22096#[target_feature(enable = "neon,v7")]
22097#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
22098#[rustc_legacy_const_generics(1)]
22099#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22100pub unsafe fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
22101    static_assert!(N >= 1 && N <= 8);
22102    #[allow(improper_ctypes)]
22103    extern "unadjusted" {
22104        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v8i8")]
22105        fn vqrshrn_n_u16_(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
22106    }
22107vqrshrn_n_u16_(a, const { uint16x8_t([-N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16]) })
22108}
22109
22110/// Unsigned signed saturating rounded shift right narrow
22111///
22112/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u16)
22113#[inline]
22114#[cfg(not(target_arch = "arm"))]
22115#[target_feature(enable = "neon")]
22116#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
22117#[rustc_legacy_const_generics(1)]
22118#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22119pub unsafe fn vqrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
22120    static_assert!(N >= 1 && N <= 8);
22121    #[allow(improper_ctypes)]
22122    extern "unadjusted" {
22123        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshrn.v8i8")]
22124        fn vqrshrn_n_u16_(a: uint16x8_t, n: i32) -> uint8x8_t;
22125    }
22126vqrshrn_n_u16_(a, N)
22127}
22128
22129/// Unsigned signed saturating rounded shift right narrow
22130///
22131/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)
22132#[inline]
22133#[cfg(target_arch = "arm")]
22134#[target_feature(enable = "neon,v7")]
22135#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
22136#[rustc_legacy_const_generics(1)]
22137#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22138pub unsafe fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
22139    static_assert!(N >= 1 && N <= 16);
22140    #[allow(improper_ctypes)]
22141    extern "unadjusted" {
22142        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v4i16")]
22143        fn vqrshrn_n_u32_(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
22144    }
22145vqrshrn_n_u32_(a, const { uint32x4_t([-N as u32, -N as u32, -N as u32, -N as u32]) })
22146}
22147
22148/// Unsigned signed saturating rounded shift right narrow
22149///
22150/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u32)
22151#[inline]
22152#[cfg(not(target_arch = "arm"))]
22153#[target_feature(enable = "neon")]
22154#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
22155#[rustc_legacy_const_generics(1)]
22156#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22157pub unsafe fn vqrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
22158    static_assert!(N >= 1 && N <= 16);
22159    #[allow(improper_ctypes)]
22160    extern "unadjusted" {
22161        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshrn.v4i16")]
22162        fn vqrshrn_n_u32_(a: uint32x4_t, n: i32) -> uint16x4_t;
22163    }
22164vqrshrn_n_u32_(a, N)
22165}
22166
22167/// Unsigned signed saturating rounded shift right narrow
22168///
22169/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)
22170#[inline]
22171#[cfg(target_arch = "arm")]
22172#[target_feature(enable = "neon,v7")]
22173#[cfg_attr(test, assert_instr(vqrshrn, N = 2))]
22174#[rustc_legacy_const_generics(1)]
22175#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22176pub unsafe fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
22177    static_assert!(N >= 1 && N <= 32);
22178    #[allow(improper_ctypes)]
22179    extern "unadjusted" {
22180        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnu.v2i32")]
22181        fn vqrshrn_n_u64_(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
22182    }
22183vqrshrn_n_u64_(a, const { uint64x2_t([-N as u64, -N as u64]) })
22184}
22185
22186/// Unsigned signed saturating rounded shift right narrow
22187///
22188/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrn_n_u64)
22189#[inline]
22190#[cfg(not(target_arch = "arm"))]
22191#[target_feature(enable = "neon")]
22192#[cfg_attr(test, assert_instr(uqrshrn, N = 2))]
22193#[rustc_legacy_const_generics(1)]
22194#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22195pub unsafe fn vqrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
22196    static_assert!(N >= 1 && N <= 32);
22197    #[allow(improper_ctypes)]
22198    extern "unadjusted" {
22199        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqrshrn.v2i32")]
22200        fn vqrshrn_n_u64_(a: uint64x2_t, n: i32) -> uint32x2_t;
22201    }
22202vqrshrn_n_u64_(a, N)
22203}
22204
22205/// Signed saturating rounded shift right unsigned narrow
22206///
22207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)
22208#[inline]
22209#[cfg(target_arch = "arm")]
22210#[target_feature(enable = "neon,v7")]
22211#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
22212#[rustc_legacy_const_generics(1)]
22213#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22214pub unsafe fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
22215    static_assert!(N >= 1 && N <= 8);
22216    #[allow(improper_ctypes)]
22217    extern "unadjusted" {
22218        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v8i8")]
22219        fn vqrshrun_n_s16_(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
22220    }
22221vqrshrun_n_s16_(a, const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) })
22222}
22223
22224/// Signed saturating rounded shift right unsigned narrow
22225///
22226/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s16)
22227#[inline]
22228#[cfg(not(target_arch = "arm"))]
22229#[target_feature(enable = "neon")]
22230#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
22231#[rustc_legacy_const_generics(1)]
22232#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22233pub unsafe fn vqrshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
22234    static_assert!(N >= 1 && N <= 8);
22235    #[allow(improper_ctypes)]
22236    extern "unadjusted" {
22237        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshrun.v8i8")]
22238        fn vqrshrun_n_s16_(a: int16x8_t, n: i32) -> uint8x8_t;
22239    }
22240vqrshrun_n_s16_(a, N)
22241}
22242
22243/// Signed saturating rounded shift right unsigned narrow
22244///
22245/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)
22246#[inline]
22247#[cfg(target_arch = "arm")]
22248#[target_feature(enable = "neon,v7")]
22249#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
22250#[rustc_legacy_const_generics(1)]
22251#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22252pub unsafe fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
22253    static_assert!(N >= 1 && N <= 16);
22254    #[allow(improper_ctypes)]
22255    extern "unadjusted" {
22256        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v4i16")]
22257        fn vqrshrun_n_s32_(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
22258    }
22259vqrshrun_n_s32_(a, const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) })
22260}
22261
22262/// Signed saturating rounded shift right unsigned narrow
22263///
22264/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s32)
22265#[inline]
22266#[cfg(not(target_arch = "arm"))]
22267#[target_feature(enable = "neon")]
22268#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
22269#[rustc_legacy_const_generics(1)]
22270#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22271pub unsafe fn vqrshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
22272    static_assert!(N >= 1 && N <= 16);
22273    #[allow(improper_ctypes)]
22274    extern "unadjusted" {
22275        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshrun.v4i16")]
22276        fn vqrshrun_n_s32_(a: int32x4_t, n: i32) -> uint16x4_t;
22277    }
22278vqrshrun_n_s32_(a, N)
22279}
22280
22281/// Signed saturating rounded shift right unsigned narrow
22282///
22283/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)
22284#[inline]
22285#[cfg(target_arch = "arm")]
22286#[target_feature(enable = "neon,v7")]
22287#[cfg_attr(test, assert_instr(vqrshrun, N = 2))]
22288#[rustc_legacy_const_generics(1)]
22289#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22290pub unsafe fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
22291    static_assert!(N >= 1 && N <= 32);
22292    #[allow(improper_ctypes)]
22293    extern "unadjusted" {
22294        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqrshiftnsu.v2i32")]
22295        fn vqrshrun_n_s64_(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
22296    }
22297vqrshrun_n_s64_(a, const { int64x2_t([-N as i64, -N as i64]) })
22298}
22299
22300/// Signed saturating rounded shift right unsigned narrow
22301///
22302/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqrshrun_n_s64)
22303#[inline]
22304#[cfg(not(target_arch = "arm"))]
22305#[target_feature(enable = "neon")]
22306#[cfg_attr(test, assert_instr(sqrshrun, N = 2))]
22307#[rustc_legacy_const_generics(1)]
22308#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22309pub unsafe fn vqrshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
22310    static_assert!(N >= 1 && N <= 32);
22311    #[allow(improper_ctypes)]
22312    extern "unadjusted" {
22313        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqrshrun.v2i32")]
22314        fn vqrshrun_n_s64_(a: int64x2_t, n: i32) -> uint32x2_t;
22315    }
22316vqrshrun_n_s64_(a, N)
22317}
22318
22319/// Signed saturating shift left
22320///
22321/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s8)
22322#[inline]
22323#[target_feature(enable = "neon")]
22324#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22325#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22326#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl))]
22327#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22328#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22329pub unsafe fn vqshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
22330    #[allow(improper_ctypes)]
22331    extern "unadjusted" {
22332        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i8")]
22333        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshl.v8i8")]
22334        fn vqshl_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
22335    }
22336vqshl_s8_(a, b)
22337}
22338
22339/// Signed saturating shift left
22340///
22341/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s8)
22342#[inline]
22343#[target_feature(enable = "neon")]
22344#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22345#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22346#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl))]
22347#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22348#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22349pub unsafe fn vqshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
22350    #[allow(improper_ctypes)]
22351    extern "unadjusted" {
22352        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v16i8")]
22353        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshl.v16i8")]
22354        fn vqshlq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
22355    }
22356vqshlq_s8_(a, b)
22357}
22358
22359/// Signed saturating shift left
22360///
22361/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s16)
22362#[inline]
22363#[target_feature(enable = "neon")]
22364#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22365#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22366#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl))]
22367#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22368#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22369pub unsafe fn vqshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
22370    #[allow(improper_ctypes)]
22371    extern "unadjusted" {
22372        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i16")]
22373        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshl.v4i16")]
22374        fn vqshl_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
22375    }
22376vqshl_s16_(a, b)
22377}
22378
22379/// Signed saturating shift left
22380///
22381/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s16)
22382#[inline]
22383#[target_feature(enable = "neon")]
22384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22386#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl))]
22387#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22388#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22389pub unsafe fn vqshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
22390    #[allow(improper_ctypes)]
22391    extern "unadjusted" {
22392        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v8i16")]
22393        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshl.v8i16")]
22394        fn vqshlq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
22395    }
22396vqshlq_s16_(a, b)
22397}
22398
22399/// Signed saturating shift left
22400///
22401/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s32)
22402#[inline]
22403#[target_feature(enable = "neon")]
22404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22406#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl))]
22407#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22408#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22409pub unsafe fn vqshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
22410    #[allow(improper_ctypes)]
22411    extern "unadjusted" {
22412        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i32")]
22413        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshl.v2i32")]
22414        fn vqshl_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
22415    }
22416vqshl_s32_(a, b)
22417}
22418
22419/// Signed saturating shift left
22420///
22421/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s32)
22422#[inline]
22423#[target_feature(enable = "neon")]
22424#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22425#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22426#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl))]
22427#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22428#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22429pub unsafe fn vqshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
22430    #[allow(improper_ctypes)]
22431    extern "unadjusted" {
22432        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v4i32")]
22433        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshl.v4i32")]
22434        fn vqshlq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
22435    }
22436vqshlq_s32_(a, b)
22437}
22438
22439/// Signed saturating shift left
22440///
22441/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_s64)
22442#[inline]
22443#[target_feature(enable = "neon")]
22444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22446#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl))]
22447#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22448#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22449pub unsafe fn vqshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
22450    #[allow(improper_ctypes)]
22451    extern "unadjusted" {
22452        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v1i64")]
22453        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshl.v1i64")]
22454        fn vqshl_s64_(a: int64x1_t, b: int64x1_t) -> int64x1_t;
22455    }
22456vqshl_s64_(a, b)
22457}
22458
22459/// Signed saturating shift left
22460///
22461/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_s64)
22462#[inline]
22463#[target_feature(enable = "neon")]
22464#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22465#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22466#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl))]
22467#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22468#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22469pub unsafe fn vqshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
22470    #[allow(improper_ctypes)]
22471    extern "unadjusted" {
22472        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshifts.v2i64")]
22473        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshl.v2i64")]
22474        fn vqshlq_s64_(a: int64x2_t, b: int64x2_t) -> int64x2_t;
22475    }
22476vqshlq_s64_(a, b)
22477}
22478
22479/// Unsigned saturating shift left
22480///
22481/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u8)
22482#[inline]
22483#[target_feature(enable = "neon")]
22484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22486#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl))]
22487#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22488#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22489pub unsafe fn vqshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
22490    #[allow(improper_ctypes)]
22491    extern "unadjusted" {
22492        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i8")]
22493        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshl.v8i8")]
22494        fn vqshl_u8_(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
22495    }
22496vqshl_u8_(a, b)
22497}
22498
22499/// Unsigned saturating shift left
22500///
22501/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u8)
22502#[inline]
22503#[target_feature(enable = "neon")]
22504#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22505#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22506#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl))]
22507#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22508#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22509pub unsafe fn vqshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
22510    #[allow(improper_ctypes)]
22511    extern "unadjusted" {
22512        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v16i8")]
22513        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshl.v16i8")]
22514        fn vqshlq_u8_(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
22515    }
22516vqshlq_u8_(a, b)
22517}
22518
22519/// Unsigned saturating shift left
22520///
22521/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u16)
22522#[inline]
22523#[target_feature(enable = "neon")]
22524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22525#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22526#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl))]
22527#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22528#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22529pub unsafe fn vqshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
22530    #[allow(improper_ctypes)]
22531    extern "unadjusted" {
22532        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i16")]
22533        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshl.v4i16")]
22534        fn vqshl_u16_(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
22535    }
22536vqshl_u16_(a, b)
22537}
22538
22539/// Unsigned saturating shift left
22540///
22541/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u16)
22542#[inline]
22543#[target_feature(enable = "neon")]
22544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22546#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl))]
22547#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22548#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22549pub unsafe fn vqshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
22550    #[allow(improper_ctypes)]
22551    extern "unadjusted" {
22552        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v8i16")]
22553        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshl.v8i16")]
22554        fn vqshlq_u16_(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
22555    }
22556vqshlq_u16_(a, b)
22557}
22558
22559/// Unsigned saturating shift left
22560///
22561/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u32)
22562#[inline]
22563#[target_feature(enable = "neon")]
22564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22565#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22566#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl))]
22567#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22568#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22569pub unsafe fn vqshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
22570    #[allow(improper_ctypes)]
22571    extern "unadjusted" {
22572        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i32")]
22573        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshl.v2i32")]
22574        fn vqshl_u32_(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
22575    }
22576vqshl_u32_(a, b)
22577}
22578
22579/// Unsigned saturating shift left
22580///
22581/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u32)
22582#[inline]
22583#[target_feature(enable = "neon")]
22584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22585#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22586#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl))]
22587#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22588#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22589pub unsafe fn vqshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
22590    #[allow(improper_ctypes)]
22591    extern "unadjusted" {
22592        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v4i32")]
22593        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshl.v4i32")]
22594        fn vqshlq_u32_(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
22595    }
22596vqshlq_u32_(a, b)
22597}
22598
22599/// Unsigned saturating shift left
22600///
22601/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_u64)
22602#[inline]
22603#[target_feature(enable = "neon")]
22604#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22605#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22606#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl))]
22607#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22608#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22609pub unsafe fn vqshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
22610    #[allow(improper_ctypes)]
22611    extern "unadjusted" {
22612        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v1i64")]
22613        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshl.v1i64")]
22614        fn vqshl_u64_(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
22615    }
22616vqshl_u64_(a, b)
22617}
22618
22619/// Unsigned saturating shift left
22620///
22621/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_u64)
22622#[inline]
22623#[target_feature(enable = "neon")]
22624#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22625#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl))]
22626#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl))]
22627#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22628#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22629pub unsafe fn vqshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
22630    #[allow(improper_ctypes)]
22631    extern "unadjusted" {
22632        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftu.v2i64")]
22633        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshl.v2i64")]
22634        fn vqshlq_u64_(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
22635    }
22636vqshlq_u64_(a, b)
22637}
22638
22639/// Signed saturating shift left
22640///
22641/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s8)
22642#[inline]
22643#[target_feature(enable = "neon")]
22644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22646#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl, N = 2))]
22647#[rustc_legacy_const_generics(1)]
22648#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22649#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22650pub unsafe fn vqshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
22651    static_assert_uimm_bits!(N, 3);
22652    vqshl_s8(a, vdup_n_s8(N as _))
22653}
22654
22655/// Signed saturating shift left
22656///
22657/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s8)
22658#[inline]
22659#[target_feature(enable = "neon")]
22660#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22661#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22662#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl, N = 2))]
22663#[rustc_legacy_const_generics(1)]
22664#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22665#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22666pub unsafe fn vqshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
22667    static_assert_uimm_bits!(N, 3);
22668    vqshlq_s8(a, vdupq_n_s8(N as _))
22669}
22670
22671/// Signed saturating shift left
22672///
22673/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s16)
22674#[inline]
22675#[target_feature(enable = "neon")]
22676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22678#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl, N = 2))]
22679#[rustc_legacy_const_generics(1)]
22680#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22681#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22682pub unsafe fn vqshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
22683    static_assert_uimm_bits!(N, 4);
22684    vqshl_s16(a, vdup_n_s16(N as _))
22685}
22686
22687/// Signed saturating shift left
22688///
22689/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s16)
22690#[inline]
22691#[target_feature(enable = "neon")]
22692#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22693#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22694#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl, N = 2))]
22695#[rustc_legacy_const_generics(1)]
22696#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22697#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22698pub unsafe fn vqshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
22699    static_assert_uimm_bits!(N, 4);
22700    vqshlq_s16(a, vdupq_n_s16(N as _))
22701}
22702
22703/// Signed saturating shift left
22704///
22705/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s32)
22706#[inline]
22707#[target_feature(enable = "neon")]
22708#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22709#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22710#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl, N = 2))]
22711#[rustc_legacy_const_generics(1)]
22712#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22713#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22714pub unsafe fn vqshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
22715    static_assert_uimm_bits!(N, 5);
22716    vqshl_s32(a, vdup_n_s32(N as _))
22717}
22718
22719/// Signed saturating shift left
22720///
22721/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s32)
22722#[inline]
22723#[target_feature(enable = "neon")]
22724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22726#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl, N = 2))]
22727#[rustc_legacy_const_generics(1)]
22728#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22729#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22730pub unsafe fn vqshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
22731    static_assert_uimm_bits!(N, 5);
22732    vqshlq_s32(a, vdupq_n_s32(N as _))
22733}
22734
22735/// Signed saturating shift left
22736///
22737/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_s64)
22738#[inline]
22739#[target_feature(enable = "neon")]
22740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22741#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22742#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl, N = 2))]
22743#[rustc_legacy_const_generics(1)]
22744#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22745#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22746pub unsafe fn vqshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
22747    static_assert_uimm_bits!(N, 6);
22748    vqshl_s64(a, vdup_n_s64(N as _))
22749}
22750
22751/// Signed saturating shift left
22752///
22753/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_s64)
22754#[inline]
22755#[target_feature(enable = "neon")]
22756#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22757#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22758#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqshl, N = 2))]
22759#[rustc_legacy_const_generics(1)]
22760#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22761#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22762pub unsafe fn vqshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
22763    static_assert_uimm_bits!(N, 6);
22764    vqshlq_s64(a, vdupq_n_s64(N as _))
22765}
22766
22767/// Unsigned saturating shift left
22768///
22769/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u8)
22770#[inline]
22771#[target_feature(enable = "neon")]
22772#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22773#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22774#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl, N = 2))]
22775#[rustc_legacy_const_generics(1)]
22776#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22777#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22778pub unsafe fn vqshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
22779    static_assert_uimm_bits!(N, 3);
22780    vqshl_u8(a, vdup_n_s8(N as _))
22781}
22782
22783/// Unsigned saturating shift left
22784///
22785/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u8)
22786#[inline]
22787#[target_feature(enable = "neon")]
22788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22790#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl, N = 2))]
22791#[rustc_legacy_const_generics(1)]
22792#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22793#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22794pub unsafe fn vqshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
22795    static_assert_uimm_bits!(N, 3);
22796    vqshlq_u8(a, vdupq_n_s8(N as _))
22797}
22798
22799/// Unsigned saturating shift left
22800///
22801/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u16)
22802#[inline]
22803#[target_feature(enable = "neon")]
22804#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22805#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22806#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl, N = 2))]
22807#[rustc_legacy_const_generics(1)]
22808#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22809#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22810pub unsafe fn vqshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
22811    static_assert_uimm_bits!(N, 4);
22812    vqshl_u16(a, vdup_n_s16(N as _))
22813}
22814
22815/// Unsigned saturating shift left
22816///
22817/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u16)
22818#[inline]
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(vqshl, N = 2))]
22822#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl, N = 2))]
22823#[rustc_legacy_const_generics(1)]
22824#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22825#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22826pub unsafe fn vqshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
22827    static_assert_uimm_bits!(N, 4);
22828    vqshlq_u16(a, vdupq_n_s16(N as _))
22829}
22830
22831/// Unsigned saturating shift left
22832///
22833/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u32)
22834#[inline]
22835#[target_feature(enable = "neon")]
22836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22837#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22838#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl, N = 2))]
22839#[rustc_legacy_const_generics(1)]
22840#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22841#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22842pub unsafe fn vqshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
22843    static_assert_uimm_bits!(N, 5);
22844    vqshl_u32(a, vdup_n_s32(N as _))
22845}
22846
22847/// Unsigned saturating shift left
22848///
22849/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u32)
22850#[inline]
22851#[target_feature(enable = "neon")]
22852#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22854#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl, N = 2))]
22855#[rustc_legacy_const_generics(1)]
22856#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22857#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22858pub unsafe fn vqshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
22859    static_assert_uimm_bits!(N, 5);
22860    vqshlq_u32(a, vdupq_n_s32(N as _))
22861}
22862
22863/// Unsigned saturating shift left
22864///
22865/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshl_n_u64)
22866#[inline]
22867#[target_feature(enable = "neon")]
22868#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22869#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22870#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl, N = 2))]
22871#[rustc_legacy_const_generics(1)]
22872#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22873#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22874pub unsafe fn vqshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
22875    static_assert_uimm_bits!(N, 6);
22876    vqshl_u64(a, vdup_n_s64(N as _))
22877}
22878
22879/// Unsigned saturating shift left
22880///
22881/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlq_n_u64)
22882#[inline]
22883#[target_feature(enable = "neon")]
22884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
22885#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vqshl, N = 2))]
22886#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uqshl, N = 2))]
22887#[rustc_legacy_const_generics(1)]
22888#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
22889#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
22890pub unsafe fn vqshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
22891    static_assert_uimm_bits!(N, 6);
22892    vqshlq_u64(a, vdupq_n_s64(N as _))
22893}
22894
22895/// Signed saturating shift left unsigned
22896///
22897/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)
22898#[inline]
22899#[cfg(target_arch = "arm")]
22900#[target_feature(enable = "neon,v7")]
22901#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
22902#[rustc_legacy_const_generics(1)]
22903#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22904pub unsafe fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
22905    static_assert_uimm_bits!(N, 3);
22906    #[allow(improper_ctypes)]
22907    extern "unadjusted" {
22908        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i8")]
22909        fn vqshlu_n_s8_(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
22910    }
22911vqshlu_n_s8_(a, const { int8x8_t([N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8]) })
22912}
22913
22914/// Signed saturating shift left unsigned
22915///
22916/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s8)
22917#[inline]
22918#[cfg(not(target_arch = "arm"))]
22919#[target_feature(enable = "neon")]
22920#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
22921#[rustc_legacy_const_generics(1)]
22922#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22923pub unsafe fn vqshlu_n_s8<const N: i32>(a: int8x8_t) -> uint8x8_t {
22924    static_assert_uimm_bits!(N, 3);
22925    #[allow(improper_ctypes)]
22926    extern "unadjusted" {
22927        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshlu.v8i8")]
22928        fn vqshlu_n_s8_(a: int8x8_t, n: int8x8_t) -> uint8x8_t;
22929    }
22930vqshlu_n_s8_(a, const { int8x8_t([N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8]) })
22931}
22932
22933/// Signed saturating shift left unsigned
22934///
22935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)
22936#[inline]
22937#[cfg(target_arch = "arm")]
22938#[target_feature(enable = "neon,v7")]
22939#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
22940#[rustc_legacy_const_generics(1)]
22941#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22942pub unsafe fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
22943    static_assert_uimm_bits!(N, 4);
22944    #[allow(improper_ctypes)]
22945    extern "unadjusted" {
22946        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i16")]
22947        fn vqshlu_n_s16_(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
22948    }
22949vqshlu_n_s16_(a, const { int16x4_t([N as i16, N as i16, N as i16, N as i16]) })
22950}
22951
22952/// Signed saturating shift left unsigned
22953///
22954/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s16)
22955#[inline]
22956#[cfg(not(target_arch = "arm"))]
22957#[target_feature(enable = "neon")]
22958#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
22959#[rustc_legacy_const_generics(1)]
22960#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22961pub unsafe fn vqshlu_n_s16<const N: i32>(a: int16x4_t) -> uint16x4_t {
22962    static_assert_uimm_bits!(N, 4);
22963    #[allow(improper_ctypes)]
22964    extern "unadjusted" {
22965        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshlu.v4i16")]
22966        fn vqshlu_n_s16_(a: int16x4_t, n: int16x4_t) -> uint16x4_t;
22967    }
22968vqshlu_n_s16_(a, const { int16x4_t([N as i16, N as i16, N as i16, N as i16]) })
22969}
22970
22971/// Signed saturating shift left unsigned
22972///
22973/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)
22974#[inline]
22975#[cfg(target_arch = "arm")]
22976#[target_feature(enable = "neon,v7")]
22977#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
22978#[rustc_legacy_const_generics(1)]
22979#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
22980pub unsafe fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
22981    static_assert_uimm_bits!(N, 5);
22982    #[allow(improper_ctypes)]
22983    extern "unadjusted" {
22984        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i32")]
22985        fn vqshlu_n_s32_(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
22986    }
22987vqshlu_n_s32_(a, const { int32x2_t([N as i32, N as i32]) })
22988}
22989
22990/// Signed saturating shift left unsigned
22991///
22992/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s32)
22993#[inline]
22994#[cfg(not(target_arch = "arm"))]
22995#[target_feature(enable = "neon")]
22996#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
22997#[rustc_legacy_const_generics(1)]
22998#[stable(feature = "neon_intrinsics", since = "1.59.0")]
22999pub unsafe fn vqshlu_n_s32<const N: i32>(a: int32x2_t) -> uint32x2_t {
23000    static_assert_uimm_bits!(N, 5);
23001    #[allow(improper_ctypes)]
23002    extern "unadjusted" {
23003        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshlu.v2i32")]
23004        fn vqshlu_n_s32_(a: int32x2_t, n: int32x2_t) -> uint32x2_t;
23005    }
23006vqshlu_n_s32_(a, const { int32x2_t([N as i32, N as i32]) })
23007}
23008
23009/// Signed saturating shift left unsigned
23010///
23011/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)
23012#[inline]
23013#[cfg(target_arch = "arm")]
23014#[target_feature(enable = "neon,v7")]
23015#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
23016#[rustc_legacy_const_generics(1)]
23017#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23018pub unsafe fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
23019    static_assert_uimm_bits!(N, 6);
23020    #[allow(improper_ctypes)]
23021    extern "unadjusted" {
23022        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v1i64")]
23023        fn vqshlu_n_s64_(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
23024    }
23025vqshlu_n_s64_(a, const { int64x1_t([N as i64]) })
23026}
23027
23028/// Signed saturating shift left unsigned
23029///
23030/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshlu_n_s64)
23031#[inline]
23032#[cfg(not(target_arch = "arm"))]
23033#[target_feature(enable = "neon")]
23034#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
23035#[rustc_legacy_const_generics(1)]
23036#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23037pub unsafe fn vqshlu_n_s64<const N: i32>(a: int64x1_t) -> uint64x1_t {
23038    static_assert_uimm_bits!(N, 6);
23039    #[allow(improper_ctypes)]
23040    extern "unadjusted" {
23041        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshlu.v1i64")]
23042        fn vqshlu_n_s64_(a: int64x1_t, n: int64x1_t) -> uint64x1_t;
23043    }
23044vqshlu_n_s64_(a, const { int64x1_t([N as i64]) })
23045}
23046
23047/// Signed saturating shift left unsigned
23048///
23049/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)
23050#[inline]
23051#[cfg(target_arch = "arm")]
23052#[target_feature(enable = "neon,v7")]
23053#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
23054#[rustc_legacy_const_generics(1)]
23055#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23056pub unsafe fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
23057    static_assert_uimm_bits!(N, 3);
23058    #[allow(improper_ctypes)]
23059    extern "unadjusted" {
23060        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v16i8")]
23061        fn vqshluq_n_s8_(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
23062    }
23063vqshluq_n_s8_(a, const { int8x16_t([N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8]) })
23064}
23065
23066/// Signed saturating shift left unsigned
23067///
23068/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s8)
23069#[inline]
23070#[cfg(not(target_arch = "arm"))]
23071#[target_feature(enable = "neon")]
23072#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
23073#[rustc_legacy_const_generics(1)]
23074#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23075pub unsafe fn vqshluq_n_s8<const N: i32>(a: int8x16_t) -> uint8x16_t {
23076    static_assert_uimm_bits!(N, 3);
23077    #[allow(improper_ctypes)]
23078    extern "unadjusted" {
23079        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshlu.v16i8")]
23080        fn vqshluq_n_s8_(a: int8x16_t, n: int8x16_t) -> uint8x16_t;
23081    }
23082vqshluq_n_s8_(a, const { int8x16_t([N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8, N as i8]) })
23083}
23084
23085/// Signed saturating shift left unsigned
23086///
23087/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)
23088#[inline]
23089#[cfg(target_arch = "arm")]
23090#[target_feature(enable = "neon,v7")]
23091#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
23092#[rustc_legacy_const_generics(1)]
23093#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23094pub unsafe fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
23095    static_assert_uimm_bits!(N, 4);
23096    #[allow(improper_ctypes)]
23097    extern "unadjusted" {
23098        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v8i16")]
23099        fn vqshluq_n_s16_(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
23100    }
23101vqshluq_n_s16_(a, const { int16x8_t([N as i16, N as i16, N as i16, N as i16, N as i16, N as i16, N as i16, N as i16]) })
23102}
23103
23104/// Signed saturating shift left unsigned
23105///
23106/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s16)
23107#[inline]
23108#[cfg(not(target_arch = "arm"))]
23109#[target_feature(enable = "neon")]
23110#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
23111#[rustc_legacy_const_generics(1)]
23112#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23113pub unsafe fn vqshluq_n_s16<const N: i32>(a: int16x8_t) -> uint16x8_t {
23114    static_assert_uimm_bits!(N, 4);
23115    #[allow(improper_ctypes)]
23116    extern "unadjusted" {
23117        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshlu.v8i16")]
23118        fn vqshluq_n_s16_(a: int16x8_t, n: int16x8_t) -> uint16x8_t;
23119    }
23120vqshluq_n_s16_(a, const { int16x8_t([N as i16, N as i16, N as i16, N as i16, N as i16, N as i16, N as i16, N as i16]) })
23121}
23122
23123/// Signed saturating shift left unsigned
23124///
23125/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)
23126#[inline]
23127#[cfg(target_arch = "arm")]
23128#[target_feature(enable = "neon,v7")]
23129#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
23130#[rustc_legacy_const_generics(1)]
23131#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23132pub unsafe fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
23133    static_assert_uimm_bits!(N, 5);
23134    #[allow(improper_ctypes)]
23135    extern "unadjusted" {
23136        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v4i32")]
23137        fn vqshluq_n_s32_(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
23138    }
23139vqshluq_n_s32_(a, const { int32x4_t([N as i32, N as i32, N as i32, N as i32]) })
23140}
23141
23142/// Signed saturating shift left unsigned
23143///
23144/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s32)
23145#[inline]
23146#[cfg(not(target_arch = "arm"))]
23147#[target_feature(enable = "neon")]
23148#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
23149#[rustc_legacy_const_generics(1)]
23150#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23151pub unsafe fn vqshluq_n_s32<const N: i32>(a: int32x4_t) -> uint32x4_t {
23152    static_assert_uimm_bits!(N, 5);
23153    #[allow(improper_ctypes)]
23154    extern "unadjusted" {
23155        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshlu.v4i32")]
23156        fn vqshluq_n_s32_(a: int32x4_t, n: int32x4_t) -> uint32x4_t;
23157    }
23158vqshluq_n_s32_(a, const { int32x4_t([N as i32, N as i32, N as i32, N as i32]) })
23159}
23160
23161/// Signed saturating shift left unsigned
23162///
23163/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)
23164#[inline]
23165#[cfg(target_arch = "arm")]
23166#[target_feature(enable = "neon,v7")]
23167#[cfg_attr(test, assert_instr(vqshlu, N = 2))]
23168#[rustc_legacy_const_generics(1)]
23169#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23170pub unsafe fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
23171    static_assert_uimm_bits!(N, 6);
23172    #[allow(improper_ctypes)]
23173    extern "unadjusted" {
23174        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftsu.v2i64")]
23175        fn vqshluq_n_s64_(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
23176    }
23177vqshluq_n_s64_(a, const { int64x2_t([N as i64, N as i64]) })
23178}
23179
23180/// Signed saturating shift left unsigned
23181///
23182/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshluq_n_s64)
23183#[inline]
23184#[cfg(not(target_arch = "arm"))]
23185#[target_feature(enable = "neon")]
23186#[cfg_attr(test, assert_instr(sqshlu, N = 2))]
23187#[rustc_legacy_const_generics(1)]
23188#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23189pub unsafe fn vqshluq_n_s64<const N: i32>(a: int64x2_t) -> uint64x2_t {
23190    static_assert_uimm_bits!(N, 6);
23191    #[allow(improper_ctypes)]
23192    extern "unadjusted" {
23193        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshlu.v2i64")]
23194        fn vqshluq_n_s64_(a: int64x2_t, n: int64x2_t) -> uint64x2_t;
23195    }
23196vqshluq_n_s64_(a, const { int64x2_t([N as i64, N as i64]) })
23197}
23198
23199/// Signed saturating shift right narrow
23200///
23201/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)
23202#[inline]
23203#[cfg(target_arch = "arm")]
23204#[target_feature(enable = "neon,v7")]
23205#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
23206#[rustc_legacy_const_generics(1)]
23207#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23208pub unsafe fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
23209    static_assert!(N >= 1 && N <= 8);
23210    #[allow(improper_ctypes)]
23211    extern "unadjusted" {
23212        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v8i8")]
23213        fn vqshrn_n_s16_(a: int16x8_t, n: int16x8_t) -> int8x8_t;
23214    }
23215vqshrn_n_s16_(a, const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) })
23216}
23217
23218/// Signed saturating shift right narrow
23219///
23220/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s16)
23221#[inline]
23222#[cfg(not(target_arch = "arm"))]
23223#[target_feature(enable = "neon")]
23224#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
23225#[rustc_legacy_const_generics(1)]
23226#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23227pub unsafe fn vqshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
23228    static_assert!(N >= 1 && N <= 8);
23229    #[allow(improper_ctypes)]
23230    extern "unadjusted" {
23231        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshrn.v8i8")]
23232        fn vqshrn_n_s16_(a: int16x8_t, n: i32) -> int8x8_t;
23233    }
23234vqshrn_n_s16_(a, N)
23235}
23236
23237/// Signed saturating shift right narrow
23238///
23239/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)
23240#[inline]
23241#[cfg(target_arch = "arm")]
23242#[target_feature(enable = "neon,v7")]
23243#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
23244#[rustc_legacy_const_generics(1)]
23245#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23246pub unsafe fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
23247    static_assert!(N >= 1 && N <= 16);
23248    #[allow(improper_ctypes)]
23249    extern "unadjusted" {
23250        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v4i16")]
23251        fn vqshrn_n_s32_(a: int32x4_t, n: int32x4_t) -> int16x4_t;
23252    }
23253vqshrn_n_s32_(a, const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) })
23254}
23255
23256/// Signed saturating shift right narrow
23257///
23258/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s32)
23259#[inline]
23260#[cfg(not(target_arch = "arm"))]
23261#[target_feature(enable = "neon")]
23262#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
23263#[rustc_legacy_const_generics(1)]
23264#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23265pub unsafe fn vqshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
23266    static_assert!(N >= 1 && N <= 16);
23267    #[allow(improper_ctypes)]
23268    extern "unadjusted" {
23269        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshrn.v4i16")]
23270        fn vqshrn_n_s32_(a: int32x4_t, n: i32) -> int16x4_t;
23271    }
23272vqshrn_n_s32_(a, N)
23273}
23274
23275/// Signed saturating shift right narrow
23276///
23277/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)
23278#[inline]
23279#[cfg(target_arch = "arm")]
23280#[target_feature(enable = "neon,v7")]
23281#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
23282#[rustc_legacy_const_generics(1)]
23283#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23284pub unsafe fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
23285    static_assert!(N >= 1 && N <= 32);
23286    #[allow(improper_ctypes)]
23287    extern "unadjusted" {
23288        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftns.v2i32")]
23289        fn vqshrn_n_s64_(a: int64x2_t, n: int64x2_t) -> int32x2_t;
23290    }
23291vqshrn_n_s64_(a, const { int64x2_t([-N as i64, -N as i64]) })
23292}
23293
23294/// Signed saturating shift right narrow
23295///
23296/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_s64)
23297#[inline]
23298#[cfg(not(target_arch = "arm"))]
23299#[target_feature(enable = "neon")]
23300#[cfg_attr(test, assert_instr(sqshrn, N = 2))]
23301#[rustc_legacy_const_generics(1)]
23302#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23303pub unsafe fn vqshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
23304    static_assert!(N >= 1 && N <= 32);
23305    #[allow(improper_ctypes)]
23306    extern "unadjusted" {
23307        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshrn.v2i32")]
23308        fn vqshrn_n_s64_(a: int64x2_t, n: i32) -> int32x2_t;
23309    }
23310vqshrn_n_s64_(a, N)
23311}
23312
23313/// Unsigned saturating shift right narrow
23314///
23315/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)
23316#[inline]
23317#[cfg(target_arch = "arm")]
23318#[target_feature(enable = "neon,v7")]
23319#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
23320#[rustc_legacy_const_generics(1)]
23321#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23322pub unsafe fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
23323    static_assert!(N >= 1 && N <= 8);
23324    #[allow(improper_ctypes)]
23325    extern "unadjusted" {
23326        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v8i8")]
23327        fn vqshrn_n_u16_(a: uint16x8_t, n: uint16x8_t) -> uint8x8_t;
23328    }
23329vqshrn_n_u16_(a, const { uint16x8_t([-N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16, -N as u16]) })
23330}
23331
23332/// Unsigned saturating shift right narrow
23333///
23334/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u16)
23335#[inline]
23336#[cfg(not(target_arch = "arm"))]
23337#[target_feature(enable = "neon")]
23338#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
23339#[rustc_legacy_const_generics(1)]
23340#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23341pub unsafe fn vqshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
23342    static_assert!(N >= 1 && N <= 8);
23343    #[allow(improper_ctypes)]
23344    extern "unadjusted" {
23345        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshrn.v8i8")]
23346        fn vqshrn_n_u16_(a: uint16x8_t, n: i32) -> uint8x8_t;
23347    }
23348vqshrn_n_u16_(a, N)
23349}
23350
23351/// Unsigned saturating shift right narrow
23352///
23353/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)
23354#[inline]
23355#[cfg(target_arch = "arm")]
23356#[target_feature(enable = "neon,v7")]
23357#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
23358#[rustc_legacy_const_generics(1)]
23359#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23360pub unsafe fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
23361    static_assert!(N >= 1 && N <= 16);
23362    #[allow(improper_ctypes)]
23363    extern "unadjusted" {
23364        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v4i16")]
23365        fn vqshrn_n_u32_(a: uint32x4_t, n: uint32x4_t) -> uint16x4_t;
23366    }
23367vqshrn_n_u32_(a, const { uint32x4_t([-N as u32, -N as u32, -N as u32, -N as u32]) })
23368}
23369
23370/// Unsigned saturating shift right narrow
23371///
23372/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u32)
23373#[inline]
23374#[cfg(not(target_arch = "arm"))]
23375#[target_feature(enable = "neon")]
23376#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
23377#[rustc_legacy_const_generics(1)]
23378#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23379pub unsafe fn vqshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
23380    static_assert!(N >= 1 && N <= 16);
23381    #[allow(improper_ctypes)]
23382    extern "unadjusted" {
23383        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshrn.v4i16")]
23384        fn vqshrn_n_u32_(a: uint32x4_t, n: i32) -> uint16x4_t;
23385    }
23386vqshrn_n_u32_(a, N)
23387}
23388
23389/// Unsigned saturating shift right narrow
23390///
23391/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)
23392#[inline]
23393#[cfg(target_arch = "arm")]
23394#[target_feature(enable = "neon,v7")]
23395#[cfg_attr(test, assert_instr(vqshrn, N = 2))]
23396#[rustc_legacy_const_generics(1)]
23397#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23398pub unsafe fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
23399    static_assert!(N >= 1 && N <= 32);
23400    #[allow(improper_ctypes)]
23401    extern "unadjusted" {
23402        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnu.v2i32")]
23403        fn vqshrn_n_u64_(a: uint64x2_t, n: uint64x2_t) -> uint32x2_t;
23404    }
23405vqshrn_n_u64_(a, const { uint64x2_t([-N as u64, -N as u64]) })
23406}
23407
23408/// Unsigned saturating shift right narrow
23409///
23410/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrn_n_u64)
23411#[inline]
23412#[cfg(not(target_arch = "arm"))]
23413#[target_feature(enable = "neon")]
23414#[cfg_attr(test, assert_instr(uqshrn, N = 2))]
23415#[rustc_legacy_const_generics(1)]
23416#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23417pub unsafe fn vqshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
23418    static_assert!(N >= 1 && N <= 32);
23419    #[allow(improper_ctypes)]
23420    extern "unadjusted" {
23421        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.uqshrn.v2i32")]
23422        fn vqshrn_n_u64_(a: uint64x2_t, n: i32) -> uint32x2_t;
23423    }
23424vqshrn_n_u64_(a, N)
23425}
23426
23427/// Signed saturating shift right unsigned narrow
23428///
23429/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)
23430#[inline]
23431#[cfg(target_arch = "arm")]
23432#[target_feature(enable = "neon,v7")]
23433#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
23434#[rustc_legacy_const_generics(1)]
23435#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23436pub unsafe fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
23437    static_assert!(N >= 1 && N <= 8);
23438    #[allow(improper_ctypes)]
23439    extern "unadjusted" {
23440        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v8i8")]
23441        fn vqshrun_n_s16_(a: int16x8_t, n: int16x8_t) -> uint8x8_t;
23442    }
23443vqshrun_n_s16_(a, const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) })
23444}
23445
23446/// Signed saturating shift right unsigned narrow
23447///
23448/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s16)
23449#[inline]
23450#[cfg(not(target_arch = "arm"))]
23451#[target_feature(enable = "neon")]
23452#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
23453#[rustc_legacy_const_generics(1)]
23454#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23455pub unsafe fn vqshrun_n_s16<const N: i32>(a: int16x8_t) -> uint8x8_t {
23456    static_assert!(N >= 1 && N <= 8);
23457    #[allow(improper_ctypes)]
23458    extern "unadjusted" {
23459        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshrun.v8i8")]
23460        fn vqshrun_n_s16_(a: int16x8_t, n: i32) -> uint8x8_t;
23461    }
23462vqshrun_n_s16_(a, N)
23463}
23464
23465/// Signed saturating shift right unsigned narrow
23466///
23467/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)
23468#[inline]
23469#[cfg(target_arch = "arm")]
23470#[target_feature(enable = "neon,v7")]
23471#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
23472#[rustc_legacy_const_generics(1)]
23473#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23474pub unsafe fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
23475    static_assert!(N >= 1 && N <= 16);
23476    #[allow(improper_ctypes)]
23477    extern "unadjusted" {
23478        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v4i16")]
23479        fn vqshrun_n_s32_(a: int32x4_t, n: int32x4_t) -> uint16x4_t;
23480    }
23481vqshrun_n_s32_(a, const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) })
23482}
23483
23484/// Signed saturating shift right unsigned narrow
23485///
23486/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s32)
23487#[inline]
23488#[cfg(not(target_arch = "arm"))]
23489#[target_feature(enable = "neon")]
23490#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
23491#[rustc_legacy_const_generics(1)]
23492#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23493pub unsafe fn vqshrun_n_s32<const N: i32>(a: int32x4_t) -> uint16x4_t {
23494    static_assert!(N >= 1 && N <= 16);
23495    #[allow(improper_ctypes)]
23496    extern "unadjusted" {
23497        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshrun.v4i16")]
23498        fn vqshrun_n_s32_(a: int32x4_t, n: i32) -> uint16x4_t;
23499    }
23500vqshrun_n_s32_(a, N)
23501}
23502
23503/// Signed saturating shift right unsigned narrow
23504///
23505/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)
23506#[inline]
23507#[cfg(target_arch = "arm")]
23508#[target_feature(enable = "neon,v7")]
23509#[cfg_attr(test, assert_instr(vqshrun, N = 2))]
23510#[rustc_legacy_const_generics(1)]
23511#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
23512pub unsafe fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
23513    static_assert!(N >= 1 && N <= 32);
23514    #[allow(improper_ctypes)]
23515    extern "unadjusted" {
23516        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqshiftnsu.v2i32")]
23517        fn vqshrun_n_s64_(a: int64x2_t, n: int64x2_t) -> uint32x2_t;
23518    }
23519vqshrun_n_s64_(a, const { int64x2_t([-N as i64, -N as i64]) })
23520}
23521
23522/// Signed saturating shift right unsigned narrow
23523///
23524/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqshrun_n_s64)
23525#[inline]
23526#[cfg(not(target_arch = "arm"))]
23527#[target_feature(enable = "neon")]
23528#[cfg_attr(test, assert_instr(sqshrun, N = 2))]
23529#[rustc_legacy_const_generics(1)]
23530#[stable(feature = "neon_intrinsics", since = "1.59.0")]
23531pub unsafe fn vqshrun_n_s64<const N: i32>(a: int64x2_t) -> uint32x2_t {
23532    static_assert!(N >= 1 && N <= 32);
23533    #[allow(improper_ctypes)]
23534    extern "unadjusted" {
23535        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqshrun.v2i32")]
23536        fn vqshrun_n_s64_(a: int64x2_t, n: i32) -> uint32x2_t;
23537    }
23538vqshrun_n_s64_(a, N)
23539}
23540
23541/// Reciprocal square-root estimate.
23542///
23543/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_f32)
23544#[inline]
23545#[target_feature(enable = "neon")]
23546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
23548#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frsqrte))]
23549#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23550#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23551pub unsafe fn vrsqrte_f32(a: float32x2_t) -> float32x2_t {
23552    #[allow(improper_ctypes)]
23553    extern "unadjusted" {
23554        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2f32")]
23555        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frsqrte.v2f32")]
23556        fn vrsqrte_f32_(a: float32x2_t) -> float32x2_t;
23557    }
23558vrsqrte_f32_(a)
23559}
23560
23561/// Reciprocal square-root estimate.
23562///
23563/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_f32)
23564#[inline]
23565#[target_feature(enable = "neon")]
23566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
23568#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frsqrte))]
23569#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23570#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23571pub unsafe fn vrsqrteq_f32(a: float32x4_t) -> float32x4_t {
23572    #[allow(improper_ctypes)]
23573    extern "unadjusted" {
23574        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4f32")]
23575        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frsqrte.v4f32")]
23576        fn vrsqrteq_f32_(a: float32x4_t) -> float32x4_t;
23577    }
23578vrsqrteq_f32_(a)
23579}
23580
23581/// Unsigned reciprocal square root estimate
23582///
23583/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrte_u32)
23584#[inline]
23585#[target_feature(enable = "neon")]
23586#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
23588#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursqrte))]
23589#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23590#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23591pub unsafe fn vrsqrte_u32(a: uint32x2_t) -> uint32x2_t {
23592    #[allow(improper_ctypes)]
23593    extern "unadjusted" {
23594        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v2i32")]
23595        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ursqrte.v2i32")]
23596        fn vrsqrte_u32_(a: uint32x2_t) -> uint32x2_t;
23597    }
23598vrsqrte_u32_(a)
23599}
23600
23601/// Unsigned reciprocal square root estimate
23602///
23603/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteq_u32)
23604#[inline]
23605#[target_feature(enable = "neon")]
23606#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23607#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrte))]
23608#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursqrte))]
23609#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23610#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23611pub unsafe fn vrsqrteq_u32(a: uint32x4_t) -> uint32x4_t {
23612    #[allow(improper_ctypes)]
23613    extern "unadjusted" {
23614        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrte.v4i32")]
23615        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ursqrte.v4i32")]
23616        fn vrsqrteq_u32_(a: uint32x4_t) -> uint32x4_t;
23617    }
23618vrsqrteq_u32_(a)
23619}
23620
23621/// Floating-point reciprocal square root step
23622///
23623/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrts_f32)
23624#[inline]
23625#[target_feature(enable = "neon")]
23626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23627#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
23628#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frsqrts))]
23629#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23630#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23631pub unsafe fn vrsqrts_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
23632    #[allow(improper_ctypes)]
23633    extern "unadjusted" {
23634        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v2f32")]
23635        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frsqrts.v2f32")]
23636        fn vrsqrts_f32_(a: float32x2_t, b: float32x2_t) -> float32x2_t;
23637    }
23638vrsqrts_f32_(a, b)
23639}
23640
23641/// Floating-point reciprocal square root step
23642///
23643/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrtsq_f32)
23644#[inline]
23645#[target_feature(enable = "neon")]
23646#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23647#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsqrts))]
23648#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frsqrts))]
23649#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23650#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23651pub unsafe fn vrsqrtsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
23652    #[allow(improper_ctypes)]
23653    extern "unadjusted" {
23654        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsqrts.v4f32")]
23655        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frsqrts.v4f32")]
23656        fn vrsqrtsq_f32_(a: float32x4_t, b: float32x4_t) -> float32x4_t;
23657    }
23658vrsqrtsq_f32_(a, b)
23659}
23660
23661/// Reciprocal estimate.
23662///
23663/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_f32)
23664#[inline]
23665#[target_feature(enable = "neon")]
23666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
23668#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frecpe))]
23669#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23670#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23671pub unsafe fn vrecpe_f32(a: float32x2_t) -> float32x2_t {
23672    #[allow(improper_ctypes)]
23673    extern "unadjusted" {
23674        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2f32")]
23675        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frecpe.v2f32")]
23676        fn vrecpe_f32_(a: float32x2_t) -> float32x2_t;
23677    }
23678vrecpe_f32_(a)
23679}
23680
23681/// Reciprocal estimate.
23682///
23683/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_f32)
23684#[inline]
23685#[target_feature(enable = "neon")]
23686#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23687#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
23688#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frecpe))]
23689#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23690#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23691pub unsafe fn vrecpeq_f32(a: float32x4_t) -> float32x4_t {
23692    #[allow(improper_ctypes)]
23693    extern "unadjusted" {
23694        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4f32")]
23695        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frecpe.v4f32")]
23696        fn vrecpeq_f32_(a: float32x4_t) -> float32x4_t;
23697    }
23698vrecpeq_f32_(a)
23699}
23700
23701/// Unsigned reciprocal estimate
23702///
23703/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpe_u32)
23704#[inline]
23705#[target_feature(enable = "neon")]
23706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23707#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
23708#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urecpe))]
23709#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23710#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23711pub unsafe fn vrecpe_u32(a: uint32x2_t) -> uint32x2_t {
23712    #[allow(improper_ctypes)]
23713    extern "unadjusted" {
23714        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v2i32")]
23715        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urecpe.v2i32")]
23716        fn vrecpe_u32_(a: uint32x2_t) -> uint32x2_t;
23717    }
23718vrecpe_u32_(a)
23719}
23720
23721/// Unsigned reciprocal estimate
23722///
23723/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpeq_u32)
23724#[inline]
23725#[target_feature(enable = "neon")]
23726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23727#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecpe))]
23728#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urecpe))]
23729#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23730#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23731pub unsafe fn vrecpeq_u32(a: uint32x4_t) -> uint32x4_t {
23732    #[allow(improper_ctypes)]
23733    extern "unadjusted" {
23734        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecpe.v4i32")]
23735        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urecpe.v4i32")]
23736        fn vrecpeq_u32_(a: uint32x4_t) -> uint32x4_t;
23737    }
23738vrecpeq_u32_(a)
23739}
23740
23741/// Floating-point reciprocal step
23742///
23743/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecps_f32)
23744#[inline]
23745#[target_feature(enable = "neon")]
23746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
23748#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frecps))]
23749#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23750#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23751pub unsafe fn vrecps_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
23752    #[allow(improper_ctypes)]
23753    extern "unadjusted" {
23754        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v2f32")]
23755        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frecps.v2f32")]
23756        fn vrecps_f32_(a: float32x2_t, b: float32x2_t) -> float32x2_t;
23757    }
23758vrecps_f32_(a, b)
23759}
23760
23761/// Floating-point reciprocal step
23762///
23763/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrecpsq_f32)
23764#[inline]
23765#[target_feature(enable = "neon")]
23766#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrecps))]
23768#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(frecps))]
23769#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23770#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23771pub unsafe fn vrecpsq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
23772    #[allow(improper_ctypes)]
23773    extern "unadjusted" {
23774        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrecps.v4f32")]
23775        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.frecps.v4f32")]
23776        fn vrecpsq_f32_(a: float32x4_t, b: float32x4_t) -> float32x4_t;
23777    }
23778vrecpsq_f32_(a, b)
23779}
23780
23781/// Vector reinterpret cast operation
23782///
23783/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u8)
23784#[inline]
23785#[target_feature(enable = "neon")]
23786#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23787#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23788#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23789#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23790#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23791pub unsafe fn vreinterpret_s8_u8(a: uint8x8_t) -> int8x8_t {
23792    transmute(a)
23793}
23794
23795/// Vector reinterpret cast operation
23796///
23797/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p8)
23798#[inline]
23799#[target_feature(enable = "neon")]
23800#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23801#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23802#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23803#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23804#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23805pub unsafe fn vreinterpret_s8_p8(a: poly8x8_t) -> int8x8_t {
23806    transmute(a)
23807}
23808
23809/// Vector reinterpret cast operation
23810///
23811/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p16)
23812#[inline]
23813#[target_feature(enable = "neon")]
23814#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23815#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23816#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23817#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23818#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23819pub unsafe fn vreinterpret_s16_p16(a: poly16x4_t) -> int16x4_t {
23820    transmute(a)
23821}
23822
23823/// Vector reinterpret cast operation
23824///
23825/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u16)
23826#[inline]
23827#[target_feature(enable = "neon")]
23828#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23829#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23830#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23831#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23832#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23833pub unsafe fn vreinterpret_s16_u16(a: uint16x4_t) -> int16x4_t {
23834    transmute(a)
23835}
23836
23837/// Vector reinterpret cast operation
23838///
23839/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u32)
23840#[inline]
23841#[target_feature(enable = "neon")]
23842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23844#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23845#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23846#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23847pub unsafe fn vreinterpret_s32_u32(a: uint32x2_t) -> int32x2_t {
23848    transmute(a)
23849}
23850
23851/// Vector reinterpret cast operation
23852///
23853/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u64)
23854#[inline]
23855#[target_feature(enable = "neon")]
23856#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23857#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23858#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23859#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23860#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23861pub unsafe fn vreinterpret_s64_u64(a: uint64x1_t) -> int64x1_t {
23862    transmute(a)
23863}
23864
23865/// Vector reinterpret cast operation
23866///
23867/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u8)
23868#[inline]
23869#[target_feature(enable = "neon")]
23870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23872#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23873#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23874#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23875pub unsafe fn vreinterpretq_s8_u8(a: uint8x16_t) -> int8x16_t {
23876    transmute(a)
23877}
23878
23879/// Vector reinterpret cast operation
23880///
23881/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p8)
23882#[inline]
23883#[target_feature(enable = "neon")]
23884#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23885#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23886#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23887#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23888#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23889pub unsafe fn vreinterpretq_s8_p8(a: poly8x16_t) -> int8x16_t {
23890    transmute(a)
23891}
23892
23893/// Vector reinterpret cast operation
23894///
23895/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p16)
23896#[inline]
23897#[target_feature(enable = "neon")]
23898#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23899#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23900#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23901#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23902#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23903pub unsafe fn vreinterpretq_s16_p16(a: poly16x8_t) -> int16x8_t {
23904    transmute(a)
23905}
23906
23907/// Vector reinterpret cast operation
23908///
23909/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u16)
23910#[inline]
23911#[target_feature(enable = "neon")]
23912#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23913#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23914#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23915#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23916#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23917pub unsafe fn vreinterpretq_s16_u16(a: uint16x8_t) -> int16x8_t {
23918    transmute(a)
23919}
23920
23921/// Vector reinterpret cast operation
23922///
23923/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u32)
23924#[inline]
23925#[target_feature(enable = "neon")]
23926#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23927#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23928#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23929#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23930#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23931pub unsafe fn vreinterpretq_s32_u32(a: uint32x4_t) -> int32x4_t {
23932    transmute(a)
23933}
23934
23935/// Vector reinterpret cast operation
23936///
23937/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u64)
23938#[inline]
23939#[target_feature(enable = "neon")]
23940#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23941#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23942#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23943#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23944#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23945pub unsafe fn vreinterpretq_s64_u64(a: uint64x2_t) -> int64x2_t {
23946    transmute(a)
23947}
23948
23949/// Vector reinterpret cast operation
23950///
23951/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p8)
23952#[inline]
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(nop))]
23956#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23957#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23958#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23959pub unsafe fn vreinterpret_u8_p8(a: poly8x8_t) -> uint8x8_t {
23960    transmute(a)
23961}
23962
23963/// Vector reinterpret cast operation
23964///
23965/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s8)
23966#[inline]
23967#[target_feature(enable = "neon")]
23968#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23969#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23970#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23971#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23972#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23973pub unsafe fn vreinterpret_u8_s8(a: int8x8_t) -> uint8x8_t {
23974    transmute(a)
23975}
23976
23977/// Vector reinterpret cast operation
23978///
23979/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p16)
23980#[inline]
23981#[target_feature(enable = "neon")]
23982#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23983#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23984#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23985#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
23986#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
23987pub unsafe fn vreinterpret_u16_p16(a: poly16x4_t) -> uint16x4_t {
23988    transmute(a)
23989}
23990
23991/// Vector reinterpret cast operation
23992///
23993/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s16)
23994#[inline]
23995#[target_feature(enable = "neon")]
23996#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
23997#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
23998#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
23999#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24000#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24001pub unsafe fn vreinterpret_u16_s16(a: int16x4_t) -> uint16x4_t {
24002    transmute(a)
24003}
24004
24005/// Vector reinterpret cast operation
24006///
24007/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s32)
24008#[inline]
24009#[target_feature(enable = "neon")]
24010#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24011#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24012#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24013#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24014#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24015pub unsafe fn vreinterpret_u32_s32(a: int32x2_t) -> uint32x2_t {
24016    transmute(a)
24017}
24018
24019/// Vector reinterpret cast operation
24020///
24021/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s64)
24022#[inline]
24023#[target_feature(enable = "neon")]
24024#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24025#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24026#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24027#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24028#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24029pub unsafe fn vreinterpret_u64_s64(a: int64x1_t) -> uint64x1_t {
24030    transmute(a)
24031}
24032
24033/// Vector reinterpret cast operation
24034///
24035/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p8)
24036#[inline]
24037#[target_feature(enable = "neon")]
24038#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24039#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24040#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24041#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24042#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24043pub unsafe fn vreinterpretq_u8_p8(a: poly8x16_t) -> uint8x16_t {
24044    transmute(a)
24045}
24046
24047/// Vector reinterpret cast operation
24048///
24049/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s8)
24050#[inline]
24051#[target_feature(enable = "neon")]
24052#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24053#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24054#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24055#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24056#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24057pub unsafe fn vreinterpretq_u8_s8(a: int8x16_t) -> uint8x16_t {
24058    transmute(a)
24059}
24060
24061/// Vector reinterpret cast operation
24062///
24063/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p16)
24064#[inline]
24065#[target_feature(enable = "neon")]
24066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24068#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24069#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24070#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24071pub unsafe fn vreinterpretq_u16_p16(a: poly16x8_t) -> uint16x8_t {
24072    transmute(a)
24073}
24074
24075/// Vector reinterpret cast operation
24076///
24077/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s16)
24078#[inline]
24079#[target_feature(enable = "neon")]
24080#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24081#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24082#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24083#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24084#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24085pub unsafe fn vreinterpretq_u16_s16(a: int16x8_t) -> uint16x8_t {
24086    transmute(a)
24087}
24088
24089/// Vector reinterpret cast operation
24090///
24091/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s32)
24092#[inline]
24093#[target_feature(enable = "neon")]
24094#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24095#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24096#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24097#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24098#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24099pub unsafe fn vreinterpretq_u32_s32(a: int32x4_t) -> uint32x4_t {
24100    transmute(a)
24101}
24102
24103/// Vector reinterpret cast operation
24104///
24105/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s64)
24106#[inline]
24107#[target_feature(enable = "neon")]
24108#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24109#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24110#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24111#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24112#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24113pub unsafe fn vreinterpretq_u64_s64(a: int64x2_t) -> uint64x2_t {
24114    transmute(a)
24115}
24116
24117/// Vector reinterpret cast operation
24118///
24119/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s8)
24120#[inline]
24121#[target_feature(enable = "neon")]
24122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24123#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24124#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24125#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24126#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24127pub unsafe fn vreinterpret_p8_s8(a: int8x8_t) -> poly8x8_t {
24128    transmute(a)
24129}
24130
24131/// Vector reinterpret cast operation
24132///
24133/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u8)
24134#[inline]
24135#[target_feature(enable = "neon")]
24136#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24137#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24138#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24139#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24140#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24141pub unsafe fn vreinterpret_p8_u8(a: uint8x8_t) -> poly8x8_t {
24142    transmute(a)
24143}
24144
24145/// Vector reinterpret cast operation
24146///
24147/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s16)
24148#[inline]
24149#[target_feature(enable = "neon")]
24150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24152#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24153#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24154#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24155pub unsafe fn vreinterpret_p16_s16(a: int16x4_t) -> poly16x4_t {
24156    transmute(a)
24157}
24158
24159/// Vector reinterpret cast operation
24160///
24161/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u16)
24162#[inline]
24163#[target_feature(enable = "neon")]
24164#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24165#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24166#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24167#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24168#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24169pub unsafe fn vreinterpret_p16_u16(a: uint16x4_t) -> poly16x4_t {
24170    transmute(a)
24171}
24172
24173/// Vector reinterpret cast operation
24174///
24175/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s8)
24176#[inline]
24177#[target_feature(enable = "neon")]
24178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24180#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24181#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24182#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24183pub unsafe fn vreinterpretq_p8_s8(a: int8x16_t) -> poly8x16_t {
24184    transmute(a)
24185}
24186
24187/// Vector reinterpret cast operation
24188///
24189/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u8)
24190#[inline]
24191#[target_feature(enable = "neon")]
24192#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24193#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24194#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24195#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24196#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24197pub unsafe fn vreinterpretq_p8_u8(a: uint8x16_t) -> poly8x16_t {
24198    transmute(a)
24199}
24200
24201/// Vector reinterpret cast operation
24202///
24203/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s16)
24204#[inline]
24205#[target_feature(enable = "neon")]
24206#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24207#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24208#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24209#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24210#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24211pub unsafe fn vreinterpretq_p16_s16(a: int16x8_t) -> poly16x8_t {
24212    transmute(a)
24213}
24214
24215/// Vector reinterpret cast operation
24216///
24217/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u16)
24218#[inline]
24219#[target_feature(enable = "neon")]
24220#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24221#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24222#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24223#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24224#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24225pub unsafe fn vreinterpretq_p16_u16(a: uint16x8_t) -> poly16x8_t {
24226    transmute(a)
24227}
24228
24229/// Vector reinterpret cast operation
24230///
24231/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s16)
24232#[inline]
24233#[target_feature(enable = "neon")]
24234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24235#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24236#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24237#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24238#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24239pub unsafe fn vreinterpret_s8_s16(a: int16x4_t) -> int8x8_t {
24240    transmute(a)
24241}
24242
24243/// Vector reinterpret cast operation
24244///
24245/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u16)
24246#[inline]
24247#[target_feature(enable = "neon")]
24248#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24249#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24250#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24251#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24252#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24253pub unsafe fn vreinterpret_s8_u16(a: uint16x4_t) -> int8x8_t {
24254    transmute(a)
24255}
24256
24257/// Vector reinterpret cast operation
24258///
24259/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p16)
24260#[inline]
24261#[target_feature(enable = "neon")]
24262#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24263#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24264#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24265#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24266#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24267pub unsafe fn vreinterpret_s8_p16(a: poly16x4_t) -> int8x8_t {
24268    transmute(a)
24269}
24270
24271/// Vector reinterpret cast operation
24272///
24273/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s32)
24274#[inline]
24275#[target_feature(enable = "neon")]
24276#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24277#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24278#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24279#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24280#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24281pub unsafe fn vreinterpret_s16_s32(a: int32x2_t) -> int16x4_t {
24282    transmute(a)
24283}
24284
24285/// Vector reinterpret cast operation
24286///
24287/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u32)
24288#[inline]
24289#[target_feature(enable = "neon")]
24290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24291#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24292#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24293#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24294#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24295pub unsafe fn vreinterpret_s16_u32(a: uint32x2_t) -> int16x4_t {
24296    transmute(a)
24297}
24298
24299/// Vector reinterpret cast operation
24300///
24301/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s64)
24302#[inline]
24303#[target_feature(enable = "neon")]
24304#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24305#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24306#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24307#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24308#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24309pub unsafe fn vreinterpret_s32_s64(a: int64x1_t) -> int32x2_t {
24310    transmute(a)
24311}
24312
24313/// Vector reinterpret cast operation
24314///
24315/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u64)
24316#[inline]
24317#[target_feature(enable = "neon")]
24318#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24319#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24320#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24321#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24322#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24323pub unsafe fn vreinterpret_s32_u64(a: uint64x1_t) -> int32x2_t {
24324    transmute(a)
24325}
24326
24327/// Vector reinterpret cast operation
24328///
24329/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s16)
24330#[inline]
24331#[target_feature(enable = "neon")]
24332#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24333#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24334#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24335#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24336#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24337pub unsafe fn vreinterpretq_s8_s16(a: int16x8_t) -> int8x16_t {
24338    transmute(a)
24339}
24340
24341/// Vector reinterpret cast operation
24342///
24343/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u16)
24344#[inline]
24345#[target_feature(enable = "neon")]
24346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24348#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24349#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24350#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24351pub unsafe fn vreinterpretq_s8_u16(a: uint16x8_t) -> int8x16_t {
24352    transmute(a)
24353}
24354
24355/// Vector reinterpret cast operation
24356///
24357/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p16)
24358#[inline]
24359#[target_feature(enable = "neon")]
24360#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24361#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24362#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24363#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24364#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24365pub unsafe fn vreinterpretq_s8_p16(a: poly16x8_t) -> int8x16_t {
24366    transmute(a)
24367}
24368
24369/// Vector reinterpret cast operation
24370///
24371/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s32)
24372#[inline]
24373#[target_feature(enable = "neon")]
24374#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24375#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24376#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24377#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24378#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24379pub unsafe fn vreinterpretq_s16_s32(a: int32x4_t) -> int16x8_t {
24380    transmute(a)
24381}
24382
24383/// Vector reinterpret cast operation
24384///
24385/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u32)
24386#[inline]
24387#[target_feature(enable = "neon")]
24388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24390#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24391#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24392#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24393pub unsafe fn vreinterpretq_s16_u32(a: uint32x4_t) -> int16x8_t {
24394    transmute(a)
24395}
24396
24397/// Vector reinterpret cast operation
24398///
24399/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s64)
24400#[inline]
24401#[target_feature(enable = "neon")]
24402#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24403#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24404#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24405#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24406#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24407pub unsafe fn vreinterpretq_s32_s64(a: int64x2_t) -> int32x4_t {
24408    transmute(a)
24409}
24410
24411/// Vector reinterpret cast operation
24412///
24413/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u64)
24414#[inline]
24415#[target_feature(enable = "neon")]
24416#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24417#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24418#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24419#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24420#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24421pub unsafe fn vreinterpretq_s32_u64(a: uint64x2_t) -> int32x4_t {
24422    transmute(a)
24423}
24424
24425/// Vector reinterpret cast operation
24426///
24427/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p16)
24428#[inline]
24429#[target_feature(enable = "neon")]
24430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24431#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24432#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24433#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24434#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24435pub unsafe fn vreinterpret_u8_p16(a: poly16x4_t) -> uint8x8_t {
24436    transmute(a)
24437}
24438
24439/// Vector reinterpret cast operation
24440///
24441/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s16)
24442#[inline]
24443#[target_feature(enable = "neon")]
24444#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24445#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24446#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24447#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24448#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24449pub unsafe fn vreinterpret_u8_s16(a: int16x4_t) -> uint8x8_t {
24450    transmute(a)
24451}
24452
24453/// Vector reinterpret cast operation
24454///
24455/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u16)
24456#[inline]
24457#[target_feature(enable = "neon")]
24458#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24459#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24460#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24461#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24462#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24463pub unsafe fn vreinterpret_u8_u16(a: uint16x4_t) -> uint8x8_t {
24464    transmute(a)
24465}
24466
24467/// Vector reinterpret cast operation
24468///
24469/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s32)
24470#[inline]
24471#[target_feature(enable = "neon")]
24472#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24473#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24474#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24475#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24476#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24477pub unsafe fn vreinterpret_u16_s32(a: int32x2_t) -> uint16x4_t {
24478    transmute(a)
24479}
24480
24481/// Vector reinterpret cast operation
24482///
24483/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u32)
24484#[inline]
24485#[target_feature(enable = "neon")]
24486#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24487#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24488#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24489#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24490#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24491pub unsafe fn vreinterpret_u16_u32(a: uint32x2_t) -> uint16x4_t {
24492    transmute(a)
24493}
24494
24495/// Vector reinterpret cast operation
24496///
24497/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s64)
24498#[inline]
24499#[target_feature(enable = "neon")]
24500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24502#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24503#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24504#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24505pub unsafe fn vreinterpret_u32_s64(a: int64x1_t) -> uint32x2_t {
24506    transmute(a)
24507}
24508
24509/// Vector reinterpret cast operation
24510///
24511/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u64)
24512#[inline]
24513#[target_feature(enable = "neon")]
24514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24515#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24516#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24517#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24518#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24519pub unsafe fn vreinterpret_u32_u64(a: uint64x1_t) -> uint32x2_t {
24520    transmute(a)
24521}
24522
24523/// Vector reinterpret cast operation
24524///
24525/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p16)
24526#[inline]
24527#[target_feature(enable = "neon")]
24528#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24529#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24530#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24531#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24532#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24533pub unsafe fn vreinterpretq_u8_p16(a: poly16x8_t) -> uint8x16_t {
24534    transmute(a)
24535}
24536
24537/// Vector reinterpret cast operation
24538///
24539/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s16)
24540#[inline]
24541#[target_feature(enable = "neon")]
24542#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24543#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24544#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24545#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24546#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24547pub unsafe fn vreinterpretq_u8_s16(a: int16x8_t) -> uint8x16_t {
24548    transmute(a)
24549}
24550
24551/// Vector reinterpret cast operation
24552///
24553/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u16)
24554#[inline]
24555#[target_feature(enable = "neon")]
24556#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24557#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24558#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24559#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24560#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24561pub unsafe fn vreinterpretq_u8_u16(a: uint16x8_t) -> uint8x16_t {
24562    transmute(a)
24563}
24564
24565/// Vector reinterpret cast operation
24566///
24567/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s32)
24568#[inline]
24569#[target_feature(enable = "neon")]
24570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24571#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24572#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24573#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24574#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24575pub unsafe fn vreinterpretq_u16_s32(a: int32x4_t) -> uint16x8_t {
24576    transmute(a)
24577}
24578
24579/// Vector reinterpret cast operation
24580///
24581/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u32)
24582#[inline]
24583#[target_feature(enable = "neon")]
24584#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24585#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24586#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24587#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24588#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24589pub unsafe fn vreinterpretq_u16_u32(a: uint32x4_t) -> uint16x8_t {
24590    transmute(a)
24591}
24592
24593/// Vector reinterpret cast operation
24594///
24595/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s64)
24596#[inline]
24597#[target_feature(enable = "neon")]
24598#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24599#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24600#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24601#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24602#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24603pub unsafe fn vreinterpretq_u32_s64(a: int64x2_t) -> uint32x4_t {
24604    transmute(a)
24605}
24606
24607/// Vector reinterpret cast operation
24608///
24609/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u64)
24610#[inline]
24611#[target_feature(enable = "neon")]
24612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24613#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24614#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24615#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24616#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24617pub unsafe fn vreinterpretq_u32_u64(a: uint64x2_t) -> uint32x4_t {
24618    transmute(a)
24619}
24620
24621/// Vector reinterpret cast operation
24622///
24623/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p16)
24624#[inline]
24625#[target_feature(enable = "neon")]
24626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24627#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24628#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24629#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24630#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24631pub unsafe fn vreinterpret_p8_p16(a: poly16x4_t) -> poly8x8_t {
24632    transmute(a)
24633}
24634
24635/// Vector reinterpret cast operation
24636///
24637/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s16)
24638#[inline]
24639#[target_feature(enable = "neon")]
24640#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24641#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24642#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24643#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24644#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24645pub unsafe fn vreinterpret_p8_s16(a: int16x4_t) -> poly8x8_t {
24646    transmute(a)
24647}
24648
24649/// Vector reinterpret cast operation
24650///
24651/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u16)
24652#[inline]
24653#[target_feature(enable = "neon")]
24654#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24655#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24656#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24657#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24658#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24659pub unsafe fn vreinterpret_p8_u16(a: uint16x4_t) -> poly8x8_t {
24660    transmute(a)
24661}
24662
24663/// Vector reinterpret cast operation
24664///
24665/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s32)
24666#[inline]
24667#[target_feature(enable = "neon")]
24668#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24669#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24670#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24671#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24672#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24673pub unsafe fn vreinterpret_p16_s32(a: int32x2_t) -> poly16x4_t {
24674    transmute(a)
24675}
24676
24677/// Vector reinterpret cast operation
24678///
24679/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u32)
24680#[inline]
24681#[target_feature(enable = "neon")]
24682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24683#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24684#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24685#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24686#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24687pub unsafe fn vreinterpret_p16_u32(a: uint32x2_t) -> poly16x4_t {
24688    transmute(a)
24689}
24690
24691/// Vector reinterpret cast operation
24692///
24693/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p16)
24694#[inline]
24695#[target_feature(enable = "neon")]
24696#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24697#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24698#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24699#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24700#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24701pub unsafe fn vreinterpretq_p8_p16(a: poly16x8_t) -> poly8x16_t {
24702    transmute(a)
24703}
24704
24705/// Vector reinterpret cast operation
24706///
24707/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s16)
24708#[inline]
24709#[target_feature(enable = "neon")]
24710#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24711#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24712#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24713#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24714#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24715pub unsafe fn vreinterpretq_p8_s16(a: int16x8_t) -> poly8x16_t {
24716    transmute(a)
24717}
24718
24719/// Vector reinterpret cast operation
24720///
24721/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u16)
24722#[inline]
24723#[target_feature(enable = "neon")]
24724#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24725#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24726#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24727#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24728#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24729pub unsafe fn vreinterpretq_p8_u16(a: uint16x8_t) -> poly8x16_t {
24730    transmute(a)
24731}
24732
24733/// Vector reinterpret cast operation
24734///
24735/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s32)
24736#[inline]
24737#[target_feature(enable = "neon")]
24738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24739#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24740#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24741#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24742#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24743pub unsafe fn vreinterpretq_p16_s32(a: int32x4_t) -> poly16x8_t {
24744    transmute(a)
24745}
24746
24747/// Vector reinterpret cast operation
24748///
24749/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u32)
24750#[inline]
24751#[target_feature(enable = "neon")]
24752#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24753#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24754#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24755#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24756#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24757pub unsafe fn vreinterpretq_p16_u32(a: uint32x4_t) -> poly16x8_t {
24758    transmute(a)
24759}
24760
24761/// Vector reinterpret cast operation
24762///
24763/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p64)
24764#[inline]
24765#[target_feature(enable = "neon,aes")]
24766#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
24767#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24768#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24769#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24770#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24771pub unsafe fn vreinterpret_s32_p64(a: poly64x1_t) -> int32x2_t {
24772    transmute(a)
24773}
24774
24775/// Vector reinterpret cast operation
24776///
24777/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p64)
24778#[inline]
24779#[target_feature(enable = "neon,aes")]
24780#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
24781#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24782#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24783#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24784#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24785pub unsafe fn vreinterpret_u32_p64(a: poly64x1_t) -> uint32x2_t {
24786    transmute(a)
24787}
24788
24789/// Vector reinterpret cast operation
24790///
24791/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p64)
24792#[inline]
24793#[target_feature(enable = "neon,aes")]
24794#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
24795#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24796#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24797#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24798#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24799pub unsafe fn vreinterpretq_s32_p64(a: poly64x2_t) -> int32x4_t {
24800    transmute(a)
24801}
24802
24803/// Vector reinterpret cast operation
24804///
24805/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p64)
24806#[inline]
24807#[target_feature(enable = "neon,aes")]
24808#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
24809#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24810#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24811#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24812#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24813pub unsafe fn vreinterpretq_u32_p64(a: poly64x2_t) -> uint32x4_t {
24814    transmute(a)
24815}
24816
24817/// Vector reinterpret cast operation
24818///
24819/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p128)
24820#[inline]
24821#[target_feature(enable = "neon,aes")]
24822#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
24823#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24824#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24825#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24826#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24827pub unsafe fn vreinterpretq_s64_p128(a: p128) -> int64x2_t {
24828    transmute(a)
24829}
24830
24831/// Vector reinterpret cast operation
24832///
24833/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p128)
24834#[inline]
24835#[target_feature(enable = "neon,aes")]
24836#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
24837#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24838#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24839#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24840#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24841pub unsafe fn vreinterpretq_u64_p128(a: p128) -> uint64x2_t {
24842    transmute(a)
24843}
24844
24845/// Vector reinterpret cast operation
24846///
24847/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p128)
24848#[inline]
24849#[target_feature(enable = "neon,aes")]
24850#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
24851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24852#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24853#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24854#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24855pub unsafe fn vreinterpretq_p64_p128(a: p128) -> poly64x2_t {
24856    transmute(a)
24857}
24858
24859/// Vector reinterpret cast operation
24860///
24861/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p8)
24862#[inline]
24863#[target_feature(enable = "neon")]
24864#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24865#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24866#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24867#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24868#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24869pub unsafe fn vreinterpret_s16_p8(a: poly8x8_t) -> int16x4_t {
24870    transmute(a)
24871}
24872
24873/// Vector reinterpret cast operation
24874///
24875/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s8)
24876#[inline]
24877#[target_feature(enable = "neon")]
24878#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24879#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24880#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24881#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24882#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24883pub unsafe fn vreinterpret_s16_s8(a: int8x8_t) -> int16x4_t {
24884    transmute(a)
24885}
24886
24887/// Vector reinterpret cast operation
24888///
24889/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u8)
24890#[inline]
24891#[target_feature(enable = "neon")]
24892#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24893#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24894#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24895#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24896#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24897pub unsafe fn vreinterpret_s16_u8(a: uint8x8_t) -> int16x4_t {
24898    transmute(a)
24899}
24900
24901/// Vector reinterpret cast operation
24902///
24903/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p16)
24904#[inline]
24905#[target_feature(enable = "neon")]
24906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24908#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24909#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24910#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24911pub unsafe fn vreinterpret_s32_p16(a: poly16x4_t) -> int32x2_t {
24912    transmute(a)
24913}
24914
24915/// Vector reinterpret cast operation
24916///
24917/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s16)
24918#[inline]
24919#[target_feature(enable = "neon")]
24920#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24921#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24922#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24923#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24924#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24925pub unsafe fn vreinterpret_s32_s16(a: int16x4_t) -> int32x2_t {
24926    transmute(a)
24927}
24928
24929/// Vector reinterpret cast operation
24930///
24931/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u16)
24932#[inline]
24933#[target_feature(enable = "neon")]
24934#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24935#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24936#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24937#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24938#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24939pub unsafe fn vreinterpret_s32_u16(a: uint16x4_t) -> int32x2_t {
24940    transmute(a)
24941}
24942
24943/// Vector reinterpret cast operation
24944///
24945/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s32)
24946#[inline]
24947#[target_feature(enable = "neon")]
24948#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24949#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24950#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24951#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24952#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24953pub unsafe fn vreinterpret_s64_s32(a: int32x2_t) -> int64x1_t {
24954    transmute(a)
24955}
24956
24957/// Vector reinterpret cast operation
24958///
24959/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u32)
24960#[inline]
24961#[target_feature(enable = "neon")]
24962#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24963#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24964#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24965#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24966#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24967pub unsafe fn vreinterpret_s64_u32(a: uint32x2_t) -> int64x1_t {
24968    transmute(a)
24969}
24970
24971/// Vector reinterpret cast operation
24972///
24973/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p8)
24974#[inline]
24975#[target_feature(enable = "neon")]
24976#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24977#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24978#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24979#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24980#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24981pub unsafe fn vreinterpretq_s16_p8(a: poly8x16_t) -> int16x8_t {
24982    transmute(a)
24983}
24984
24985/// Vector reinterpret cast operation
24986///
24987/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s8)
24988#[inline]
24989#[target_feature(enable = "neon")]
24990#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
24991#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
24992#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
24993#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
24994#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
24995pub unsafe fn vreinterpretq_s16_s8(a: int8x16_t) -> int16x8_t {
24996    transmute(a)
24997}
24998
24999/// Vector reinterpret cast operation
25000///
25001/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u8)
25002#[inline]
25003#[target_feature(enable = "neon")]
25004#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25005#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25006#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25007#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25008#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25009pub unsafe fn vreinterpretq_s16_u8(a: uint8x16_t) -> int16x8_t {
25010    transmute(a)
25011}
25012
25013/// Vector reinterpret cast operation
25014///
25015/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p16)
25016#[inline]
25017#[target_feature(enable = "neon")]
25018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25020#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25021#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25022#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25023pub unsafe fn vreinterpretq_s32_p16(a: poly16x8_t) -> int32x4_t {
25024    transmute(a)
25025}
25026
25027/// Vector reinterpret cast operation
25028///
25029/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s16)
25030#[inline]
25031#[target_feature(enable = "neon")]
25032#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25033#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25034#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25035#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25036#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25037pub unsafe fn vreinterpretq_s32_s16(a: int16x8_t) -> int32x4_t {
25038    transmute(a)
25039}
25040
25041/// Vector reinterpret cast operation
25042///
25043/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u16)
25044#[inline]
25045#[target_feature(enable = "neon")]
25046#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25047#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25048#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25049#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25050#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25051pub unsafe fn vreinterpretq_s32_u16(a: uint16x8_t) -> int32x4_t {
25052    transmute(a)
25053}
25054
25055/// Vector reinterpret cast operation
25056///
25057/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s32)
25058#[inline]
25059#[target_feature(enable = "neon")]
25060#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25061#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25062#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25063#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25064#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25065pub unsafe fn vreinterpretq_s64_s32(a: int32x4_t) -> int64x2_t {
25066    transmute(a)
25067}
25068
25069/// Vector reinterpret cast operation
25070///
25071/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u32)
25072#[inline]
25073#[target_feature(enable = "neon")]
25074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25075#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25076#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25077#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25078#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25079pub unsafe fn vreinterpretq_s64_u32(a: uint32x4_t) -> int64x2_t {
25080    transmute(a)
25081}
25082
25083/// Vector reinterpret cast operation
25084///
25085/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p8)
25086#[inline]
25087#[target_feature(enable = "neon")]
25088#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25089#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25090#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25091#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25092#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25093pub unsafe fn vreinterpret_u16_p8(a: poly8x8_t) -> uint16x4_t {
25094    transmute(a)
25095}
25096
25097/// Vector reinterpret cast operation
25098///
25099/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s8)
25100#[inline]
25101#[target_feature(enable = "neon")]
25102#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25103#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25104#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25105#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25106#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25107pub unsafe fn vreinterpret_u16_s8(a: int8x8_t) -> uint16x4_t {
25108    transmute(a)
25109}
25110
25111/// Vector reinterpret cast operation
25112///
25113/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u8)
25114#[inline]
25115#[target_feature(enable = "neon")]
25116#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25117#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25118#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25119#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25120#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25121pub unsafe fn vreinterpret_u16_u8(a: uint8x8_t) -> uint16x4_t {
25122    transmute(a)
25123}
25124
25125/// Vector reinterpret cast operation
25126///
25127/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p16)
25128#[inline]
25129#[target_feature(enable = "neon")]
25130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25132#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25133#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25134#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25135pub unsafe fn vreinterpret_u32_p16(a: poly16x4_t) -> uint32x2_t {
25136    transmute(a)
25137}
25138
25139/// Vector reinterpret cast operation
25140///
25141/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s16)
25142#[inline]
25143#[target_feature(enable = "neon")]
25144#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25145#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25146#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25147#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25148#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25149pub unsafe fn vreinterpret_u32_s16(a: int16x4_t) -> uint32x2_t {
25150    transmute(a)
25151}
25152
25153/// Vector reinterpret cast operation
25154///
25155/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u16)
25156#[inline]
25157#[target_feature(enable = "neon")]
25158#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25159#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25160#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25161#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25162#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25163pub unsafe fn vreinterpret_u32_u16(a: uint16x4_t) -> uint32x2_t {
25164    transmute(a)
25165}
25166
25167/// Vector reinterpret cast operation
25168///
25169/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s32)
25170#[inline]
25171#[target_feature(enable = "neon")]
25172#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25173#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25174#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25175#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25176#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25177pub unsafe fn vreinterpret_u64_s32(a: int32x2_t) -> uint64x1_t {
25178    transmute(a)
25179}
25180
25181/// Vector reinterpret cast operation
25182///
25183/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u32)
25184#[inline]
25185#[target_feature(enable = "neon")]
25186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25187#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25188#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25189#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25190#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25191pub unsafe fn vreinterpret_u64_u32(a: uint32x2_t) -> uint64x1_t {
25192    transmute(a)
25193}
25194
25195/// Vector reinterpret cast operation
25196///
25197/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p8)
25198#[inline]
25199#[target_feature(enable = "neon")]
25200#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25201#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25202#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25203#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25204#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25205pub unsafe fn vreinterpretq_u16_p8(a: poly8x16_t) -> uint16x8_t {
25206    transmute(a)
25207}
25208
25209/// Vector reinterpret cast operation
25210///
25211/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s8)
25212#[inline]
25213#[target_feature(enable = "neon")]
25214#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25215#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25216#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25217#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25218#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25219pub unsafe fn vreinterpretq_u16_s8(a: int8x16_t) -> uint16x8_t {
25220    transmute(a)
25221}
25222
25223/// Vector reinterpret cast operation
25224///
25225/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u8)
25226#[inline]
25227#[target_feature(enable = "neon")]
25228#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25229#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25230#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25231#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25232#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25233pub unsafe fn vreinterpretq_u16_u8(a: uint8x16_t) -> uint16x8_t {
25234    transmute(a)
25235}
25236
25237/// Vector reinterpret cast operation
25238///
25239/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p16)
25240#[inline]
25241#[target_feature(enable = "neon")]
25242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25244#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25245#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25246#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25247pub unsafe fn vreinterpretq_u32_p16(a: poly16x8_t) -> uint32x4_t {
25248    transmute(a)
25249}
25250
25251/// Vector reinterpret cast operation
25252///
25253/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s16)
25254#[inline]
25255#[target_feature(enable = "neon")]
25256#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25257#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25258#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25259#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25260#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25261pub unsafe fn vreinterpretq_u32_s16(a: int16x8_t) -> uint32x4_t {
25262    transmute(a)
25263}
25264
25265/// Vector reinterpret cast operation
25266///
25267/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u16)
25268#[inline]
25269#[target_feature(enable = "neon")]
25270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25272#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25273#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25274#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25275pub unsafe fn vreinterpretq_u32_u16(a: uint16x8_t) -> uint32x4_t {
25276    transmute(a)
25277}
25278
25279/// Vector reinterpret cast operation
25280///
25281/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s32)
25282#[inline]
25283#[target_feature(enable = "neon")]
25284#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25285#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25286#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25287#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25288#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25289pub unsafe fn vreinterpretq_u64_s32(a: int32x4_t) -> uint64x2_t {
25290    transmute(a)
25291}
25292
25293/// Vector reinterpret cast operation
25294///
25295/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u32)
25296#[inline]
25297#[target_feature(enable = "neon")]
25298#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25299#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25300#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25301#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25302#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25303pub unsafe fn vreinterpretq_u64_u32(a: uint32x4_t) -> uint64x2_t {
25304    transmute(a)
25305}
25306
25307/// Vector reinterpret cast operation
25308///
25309/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p8)
25310#[inline]
25311#[target_feature(enable = "neon")]
25312#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25313#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25314#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25315#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25316#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25317pub unsafe fn vreinterpret_p16_p8(a: poly8x8_t) -> poly16x4_t {
25318    transmute(a)
25319}
25320
25321/// Vector reinterpret cast operation
25322///
25323/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s8)
25324#[inline]
25325#[target_feature(enable = "neon")]
25326#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25327#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25328#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25329#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25330#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25331pub unsafe fn vreinterpret_p16_s8(a: int8x8_t) -> poly16x4_t {
25332    transmute(a)
25333}
25334
25335/// Vector reinterpret cast operation
25336///
25337/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u8)
25338#[inline]
25339#[target_feature(enable = "neon")]
25340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25342#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25343#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25344#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25345pub unsafe fn vreinterpret_p16_u8(a: uint8x8_t) -> poly16x4_t {
25346    transmute(a)
25347}
25348
25349/// Vector reinterpret cast operation
25350///
25351/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p8)
25352#[inline]
25353#[target_feature(enable = "neon")]
25354#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25355#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25356#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25357#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25358#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25359pub unsafe fn vreinterpretq_p16_p8(a: poly8x16_t) -> poly16x8_t {
25360    transmute(a)
25361}
25362
25363/// Vector reinterpret cast operation
25364///
25365/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s8)
25366#[inline]
25367#[target_feature(enable = "neon")]
25368#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25369#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25370#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25371#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25372#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25373pub unsafe fn vreinterpretq_p16_s8(a: int8x16_t) -> poly16x8_t {
25374    transmute(a)
25375}
25376
25377/// Vector reinterpret cast operation
25378///
25379/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u8)
25380#[inline]
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(nop))]
25384#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25385#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25386#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25387pub unsafe fn vreinterpretq_p16_u8(a: uint8x16_t) -> poly16x8_t {
25388    transmute(a)
25389}
25390
25391/// Vector reinterpret cast operation
25392///
25393/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s32)
25394#[inline]
25395#[target_feature(enable = "neon,aes")]
25396#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25397#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25398#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25399#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25400#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25401pub unsafe fn vreinterpret_p64_s32(a: int32x2_t) -> poly64x1_t {
25402    transmute(a)
25403}
25404
25405/// Vector reinterpret cast operation
25406///
25407/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u32)
25408#[inline]
25409#[target_feature(enable = "neon,aes")]
25410#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25412#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25413#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25414#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25415pub unsafe fn vreinterpret_p64_u32(a: uint32x2_t) -> poly64x1_t {
25416    transmute(a)
25417}
25418
25419/// Vector reinterpret cast operation
25420///
25421/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s32)
25422#[inline]
25423#[target_feature(enable = "neon,aes")]
25424#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25425#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25426#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25427#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25428#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25429pub unsafe fn vreinterpretq_p64_s32(a: int32x4_t) -> poly64x2_t {
25430    transmute(a)
25431}
25432
25433/// Vector reinterpret cast operation
25434///
25435/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u32)
25436#[inline]
25437#[target_feature(enable = "neon,aes")]
25438#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25439#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25440#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25441#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25442#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25443pub unsafe fn vreinterpretq_p64_u32(a: uint32x4_t) -> poly64x2_t {
25444    transmute(a)
25445}
25446
25447/// Vector reinterpret cast operation
25448///
25449/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s64)
25450#[inline]
25451#[target_feature(enable = "neon,aes")]
25452#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25454#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25455#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25456#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25457pub unsafe fn vreinterpretq_p128_s64(a: int64x2_t) -> p128 {
25458    transmute(a)
25459}
25460
25461/// Vector reinterpret cast operation
25462///
25463/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u64)
25464#[inline]
25465#[target_feature(enable = "neon,aes")]
25466#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25467#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25468#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25469#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25470#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25471pub unsafe fn vreinterpretq_p128_u64(a: uint64x2_t) -> p128 {
25472    transmute(a)
25473}
25474
25475/// Vector reinterpret cast operation
25476///
25477/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p64)
25478#[inline]
25479#[target_feature(enable = "neon,aes")]
25480#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25481#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25482#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25483#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25484#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25485pub unsafe fn vreinterpretq_p128_p64(a: poly64x2_t) -> p128 {
25486    transmute(a)
25487}
25488
25489/// Vector reinterpret cast operation
25490///
25491/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s32)
25492#[inline]
25493#[target_feature(enable = "neon")]
25494#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25495#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25496#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25497#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25498#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25499pub unsafe fn vreinterpret_s8_s32(a: int32x2_t) -> int8x8_t {
25500    transmute(a)
25501}
25502
25503/// Vector reinterpret cast operation
25504///
25505/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u32)
25506#[inline]
25507#[target_feature(enable = "neon")]
25508#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25509#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25510#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25511#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25512#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25513pub unsafe fn vreinterpret_s8_u32(a: uint32x2_t) -> int8x8_t {
25514    transmute(a)
25515}
25516
25517/// Vector reinterpret cast operation
25518///
25519/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_s64)
25520#[inline]
25521#[target_feature(enable = "neon")]
25522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25523#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25524#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25525#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25526#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25527pub unsafe fn vreinterpret_s16_s64(a: int64x1_t) -> int16x4_t {
25528    transmute(a)
25529}
25530
25531/// Vector reinterpret cast operation
25532///
25533/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_u64)
25534#[inline]
25535#[target_feature(enable = "neon")]
25536#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25537#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25538#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25539#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25540#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25541pub unsafe fn vreinterpret_s16_u64(a: uint64x1_t) -> int16x4_t {
25542    transmute(a)
25543}
25544
25545/// Vector reinterpret cast operation
25546///
25547/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s32)
25548#[inline]
25549#[target_feature(enable = "neon")]
25550#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25551#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25552#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25553#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25554#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25555pub unsafe fn vreinterpretq_s8_s32(a: int32x4_t) -> int8x16_t {
25556    transmute(a)
25557}
25558
25559/// Vector reinterpret cast operation
25560///
25561/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u32)
25562#[inline]
25563#[target_feature(enable = "neon")]
25564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25565#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25566#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25567#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25568#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25569pub unsafe fn vreinterpretq_s8_u32(a: uint32x4_t) -> int8x16_t {
25570    transmute(a)
25571}
25572
25573/// Vector reinterpret cast operation
25574///
25575/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_s64)
25576#[inline]
25577#[target_feature(enable = "neon")]
25578#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25579#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25580#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25581#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25582#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25583pub unsafe fn vreinterpretq_s16_s64(a: int64x2_t) -> int16x8_t {
25584    transmute(a)
25585}
25586
25587/// Vector reinterpret cast operation
25588///
25589/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_u64)
25590#[inline]
25591#[target_feature(enable = "neon")]
25592#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25593#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25594#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25595#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25596#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25597pub unsafe fn vreinterpretq_s16_u64(a: uint64x2_t) -> int16x8_t {
25598    transmute(a)
25599}
25600
25601/// Vector reinterpret cast operation
25602///
25603/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s32)
25604#[inline]
25605#[target_feature(enable = "neon")]
25606#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25607#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25608#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25609#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25610#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25611pub unsafe fn vreinterpret_u8_s32(a: int32x2_t) -> uint8x8_t {
25612    transmute(a)
25613}
25614
25615/// Vector reinterpret cast operation
25616///
25617/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u32)
25618#[inline]
25619#[target_feature(enable = "neon")]
25620#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25621#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25622#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25623#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25624#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25625pub unsafe fn vreinterpret_u8_u32(a: uint32x2_t) -> uint8x8_t {
25626    transmute(a)
25627}
25628
25629/// Vector reinterpret cast operation
25630///
25631/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_s64)
25632#[inline]
25633#[target_feature(enable = "neon")]
25634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25635#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25636#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25637#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25638#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25639pub unsafe fn vreinterpret_u16_s64(a: int64x1_t) -> uint16x4_t {
25640    transmute(a)
25641}
25642
25643/// Vector reinterpret cast operation
25644///
25645/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_u64)
25646#[inline]
25647#[target_feature(enable = "neon")]
25648#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25649#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25650#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25651#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25652#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25653pub unsafe fn vreinterpret_u16_u64(a: uint64x1_t) -> uint16x4_t {
25654    transmute(a)
25655}
25656
25657/// Vector reinterpret cast operation
25658///
25659/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s32)
25660#[inline]
25661#[target_feature(enable = "neon")]
25662#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25663#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25664#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25665#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25666#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25667pub unsafe fn vreinterpretq_u8_s32(a: int32x4_t) -> uint8x16_t {
25668    transmute(a)
25669}
25670
25671/// Vector reinterpret cast operation
25672///
25673/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u32)
25674#[inline]
25675#[target_feature(enable = "neon")]
25676#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25677#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25678#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25679#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25680#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25681pub unsafe fn vreinterpretq_u8_u32(a: uint32x4_t) -> uint8x16_t {
25682    transmute(a)
25683}
25684
25685/// Vector reinterpret cast operation
25686///
25687/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_s64)
25688#[inline]
25689#[target_feature(enable = "neon")]
25690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25691#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25692#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25693#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25694#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25695pub unsafe fn vreinterpretq_u16_s64(a: int64x2_t) -> uint16x8_t {
25696    transmute(a)
25697}
25698
25699/// Vector reinterpret cast operation
25700///
25701/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_u64)
25702#[inline]
25703#[target_feature(enable = "neon")]
25704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25706#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25707#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25708#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25709pub unsafe fn vreinterpretq_u16_u64(a: uint64x2_t) -> uint16x8_t {
25710    transmute(a)
25711}
25712
25713/// Vector reinterpret cast operation
25714///
25715/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s32)
25716#[inline]
25717#[target_feature(enable = "neon")]
25718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25720#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25721#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25722#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25723pub unsafe fn vreinterpret_p8_s32(a: int32x2_t) -> poly8x8_t {
25724    transmute(a)
25725}
25726
25727/// Vector reinterpret cast operation
25728///
25729/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u32)
25730#[inline]
25731#[target_feature(enable = "neon")]
25732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25734#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25735#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25736#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25737pub unsafe fn vreinterpret_p8_u32(a: uint32x2_t) -> poly8x8_t {
25738    transmute(a)
25739}
25740
25741/// Vector reinterpret cast operation
25742///
25743/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_s64)
25744#[inline]
25745#[target_feature(enable = "neon")]
25746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25748#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25749#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25750#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25751pub unsafe fn vreinterpret_p16_s64(a: int64x1_t) -> poly16x4_t {
25752    transmute(a)
25753}
25754
25755/// Vector reinterpret cast operation
25756///
25757/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_u64)
25758#[inline]
25759#[target_feature(enable = "neon")]
25760#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25761#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25762#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25763#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25764#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25765pub unsafe fn vreinterpret_p16_u64(a: uint64x1_t) -> poly16x4_t {
25766    transmute(a)
25767}
25768
25769/// Vector reinterpret cast operation
25770///
25771/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s32)
25772#[inline]
25773#[target_feature(enable = "neon")]
25774#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25775#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25776#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25777#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25778#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25779pub unsafe fn vreinterpretq_p8_s32(a: int32x4_t) -> poly8x16_t {
25780    transmute(a)
25781}
25782
25783/// Vector reinterpret cast operation
25784///
25785/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u32)
25786#[inline]
25787#[target_feature(enable = "neon")]
25788#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25789#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25790#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25791#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25792#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25793pub unsafe fn vreinterpretq_p8_u32(a: uint32x4_t) -> poly8x16_t {
25794    transmute(a)
25795}
25796
25797/// Vector reinterpret cast operation
25798///
25799/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_s64)
25800#[inline]
25801#[target_feature(enable = "neon")]
25802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25803#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25804#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25805#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25806#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25807pub unsafe fn vreinterpretq_p16_s64(a: int64x2_t) -> poly16x8_t {
25808    transmute(a)
25809}
25810
25811/// Vector reinterpret cast operation
25812///
25813/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_u64)
25814#[inline]
25815#[target_feature(enable = "neon")]
25816#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25817#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25818#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25819#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25820#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25821pub unsafe fn vreinterpretq_p16_u64(a: uint64x2_t) -> poly16x8_t {
25822    transmute(a)
25823}
25824
25825/// Vector reinterpret cast operation
25826///
25827/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_p64)
25828#[inline]
25829#[target_feature(enable = "neon,aes")]
25830#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25832#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25833#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25834#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25835pub unsafe fn vreinterpret_s16_p64(a: poly64x1_t) -> int16x4_t {
25836    transmute(a)
25837}
25838
25839/// Vector reinterpret cast operation
25840///
25841/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_p64)
25842#[inline]
25843#[target_feature(enable = "neon,aes")]
25844#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25845#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25846#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25847#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25848#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25849pub unsafe fn vreinterpret_u16_p64(a: poly64x1_t) -> uint16x4_t {
25850    transmute(a)
25851}
25852
25853/// Vector reinterpret cast operation
25854///
25855/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_p64)
25856#[inline]
25857#[target_feature(enable = "neon,aes")]
25858#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25860#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25861#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25862#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25863pub unsafe fn vreinterpret_p16_p64(a: poly64x1_t) -> poly16x4_t {
25864    transmute(a)
25865}
25866
25867/// Vector reinterpret cast operation
25868///
25869/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p64)
25870#[inline]
25871#[target_feature(enable = "neon,aes")]
25872#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25873#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25874#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25875#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25876#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25877pub unsafe fn vreinterpretq_s16_p64(a: poly64x2_t) -> int16x8_t {
25878    transmute(a)
25879}
25880
25881/// Vector reinterpret cast operation
25882///
25883/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p64)
25884#[inline]
25885#[target_feature(enable = "neon,aes")]
25886#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25887#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25888#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25889#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25890#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25891pub unsafe fn vreinterpretq_u16_p64(a: poly64x2_t) -> uint16x8_t {
25892    transmute(a)
25893}
25894
25895/// Vector reinterpret cast operation
25896///
25897/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p64)
25898#[inline]
25899#[target_feature(enable = "neon,aes")]
25900#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25901#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25902#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25903#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25904#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25905pub unsafe fn vreinterpretq_p16_p64(a: poly64x2_t) -> poly16x8_t {
25906    transmute(a)
25907}
25908
25909/// Vector reinterpret cast operation
25910///
25911/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p128)
25912#[inline]
25913#[target_feature(enable = "neon,aes")]
25914#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25915#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25916#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25917#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25918#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25919pub unsafe fn vreinterpretq_s32_p128(a: p128) -> int32x4_t {
25920    transmute(a)
25921}
25922
25923/// Vector reinterpret cast operation
25924///
25925/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p128)
25926#[inline]
25927#[target_feature(enable = "neon,aes")]
25928#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
25929#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25930#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25931#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25932#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25933pub unsafe fn vreinterpretq_u32_p128(a: p128) -> uint32x4_t {
25934    transmute(a)
25935}
25936
25937/// Vector reinterpret cast operation
25938///
25939/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_p8)
25940#[inline]
25941#[target_feature(enable = "neon")]
25942#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25943#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25944#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25945#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25946#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25947pub unsafe fn vreinterpret_s32_p8(a: poly8x8_t) -> int32x2_t {
25948    transmute(a)
25949}
25950
25951/// Vector reinterpret cast operation
25952///
25953/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_s8)
25954#[inline]
25955#[target_feature(enable = "neon")]
25956#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25957#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25958#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25959#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25960#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25961pub unsafe fn vreinterpret_s32_s8(a: int8x8_t) -> int32x2_t {
25962    transmute(a)
25963}
25964
25965/// Vector reinterpret cast operation
25966///
25967/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_u8)
25968#[inline]
25969#[target_feature(enable = "neon")]
25970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25972#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25973#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25974#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25975pub unsafe fn vreinterpret_s32_u8(a: uint8x8_t) -> int32x2_t {
25976    transmute(a)
25977}
25978
25979/// Vector reinterpret cast operation
25980///
25981/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p16)
25982#[inline]
25983#[target_feature(enable = "neon")]
25984#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25985#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
25986#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
25987#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
25988#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
25989pub unsafe fn vreinterpret_s64_p16(a: poly16x4_t) -> int64x1_t {
25990    transmute(a)
25991}
25992
25993/// Vector reinterpret cast operation
25994///
25995/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s16)
25996#[inline]
25997#[target_feature(enable = "neon")]
25998#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
25999#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26000#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26001#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26002#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26003pub unsafe fn vreinterpret_s64_s16(a: int16x4_t) -> int64x1_t {
26004    transmute(a)
26005}
26006
26007/// Vector reinterpret cast operation
26008///
26009/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u16)
26010#[inline]
26011#[target_feature(enable = "neon")]
26012#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26013#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26014#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26015#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26016#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26017pub unsafe fn vreinterpret_s64_u16(a: uint16x4_t) -> int64x1_t {
26018    transmute(a)
26019}
26020
26021/// Vector reinterpret cast operation
26022///
26023/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_p8)
26024#[inline]
26025#[target_feature(enable = "neon")]
26026#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26027#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26028#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26029#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26030#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26031pub unsafe fn vreinterpretq_s32_p8(a: poly8x16_t) -> int32x4_t {
26032    transmute(a)
26033}
26034
26035/// Vector reinterpret cast operation
26036///
26037/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_s8)
26038#[inline]
26039#[target_feature(enable = "neon")]
26040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26041#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26042#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26043#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26044#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26045pub unsafe fn vreinterpretq_s32_s8(a: int8x16_t) -> int32x4_t {
26046    transmute(a)
26047}
26048
26049/// Vector reinterpret cast operation
26050///
26051/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_u8)
26052#[inline]
26053#[target_feature(enable = "neon")]
26054#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26055#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26056#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26057#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26058#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26059pub unsafe fn vreinterpretq_s32_u8(a: uint8x16_t) -> int32x4_t {
26060    transmute(a)
26061}
26062
26063/// Vector reinterpret cast operation
26064///
26065/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p16)
26066#[inline]
26067#[target_feature(enable = "neon")]
26068#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26069#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26070#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26071#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26072#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26073pub unsafe fn vreinterpretq_s64_p16(a: poly16x8_t) -> int64x2_t {
26074    transmute(a)
26075}
26076
26077/// Vector reinterpret cast operation
26078///
26079/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s16)
26080#[inline]
26081#[target_feature(enable = "neon")]
26082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26083#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26084#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26085#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26086#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26087pub unsafe fn vreinterpretq_s64_s16(a: int16x8_t) -> int64x2_t {
26088    transmute(a)
26089}
26090
26091/// Vector reinterpret cast operation
26092///
26093/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u16)
26094#[inline]
26095#[target_feature(enable = "neon")]
26096#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26097#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26098#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26099#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26100#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26101pub unsafe fn vreinterpretq_s64_u16(a: uint16x8_t) -> int64x2_t {
26102    transmute(a)
26103}
26104
26105/// Vector reinterpret cast operation
26106///
26107/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_p8)
26108#[inline]
26109#[target_feature(enable = "neon")]
26110#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26111#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26112#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26113#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26114#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26115pub unsafe fn vreinterpret_u32_p8(a: poly8x8_t) -> uint32x2_t {
26116    transmute(a)
26117}
26118
26119/// Vector reinterpret cast operation
26120///
26121/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_s8)
26122#[inline]
26123#[target_feature(enable = "neon")]
26124#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26125#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26126#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26127#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26128#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26129pub unsafe fn vreinterpret_u32_s8(a: int8x8_t) -> uint32x2_t {
26130    transmute(a)
26131}
26132
26133/// Vector reinterpret cast operation
26134///
26135/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_u8)
26136#[inline]
26137#[target_feature(enable = "neon")]
26138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26139#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26140#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26141#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26142#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26143pub unsafe fn vreinterpret_u32_u8(a: uint8x8_t) -> uint32x2_t {
26144    transmute(a)
26145}
26146
26147/// Vector reinterpret cast operation
26148///
26149/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p16)
26150#[inline]
26151#[target_feature(enable = "neon")]
26152#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26153#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26154#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26155#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26156#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26157pub unsafe fn vreinterpret_u64_p16(a: poly16x4_t) -> uint64x1_t {
26158    transmute(a)
26159}
26160
26161/// Vector reinterpret cast operation
26162///
26163/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s16)
26164#[inline]
26165#[target_feature(enable = "neon")]
26166#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26167#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26168#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26169#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26170#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26171pub unsafe fn vreinterpret_u64_s16(a: int16x4_t) -> uint64x1_t {
26172    transmute(a)
26173}
26174
26175/// Vector reinterpret cast operation
26176///
26177/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u16)
26178#[inline]
26179#[target_feature(enable = "neon")]
26180#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26181#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26182#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26183#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26184#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26185pub unsafe fn vreinterpret_u64_u16(a: uint16x4_t) -> uint64x1_t {
26186    transmute(a)
26187}
26188
26189/// Vector reinterpret cast operation
26190///
26191/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_p8)
26192#[inline]
26193#[target_feature(enable = "neon")]
26194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26196#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26197#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26198#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26199pub unsafe fn vreinterpretq_u32_p8(a: poly8x16_t) -> uint32x4_t {
26200    transmute(a)
26201}
26202
26203/// Vector reinterpret cast operation
26204///
26205/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_s8)
26206#[inline]
26207#[target_feature(enable = "neon")]
26208#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26209#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26210#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26211#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26212#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26213pub unsafe fn vreinterpretq_u32_s8(a: int8x16_t) -> uint32x4_t {
26214    transmute(a)
26215}
26216
26217/// Vector reinterpret cast operation
26218///
26219/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_u8)
26220#[inline]
26221#[target_feature(enable = "neon")]
26222#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26223#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26224#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26225#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26226#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26227pub unsafe fn vreinterpretq_u32_u8(a: uint8x16_t) -> uint32x4_t {
26228    transmute(a)
26229}
26230
26231/// Vector reinterpret cast operation
26232///
26233/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p16)
26234#[inline]
26235#[target_feature(enable = "neon")]
26236#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26237#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26238#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26239#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26240#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26241pub unsafe fn vreinterpretq_u64_p16(a: poly16x8_t) -> uint64x2_t {
26242    transmute(a)
26243}
26244
26245/// Vector reinterpret cast operation
26246///
26247/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s16)
26248#[inline]
26249#[target_feature(enable = "neon")]
26250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26252#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26253#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26254#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26255pub unsafe fn vreinterpretq_u64_s16(a: int16x8_t) -> uint64x2_t {
26256    transmute(a)
26257}
26258
26259/// Vector reinterpret cast operation
26260///
26261/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u16)
26262#[inline]
26263#[target_feature(enable = "neon")]
26264#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26265#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26266#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26267#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26268#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26269pub unsafe fn vreinterpretq_u64_u16(a: uint16x8_t) -> uint64x2_t {
26270    transmute(a)
26271}
26272
26273/// Vector reinterpret cast operation
26274///
26275/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p16)
26276#[inline]
26277#[target_feature(enable = "neon,aes")]
26278#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26279#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26280#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26281#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26282#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26283pub unsafe fn vreinterpret_p64_p16(a: poly16x4_t) -> poly64x1_t {
26284    transmute(a)
26285}
26286
26287/// Vector reinterpret cast operation
26288///
26289/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s16)
26290#[inline]
26291#[target_feature(enable = "neon,aes")]
26292#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26293#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26294#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26295#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26296#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26297pub unsafe fn vreinterpret_p64_s16(a: int16x4_t) -> poly64x1_t {
26298    transmute(a)
26299}
26300
26301/// Vector reinterpret cast operation
26302///
26303/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u16)
26304#[inline]
26305#[target_feature(enable = "neon,aes")]
26306#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26307#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26308#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26309#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26310#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26311pub unsafe fn vreinterpret_p64_u16(a: uint16x4_t) -> poly64x1_t {
26312    transmute(a)
26313}
26314
26315/// Vector reinterpret cast operation
26316///
26317/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p16)
26318#[inline]
26319#[target_feature(enable = "neon,aes")]
26320#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26321#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26322#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26323#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26324#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26325pub unsafe fn vreinterpretq_p64_p16(a: poly16x8_t) -> poly64x2_t {
26326    transmute(a)
26327}
26328
26329/// Vector reinterpret cast operation
26330///
26331/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s16)
26332#[inline]
26333#[target_feature(enable = "neon,aes")]
26334#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26335#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26336#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26337#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26338#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26339pub unsafe fn vreinterpretq_p64_s16(a: int16x8_t) -> poly64x2_t {
26340    transmute(a)
26341}
26342
26343/// Vector reinterpret cast operation
26344///
26345/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u16)
26346#[inline]
26347#[target_feature(enable = "neon,aes")]
26348#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26349#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26350#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26351#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26352#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26353pub unsafe fn vreinterpretq_p64_u16(a: uint16x8_t) -> poly64x2_t {
26354    transmute(a)
26355}
26356
26357/// Vector reinterpret cast operation
26358///
26359/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s32)
26360#[inline]
26361#[target_feature(enable = "neon,aes")]
26362#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26364#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26365#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26366#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26367pub unsafe fn vreinterpretq_p128_s32(a: int32x4_t) -> p128 {
26368    transmute(a)
26369}
26370
26371/// Vector reinterpret cast operation
26372///
26373/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u32)
26374#[inline]
26375#[target_feature(enable = "neon,aes")]
26376#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26377#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26378#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26379#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26380#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26381pub unsafe fn vreinterpretq_p128_u32(a: uint32x4_t) -> p128 {
26382    transmute(a)
26383}
26384
26385/// Vector reinterpret cast operation
26386///
26387/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_s64)
26388#[inline]
26389#[target_feature(enable = "neon")]
26390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26392#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26393#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26394#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26395pub unsafe fn vreinterpret_s8_s64(a: int64x1_t) -> int8x8_t {
26396    transmute(a)
26397}
26398
26399/// Vector reinterpret cast operation
26400///
26401/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_u64)
26402#[inline]
26403#[target_feature(enable = "neon")]
26404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26406#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26407#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26408#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26409pub unsafe fn vreinterpret_s8_u64(a: uint64x1_t) -> int8x8_t {
26410    transmute(a)
26411}
26412
26413/// Vector reinterpret cast operation
26414///
26415/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_s64)
26416#[inline]
26417#[target_feature(enable = "neon")]
26418#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26419#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26420#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26421#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26422#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26423pub unsafe fn vreinterpret_u8_s64(a: int64x1_t) -> uint8x8_t {
26424    transmute(a)
26425}
26426
26427/// Vector reinterpret cast operation
26428///
26429/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_u64)
26430#[inline]
26431#[target_feature(enable = "neon")]
26432#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26433#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26434#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26435#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26436#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26437pub unsafe fn vreinterpret_u8_u64(a: uint64x1_t) -> uint8x8_t {
26438    transmute(a)
26439}
26440
26441/// Vector reinterpret cast operation
26442///
26443/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_s64)
26444#[inline]
26445#[target_feature(enable = "neon")]
26446#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26447#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26448#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26449#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26450#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26451pub unsafe fn vreinterpret_p8_s64(a: int64x1_t) -> poly8x8_t {
26452    transmute(a)
26453}
26454
26455/// Vector reinterpret cast operation
26456///
26457/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_u64)
26458#[inline]
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(nop))]
26462#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26463#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26464#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26465pub unsafe fn vreinterpret_p8_u64(a: uint64x1_t) -> poly8x8_t {
26466    transmute(a)
26467}
26468
26469/// Vector reinterpret cast operation
26470///
26471/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_s64)
26472#[inline]
26473#[target_feature(enable = "neon")]
26474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26475#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26476#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26477#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26478#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26479pub unsafe fn vreinterpretq_s8_s64(a: int64x2_t) -> int8x16_t {
26480    transmute(a)
26481}
26482
26483/// Vector reinterpret cast operation
26484///
26485/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_u64)
26486#[inline]
26487#[target_feature(enable = "neon")]
26488#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26489#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26490#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26491#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26492#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26493pub unsafe fn vreinterpretq_s8_u64(a: uint64x2_t) -> int8x16_t {
26494    transmute(a)
26495}
26496
26497/// Vector reinterpret cast operation
26498///
26499/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_s64)
26500#[inline]
26501#[target_feature(enable = "neon")]
26502#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26503#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26504#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26505#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26506#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26507pub unsafe fn vreinterpretq_u8_s64(a: int64x2_t) -> uint8x16_t {
26508    transmute(a)
26509}
26510
26511/// Vector reinterpret cast operation
26512///
26513/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_u64)
26514#[inline]
26515#[target_feature(enable = "neon")]
26516#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26517#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26518#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26519#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26520#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26521pub unsafe fn vreinterpretq_u8_u64(a: uint64x2_t) -> uint8x16_t {
26522    transmute(a)
26523}
26524
26525/// Vector reinterpret cast operation
26526///
26527/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_s64)
26528#[inline]
26529#[target_feature(enable = "neon")]
26530#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26531#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26532#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26533#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26534#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26535pub unsafe fn vreinterpretq_p8_s64(a: int64x2_t) -> poly8x16_t {
26536    transmute(a)
26537}
26538
26539/// Vector reinterpret cast operation
26540///
26541/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_u64)
26542#[inline]
26543#[target_feature(enable = "neon")]
26544#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26545#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26546#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26547#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26548#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26549pub unsafe fn vreinterpretq_p8_u64(a: uint64x2_t) -> poly8x16_t {
26550    transmute(a)
26551}
26552
26553/// Vector reinterpret cast operation
26554///
26555/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_p64)
26556#[inline]
26557#[target_feature(enable = "neon,aes")]
26558#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26559#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26560#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26561#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26562#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26563pub unsafe fn vreinterpret_s8_p64(a: poly64x1_t) -> int8x8_t {
26564    transmute(a)
26565}
26566
26567/// Vector reinterpret cast operation
26568///
26569/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_p64)
26570#[inline]
26571#[target_feature(enable = "neon,aes")]
26572#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26573#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26574#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26575#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26576#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26577pub unsafe fn vreinterpret_u8_p64(a: poly64x1_t) -> uint8x8_t {
26578    transmute(a)
26579}
26580
26581/// Vector reinterpret cast operation
26582///
26583/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_p64)
26584#[inline]
26585#[target_feature(enable = "neon,aes")]
26586#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26588#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26589#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26590#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26591pub unsafe fn vreinterpret_p8_p64(a: poly64x1_t) -> poly8x8_t {
26592    transmute(a)
26593}
26594
26595/// Vector reinterpret cast operation
26596///
26597/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p64)
26598#[inline]
26599#[target_feature(enable = "neon,aes")]
26600#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26601#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26602#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26603#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26604#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26605pub unsafe fn vreinterpretq_s8_p64(a: poly64x2_t) -> int8x16_t {
26606    transmute(a)
26607}
26608
26609/// Vector reinterpret cast operation
26610///
26611/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p64)
26612#[inline]
26613#[target_feature(enable = "neon,aes")]
26614#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26615#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26616#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26617#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26618#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26619pub unsafe fn vreinterpretq_u8_p64(a: poly64x2_t) -> uint8x16_t {
26620    transmute(a)
26621}
26622
26623/// Vector reinterpret cast operation
26624///
26625/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p64)
26626#[inline]
26627#[target_feature(enable = "neon,aes")]
26628#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26629#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26630#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26631#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26632#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26633pub unsafe fn vreinterpretq_p8_p64(a: poly64x2_t) -> poly8x16_t {
26634    transmute(a)
26635}
26636
26637/// Vector reinterpret cast operation
26638///
26639/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_p128)
26640#[inline]
26641#[target_feature(enable = "neon,aes")]
26642#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26643#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26644#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26645#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26646#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26647pub unsafe fn vreinterpretq_s16_p128(a: p128) -> int16x8_t {
26648    transmute(a)
26649}
26650
26651/// Vector reinterpret cast operation
26652///
26653/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_p128)
26654#[inline]
26655#[target_feature(enable = "neon,aes")]
26656#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26657#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26658#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26659#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26660#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26661pub unsafe fn vreinterpretq_u16_p128(a: p128) -> uint16x8_t {
26662    transmute(a)
26663}
26664
26665/// Vector reinterpret cast operation
26666///
26667/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_p128)
26668#[inline]
26669#[target_feature(enable = "neon,aes")]
26670#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26672#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26673#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26674#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26675pub unsafe fn vreinterpretq_p16_p128(a: p128) -> poly16x8_t {
26676    transmute(a)
26677}
26678
26679/// Vector reinterpret cast operation
26680///
26681/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_p8)
26682#[inline]
26683#[target_feature(enable = "neon")]
26684#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26685#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26686#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26687#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26688#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26689pub unsafe fn vreinterpret_s64_p8(a: poly8x8_t) -> int64x1_t {
26690    transmute(a)
26691}
26692
26693/// Vector reinterpret cast operation
26694///
26695/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_s8)
26696#[inline]
26697#[target_feature(enable = "neon")]
26698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26700#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26701#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26702#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26703pub unsafe fn vreinterpret_s64_s8(a: int8x8_t) -> int64x1_t {
26704    transmute(a)
26705}
26706
26707/// Vector reinterpret cast operation
26708///
26709/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_u8)
26710#[inline]
26711#[target_feature(enable = "neon")]
26712#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26713#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26714#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26715#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26716#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26717pub unsafe fn vreinterpret_s64_u8(a: uint8x8_t) -> int64x1_t {
26718    transmute(a)
26719}
26720
26721/// Vector reinterpret cast operation
26722///
26723/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_p8)
26724#[inline]
26725#[target_feature(enable = "neon")]
26726#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26727#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26728#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26729#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26730#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26731pub unsafe fn vreinterpret_u64_p8(a: poly8x8_t) -> uint64x1_t {
26732    transmute(a)
26733}
26734
26735/// Vector reinterpret cast operation
26736///
26737/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_s8)
26738#[inline]
26739#[target_feature(enable = "neon")]
26740#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26741#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26742#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26743#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26744#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26745pub unsafe fn vreinterpret_u64_s8(a: int8x8_t) -> uint64x1_t {
26746    transmute(a)
26747}
26748
26749/// Vector reinterpret cast operation
26750///
26751/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_u8)
26752#[inline]
26753#[target_feature(enable = "neon")]
26754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26755#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26756#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26757#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26758#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26759pub unsafe fn vreinterpret_u64_u8(a: uint8x8_t) -> uint64x1_t {
26760    transmute(a)
26761}
26762
26763/// Vector reinterpret cast operation
26764///
26765/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_p8)
26766#[inline]
26767#[target_feature(enable = "neon")]
26768#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26769#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26770#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26771#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26772#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26773pub unsafe fn vreinterpretq_s64_p8(a: poly8x16_t) -> int64x2_t {
26774    transmute(a)
26775}
26776
26777/// Vector reinterpret cast operation
26778///
26779/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_s8)
26780#[inline]
26781#[target_feature(enable = "neon")]
26782#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26783#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26784#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26785#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26786#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26787pub unsafe fn vreinterpretq_s64_s8(a: int8x16_t) -> int64x2_t {
26788    transmute(a)
26789}
26790
26791/// Vector reinterpret cast operation
26792///
26793/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_u8)
26794#[inline]
26795#[target_feature(enable = "neon")]
26796#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26797#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26798#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26799#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26800#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26801pub unsafe fn vreinterpretq_s64_u8(a: uint8x16_t) -> int64x2_t {
26802    transmute(a)
26803}
26804
26805/// Vector reinterpret cast operation
26806///
26807/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_p8)
26808#[inline]
26809#[target_feature(enable = "neon")]
26810#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26811#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26812#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26813#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26814#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26815pub unsafe fn vreinterpretq_u64_p8(a: poly8x16_t) -> uint64x2_t {
26816    transmute(a)
26817}
26818
26819/// Vector reinterpret cast operation
26820///
26821/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_s8)
26822#[inline]
26823#[target_feature(enable = "neon")]
26824#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26825#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26826#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26827#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26828#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26829pub unsafe fn vreinterpretq_u64_s8(a: int8x16_t) -> uint64x2_t {
26830    transmute(a)
26831}
26832
26833/// Vector reinterpret cast operation
26834///
26835/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_u8)
26836#[inline]
26837#[target_feature(enable = "neon")]
26838#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
26839#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26840#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26841#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26842#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26843pub unsafe fn vreinterpretq_u64_u8(a: uint8x16_t) -> uint64x2_t {
26844    transmute(a)
26845}
26846
26847/// Vector reinterpret cast operation
26848///
26849/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_p8)
26850#[inline]
26851#[target_feature(enable = "neon,aes")]
26852#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26853#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26854#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26855#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26856#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26857pub unsafe fn vreinterpret_p64_p8(a: poly8x8_t) -> poly64x1_t {
26858    transmute(a)
26859}
26860
26861/// Vector reinterpret cast operation
26862///
26863/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_s8)
26864#[inline]
26865#[target_feature(enable = "neon,aes")]
26866#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26867#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26868#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26869#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26870#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26871pub unsafe fn vreinterpret_p64_s8(a: int8x8_t) -> poly64x1_t {
26872    transmute(a)
26873}
26874
26875/// Vector reinterpret cast operation
26876///
26877/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p64_u8)
26878#[inline]
26879#[target_feature(enable = "neon,aes")]
26880#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26881#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26882#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26883#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26884#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26885pub unsafe fn vreinterpret_p64_u8(a: uint8x8_t) -> poly64x1_t {
26886    transmute(a)
26887}
26888
26889/// Vector reinterpret cast operation
26890///
26891/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_p8)
26892#[inline]
26893#[target_feature(enable = "neon,aes")]
26894#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26895#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26896#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26897#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26898#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26899pub unsafe fn vreinterpretq_p64_p8(a: poly8x16_t) -> poly64x2_t {
26900    transmute(a)
26901}
26902
26903/// Vector reinterpret cast operation
26904///
26905/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_s8)
26906#[inline]
26907#[target_feature(enable = "neon,aes")]
26908#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26909#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26910#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26911#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26912#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26913pub unsafe fn vreinterpretq_p64_s8(a: int8x16_t) -> poly64x2_t {
26914    transmute(a)
26915}
26916
26917/// Vector reinterpret cast operation
26918///
26919/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p64_u8)
26920#[inline]
26921#[target_feature(enable = "neon,aes")]
26922#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26924#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26925#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26926#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26927pub unsafe fn vreinterpretq_p64_u8(a: uint8x16_t) -> poly64x2_t {
26928    transmute(a)
26929}
26930
26931/// Vector reinterpret cast operation
26932///
26933/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s16)
26934#[inline]
26935#[target_feature(enable = "neon,aes")]
26936#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26937#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26938#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26939#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26940#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26941pub unsafe fn vreinterpretq_p128_s16(a: int16x8_t) -> p128 {
26942    transmute(a)
26943}
26944
26945/// Vector reinterpret cast operation
26946///
26947/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u16)
26948#[inline]
26949#[target_feature(enable = "neon,aes")]
26950#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26951#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26952#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26953#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26954#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26955pub unsafe fn vreinterpretq_p128_u16(a: uint16x8_t) -> p128 {
26956    transmute(a)
26957}
26958
26959/// Vector reinterpret cast operation
26960///
26961/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p16)
26962#[inline]
26963#[target_feature(enable = "neon,aes")]
26964#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26965#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26966#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26967#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26968#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26969pub unsafe fn vreinterpretq_p128_p16(a: poly16x8_t) -> p128 {
26970    transmute(a)
26971}
26972
26973/// Vector reinterpret cast operation
26974///
26975/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_s8)
26976#[inline]
26977#[target_feature(enable = "neon,aes")]
26978#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26979#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26980#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26981#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26982#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26983pub unsafe fn vreinterpretq_p128_s8(a: int8x16_t) -> p128 {
26984    transmute(a)
26985}
26986
26987/// Vector reinterpret cast operation
26988///
26989/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_u8)
26990#[inline]
26991#[target_feature(enable = "neon,aes")]
26992#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
26993#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
26994#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
26995#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
26996#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
26997pub unsafe fn vreinterpretq_p128_u8(a: uint8x16_t) -> p128 {
26998    transmute(a)
26999}
27000
27001/// Vector reinterpret cast operation
27002///
27003/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_p8)
27004#[inline]
27005#[target_feature(enable = "neon,aes")]
27006#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
27007#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27008#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27009#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27010#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27011pub unsafe fn vreinterpretq_p128_p8(a: poly8x16_t) -> p128 {
27012    transmute(a)
27013}
27014
27015/// Vector reinterpret cast operation
27016///
27017/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_p128)
27018#[inline]
27019#[target_feature(enable = "neon,aes")]
27020#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
27021#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27022#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27023#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27024#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27025pub unsafe fn vreinterpretq_s8_p128(a: p128) -> int8x16_t {
27026    transmute(a)
27027}
27028
27029/// Vector reinterpret cast operation
27030///
27031/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_p128)
27032#[inline]
27033#[target_feature(enable = "neon,aes")]
27034#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
27035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27036#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27037#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27038#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27039pub unsafe fn vreinterpretq_u8_p128(a: p128) -> uint8x16_t {
27040    transmute(a)
27041}
27042
27043/// Vector reinterpret cast operation
27044///
27045/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_p128)
27046#[inline]
27047#[target_feature(enable = "neon,aes")]
27048#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
27049#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27050#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27051#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27052#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27053pub unsafe fn vreinterpretq_p8_p128(a: p128) -> poly8x16_t {
27054    transmute(a)
27055}
27056
27057/// Vector reinterpret cast operation
27058///
27059/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s8_f32)
27060#[inline]
27061#[target_feature(enable = "neon")]
27062#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27063#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27064#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27065#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27066#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27067pub unsafe fn vreinterpret_s8_f32(a: float32x2_t) -> int8x8_t {
27068    transmute(a)
27069}
27070
27071/// Vector reinterpret cast operation
27072///
27073/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s16_f32)
27074#[inline]
27075#[target_feature(enable = "neon")]
27076#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27077#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27078#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27079#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27080#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27081pub unsafe fn vreinterpret_s16_f32(a: float32x2_t) -> int16x4_t {
27082    transmute(a)
27083}
27084
27085/// Vector reinterpret cast operation
27086///
27087/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s32_f32)
27088#[inline]
27089#[target_feature(enable = "neon")]
27090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27091#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27092#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27093#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27094#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27095pub unsafe fn vreinterpret_s32_f32(a: float32x2_t) -> int32x2_t {
27096    transmute(a)
27097}
27098
27099/// Vector reinterpret cast operation
27100///
27101/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_s64_f32)
27102#[inline]
27103#[target_feature(enable = "neon")]
27104#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27105#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27106#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27107#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27108#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27109pub unsafe fn vreinterpret_s64_f32(a: float32x2_t) -> int64x1_t {
27110    transmute(a)
27111}
27112
27113/// Vector reinterpret cast operation
27114///
27115/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s8_f32)
27116#[inline]
27117#[target_feature(enable = "neon")]
27118#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27119#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27120#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27121#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27122#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27123pub unsafe fn vreinterpretq_s8_f32(a: float32x4_t) -> int8x16_t {
27124    transmute(a)
27125}
27126
27127/// Vector reinterpret cast operation
27128///
27129/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s16_f32)
27130#[inline]
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(nop))]
27134#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27135#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27136#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27137pub unsafe fn vreinterpretq_s16_f32(a: float32x4_t) -> int16x8_t {
27138    transmute(a)
27139}
27140
27141/// Vector reinterpret cast operation
27142///
27143/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s32_f32)
27144#[inline]
27145#[target_feature(enable = "neon")]
27146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27148#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27149#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27150#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27151pub unsafe fn vreinterpretq_s32_f32(a: float32x4_t) -> int32x4_t {
27152    transmute(a)
27153}
27154
27155/// Vector reinterpret cast operation
27156///
27157/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_s64_f32)
27158#[inline]
27159#[target_feature(enable = "neon")]
27160#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27161#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27162#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27163#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27164#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27165pub unsafe fn vreinterpretq_s64_f32(a: float32x4_t) -> int64x2_t {
27166    transmute(a)
27167}
27168
27169/// Vector reinterpret cast operation
27170///
27171/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u8_f32)
27172#[inline]
27173#[target_feature(enable = "neon")]
27174#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27175#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27176#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27177#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27178#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27179pub unsafe fn vreinterpret_u8_f32(a: float32x2_t) -> uint8x8_t {
27180    transmute(a)
27181}
27182
27183/// Vector reinterpret cast operation
27184///
27185/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u16_f32)
27186#[inline]
27187#[target_feature(enable = "neon")]
27188#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27189#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27190#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27191#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27192#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27193pub unsafe fn vreinterpret_u16_f32(a: float32x2_t) -> uint16x4_t {
27194    transmute(a)
27195}
27196
27197/// Vector reinterpret cast operation
27198///
27199/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u32_f32)
27200#[inline]
27201#[target_feature(enable = "neon")]
27202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27203#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27204#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27205#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27206#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27207pub unsafe fn vreinterpret_u32_f32(a: float32x2_t) -> uint32x2_t {
27208    transmute(a)
27209}
27210
27211/// Vector reinterpret cast operation
27212///
27213/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_u64_f32)
27214#[inline]
27215#[target_feature(enable = "neon")]
27216#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27217#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27218#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27219#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27220#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27221pub unsafe fn vreinterpret_u64_f32(a: float32x2_t) -> uint64x1_t {
27222    transmute(a)
27223}
27224
27225/// Vector reinterpret cast operation
27226///
27227/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u8_f32)
27228#[inline]
27229#[target_feature(enable = "neon")]
27230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27231#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27232#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27233#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27234#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27235pub unsafe fn vreinterpretq_u8_f32(a: float32x4_t) -> uint8x16_t {
27236    transmute(a)
27237}
27238
27239/// Vector reinterpret cast operation
27240///
27241/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u16_f32)
27242#[inline]
27243#[target_feature(enable = "neon")]
27244#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27245#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27246#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27247#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27248#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27249pub unsafe fn vreinterpretq_u16_f32(a: float32x4_t) -> uint16x8_t {
27250    transmute(a)
27251}
27252
27253/// Vector reinterpret cast operation
27254///
27255/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u32_f32)
27256#[inline]
27257#[target_feature(enable = "neon")]
27258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27259#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27260#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27261#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27262#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27263pub unsafe fn vreinterpretq_u32_f32(a: float32x4_t) -> uint32x4_t {
27264    transmute(a)
27265}
27266
27267/// Vector reinterpret cast operation
27268///
27269/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_u64_f32)
27270#[inline]
27271#[target_feature(enable = "neon")]
27272#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27273#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27274#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27275#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27276#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27277pub unsafe fn vreinterpretq_u64_f32(a: float32x4_t) -> uint64x2_t {
27278    transmute(a)
27279}
27280
27281/// Vector reinterpret cast operation
27282///
27283/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p8_f32)
27284#[inline]
27285#[target_feature(enable = "neon")]
27286#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27287#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27288#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27289#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27290#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27291pub unsafe fn vreinterpret_p8_f32(a: float32x2_t) -> poly8x8_t {
27292    transmute(a)
27293}
27294
27295/// Vector reinterpret cast operation
27296///
27297/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_p16_f32)
27298#[inline]
27299#[target_feature(enable = "neon")]
27300#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27301#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27302#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27303#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27304#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27305pub unsafe fn vreinterpret_p16_f32(a: float32x2_t) -> poly16x4_t {
27306    transmute(a)
27307}
27308
27309/// Vector reinterpret cast operation
27310///
27311/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p8_f32)
27312#[inline]
27313#[target_feature(enable = "neon")]
27314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27315#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27316#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27317#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27318#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27319pub unsafe fn vreinterpretq_p8_f32(a: float32x4_t) -> poly8x16_t {
27320    transmute(a)
27321}
27322
27323/// Vector reinterpret cast operation
27324///
27325/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p16_f32)
27326#[inline]
27327#[target_feature(enable = "neon")]
27328#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27329#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27330#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27331#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27332#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27333pub unsafe fn vreinterpretq_p16_f32(a: float32x4_t) -> poly16x8_t {
27334    transmute(a)
27335}
27336
27337/// Vector reinterpret cast operation
27338///
27339/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_p128_f32)
27340#[inline]
27341#[target_feature(enable = "neon")]
27342#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27343#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27344#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27345#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27346#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27347pub unsafe fn vreinterpretq_p128_f32(a: float32x4_t) -> p128 {
27348    transmute(a)
27349}
27350
27351/// Vector reinterpret cast operation
27352///
27353/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s8)
27354#[inline]
27355#[target_feature(enable = "neon")]
27356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27357#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27358#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27359#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27360#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27361pub unsafe fn vreinterpret_f32_s8(a: int8x8_t) -> float32x2_t {
27362    transmute(a)
27363}
27364
27365/// Vector reinterpret cast operation
27366///
27367/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s16)
27368#[inline]
27369#[target_feature(enable = "neon")]
27370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27371#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27372#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27373#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27374#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27375pub unsafe fn vreinterpret_f32_s16(a: int16x4_t) -> float32x2_t {
27376    transmute(a)
27377}
27378
27379/// Vector reinterpret cast operation
27380///
27381/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s32)
27382#[inline]
27383#[target_feature(enable = "neon")]
27384#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27385#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27386#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27387#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27388#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27389pub unsafe fn vreinterpret_f32_s32(a: int32x2_t) -> float32x2_t {
27390    transmute(a)
27391}
27392
27393/// Vector reinterpret cast operation
27394///
27395/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_s64)
27396#[inline]
27397#[target_feature(enable = "neon")]
27398#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27399#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27400#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27401#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27402#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27403pub unsafe fn vreinterpret_f32_s64(a: int64x1_t) -> float32x2_t {
27404    transmute(a)
27405}
27406
27407/// Vector reinterpret cast operation
27408///
27409/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s8)
27410#[inline]
27411#[target_feature(enable = "neon")]
27412#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27413#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27414#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27415#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27416#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27417pub unsafe fn vreinterpretq_f32_s8(a: int8x16_t) -> float32x4_t {
27418    transmute(a)
27419}
27420
27421/// Vector reinterpret cast operation
27422///
27423/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s16)
27424#[inline]
27425#[target_feature(enable = "neon")]
27426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27427#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27428#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27429#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27430#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27431pub unsafe fn vreinterpretq_f32_s16(a: int16x8_t) -> float32x4_t {
27432    transmute(a)
27433}
27434
27435/// Vector reinterpret cast operation
27436///
27437/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s32)
27438#[inline]
27439#[target_feature(enable = "neon")]
27440#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27441#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27442#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27443#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27444#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27445pub unsafe fn vreinterpretq_f32_s32(a: int32x4_t) -> float32x4_t {
27446    transmute(a)
27447}
27448
27449/// Vector reinterpret cast operation
27450///
27451/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_s64)
27452#[inline]
27453#[target_feature(enable = "neon")]
27454#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27455#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27456#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27457#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27458#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27459pub unsafe fn vreinterpretq_f32_s64(a: int64x2_t) -> float32x4_t {
27460    transmute(a)
27461}
27462
27463/// Vector reinterpret cast operation
27464///
27465/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u8)
27466#[inline]
27467#[target_feature(enable = "neon")]
27468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27470#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27471#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27472#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27473pub unsafe fn vreinterpret_f32_u8(a: uint8x8_t) -> float32x2_t {
27474    transmute(a)
27475}
27476
27477/// Vector reinterpret cast operation
27478///
27479/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u16)
27480#[inline]
27481#[target_feature(enable = "neon")]
27482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27484#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27485#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27486#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27487pub unsafe fn vreinterpret_f32_u16(a: uint16x4_t) -> float32x2_t {
27488    transmute(a)
27489}
27490
27491/// Vector reinterpret cast operation
27492///
27493/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u32)
27494#[inline]
27495#[target_feature(enable = "neon")]
27496#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27497#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27498#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27499#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27500#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27501pub unsafe fn vreinterpret_f32_u32(a: uint32x2_t) -> float32x2_t {
27502    transmute(a)
27503}
27504
27505/// Vector reinterpret cast operation
27506///
27507/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_u64)
27508#[inline]
27509#[target_feature(enable = "neon")]
27510#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27511#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27512#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27513#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27514#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27515pub unsafe fn vreinterpret_f32_u64(a: uint64x1_t) -> float32x2_t {
27516    transmute(a)
27517}
27518
27519/// Vector reinterpret cast operation
27520///
27521/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u8)
27522#[inline]
27523#[target_feature(enable = "neon")]
27524#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27525#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27526#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27527#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27528#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27529pub unsafe fn vreinterpretq_f32_u8(a: uint8x16_t) -> float32x4_t {
27530    transmute(a)
27531}
27532
27533/// Vector reinterpret cast operation
27534///
27535/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u16)
27536#[inline]
27537#[target_feature(enable = "neon")]
27538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27540#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27541#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27542#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27543pub unsafe fn vreinterpretq_f32_u16(a: uint16x8_t) -> float32x4_t {
27544    transmute(a)
27545}
27546
27547/// Vector reinterpret cast operation
27548///
27549/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u32)
27550#[inline]
27551#[target_feature(enable = "neon")]
27552#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27553#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27554#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27555#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27556#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27557pub unsafe fn vreinterpretq_f32_u32(a: uint32x4_t) -> float32x4_t {
27558    transmute(a)
27559}
27560
27561/// Vector reinterpret cast operation
27562///
27563/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_u64)
27564#[inline]
27565#[target_feature(enable = "neon")]
27566#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27567#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27568#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27569#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27570#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27571pub unsafe fn vreinterpretq_f32_u64(a: uint64x2_t) -> float32x4_t {
27572    transmute(a)
27573}
27574
27575/// Vector reinterpret cast operation
27576///
27577/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p8)
27578#[inline]
27579#[target_feature(enable = "neon")]
27580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27582#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27583#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27584#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27585pub unsafe fn vreinterpret_f32_p8(a: poly8x8_t) -> float32x2_t {
27586    transmute(a)
27587}
27588
27589/// Vector reinterpret cast operation
27590///
27591/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpret_f32_p16)
27592#[inline]
27593#[target_feature(enable = "neon")]
27594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27596#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27597#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27598#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27599pub unsafe fn vreinterpret_f32_p16(a: poly16x4_t) -> float32x2_t {
27600    transmute(a)
27601}
27602
27603/// Vector reinterpret cast operation
27604///
27605/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p8)
27606#[inline]
27607#[target_feature(enable = "neon")]
27608#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27609#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27610#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27611#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27612#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27613pub unsafe fn vreinterpretq_f32_p8(a: poly8x16_t) -> float32x4_t {
27614    transmute(a)
27615}
27616
27617/// Vector reinterpret cast operation
27618///
27619/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p16)
27620#[inline]
27621#[target_feature(enable = "neon")]
27622#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27623#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27624#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27625#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27626#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27627pub unsafe fn vreinterpretq_f32_p16(a: poly16x8_t) -> float32x4_t {
27628    transmute(a)
27629}
27630
27631/// Vector reinterpret cast operation
27632///
27633/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vreinterpretq_f32_p128)
27634#[inline]
27635#[target_feature(enable = "neon")]
27636#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27637#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
27638#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop))]
27639#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27640#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27641pub unsafe fn vreinterpretq_f32_p128(a: p128) -> float32x4_t {
27642    transmute(a)
27643}
27644
27645/// Signed rounding shift left
27646///
27647/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s8)
27648#[inline]
27649#[target_feature(enable = "neon")]
27650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27651#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27652#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshl))]
27653#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27654#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27655pub unsafe fn vrshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
27656    #[allow(improper_ctypes)]
27657    extern "unadjusted" {
27658        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i8")]
27659        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srshl.v8i8")]
27660        fn vrshl_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
27661    }
27662vrshl_s8_(a, b)
27663}
27664
27665/// Signed rounding shift left
27666///
27667/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s8)
27668#[inline]
27669#[target_feature(enable = "neon")]
27670#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27671#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27672#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshl))]
27673#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27674#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27675pub unsafe fn vrshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
27676    #[allow(improper_ctypes)]
27677    extern "unadjusted" {
27678        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v16i8")]
27679        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srshl.v16i8")]
27680        fn vrshlq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
27681    }
27682vrshlq_s8_(a, b)
27683}
27684
27685/// Signed rounding shift left
27686///
27687/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s16)
27688#[inline]
27689#[target_feature(enable = "neon")]
27690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27691#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27692#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshl))]
27693#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27694#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27695pub unsafe fn vrshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
27696    #[allow(improper_ctypes)]
27697    extern "unadjusted" {
27698        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i16")]
27699        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srshl.v4i16")]
27700        fn vrshl_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
27701    }
27702vrshl_s16_(a, b)
27703}
27704
27705/// Signed rounding shift left
27706///
27707/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s16)
27708#[inline]
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(vrshl))]
27712#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshl))]
27713#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27714#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27715pub unsafe fn vrshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
27716    #[allow(improper_ctypes)]
27717    extern "unadjusted" {
27718        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v8i16")]
27719        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srshl.v8i16")]
27720        fn vrshlq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
27721    }
27722vrshlq_s16_(a, b)
27723}
27724
27725/// Signed rounding shift left
27726///
27727/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s32)
27728#[inline]
27729#[target_feature(enable = "neon")]
27730#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27731#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27732#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshl))]
27733#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27734#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27735pub unsafe fn vrshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
27736    #[allow(improper_ctypes)]
27737    extern "unadjusted" {
27738        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i32")]
27739        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srshl.v2i32")]
27740        fn vrshl_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
27741    }
27742vrshl_s32_(a, b)
27743}
27744
27745/// Signed rounding shift left
27746///
27747/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s32)
27748#[inline]
27749#[target_feature(enable = "neon")]
27750#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27751#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27752#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshl))]
27753#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27754#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27755pub unsafe fn vrshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
27756    #[allow(improper_ctypes)]
27757    extern "unadjusted" {
27758        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v4i32")]
27759        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srshl.v4i32")]
27760        fn vrshlq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
27761    }
27762vrshlq_s32_(a, b)
27763}
27764
27765/// Signed rounding shift left
27766///
27767/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_s64)
27768#[inline]
27769#[target_feature(enable = "neon")]
27770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27771#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27772#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshl))]
27773#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27774#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27775pub unsafe fn vrshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
27776    #[allow(improper_ctypes)]
27777    extern "unadjusted" {
27778        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v1i64")]
27779        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srshl.v1i64")]
27780        fn vrshl_s64_(a: int64x1_t, b: int64x1_t) -> int64x1_t;
27781    }
27782vrshl_s64_(a, b)
27783}
27784
27785/// Signed rounding shift left
27786///
27787/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_s64)
27788#[inline]
27789#[target_feature(enable = "neon")]
27790#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27791#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27792#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshl))]
27793#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27794#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27795pub unsafe fn vrshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
27796    #[allow(improper_ctypes)]
27797    extern "unadjusted" {
27798        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshifts.v2i64")]
27799        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.srshl.v2i64")]
27800        fn vrshlq_s64_(a: int64x2_t, b: int64x2_t) -> int64x2_t;
27801    }
27802vrshlq_s64_(a, b)
27803}
27804
27805/// Unsigned rounding shift left
27806///
27807/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u8)
27808#[inline]
27809#[target_feature(enable = "neon")]
27810#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27811#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27812#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshl))]
27813#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27814#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27815pub unsafe fn vrshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
27816    #[allow(improper_ctypes)]
27817    extern "unadjusted" {
27818        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i8")]
27819        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urshl.v8i8")]
27820        fn vrshl_u8_(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
27821    }
27822vrshl_u8_(a, b)
27823}
27824
27825/// Unsigned rounding shift left
27826///
27827/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u8)
27828#[inline]
27829#[target_feature(enable = "neon")]
27830#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27831#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27832#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshl))]
27833#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27834#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27835pub unsafe fn vrshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
27836    #[allow(improper_ctypes)]
27837    extern "unadjusted" {
27838        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v16i8")]
27839        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urshl.v16i8")]
27840        fn vrshlq_u8_(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
27841    }
27842vrshlq_u8_(a, b)
27843}
27844
27845/// Unsigned rounding shift left
27846///
27847/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u16)
27848#[inline]
27849#[target_feature(enable = "neon")]
27850#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27851#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27852#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshl))]
27853#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27854#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27855pub unsafe fn vrshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
27856    #[allow(improper_ctypes)]
27857    extern "unadjusted" {
27858        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i16")]
27859        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urshl.v4i16")]
27860        fn vrshl_u16_(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
27861    }
27862vrshl_u16_(a, b)
27863}
27864
27865/// Unsigned rounding shift left
27866///
27867/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u16)
27868#[inline]
27869#[target_feature(enable = "neon")]
27870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27871#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27872#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshl))]
27873#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27874#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27875pub unsafe fn vrshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
27876    #[allow(improper_ctypes)]
27877    extern "unadjusted" {
27878        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v8i16")]
27879        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urshl.v8i16")]
27880        fn vrshlq_u16_(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
27881    }
27882vrshlq_u16_(a, b)
27883}
27884
27885/// Unsigned rounding shift left
27886///
27887/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u32)
27888#[inline]
27889#[target_feature(enable = "neon")]
27890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27891#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27892#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshl))]
27893#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27894#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27895pub unsafe fn vrshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
27896    #[allow(improper_ctypes)]
27897    extern "unadjusted" {
27898        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i32")]
27899        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urshl.v2i32")]
27900        fn vrshl_u32_(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
27901    }
27902vrshl_u32_(a, b)
27903}
27904
27905/// Unsigned rounding shift left
27906///
27907/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u32)
27908#[inline]
27909#[target_feature(enable = "neon")]
27910#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27911#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27912#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshl))]
27913#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27914#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27915pub unsafe fn vrshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
27916    #[allow(improper_ctypes)]
27917    extern "unadjusted" {
27918        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v4i32")]
27919        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urshl.v4i32")]
27920        fn vrshlq_u32_(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
27921    }
27922vrshlq_u32_(a, b)
27923}
27924
27925/// Unsigned rounding shift left
27926///
27927/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshl_u64)
27928#[inline]
27929#[target_feature(enable = "neon")]
27930#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27931#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27932#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshl))]
27933#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27934#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27935pub unsafe fn vrshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
27936    #[allow(improper_ctypes)]
27937    extern "unadjusted" {
27938        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v1i64")]
27939        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urshl.v1i64")]
27940        fn vrshl_u64_(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
27941    }
27942vrshl_u64_(a, b)
27943}
27944
27945/// Unsigned rounding shift left
27946///
27947/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshlq_u64)
27948#[inline]
27949#[target_feature(enable = "neon")]
27950#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27951#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshl))]
27952#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshl))]
27953#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27954#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27955pub unsafe fn vrshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
27956    #[allow(improper_ctypes)]
27957    extern "unadjusted" {
27958        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftu.v2i64")]
27959        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.urshl.v2i64")]
27960        fn vrshlq_u64_(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
27961    }
27962vrshlq_u64_(a, b)
27963}
27964
27965/// Signed rounding shift right
27966///
27967/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s8)
27968#[inline]
27969#[target_feature(enable = "neon")]
27970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
27972#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshr, N = 2))]
27973#[rustc_legacy_const_generics(1)]
27974#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27975#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27976pub unsafe fn vrshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
27977    static_assert!(N >= 1 && N <= 8);
27978    vrshl_s8(a, vdup_n_s8(-N as _))
27979}
27980
27981/// Signed rounding shift right
27982///
27983/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s8)
27984#[inline]
27985#[target_feature(enable = "neon")]
27986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
27987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
27988#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshr, N = 2))]
27989#[rustc_legacy_const_generics(1)]
27990#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
27991#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
27992pub unsafe fn vrshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
27993    static_assert!(N >= 1 && N <= 8);
27994    vrshlq_s8(a, vdupq_n_s8(-N as _))
27995}
27996
27997/// Signed rounding shift right
27998///
27999/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s16)
28000#[inline]
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(vrshr, N = 2))]
28004#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshr, N = 2))]
28005#[rustc_legacy_const_generics(1)]
28006#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28007#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28008pub unsafe fn vrshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
28009    static_assert!(N >= 1 && N <= 16);
28010    vrshl_s16(a, vdup_n_s16(-N as _))
28011}
28012
28013/// Signed rounding shift right
28014///
28015/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s16)
28016#[inline]
28017#[target_feature(enable = "neon")]
28018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28020#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshr, N = 2))]
28021#[rustc_legacy_const_generics(1)]
28022#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28023#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28024pub unsafe fn vrshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
28025    static_assert!(N >= 1 && N <= 16);
28026    vrshlq_s16(a, vdupq_n_s16(-N as _))
28027}
28028
28029/// Signed rounding shift right
28030///
28031/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s32)
28032#[inline]
28033#[target_feature(enable = "neon")]
28034#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28035#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28036#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshr, N = 2))]
28037#[rustc_legacy_const_generics(1)]
28038#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28039#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28040pub unsafe fn vrshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
28041    static_assert!(N >= 1 && N <= 32);
28042    vrshl_s32(a, vdup_n_s32(-N as _))
28043}
28044
28045/// Signed rounding shift right
28046///
28047/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s32)
28048#[inline]
28049#[target_feature(enable = "neon")]
28050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28052#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshr, N = 2))]
28053#[rustc_legacy_const_generics(1)]
28054#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28055#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28056pub unsafe fn vrshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
28057    static_assert!(N >= 1 && N <= 32);
28058    vrshlq_s32(a, vdupq_n_s32(-N as _))
28059}
28060
28061/// Signed rounding shift right
28062///
28063/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_s64)
28064#[inline]
28065#[target_feature(enable = "neon")]
28066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28068#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshr, N = 2))]
28069#[rustc_legacy_const_generics(1)]
28070#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28071#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28072pub unsafe fn vrshr_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
28073    static_assert!(N >= 1 && N <= 64);
28074    vrshl_s64(a, vdup_n_s64(-N as _))
28075}
28076
28077/// Signed rounding shift right
28078///
28079/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_s64)
28080#[inline]
28081#[target_feature(enable = "neon")]
28082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28083#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28084#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srshr, N = 2))]
28085#[rustc_legacy_const_generics(1)]
28086#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28087#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28088pub unsafe fn vrshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
28089    static_assert!(N >= 1 && N <= 64);
28090    vrshlq_s64(a, vdupq_n_s64(-N as _))
28091}
28092
28093/// Unsigned rounding shift right
28094///
28095/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u8)
28096#[inline]
28097#[target_feature(enable = "neon")]
28098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28100#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshr, N = 2))]
28101#[rustc_legacy_const_generics(1)]
28102#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28103#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28104pub unsafe fn vrshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
28105    static_assert!(N >= 1 && N <= 8);
28106    vrshl_u8(a, vdup_n_s8(-N as _))
28107}
28108
28109/// Unsigned rounding shift right
28110///
28111/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u8)
28112#[inline]
28113#[target_feature(enable = "neon")]
28114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28116#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshr, N = 2))]
28117#[rustc_legacy_const_generics(1)]
28118#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28119#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28120pub unsafe fn vrshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
28121    static_assert!(N >= 1 && N <= 8);
28122    vrshlq_u8(a, vdupq_n_s8(-N as _))
28123}
28124
28125/// Unsigned rounding shift right
28126///
28127/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u16)
28128#[inline]
28129#[target_feature(enable = "neon")]
28130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28132#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshr, N = 2))]
28133#[rustc_legacy_const_generics(1)]
28134#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28135#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28136pub unsafe fn vrshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
28137    static_assert!(N >= 1 && N <= 16);
28138    vrshl_u16(a, vdup_n_s16(-N as _))
28139}
28140
28141/// Unsigned rounding shift right
28142///
28143/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u16)
28144#[inline]
28145#[target_feature(enable = "neon")]
28146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28148#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshr, N = 2))]
28149#[rustc_legacy_const_generics(1)]
28150#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28151#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28152pub unsafe fn vrshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
28153    static_assert!(N >= 1 && N <= 16);
28154    vrshlq_u16(a, vdupq_n_s16(-N as _))
28155}
28156
28157/// Unsigned rounding shift right
28158///
28159/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u32)
28160#[inline]
28161#[target_feature(enable = "neon")]
28162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28164#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshr, N = 2))]
28165#[rustc_legacy_const_generics(1)]
28166#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28167#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28168pub unsafe fn vrshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
28169    static_assert!(N >= 1 && N <= 32);
28170    vrshl_u32(a, vdup_n_s32(-N as _))
28171}
28172
28173/// Unsigned rounding shift right
28174///
28175/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u32)
28176#[inline]
28177#[target_feature(enable = "neon")]
28178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28180#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshr, N = 2))]
28181#[rustc_legacy_const_generics(1)]
28182#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28183#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28184pub unsafe fn vrshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
28185    static_assert!(N >= 1 && N <= 32);
28186    vrshlq_u32(a, vdupq_n_s32(-N as _))
28187}
28188
28189/// Unsigned rounding shift right
28190///
28191/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshr_n_u64)
28192#[inline]
28193#[target_feature(enable = "neon")]
28194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28196#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshr, N = 2))]
28197#[rustc_legacy_const_generics(1)]
28198#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28199#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28200pub unsafe fn vrshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
28201    static_assert!(N >= 1 && N <= 64);
28202    vrshl_u64(a, vdup_n_s64(-N as _))
28203}
28204
28205/// Unsigned rounding shift right
28206///
28207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrq_n_u64)
28208#[inline]
28209#[target_feature(enable = "neon")]
28210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshr, N = 2))]
28212#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(urshr, N = 2))]
28213#[rustc_legacy_const_generics(1)]
28214#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28215#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28216pub unsafe fn vrshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
28217    static_assert!(N >= 1 && N <= 64);
28218    vrshlq_u64(a, vdupq_n_s64(-N as _))
28219}
28220
28221/// Rounding shift right narrow
28222///
28223/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)
28224#[inline]
28225#[cfg(target_arch = "arm")]
28226#[target_feature(enable = "neon,v7")]
28227#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
28228#[rustc_legacy_const_generics(1)]
28229#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
28230pub unsafe fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
28231    static_assert!(N >= 1 && N <= 8);
28232    #[allow(improper_ctypes)]
28233    extern "unadjusted" {
28234        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v8i8")]
28235        fn vrshrn_n_s16_(a: int16x8_t, n: int16x8_t) -> int8x8_t;
28236    }
28237vrshrn_n_s16_(a, const { int16x8_t([-N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16, -N as i16]) })
28238}
28239
28240/// Rounding shift right narrow
28241///
28242/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s16)
28243#[inline]
28244#[cfg(not(target_arch = "arm"))]
28245#[target_feature(enable = "neon")]
28246#[cfg_attr(test, assert_instr(rshrn, N = 2))]
28247#[rustc_legacy_const_generics(1)]
28248#[stable(feature = "neon_intrinsics", since = "1.59.0")]
28249pub unsafe fn vrshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
28250    static_assert!(N >= 1 && N <= 8);
28251    #[allow(improper_ctypes)]
28252    extern "unadjusted" {
28253        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.rshrn.v8i8")]
28254        fn vrshrn_n_s16_(a: int16x8_t, n: i32) -> int8x8_t;
28255    }
28256vrshrn_n_s16_(a, N)
28257}
28258
28259/// Rounding shift right narrow
28260///
28261/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)
28262#[inline]
28263#[cfg(target_arch = "arm")]
28264#[target_feature(enable = "neon,v7")]
28265#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
28266#[rustc_legacy_const_generics(1)]
28267#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
28268pub unsafe fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
28269    static_assert!(N >= 1 && N <= 16);
28270    #[allow(improper_ctypes)]
28271    extern "unadjusted" {
28272        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v4i16")]
28273        fn vrshrn_n_s32_(a: int32x4_t, n: int32x4_t) -> int16x4_t;
28274    }
28275vrshrn_n_s32_(a, const { int32x4_t([-N as i32, -N as i32, -N as i32, -N as i32]) })
28276}
28277
28278/// Rounding shift right narrow
28279///
28280/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s32)
28281#[inline]
28282#[cfg(not(target_arch = "arm"))]
28283#[target_feature(enable = "neon")]
28284#[cfg_attr(test, assert_instr(rshrn, N = 2))]
28285#[rustc_legacy_const_generics(1)]
28286#[stable(feature = "neon_intrinsics", since = "1.59.0")]
28287pub unsafe fn vrshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
28288    static_assert!(N >= 1 && N <= 16);
28289    #[allow(improper_ctypes)]
28290    extern "unadjusted" {
28291        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.rshrn.v4i16")]
28292        fn vrshrn_n_s32_(a: int32x4_t, n: i32) -> int16x4_t;
28293    }
28294vrshrn_n_s32_(a, N)
28295}
28296
28297/// Rounding shift right narrow
28298///
28299/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)
28300#[inline]
28301#[cfg(target_arch = "arm")]
28302#[target_feature(enable = "neon,v7")]
28303#[cfg_attr(test, assert_instr(vrshrn, N = 2))]
28304#[rustc_legacy_const_generics(1)]
28305#[unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")]
28306pub unsafe fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
28307    static_assert!(N >= 1 && N <= 32);
28308    #[allow(improper_ctypes)]
28309    extern "unadjusted" {
28310        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrshiftn.v2i32")]
28311        fn vrshrn_n_s64_(a: int64x2_t, n: int64x2_t) -> int32x2_t;
28312    }
28313vrshrn_n_s64_(a, const { int64x2_t([-N as i64, -N as i64]) })
28314}
28315
28316/// Rounding shift right narrow
28317///
28318/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_s64)
28319#[inline]
28320#[cfg(not(target_arch = "arm"))]
28321#[target_feature(enable = "neon")]
28322#[cfg_attr(test, assert_instr(rshrn, N = 2))]
28323#[rustc_legacy_const_generics(1)]
28324#[stable(feature = "neon_intrinsics", since = "1.59.0")]
28325pub unsafe fn vrshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
28326    static_assert!(N >= 1 && N <= 32);
28327    #[allow(improper_ctypes)]
28328    extern "unadjusted" {
28329        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.rshrn.v2i32")]
28330        fn vrshrn_n_s64_(a: int64x2_t, n: i32) -> int32x2_t;
28331    }
28332vrshrn_n_s64_(a, N)
28333}
28334
28335/// Rounding shift right narrow
28336///
28337/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u16)
28338#[inline]
28339#[target_feature(enable = "neon")]
28340#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28341#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
28342#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(rshrn, N = 2))]
28343#[rustc_legacy_const_generics(1)]
28344#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28345#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28346pub unsafe fn vrshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
28347    static_assert!(N >= 1 && N <= 8);
28348    transmute(vrshrn_n_s16::<N>(transmute(a)))
28349}
28350
28351/// Rounding shift right narrow
28352///
28353/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u32)
28354#[inline]
28355#[target_feature(enable = "neon")]
28356#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28357#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
28358#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(rshrn, N = 2))]
28359#[rustc_legacy_const_generics(1)]
28360#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28361#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28362pub unsafe fn vrshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
28363    static_assert!(N >= 1 && N <= 16);
28364    transmute(vrshrn_n_s32::<N>(transmute(a)))
28365}
28366
28367/// Rounding shift right narrow
28368///
28369/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrshrn_n_u64)
28370#[inline]
28371#[target_feature(enable = "neon")]
28372#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28373#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrshrn, N = 2))]
28374#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(rshrn, N = 2))]
28375#[rustc_legacy_const_generics(1)]
28376#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28377#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28378pub unsafe fn vrshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
28379    static_assert!(N >= 1 && N <= 32);
28380    transmute(vrshrn_n_s64::<N>(transmute(a)))
28381}
28382
28383/// Signed rounding shift right and accumulate
28384///
28385/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s8)
28386#[inline]
28387#[target_feature(enable = "neon")]
28388#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28389#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28390#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srsra, N = 2))]
28391#[rustc_legacy_const_generics(2)]
28392#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28393#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28394pub unsafe fn vrsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
28395    static_assert!(N >= 1 && N <= 8);
28396    simd_add(a, vrshr_n_s8::<N>(b))
28397}
28398
28399/// Signed rounding shift right and accumulate
28400///
28401/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s8)
28402#[inline]
28403#[target_feature(enable = "neon")]
28404#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28405#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28406#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srsra, N = 2))]
28407#[rustc_legacy_const_generics(2)]
28408#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28409#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28410pub unsafe fn vrsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
28411    static_assert!(N >= 1 && N <= 8);
28412    simd_add(a, vrshrq_n_s8::<N>(b))
28413}
28414
28415/// Signed rounding shift right and accumulate
28416///
28417/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s16)
28418#[inline]
28419#[target_feature(enable = "neon")]
28420#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28421#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28422#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srsra, N = 2))]
28423#[rustc_legacy_const_generics(2)]
28424#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28425#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28426pub unsafe fn vrsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
28427    static_assert!(N >= 1 && N <= 16);
28428    simd_add(a, vrshr_n_s16::<N>(b))
28429}
28430
28431/// Signed rounding shift right and accumulate
28432///
28433/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s16)
28434#[inline]
28435#[target_feature(enable = "neon")]
28436#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28437#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28438#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srsra, N = 2))]
28439#[rustc_legacy_const_generics(2)]
28440#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28441#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28442pub unsafe fn vrsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
28443    static_assert!(N >= 1 && N <= 16);
28444    simd_add(a, vrshrq_n_s16::<N>(b))
28445}
28446
28447/// Signed rounding shift right and accumulate
28448///
28449/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s32)
28450#[inline]
28451#[target_feature(enable = "neon")]
28452#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28453#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28454#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srsra, N = 2))]
28455#[rustc_legacy_const_generics(2)]
28456#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28457#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28458pub unsafe fn vrsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
28459    static_assert!(N >= 1 && N <= 32);
28460    simd_add(a, vrshr_n_s32::<N>(b))
28461}
28462
28463/// Signed rounding shift right and accumulate
28464///
28465/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s32)
28466#[inline]
28467#[target_feature(enable = "neon")]
28468#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28469#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28470#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srsra, N = 2))]
28471#[rustc_legacy_const_generics(2)]
28472#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28473#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28474pub unsafe fn vrsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
28475    static_assert!(N >= 1 && N <= 32);
28476    simd_add(a, vrshrq_n_s32::<N>(b))
28477}
28478
28479/// Signed rounding shift right and accumulate
28480///
28481/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_s64)
28482#[inline]
28483#[target_feature(enable = "neon")]
28484#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28485#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28486#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srsra, N = 2))]
28487#[rustc_legacy_const_generics(2)]
28488#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28489#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28490pub unsafe fn vrsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
28491    static_assert!(N >= 1 && N <= 64);
28492    simd_add(a, vrshr_n_s64::<N>(b))
28493}
28494
28495/// Signed rounding shift right and accumulate
28496///
28497/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_s64)
28498#[inline]
28499#[target_feature(enable = "neon")]
28500#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28501#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28502#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(srsra, N = 2))]
28503#[rustc_legacy_const_generics(2)]
28504#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28505#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28506pub unsafe fn vrsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
28507    static_assert!(N >= 1 && N <= 64);
28508    simd_add(a, vrshrq_n_s64::<N>(b))
28509}
28510
28511/// Unsigned rounding shift right and accumulate
28512///
28513/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u8)
28514#[inline]
28515#[target_feature(enable = "neon")]
28516#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28517#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28518#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursra, N = 2))]
28519#[rustc_legacy_const_generics(2)]
28520#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28521#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28522pub unsafe fn vrsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
28523    static_assert!(N >= 1 && N <= 8);
28524    simd_add(a, vrshr_n_u8::<N>(b))
28525}
28526
28527/// Unsigned rounding shift right and accumulate
28528///
28529/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u8)
28530#[inline]
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(vrsra, N = 2))]
28534#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursra, N = 2))]
28535#[rustc_legacy_const_generics(2)]
28536#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28537#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28538pub unsafe fn vrsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
28539    static_assert!(N >= 1 && N <= 8);
28540    simd_add(a, vrshrq_n_u8::<N>(b))
28541}
28542
28543/// Unsigned rounding shift right and accumulate
28544///
28545/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u16)
28546#[inline]
28547#[target_feature(enable = "neon")]
28548#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28549#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28550#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursra, N = 2))]
28551#[rustc_legacy_const_generics(2)]
28552#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28553#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28554pub unsafe fn vrsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
28555    static_assert!(N >= 1 && N <= 16);
28556    simd_add(a, vrshr_n_u16::<N>(b))
28557}
28558
28559/// Unsigned rounding shift right and accumulate
28560///
28561/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u16)
28562#[inline]
28563#[target_feature(enable = "neon")]
28564#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28565#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28566#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursra, N = 2))]
28567#[rustc_legacy_const_generics(2)]
28568#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28569#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28570pub unsafe fn vrsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
28571    static_assert!(N >= 1 && N <= 16);
28572    simd_add(a, vrshrq_n_u16::<N>(b))
28573}
28574
28575/// Unsigned rounding shift right and accumulate
28576///
28577/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u32)
28578#[inline]
28579#[target_feature(enable = "neon")]
28580#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28581#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28582#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursra, N = 2))]
28583#[rustc_legacy_const_generics(2)]
28584#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28585#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28586pub unsafe fn vrsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
28587    static_assert!(N >= 1 && N <= 32);
28588    simd_add(a, vrshr_n_u32::<N>(b))
28589}
28590
28591/// Unsigned rounding shift right and accumulate
28592///
28593/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u32)
28594#[inline]
28595#[target_feature(enable = "neon")]
28596#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28597#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28598#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursra, N = 2))]
28599#[rustc_legacy_const_generics(2)]
28600#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28601#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28602pub unsafe fn vrsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
28603    static_assert!(N >= 1 && N <= 32);
28604    simd_add(a, vrshrq_n_u32::<N>(b))
28605}
28606
28607/// Unsigned rounding shift right and accumulate
28608///
28609/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsra_n_u64)
28610#[inline]
28611#[target_feature(enable = "neon")]
28612#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28613#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28614#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursra, N = 2))]
28615#[rustc_legacy_const_generics(2)]
28616#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28617#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28618pub unsafe fn vrsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
28619    static_assert!(N >= 1 && N <= 64);
28620    simd_add(a, vrshr_n_u64::<N>(b))
28621}
28622
28623/// Unsigned rounding shift right and accumulate
28624///
28625/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsraq_n_u64)
28626#[inline]
28627#[target_feature(enable = "neon")]
28628#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28629#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsra, N = 2))]
28630#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ursra, N = 2))]
28631#[rustc_legacy_const_generics(2)]
28632#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28633#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28634pub unsafe fn vrsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
28635    static_assert!(N >= 1 && N <= 64);
28636    simd_add(a, vrshrq_n_u64::<N>(b))
28637}
28638
28639/// Rounding subtract returning high narrow
28640///
28641/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s16)
28642#[inline]
28643#[target_feature(enable = "neon")]
28644#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28645#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
28646#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(rsubhn))]
28647#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28648#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28649pub unsafe fn vrsubhn_s16(a: int16x8_t, b: int16x8_t) -> int8x8_t {
28650    #[allow(improper_ctypes)]
28651    extern "unadjusted" {
28652        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v8i8")]
28653        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.rsubhn.v8i8")]
28654        fn vrsubhn_s16_(a: int16x8_t, b: int16x8_t) -> int8x8_t;
28655    }
28656vrsubhn_s16_(a, b)
28657}
28658
28659/// Rounding subtract returning high narrow
28660///
28661/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s32)
28662#[inline]
28663#[target_feature(enable = "neon")]
28664#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28665#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
28666#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(rsubhn))]
28667#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28668#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28669pub unsafe fn vrsubhn_s32(a: int32x4_t, b: int32x4_t) -> int16x4_t {
28670    #[allow(improper_ctypes)]
28671    extern "unadjusted" {
28672        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v4i16")]
28673        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.rsubhn.v4i16")]
28674        fn vrsubhn_s32_(a: int32x4_t, b: int32x4_t) -> int16x4_t;
28675    }
28676vrsubhn_s32_(a, b)
28677}
28678
28679/// Rounding subtract returning high narrow
28680///
28681/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_s64)
28682#[inline]
28683#[target_feature(enable = "neon")]
28684#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28685#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
28686#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(rsubhn))]
28687#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28688#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28689pub unsafe fn vrsubhn_s64(a: int64x2_t, b: int64x2_t) -> int32x2_t {
28690    #[allow(improper_ctypes)]
28691    extern "unadjusted" {
28692        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vrsubhn.v2i32")]
28693        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.rsubhn.v2i32")]
28694        fn vrsubhn_s64_(a: int64x2_t, b: int64x2_t) -> int32x2_t;
28695    }
28696vrsubhn_s64_(a, b)
28697}
28698
28699/// Rounding subtract returning high narrow
28700///
28701/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u16)
28702#[inline]
28703#[target_feature(enable = "neon")]
28704#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28705#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
28706#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(rsubhn))]
28707#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28708#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28709pub unsafe fn vrsubhn_u16(a: uint16x8_t, b: uint16x8_t) -> uint8x8_t {
28710    transmute(vrsubhn_s16(transmute(a), transmute(b)))
28711}
28712
28713/// Rounding subtract returning high narrow
28714///
28715/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u32)
28716#[inline]
28717#[target_feature(enable = "neon")]
28718#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28719#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
28720#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(rsubhn))]
28721#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28722#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28723pub unsafe fn vrsubhn_u32(a: uint32x4_t, b: uint32x4_t) -> uint16x4_t {
28724    transmute(vrsubhn_s32(transmute(a), transmute(b)))
28725}
28726
28727/// Rounding subtract returning high narrow
28728///
28729/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_u64)
28730#[inline]
28731#[target_feature(enable = "neon")]
28732#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28733#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vrsubhn))]
28734#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(rsubhn))]
28735#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28736#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28737pub unsafe fn vrsubhn_u64(a: uint64x2_t, b: uint64x2_t) -> uint32x2_t {
28738    transmute(vrsubhn_s64(transmute(a), transmute(b)))
28739}
28740
28741/// Insert vector element from another vector element
28742///
28743/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s8)
28744#[inline]
28745#[target_feature(enable = "neon")]
28746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28748#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28749#[rustc_legacy_const_generics(2)]
28750#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28751#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28752pub unsafe fn vset_lane_s8<const LANE: i32>(a: i8, b: int8x8_t) -> int8x8_t {
28753    static_assert_uimm_bits!(LANE, 3);
28754    simd_insert!(b, LANE as u32, a)
28755}
28756
28757/// Insert vector element from another vector element
28758///
28759/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s16)
28760#[inline]
28761#[target_feature(enable = "neon")]
28762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28763#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28764#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28765#[rustc_legacy_const_generics(2)]
28766#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28767#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28768pub unsafe fn vset_lane_s16<const LANE: i32>(a: i16, b: int16x4_t) -> int16x4_t {
28769    static_assert_uimm_bits!(LANE, 2);
28770    simd_insert!(b, LANE as u32, a)
28771}
28772
28773/// Insert vector element from another vector element
28774///
28775/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s32)
28776#[inline]
28777#[target_feature(enable = "neon")]
28778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28780#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28781#[rustc_legacy_const_generics(2)]
28782#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28783#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28784pub unsafe fn vset_lane_s32<const LANE: i32>(a: i32, b: int32x2_t) -> int32x2_t {
28785    static_assert_uimm_bits!(LANE, 1);
28786    simd_insert!(b, LANE as u32, a)
28787}
28788
28789/// Insert vector element from another vector element
28790///
28791/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_s64)
28792#[inline]
28793#[target_feature(enable = "neon")]
28794#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28795#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28796#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28797#[rustc_legacy_const_generics(2)]
28798#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28799#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28800pub unsafe fn vset_lane_s64<const LANE: i32>(a: i64, b: int64x1_t) -> int64x1_t {
28801    static_assert!(LANE == 0);
28802    simd_insert!(b, LANE as u32, a)
28803}
28804
28805/// Insert vector element from another vector element
28806///
28807/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u8)
28808#[inline]
28809#[target_feature(enable = "neon")]
28810#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28811#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28812#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28813#[rustc_legacy_const_generics(2)]
28814#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28815#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28816pub unsafe fn vset_lane_u8<const LANE: i32>(a: u8, b: uint8x8_t) -> uint8x8_t {
28817    static_assert_uimm_bits!(LANE, 3);
28818    simd_insert!(b, LANE as u32, a)
28819}
28820
28821/// Insert vector element from another vector element
28822///
28823/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u16)
28824#[inline]
28825#[target_feature(enable = "neon")]
28826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28827#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28828#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28829#[rustc_legacy_const_generics(2)]
28830#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28831#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28832pub unsafe fn vset_lane_u16<const LANE: i32>(a: u16, b: uint16x4_t) -> uint16x4_t {
28833    static_assert_uimm_bits!(LANE, 2);
28834    simd_insert!(b, LANE as u32, a)
28835}
28836
28837/// Insert vector element from another vector element
28838///
28839/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u32)
28840#[inline]
28841#[target_feature(enable = "neon")]
28842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28844#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28845#[rustc_legacy_const_generics(2)]
28846#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28847#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28848pub unsafe fn vset_lane_u32<const LANE: i32>(a: u32, b: uint32x2_t) -> uint32x2_t {
28849    static_assert_uimm_bits!(LANE, 1);
28850    simd_insert!(b, LANE as u32, a)
28851}
28852
28853/// Insert vector element from another vector element
28854///
28855/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_u64)
28856#[inline]
28857#[target_feature(enable = "neon")]
28858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28860#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28861#[rustc_legacy_const_generics(2)]
28862#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28863#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28864pub unsafe fn vset_lane_u64<const LANE: i32>(a: u64, b: uint64x1_t) -> uint64x1_t {
28865    static_assert!(LANE == 0);
28866    simd_insert!(b, LANE as u32, a)
28867}
28868
28869/// Insert vector element from another vector element
28870///
28871/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p8)
28872#[inline]
28873#[target_feature(enable = "neon")]
28874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28876#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28877#[rustc_legacy_const_generics(2)]
28878#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28879#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28880pub unsafe fn vset_lane_p8<const LANE: i32>(a: p8, b: poly8x8_t) -> poly8x8_t {
28881    static_assert_uimm_bits!(LANE, 3);
28882    simd_insert!(b, LANE as u32, a)
28883}
28884
28885/// Insert vector element from another vector element
28886///
28887/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p16)
28888#[inline]
28889#[target_feature(enable = "neon")]
28890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28891#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28892#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28893#[rustc_legacy_const_generics(2)]
28894#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28895#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28896pub unsafe fn vset_lane_p16<const LANE: i32>(a: p16, b: poly16x4_t) -> poly16x4_t {
28897    static_assert_uimm_bits!(LANE, 2);
28898    simd_insert!(b, LANE as u32, a)
28899}
28900
28901/// Insert vector element from another vector element
28902///
28903/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_p64)
28904#[inline]
28905#[target_feature(enable = "neon,aes")]
28906#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
28907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28908#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28909#[rustc_legacy_const_generics(2)]
28910#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28911#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28912pub unsafe fn vset_lane_p64<const LANE: i32>(a: p64, b: poly64x1_t) -> poly64x1_t {
28913    static_assert!(LANE == 0);
28914    simd_insert!(b, LANE as u32, a)
28915}
28916
28917/// Insert vector element from another vector element
28918///
28919/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s8)
28920#[inline]
28921#[target_feature(enable = "neon")]
28922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28924#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28925#[rustc_legacy_const_generics(2)]
28926#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28927#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28928pub unsafe fn vsetq_lane_s8<const LANE: i32>(a: i8, b: int8x16_t) -> int8x16_t {
28929    static_assert_uimm_bits!(LANE, 4);
28930    simd_insert!(b, LANE as u32, a)
28931}
28932
28933/// Insert vector element from another vector element
28934///
28935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s16)
28936#[inline]
28937#[target_feature(enable = "neon")]
28938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28940#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28941#[rustc_legacy_const_generics(2)]
28942#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28943#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28944pub unsafe fn vsetq_lane_s16<const LANE: i32>(a: i16, b: int16x8_t) -> int16x8_t {
28945    static_assert_uimm_bits!(LANE, 3);
28946    simd_insert!(b, LANE as u32, a)
28947}
28948
28949/// Insert vector element from another vector element
28950///
28951/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s32)
28952#[inline]
28953#[target_feature(enable = "neon")]
28954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28956#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28957#[rustc_legacy_const_generics(2)]
28958#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28959#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28960pub unsafe fn vsetq_lane_s32<const LANE: i32>(a: i32, b: int32x4_t) -> int32x4_t {
28961    static_assert_uimm_bits!(LANE, 2);
28962    simd_insert!(b, LANE as u32, a)
28963}
28964
28965/// Insert vector element from another vector element
28966///
28967/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_s64)
28968#[inline]
28969#[target_feature(enable = "neon")]
28970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28972#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28973#[rustc_legacy_const_generics(2)]
28974#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28975#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28976pub unsafe fn vsetq_lane_s64<const LANE: i32>(a: i64, b: int64x2_t) -> int64x2_t {
28977    static_assert_uimm_bits!(LANE, 1);
28978    simd_insert!(b, LANE as u32, a)
28979}
28980
28981/// Insert vector element from another vector element
28982///
28983/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u8)
28984#[inline]
28985#[target_feature(enable = "neon")]
28986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
28987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
28988#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
28989#[rustc_legacy_const_generics(2)]
28990#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
28991#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
28992pub unsafe fn vsetq_lane_u8<const LANE: i32>(a: u8, b: uint8x16_t) -> uint8x16_t {
28993    static_assert_uimm_bits!(LANE, 4);
28994    simd_insert!(b, LANE as u32, a)
28995}
28996
28997/// Insert vector element from another vector element
28998///
28999/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u16)
29000#[inline]
29001#[target_feature(enable = "neon")]
29002#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29003#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
29004#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
29005#[rustc_legacy_const_generics(2)]
29006#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29007#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29008pub unsafe fn vsetq_lane_u16<const LANE: i32>(a: u16, b: uint16x8_t) -> uint16x8_t {
29009    static_assert_uimm_bits!(LANE, 3);
29010    simd_insert!(b, LANE as u32, a)
29011}
29012
29013/// Insert vector element from another vector element
29014///
29015/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u32)
29016#[inline]
29017#[target_feature(enable = "neon")]
29018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
29020#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
29021#[rustc_legacy_const_generics(2)]
29022#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29023#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29024pub unsafe fn vsetq_lane_u32<const LANE: i32>(a: u32, b: uint32x4_t) -> uint32x4_t {
29025    static_assert_uimm_bits!(LANE, 2);
29026    simd_insert!(b, LANE as u32, a)
29027}
29028
29029/// Insert vector element from another vector element
29030///
29031/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_u64)
29032#[inline]
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(nop, LANE = 0))]
29036#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
29037#[rustc_legacy_const_generics(2)]
29038#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29039#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29040pub unsafe fn vsetq_lane_u64<const LANE: i32>(a: u64, b: uint64x2_t) -> uint64x2_t {
29041    static_assert_uimm_bits!(LANE, 1);
29042    simd_insert!(b, LANE as u32, a)
29043}
29044
29045/// Insert vector element from another vector element
29046///
29047/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p8)
29048#[inline]
29049#[target_feature(enable = "neon")]
29050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
29052#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
29053#[rustc_legacy_const_generics(2)]
29054#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29055#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29056pub unsafe fn vsetq_lane_p8<const LANE: i32>(a: p8, b: poly8x16_t) -> poly8x16_t {
29057    static_assert_uimm_bits!(LANE, 4);
29058    simd_insert!(b, LANE as u32, a)
29059}
29060
29061/// Insert vector element from another vector element
29062///
29063/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p16)
29064#[inline]
29065#[target_feature(enable = "neon")]
29066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
29068#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
29069#[rustc_legacy_const_generics(2)]
29070#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29071#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29072pub unsafe fn vsetq_lane_p16<const LANE: i32>(a: p16, b: poly16x8_t) -> poly16x8_t {
29073    static_assert_uimm_bits!(LANE, 3);
29074    simd_insert!(b, LANE as u32, a)
29075}
29076
29077/// Insert vector element from another vector element
29078///
29079/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_p64)
29080#[inline]
29081#[target_feature(enable = "neon,aes")]
29082#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
29083#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
29084#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
29085#[rustc_legacy_const_generics(2)]
29086#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29087#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29088pub unsafe fn vsetq_lane_p64<const LANE: i32>(a: p64, b: poly64x2_t) -> poly64x2_t {
29089    static_assert_uimm_bits!(LANE, 1);
29090    simd_insert!(b, LANE as u32, a)
29091}
29092
29093/// Insert vector element from another vector element
29094///
29095/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vset_lane_f32)
29096#[inline]
29097#[target_feature(enable = "neon")]
29098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
29100#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
29101#[rustc_legacy_const_generics(2)]
29102#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29103#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29104pub unsafe fn vset_lane_f32<const LANE: i32>(a: f32, b: float32x2_t) -> float32x2_t {
29105    static_assert_uimm_bits!(LANE, 1);
29106    simd_insert!(b, LANE as u32, a)
29107}
29108
29109/// Insert vector element from another vector element
29110///
29111/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsetq_lane_f32)
29112#[inline]
29113#[target_feature(enable = "neon")]
29114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop, LANE = 0))]
29116#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(nop, LANE = 0))]
29117#[rustc_legacy_const_generics(2)]
29118#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29119#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29120pub unsafe fn vsetq_lane_f32<const LANE: i32>(a: f32, b: float32x4_t) -> float32x4_t {
29121    static_assert_uimm_bits!(LANE, 2);
29122    simd_insert!(b, LANE as u32, a)
29123}
29124
29125/// Signed Shift left
29126///
29127/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s8)
29128#[inline]
29129#[target_feature(enable = "neon")]
29130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29132#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshl))]
29133#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29134#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29135pub unsafe fn vshl_s8(a: int8x8_t, b: int8x8_t) -> int8x8_t {
29136    #[allow(improper_ctypes)]
29137    extern "unadjusted" {
29138        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i8")]
29139        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sshl.v8i8")]
29140        fn vshl_s8_(a: int8x8_t, b: int8x8_t) -> int8x8_t;
29141    }
29142vshl_s8_(a, b)
29143}
29144
29145/// Signed Shift left
29146///
29147/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s8)
29148#[inline]
29149#[target_feature(enable = "neon")]
29150#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29151#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29152#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshl))]
29153#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29154#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29155pub unsafe fn vshlq_s8(a: int8x16_t, b: int8x16_t) -> int8x16_t {
29156    #[allow(improper_ctypes)]
29157    extern "unadjusted" {
29158        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v16i8")]
29159        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sshl.v16i8")]
29160        fn vshlq_s8_(a: int8x16_t, b: int8x16_t) -> int8x16_t;
29161    }
29162vshlq_s8_(a, b)
29163}
29164
29165/// Signed Shift left
29166///
29167/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s16)
29168#[inline]
29169#[target_feature(enable = "neon")]
29170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29171#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29172#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshl))]
29173#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29174#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29175pub unsafe fn vshl_s16(a: int16x4_t, b: int16x4_t) -> int16x4_t {
29176    #[allow(improper_ctypes)]
29177    extern "unadjusted" {
29178        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i16")]
29179        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sshl.v4i16")]
29180        fn vshl_s16_(a: int16x4_t, b: int16x4_t) -> int16x4_t;
29181    }
29182vshl_s16_(a, b)
29183}
29184
29185/// Signed Shift left
29186///
29187/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s16)
29188#[inline]
29189#[target_feature(enable = "neon")]
29190#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29191#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29192#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshl))]
29193#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29194#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29195pub unsafe fn vshlq_s16(a: int16x8_t, b: int16x8_t) -> int16x8_t {
29196    #[allow(improper_ctypes)]
29197    extern "unadjusted" {
29198        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v8i16")]
29199        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sshl.v8i16")]
29200        fn vshlq_s16_(a: int16x8_t, b: int16x8_t) -> int16x8_t;
29201    }
29202vshlq_s16_(a, b)
29203}
29204
29205/// Signed Shift left
29206///
29207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s32)
29208#[inline]
29209#[target_feature(enable = "neon")]
29210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29212#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshl))]
29213#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29214#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29215pub unsafe fn vshl_s32(a: int32x2_t, b: int32x2_t) -> int32x2_t {
29216    #[allow(improper_ctypes)]
29217    extern "unadjusted" {
29218        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i32")]
29219        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sshl.v2i32")]
29220        fn vshl_s32_(a: int32x2_t, b: int32x2_t) -> int32x2_t;
29221    }
29222vshl_s32_(a, b)
29223}
29224
29225/// Signed Shift left
29226///
29227/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s32)
29228#[inline]
29229#[target_feature(enable = "neon")]
29230#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29231#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29232#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshl))]
29233#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29234#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29235pub unsafe fn vshlq_s32(a: int32x4_t, b: int32x4_t) -> int32x4_t {
29236    #[allow(improper_ctypes)]
29237    extern "unadjusted" {
29238        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v4i32")]
29239        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sshl.v4i32")]
29240        fn vshlq_s32_(a: int32x4_t, b: int32x4_t) -> int32x4_t;
29241    }
29242vshlq_s32_(a, b)
29243}
29244
29245/// Signed Shift left
29246///
29247/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_s64)
29248#[inline]
29249#[target_feature(enable = "neon")]
29250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29252#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshl))]
29253#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29254#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29255pub unsafe fn vshl_s64(a: int64x1_t, b: int64x1_t) -> int64x1_t {
29256    #[allow(improper_ctypes)]
29257    extern "unadjusted" {
29258        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v1i64")]
29259        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sshl.v1i64")]
29260        fn vshl_s64_(a: int64x1_t, b: int64x1_t) -> int64x1_t;
29261    }
29262vshl_s64_(a, b)
29263}
29264
29265/// Signed Shift left
29266///
29267/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_s64)
29268#[inline]
29269#[target_feature(enable = "neon")]
29270#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29271#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29272#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshl))]
29273#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29274#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29275pub unsafe fn vshlq_s64(a: int64x2_t, b: int64x2_t) -> int64x2_t {
29276    #[allow(improper_ctypes)]
29277    extern "unadjusted" {
29278        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshifts.v2i64")]
29279        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sshl.v2i64")]
29280        fn vshlq_s64_(a: int64x2_t, b: int64x2_t) -> int64x2_t;
29281    }
29282vshlq_s64_(a, b)
29283}
29284
29285/// Unsigned Shift left
29286///
29287/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u8)
29288#[inline]
29289#[target_feature(enable = "neon")]
29290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29291#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29292#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushl))]
29293#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29294#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29295pub unsafe fn vshl_u8(a: uint8x8_t, b: int8x8_t) -> uint8x8_t {
29296    #[allow(improper_ctypes)]
29297    extern "unadjusted" {
29298        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i8")]
29299        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ushl.v8i8")]
29300        fn vshl_u8_(a: uint8x8_t, b: int8x8_t) -> uint8x8_t;
29301    }
29302vshl_u8_(a, b)
29303}
29304
29305/// Unsigned Shift left
29306///
29307/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u8)
29308#[inline]
29309#[target_feature(enable = "neon")]
29310#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29311#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29312#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushl))]
29313#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29314#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29315pub unsafe fn vshlq_u8(a: uint8x16_t, b: int8x16_t) -> uint8x16_t {
29316    #[allow(improper_ctypes)]
29317    extern "unadjusted" {
29318        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v16i8")]
29319        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ushl.v16i8")]
29320        fn vshlq_u8_(a: uint8x16_t, b: int8x16_t) -> uint8x16_t;
29321    }
29322vshlq_u8_(a, b)
29323}
29324
29325/// Unsigned Shift left
29326///
29327/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u16)
29328#[inline]
29329#[target_feature(enable = "neon")]
29330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29332#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushl))]
29333#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29334#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29335pub unsafe fn vshl_u16(a: uint16x4_t, b: int16x4_t) -> uint16x4_t {
29336    #[allow(improper_ctypes)]
29337    extern "unadjusted" {
29338        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i16")]
29339        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ushl.v4i16")]
29340        fn vshl_u16_(a: uint16x4_t, b: int16x4_t) -> uint16x4_t;
29341    }
29342vshl_u16_(a, b)
29343}
29344
29345/// Unsigned Shift left
29346///
29347/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u16)
29348#[inline]
29349#[target_feature(enable = "neon")]
29350#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29351#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29352#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushl))]
29353#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29354#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29355pub unsafe fn vshlq_u16(a: uint16x8_t, b: int16x8_t) -> uint16x8_t {
29356    #[allow(improper_ctypes)]
29357    extern "unadjusted" {
29358        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v8i16")]
29359        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ushl.v8i16")]
29360        fn vshlq_u16_(a: uint16x8_t, b: int16x8_t) -> uint16x8_t;
29361    }
29362vshlq_u16_(a, b)
29363}
29364
29365/// Unsigned Shift left
29366///
29367/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u32)
29368#[inline]
29369#[target_feature(enable = "neon")]
29370#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29371#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29372#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushl))]
29373#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29374#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29375pub unsafe fn vshl_u32(a: uint32x2_t, b: int32x2_t) -> uint32x2_t {
29376    #[allow(improper_ctypes)]
29377    extern "unadjusted" {
29378        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i32")]
29379        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ushl.v2i32")]
29380        fn vshl_u32_(a: uint32x2_t, b: int32x2_t) -> uint32x2_t;
29381    }
29382vshl_u32_(a, b)
29383}
29384
29385/// Unsigned Shift left
29386///
29387/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u32)
29388#[inline]
29389#[target_feature(enable = "neon")]
29390#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29391#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29392#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushl))]
29393#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29394#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29395pub unsafe fn vshlq_u32(a: uint32x4_t, b: int32x4_t) -> uint32x4_t {
29396    #[allow(improper_ctypes)]
29397    extern "unadjusted" {
29398        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v4i32")]
29399        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ushl.v4i32")]
29400        fn vshlq_u32_(a: uint32x4_t, b: int32x4_t) -> uint32x4_t;
29401    }
29402vshlq_u32_(a, b)
29403}
29404
29405/// Unsigned Shift left
29406///
29407/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_u64)
29408#[inline]
29409#[target_feature(enable = "neon")]
29410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29412#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushl))]
29413#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29414#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29415pub unsafe fn vshl_u64(a: uint64x1_t, b: int64x1_t) -> uint64x1_t {
29416    #[allow(improper_ctypes)]
29417    extern "unadjusted" {
29418        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v1i64")]
29419        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ushl.v1i64")]
29420        fn vshl_u64_(a: uint64x1_t, b: int64x1_t) -> uint64x1_t;
29421    }
29422vshl_u64_(a, b)
29423}
29424
29425/// Unsigned Shift left
29426///
29427/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_u64)
29428#[inline]
29429#[target_feature(enable = "neon")]
29430#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29431#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl))]
29432#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushl))]
29433#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29434#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29435pub unsafe fn vshlq_u64(a: uint64x2_t, b: int64x2_t) -> uint64x2_t {
29436    #[allow(improper_ctypes)]
29437    extern "unadjusted" {
29438        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vshiftu.v2i64")]
29439        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.ushl.v2i64")]
29440        fn vshlq_u64_(a: uint64x2_t, b: int64x2_t) -> uint64x2_t;
29441    }
29442vshlq_u64_(a, b)
29443}
29444
29445/// Shift left
29446///
29447/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s8)
29448#[inline]
29449#[target_feature(enable = "neon")]
29450#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29451#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29452#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29453#[rustc_legacy_const_generics(1)]
29454#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29455#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29456pub unsafe fn vshl_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
29457    static_assert_uimm_bits!(N, 3);
29458    simd_shl(a, vdup_n_s8(N as _))
29459}
29460
29461/// Shift left
29462///
29463/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s8)
29464#[inline]
29465#[target_feature(enable = "neon")]
29466#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29467#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29468#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29469#[rustc_legacy_const_generics(1)]
29470#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29471#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29472pub unsafe fn vshlq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
29473    static_assert_uimm_bits!(N, 3);
29474    simd_shl(a, vdupq_n_s8(N as _))
29475}
29476
29477/// Shift left
29478///
29479/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s16)
29480#[inline]
29481#[target_feature(enable = "neon")]
29482#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29483#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29484#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29485#[rustc_legacy_const_generics(1)]
29486#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29487#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29488pub unsafe fn vshl_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
29489    static_assert_uimm_bits!(N, 4);
29490    simd_shl(a, vdup_n_s16(N as _))
29491}
29492
29493/// Shift left
29494///
29495/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s16)
29496#[inline]
29497#[target_feature(enable = "neon")]
29498#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29499#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29500#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29501#[rustc_legacy_const_generics(1)]
29502#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29503#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29504pub unsafe fn vshlq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
29505    static_assert_uimm_bits!(N, 4);
29506    simd_shl(a, vdupq_n_s16(N as _))
29507}
29508
29509/// Shift left
29510///
29511/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s32)
29512#[inline]
29513#[target_feature(enable = "neon")]
29514#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29515#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29516#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29517#[rustc_legacy_const_generics(1)]
29518#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29519#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29520pub unsafe fn vshl_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
29521    static_assert_uimm_bits!(N, 5);
29522    simd_shl(a, vdup_n_s32(N as _))
29523}
29524
29525/// Shift left
29526///
29527/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s32)
29528#[inline]
29529#[target_feature(enable = "neon")]
29530#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29531#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29532#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29533#[rustc_legacy_const_generics(1)]
29534#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29535#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29536pub unsafe fn vshlq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
29537    static_assert_uimm_bits!(N, 5);
29538    simd_shl(a, vdupq_n_s32(N as _))
29539}
29540
29541/// Shift left
29542///
29543/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u8)
29544#[inline]
29545#[target_feature(enable = "neon")]
29546#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29547#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29548#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29549#[rustc_legacy_const_generics(1)]
29550#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29551#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29552pub unsafe fn vshl_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
29553    static_assert_uimm_bits!(N, 3);
29554    simd_shl(a, vdup_n_u8(N as _))
29555}
29556
29557/// Shift left
29558///
29559/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u8)
29560#[inline]
29561#[target_feature(enable = "neon")]
29562#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29563#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29564#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29565#[rustc_legacy_const_generics(1)]
29566#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29567#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29568pub unsafe fn vshlq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
29569    static_assert_uimm_bits!(N, 3);
29570    simd_shl(a, vdupq_n_u8(N as _))
29571}
29572
29573/// Shift left
29574///
29575/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u16)
29576#[inline]
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(vshl, N = 2))]
29580#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29581#[rustc_legacy_const_generics(1)]
29582#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29583#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29584pub unsafe fn vshl_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
29585    static_assert_uimm_bits!(N, 4);
29586    simd_shl(a, vdup_n_u16(N as _))
29587}
29588
29589/// Shift left
29590///
29591/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u16)
29592#[inline]
29593#[target_feature(enable = "neon")]
29594#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29595#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29596#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29597#[rustc_legacy_const_generics(1)]
29598#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29599#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29600pub unsafe fn vshlq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
29601    static_assert_uimm_bits!(N, 4);
29602    simd_shl(a, vdupq_n_u16(N as _))
29603}
29604
29605/// Shift left
29606///
29607/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u32)
29608#[inline]
29609#[target_feature(enable = "neon")]
29610#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29611#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29612#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29613#[rustc_legacy_const_generics(1)]
29614#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29615#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29616pub unsafe fn vshl_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
29617    static_assert_uimm_bits!(N, 5);
29618    simd_shl(a, vdup_n_u32(N as _))
29619}
29620
29621/// Shift left
29622///
29623/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u32)
29624#[inline]
29625#[target_feature(enable = "neon")]
29626#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29627#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29628#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29629#[rustc_legacy_const_generics(1)]
29630#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29631#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29632pub unsafe fn vshlq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
29633    static_assert_uimm_bits!(N, 5);
29634    simd_shl(a, vdupq_n_u32(N as _))
29635}
29636
29637/// Shift left
29638///
29639/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_s64)
29640#[inline]
29641#[target_feature(enable = "neon")]
29642#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29643#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29644#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29645#[rustc_legacy_const_generics(1)]
29646#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29647#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29648pub unsafe fn vshl_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
29649    static_assert_uimm_bits!(N, 6);
29650    simd_shl(a, vdup_n_s64(N as _))
29651}
29652
29653/// Shift left
29654///
29655/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_s64)
29656#[inline]
29657#[target_feature(enable = "neon")]
29658#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29659#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29660#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29661#[rustc_legacy_const_generics(1)]
29662#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29663#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29664pub unsafe fn vshlq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
29665    static_assert_uimm_bits!(N, 6);
29666    simd_shl(a, vdupq_n_s64(N as _))
29667}
29668
29669/// Shift left
29670///
29671/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshl_n_u64)
29672#[inline]
29673#[target_feature(enable = "neon")]
29674#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29675#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29676#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29677#[rustc_legacy_const_generics(1)]
29678#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29679#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29680pub unsafe fn vshl_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
29681    static_assert_uimm_bits!(N, 6);
29682    simd_shl(a, vdup_n_u64(N as _))
29683}
29684
29685/// Shift left
29686///
29687/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshlq_n_u64)
29688#[inline]
29689#[target_feature(enable = "neon")]
29690#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29691#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vshl, N = 2))]
29692#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shl, N = 2))]
29693#[rustc_legacy_const_generics(1)]
29694#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29695#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29696pub unsafe fn vshlq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
29697    static_assert_uimm_bits!(N, 6);
29698    simd_shl(a, vdupq_n_u64(N as _))
29699}
29700
29701/// Signed shift left long
29702///
29703/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s8)
29704#[inline]
29705#[target_feature(enable = "neon")]
29706#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29707#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s8", N = 2))]
29708#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshll, N = 2))]
29709#[rustc_legacy_const_generics(1)]
29710#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29711#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29712pub unsafe fn vshll_n_s8<const N: i32>(a: int8x8_t) -> int16x8_t {
29713    static_assert!(N >= 0 && N <= 8);
29714    simd_shl(simd_cast(a), vdupq_n_s16(N as _))
29715}
29716
29717/// Signed shift left long
29718///
29719/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s16)
29720#[inline]
29721#[target_feature(enable = "neon")]
29722#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29723#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s16", N = 2))]
29724#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshll, N = 2))]
29725#[rustc_legacy_const_generics(1)]
29726#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29727#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29728pub unsafe fn vshll_n_s16<const N: i32>(a: int16x4_t) -> int32x4_t {
29729    static_assert!(N >= 0 && N <= 16);
29730    simd_shl(simd_cast(a), vdupq_n_s32(N as _))
29731}
29732
29733/// Signed shift left long
29734///
29735/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_s32)
29736#[inline]
29737#[target_feature(enable = "neon")]
29738#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29739#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.s32", N = 2))]
29740#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshll, N = 2))]
29741#[rustc_legacy_const_generics(1)]
29742#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29743#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29744pub unsafe fn vshll_n_s32<const N: i32>(a: int32x2_t) -> int64x2_t {
29745    static_assert!(N >= 0 && N <= 32);
29746    simd_shl(simd_cast(a), vdupq_n_s64(N as _))
29747}
29748
29749/// Signed shift left long
29750///
29751/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u8)
29752#[inline]
29753#[target_feature(enable = "neon")]
29754#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29755#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u8", N = 2))]
29756#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushll, N = 2))]
29757#[rustc_legacy_const_generics(1)]
29758#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29759#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29760pub unsafe fn vshll_n_u8<const N: i32>(a: uint8x8_t) -> uint16x8_t {
29761    static_assert!(N >= 0 && N <= 8);
29762    simd_shl(simd_cast(a), vdupq_n_u16(N as _))
29763}
29764
29765/// Signed shift left long
29766///
29767/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u16)
29768#[inline]
29769#[target_feature(enable = "neon")]
29770#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29771#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u16", N = 2))]
29772#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushll, N = 2))]
29773#[rustc_legacy_const_generics(1)]
29774#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29775#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29776pub unsafe fn vshll_n_u16<const N: i32>(a: uint16x4_t) -> uint32x4_t {
29777    static_assert!(N >= 0 && N <= 16);
29778    simd_shl(simd_cast(a), vdupq_n_u32(N as _))
29779}
29780
29781/// Signed shift left long
29782///
29783/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshll_n_u32)
29784#[inline]
29785#[target_feature(enable = "neon")]
29786#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29787#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshll.u32", N = 2))]
29788#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushll, N = 2))]
29789#[rustc_legacy_const_generics(1)]
29790#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29791#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29792pub unsafe fn vshll_n_u32<const N: i32>(a: uint32x2_t) -> uint64x2_t {
29793    static_assert!(N >= 0 && N <= 32);
29794    simd_shl(simd_cast(a), vdupq_n_u64(N as _))
29795}
29796
29797/// Shift right
29798///
29799/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s8)
29800#[inline]
29801#[target_feature(enable = "neon")]
29802#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29803#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
29804#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshr, N = 2))]
29805#[rustc_legacy_const_generics(1)]
29806#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29807#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29808pub unsafe fn vshr_n_s8<const N: i32>(a: int8x8_t) -> int8x8_t {
29809    static_assert!(N >= 1 && N <= 8);
29810    let n: i32 = if N == 8 { 7 } else { N };
29811    simd_shr(a, vdup_n_s8(n as _))
29812}
29813
29814/// Shift right
29815///
29816/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s8)
29817#[inline]
29818#[target_feature(enable = "neon")]
29819#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29820#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s8", N = 2))]
29821#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshr, N = 2))]
29822#[rustc_legacy_const_generics(1)]
29823#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29824#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29825pub unsafe fn vshrq_n_s8<const N: i32>(a: int8x16_t) -> int8x16_t {
29826    static_assert!(N >= 1 && N <= 8);
29827    let n: i32 = if N == 8 { 7 } else { N };
29828    simd_shr(a, vdupq_n_s8(n as _))
29829}
29830
29831/// Shift right
29832///
29833/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s16)
29834#[inline]
29835#[target_feature(enable = "neon")]
29836#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29837#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
29838#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshr, N = 2))]
29839#[rustc_legacy_const_generics(1)]
29840#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29841#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29842pub unsafe fn vshr_n_s16<const N: i32>(a: int16x4_t) -> int16x4_t {
29843    static_assert!(N >= 1 && N <= 16);
29844    let n: i32 = if N == 16 { 15 } else { N };
29845    simd_shr(a, vdup_n_s16(n as _))
29846}
29847
29848/// Shift right
29849///
29850/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s16)
29851#[inline]
29852#[target_feature(enable = "neon")]
29853#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29854#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s16", N = 2))]
29855#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshr, N = 2))]
29856#[rustc_legacy_const_generics(1)]
29857#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29858#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29859pub unsafe fn vshrq_n_s16<const N: i32>(a: int16x8_t) -> int16x8_t {
29860    static_assert!(N >= 1 && N <= 16);
29861    let n: i32 = if N == 16 { 15 } else { N };
29862    simd_shr(a, vdupq_n_s16(n as _))
29863}
29864
29865/// Shift right
29866///
29867/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s32)
29868#[inline]
29869#[target_feature(enable = "neon")]
29870#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29871#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s32", N = 2))]
29872#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshr, N = 2))]
29873#[rustc_legacy_const_generics(1)]
29874#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29875#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29876pub unsafe fn vshr_n_s32<const N: i32>(a: int32x2_t) -> int32x2_t {
29877    static_assert!(N >= 1 && N <= 32);
29878    let n: i32 = if N == 32 { 31 } else { N };
29879    simd_shr(a, vdup_n_s32(n as _))
29880}
29881
29882/// Shift right
29883///
29884/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s32)
29885#[inline]
29886#[target_feature(enable = "neon")]
29887#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29888#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s32", N = 2))]
29889#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshr, N = 2))]
29890#[rustc_legacy_const_generics(1)]
29891#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29892#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29893pub unsafe fn vshrq_n_s32<const N: i32>(a: int32x4_t) -> int32x4_t {
29894    static_assert!(N >= 1 && N <= 32);
29895    let n: i32 = if N == 32 { 31 } else { N };
29896    simd_shr(a, vdupq_n_s32(n as _))
29897}
29898
29899/// Shift right
29900///
29901/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_s64)
29902#[inline]
29903#[target_feature(enable = "neon")]
29904#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29905#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s64", N = 2))]
29906#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshr, N = 2))]
29907#[rustc_legacy_const_generics(1)]
29908#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29909#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29910pub unsafe fn vshr_n_s64<const N: i32>(a: int64x1_t) -> int64x1_t {
29911    static_assert!(N >= 1 && N <= 64);
29912    let n: i32 = if N == 64 { 63 } else { N };
29913    simd_shr(a, vdup_n_s64(n as _))
29914}
29915
29916/// Shift right
29917///
29918/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_s64)
29919#[inline]
29920#[target_feature(enable = "neon")]
29921#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29922#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.s64", N = 2))]
29923#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sshr, N = 2))]
29924#[rustc_legacy_const_generics(1)]
29925#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29926#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29927pub unsafe fn vshrq_n_s64<const N: i32>(a: int64x2_t) -> int64x2_t {
29928    static_assert!(N >= 1 && N <= 64);
29929    let n: i32 = if N == 64 { 63 } else { N };
29930    simd_shr(a, vdupq_n_s64(n as _))
29931}
29932
29933/// Shift right
29934///
29935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u8)
29936#[inline]
29937#[target_feature(enable = "neon")]
29938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29939#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
29940#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushr, N = 2))]
29941#[rustc_legacy_const_generics(1)]
29942#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29943#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29944pub unsafe fn vshr_n_u8<const N: i32>(a: uint8x8_t) -> uint8x8_t {
29945    static_assert!(N >= 1 && N <= 8);
29946    let n: i32 = if N == 8 { return vdup_n_u8(0); } else { N };
29947    simd_shr(a, vdup_n_u8(n as _))
29948}
29949
29950/// Shift right
29951///
29952/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u8)
29953#[inline]
29954#[target_feature(enable = "neon")]
29955#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29956#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u8", N = 2))]
29957#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushr, N = 2))]
29958#[rustc_legacy_const_generics(1)]
29959#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29960#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29961pub unsafe fn vshrq_n_u8<const N: i32>(a: uint8x16_t) -> uint8x16_t {
29962    static_assert!(N >= 1 && N <= 8);
29963    let n: i32 = if N == 8 { return vdupq_n_u8(0); } else { N };
29964    simd_shr(a, vdupq_n_u8(n as _))
29965}
29966
29967/// Shift right
29968///
29969/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u16)
29970#[inline]
29971#[target_feature(enable = "neon")]
29972#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29973#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
29974#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushr, N = 2))]
29975#[rustc_legacy_const_generics(1)]
29976#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29977#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29978pub unsafe fn vshr_n_u16<const N: i32>(a: uint16x4_t) -> uint16x4_t {
29979    static_assert!(N >= 1 && N <= 16);
29980    let n: i32 = if N == 16 { return vdup_n_u16(0); } else { N };
29981    simd_shr(a, vdup_n_u16(n as _))
29982}
29983
29984/// Shift right
29985///
29986/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u16)
29987#[inline]
29988#[target_feature(enable = "neon")]
29989#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
29990#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u16", N = 2))]
29991#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushr, N = 2))]
29992#[rustc_legacy_const_generics(1)]
29993#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
29994#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
29995pub unsafe fn vshrq_n_u16<const N: i32>(a: uint16x8_t) -> uint16x8_t {
29996    static_assert!(N >= 1 && N <= 16);
29997    let n: i32 = if N == 16 { return vdupq_n_u16(0); } else { N };
29998    simd_shr(a, vdupq_n_u16(n as _))
29999}
30000
30001/// Shift right
30002///
30003/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u32)
30004#[inline]
30005#[target_feature(enable = "neon")]
30006#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30007#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
30008#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushr, N = 2))]
30009#[rustc_legacy_const_generics(1)]
30010#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30011#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30012pub unsafe fn vshr_n_u32<const N: i32>(a: uint32x2_t) -> uint32x2_t {
30013    static_assert!(N >= 1 && N <= 32);
30014    let n: i32 = if N == 32 { return vdup_n_u32(0); } else { N };
30015    simd_shr(a, vdup_n_u32(n as _))
30016}
30017
30018/// Shift right
30019///
30020/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u32)
30021#[inline]
30022#[target_feature(enable = "neon")]
30023#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30024#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u32", N = 2))]
30025#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushr, N = 2))]
30026#[rustc_legacy_const_generics(1)]
30027#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30028#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30029pub unsafe fn vshrq_n_u32<const N: i32>(a: uint32x4_t) -> uint32x4_t {
30030    static_assert!(N >= 1 && N <= 32);
30031    let n: i32 = if N == 32 { return vdupq_n_u32(0); } else { N };
30032    simd_shr(a, vdupq_n_u32(n as _))
30033}
30034
30035/// Shift right
30036///
30037/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshr_n_u64)
30038#[inline]
30039#[target_feature(enable = "neon")]
30040#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30041#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
30042#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushr, N = 2))]
30043#[rustc_legacy_const_generics(1)]
30044#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30045#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30046pub unsafe fn vshr_n_u64<const N: i32>(a: uint64x1_t) -> uint64x1_t {
30047    static_assert!(N >= 1 && N <= 64);
30048    let n: i32 = if N == 64 { return vdup_n_u64(0); } else { N };
30049    simd_shr(a, vdup_n_u64(n as _))
30050}
30051
30052/// Shift right
30053///
30054/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrq_n_u64)
30055#[inline]
30056#[target_feature(enable = "neon")]
30057#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30058#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshr.u64", N = 2))]
30059#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ushr, N = 2))]
30060#[rustc_legacy_const_generics(1)]
30061#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30062#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30063pub unsafe fn vshrq_n_u64<const N: i32>(a: uint64x2_t) -> uint64x2_t {
30064    static_assert!(N >= 1 && N <= 64);
30065    let n: i32 = if N == 64 { return vdupq_n_u64(0); } else { N };
30066    simd_shr(a, vdupq_n_u64(n as _))
30067}
30068
30069/// Shift right narrow
30070///
30071/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s16)
30072#[inline]
30073#[target_feature(enable = "neon")]
30074#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30075#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i16", N = 2))]
30076#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shrn, N = 2))]
30077#[rustc_legacy_const_generics(1)]
30078#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30079#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30080pub unsafe fn vshrn_n_s16<const N: i32>(a: int16x8_t) -> int8x8_t {
30081    static_assert!(N >= 1 && N <= 8);
30082    simd_cast(simd_shr(a, vdupq_n_s16(N as _)))
30083}
30084
30085/// Shift right narrow
30086///
30087/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s32)
30088#[inline]
30089#[target_feature(enable = "neon")]
30090#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30091#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
30092#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shrn, N = 2))]
30093#[rustc_legacy_const_generics(1)]
30094#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30095#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30096pub unsafe fn vshrn_n_s32<const N: i32>(a: int32x4_t) -> int16x4_t {
30097    static_assert!(N >= 1 && N <= 16);
30098    simd_cast(simd_shr(a, vdupq_n_s32(N as _)))
30099}
30100
30101/// Shift right narrow
30102///
30103/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_s64)
30104#[inline]
30105#[target_feature(enable = "neon")]
30106#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30107#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
30108#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shrn, N = 2))]
30109#[rustc_legacy_const_generics(1)]
30110#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30111#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30112pub unsafe fn vshrn_n_s64<const N: i32>(a: int64x2_t) -> int32x2_t {
30113    static_assert!(N >= 1 && N <= 32);
30114    simd_cast(simd_shr(a, vdupq_n_s64(N as _)))
30115}
30116
30117/// Shift right narrow
30118///
30119/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u16)
30120#[inline]
30121#[target_feature(enable = "neon")]
30122#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30123#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i16", N = 2))]
30124#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shrn, N = 2))]
30125#[rustc_legacy_const_generics(1)]
30126#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30127#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30128pub unsafe fn vshrn_n_u16<const N: i32>(a: uint16x8_t) -> uint8x8_t {
30129    static_assert!(N >= 1 && N <= 8);
30130    simd_cast(simd_shr(a, vdupq_n_u16(N as _)))
30131}
30132
30133/// Shift right narrow
30134///
30135/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u32)
30136#[inline]
30137#[target_feature(enable = "neon")]
30138#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30139#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i32", N = 2))]
30140#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shrn, N = 2))]
30141#[rustc_legacy_const_generics(1)]
30142#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30143#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30144pub unsafe fn vshrn_n_u32<const N: i32>(a: uint32x4_t) -> uint16x4_t {
30145    static_assert!(N >= 1 && N <= 16);
30146    simd_cast(simd_shr(a, vdupq_n_u32(N as _)))
30147}
30148
30149/// Shift right narrow
30150///
30151/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vshrn_n_u64)
30152#[inline]
30153#[target_feature(enable = "neon")]
30154#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30155#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vshrn.i64", N = 2))]
30156#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(shrn, N = 2))]
30157#[rustc_legacy_const_generics(1)]
30158#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30159#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30160pub unsafe fn vshrn_n_u64<const N: i32>(a: uint64x2_t) -> uint32x2_t {
30161    static_assert!(N >= 1 && N <= 32);
30162    simd_cast(simd_shr(a, vdupq_n_u64(N as _)))
30163}
30164
30165/// Signed shift right and accumulate
30166///
30167/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s8)
30168#[inline]
30169#[target_feature(enable = "neon")]
30170#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30171#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30172#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssra, N = 2))]
30173#[rustc_legacy_const_generics(2)]
30174#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30175#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30176pub unsafe fn vsra_n_s8<const N: i32>(a: int8x8_t, b: int8x8_t) -> int8x8_t {
30177    static_assert!(N >= 1 && N <= 8);
30178    simd_add(a, vshr_n_s8::<N>(b))
30179}
30180
30181/// Signed shift right and accumulate
30182///
30183/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s8)
30184#[inline]
30185#[target_feature(enable = "neon")]
30186#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30187#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30188#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssra, N = 2))]
30189#[rustc_legacy_const_generics(2)]
30190#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30191#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30192pub unsafe fn vsraq_n_s8<const N: i32>(a: int8x16_t, b: int8x16_t) -> int8x16_t {
30193    static_assert!(N >= 1 && N <= 8);
30194    simd_add(a, vshrq_n_s8::<N>(b))
30195}
30196
30197/// Signed shift right and accumulate
30198///
30199/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s16)
30200#[inline]
30201#[target_feature(enable = "neon")]
30202#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30203#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30204#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssra, N = 2))]
30205#[rustc_legacy_const_generics(2)]
30206#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30207#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30208pub unsafe fn vsra_n_s16<const N: i32>(a: int16x4_t, b: int16x4_t) -> int16x4_t {
30209    static_assert!(N >= 1 && N <= 16);
30210    simd_add(a, vshr_n_s16::<N>(b))
30211}
30212
30213/// Signed shift right and accumulate
30214///
30215/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s16)
30216#[inline]
30217#[target_feature(enable = "neon")]
30218#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30219#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30220#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssra, N = 2))]
30221#[rustc_legacy_const_generics(2)]
30222#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30223#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30224pub unsafe fn vsraq_n_s16<const N: i32>(a: int16x8_t, b: int16x8_t) -> int16x8_t {
30225    static_assert!(N >= 1 && N <= 16);
30226    simd_add(a, vshrq_n_s16::<N>(b))
30227}
30228
30229/// Signed shift right and accumulate
30230///
30231/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s32)
30232#[inline]
30233#[target_feature(enable = "neon")]
30234#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30235#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30236#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssra, N = 2))]
30237#[rustc_legacy_const_generics(2)]
30238#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30239#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30240pub unsafe fn vsra_n_s32<const N: i32>(a: int32x2_t, b: int32x2_t) -> int32x2_t {
30241    static_assert!(N >= 1 && N <= 32);
30242    simd_add(a, vshr_n_s32::<N>(b))
30243}
30244
30245/// Signed shift right and accumulate
30246///
30247/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s32)
30248#[inline]
30249#[target_feature(enable = "neon")]
30250#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30251#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30252#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssra, N = 2))]
30253#[rustc_legacy_const_generics(2)]
30254#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30255#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30256pub unsafe fn vsraq_n_s32<const N: i32>(a: int32x4_t, b: int32x4_t) -> int32x4_t {
30257    static_assert!(N >= 1 && N <= 32);
30258    simd_add(a, vshrq_n_s32::<N>(b))
30259}
30260
30261/// Signed shift right and accumulate
30262///
30263/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_s64)
30264#[inline]
30265#[target_feature(enable = "neon")]
30266#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30267#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30268#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssra, N = 2))]
30269#[rustc_legacy_const_generics(2)]
30270#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30271#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30272pub unsafe fn vsra_n_s64<const N: i32>(a: int64x1_t, b: int64x1_t) -> int64x1_t {
30273    static_assert!(N >= 1 && N <= 64);
30274    simd_add(a, vshr_n_s64::<N>(b))
30275}
30276
30277/// Signed shift right and accumulate
30278///
30279/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_s64)
30280#[inline]
30281#[target_feature(enable = "neon")]
30282#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30283#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30284#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(ssra, N = 2))]
30285#[rustc_legacy_const_generics(2)]
30286#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30287#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30288pub unsafe fn vsraq_n_s64<const N: i32>(a: int64x2_t, b: int64x2_t) -> int64x2_t {
30289    static_assert!(N >= 1 && N <= 64);
30290    simd_add(a, vshrq_n_s64::<N>(b))
30291}
30292
30293/// Unsigned shift right and accumulate
30294///
30295/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u8)
30296#[inline]
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(vsra, N = 2))]
30300#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usra, N = 2))]
30301#[rustc_legacy_const_generics(2)]
30302#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30303#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30304pub unsafe fn vsra_n_u8<const N: i32>(a: uint8x8_t, b: uint8x8_t) -> uint8x8_t {
30305    static_assert!(N >= 1 && N <= 8);
30306    simd_add(a, vshr_n_u8::<N>(b))
30307}
30308
30309/// Unsigned shift right and accumulate
30310///
30311/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u8)
30312#[inline]
30313#[target_feature(enable = "neon")]
30314#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30315#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30316#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usra, N = 2))]
30317#[rustc_legacy_const_generics(2)]
30318#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30319#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30320pub unsafe fn vsraq_n_u8<const N: i32>(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
30321    static_assert!(N >= 1 && N <= 8);
30322    simd_add(a, vshrq_n_u8::<N>(b))
30323}
30324
30325/// Unsigned shift right and accumulate
30326///
30327/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u16)
30328#[inline]
30329#[target_feature(enable = "neon")]
30330#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30331#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30332#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usra, N = 2))]
30333#[rustc_legacy_const_generics(2)]
30334#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30335#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30336pub unsafe fn vsra_n_u16<const N: i32>(a: uint16x4_t, b: uint16x4_t) -> uint16x4_t {
30337    static_assert!(N >= 1 && N <= 16);
30338    simd_add(a, vshr_n_u16::<N>(b))
30339}
30340
30341/// Unsigned shift right and accumulate
30342///
30343/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u16)
30344#[inline]
30345#[target_feature(enable = "neon")]
30346#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30347#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30348#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usra, N = 2))]
30349#[rustc_legacy_const_generics(2)]
30350#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30351#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30352pub unsafe fn vsraq_n_u16<const N: i32>(a: uint16x8_t, b: uint16x8_t) -> uint16x8_t {
30353    static_assert!(N >= 1 && N <= 16);
30354    simd_add(a, vshrq_n_u16::<N>(b))
30355}
30356
30357/// Unsigned shift right and accumulate
30358///
30359/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u32)
30360#[inline]
30361#[target_feature(enable = "neon")]
30362#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30363#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30364#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usra, N = 2))]
30365#[rustc_legacy_const_generics(2)]
30366#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30367#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30368pub unsafe fn vsra_n_u32<const N: i32>(a: uint32x2_t, b: uint32x2_t) -> uint32x2_t {
30369    static_assert!(N >= 1 && N <= 32);
30370    simd_add(a, vshr_n_u32::<N>(b))
30371}
30372
30373/// Unsigned shift right and accumulate
30374///
30375/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u32)
30376#[inline]
30377#[target_feature(enable = "neon")]
30378#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30379#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30380#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usra, N = 2))]
30381#[rustc_legacy_const_generics(2)]
30382#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30383#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30384pub unsafe fn vsraq_n_u32<const N: i32>(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
30385    static_assert!(N >= 1 && N <= 32);
30386    simd_add(a, vshrq_n_u32::<N>(b))
30387}
30388
30389/// Unsigned shift right and accumulate
30390///
30391/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsra_n_u64)
30392#[inline]
30393#[target_feature(enable = "neon")]
30394#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30395#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30396#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usra, N = 2))]
30397#[rustc_legacy_const_generics(2)]
30398#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30399#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30400pub unsafe fn vsra_n_u64<const N: i32>(a: uint64x1_t, b: uint64x1_t) -> uint64x1_t {
30401    static_assert!(N >= 1 && N <= 64);
30402    simd_add(a, vshr_n_u64::<N>(b))
30403}
30404
30405/// Unsigned shift right and accumulate
30406///
30407/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vsraq_n_u64)
30408#[inline]
30409#[target_feature(enable = "neon")]
30410#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30411#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsra, N = 2))]
30412#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(usra, N = 2))]
30413#[rustc_legacy_const_generics(2)]
30414#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30415#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30416pub unsafe fn vsraq_n_u64<const N: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
30417    static_assert!(N >= 1 && N <= 64);
30418    simd_add(a, vshrq_n_u64::<N>(b))
30419}
30420
30421/// Transpose elements
30422///
30423/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s8)
30424#[inline]
30425#[target_feature(enable = "neon")]
30426#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30427#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30428#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30429#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30430#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30431pub unsafe fn vtrn_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
30432    let a1: int8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
30433    let b1: int8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
30434    transmute((a1, b1))
30435}
30436
30437/// Transpose elements
30438///
30439/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s16)
30440#[inline]
30441#[target_feature(enable = "neon")]
30442#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30443#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30444#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30445#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30446#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30447pub unsafe fn vtrn_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
30448    let a1: int16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
30449    let b1: int16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
30450    transmute((a1, b1))
30451}
30452
30453/// Transpose elements
30454///
30455/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s8)
30456#[inline]
30457#[target_feature(enable = "neon")]
30458#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30459#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30460#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30461#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30462#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30463pub unsafe fn vtrnq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
30464    let a1: int8x16_t = simd_shuffle!(a, b, [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]);
30465    let b1: int8x16_t = simd_shuffle!(a, b, [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]);
30466    transmute((a1, b1))
30467}
30468
30469/// Transpose elements
30470///
30471/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s16)
30472#[inline]
30473#[target_feature(enable = "neon")]
30474#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30475#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30476#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30477#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30478#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30479pub unsafe fn vtrnq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
30480    let a1: int16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
30481    let b1: int16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
30482    transmute((a1, b1))
30483}
30484
30485/// Transpose elements
30486///
30487/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_s32)
30488#[inline]
30489#[target_feature(enable = "neon")]
30490#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30491#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30492#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30493#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30494#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30495pub unsafe fn vtrnq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
30496    let a1: int32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
30497    let b1: int32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
30498    transmute((a1, b1))
30499}
30500
30501/// Transpose elements
30502///
30503/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u8)
30504#[inline]
30505#[target_feature(enable = "neon")]
30506#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30507#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30508#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30509#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30510#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30511pub unsafe fn vtrn_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
30512    let a1: uint8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
30513    let b1: uint8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
30514    transmute((a1, b1))
30515}
30516
30517/// Transpose elements
30518///
30519/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u16)
30520#[inline]
30521#[target_feature(enable = "neon")]
30522#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30523#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30524#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30525#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30526#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30527pub unsafe fn vtrn_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
30528    let a1: uint16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
30529    let b1: uint16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
30530    transmute((a1, b1))
30531}
30532
30533/// Transpose elements
30534///
30535/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u8)
30536#[inline]
30537#[target_feature(enable = "neon")]
30538#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30539#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30540#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30541#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30542#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30543pub unsafe fn vtrnq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
30544    let a1: uint8x16_t = simd_shuffle!(a, b, [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]);
30545    let b1: uint8x16_t = simd_shuffle!(a, b, [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]);
30546    transmute((a1, b1))
30547}
30548
30549/// Transpose elements
30550///
30551/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u16)
30552#[inline]
30553#[target_feature(enable = "neon")]
30554#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30555#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30556#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30557#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30558#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30559pub unsafe fn vtrnq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
30560    let a1: uint16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
30561    let b1: uint16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
30562    transmute((a1, b1))
30563}
30564
30565/// Transpose elements
30566///
30567/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_u32)
30568#[inline]
30569#[target_feature(enable = "neon")]
30570#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30571#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30572#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30573#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30574#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30575pub unsafe fn vtrnq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
30576    let a1: uint32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
30577    let b1: uint32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
30578    transmute((a1, b1))
30579}
30580
30581/// Transpose elements
30582///
30583/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p8)
30584#[inline]
30585#[target_feature(enable = "neon")]
30586#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30587#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30588#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30589#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30590#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30591pub unsafe fn vtrn_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
30592    let a1: poly8x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
30593    let b1: poly8x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
30594    transmute((a1, b1))
30595}
30596
30597/// Transpose elements
30598///
30599/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_p16)
30600#[inline]
30601#[target_feature(enable = "neon")]
30602#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30603#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30604#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30605#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30606#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30607pub unsafe fn vtrn_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
30608    let a1: poly16x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
30609    let b1: poly16x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
30610    transmute((a1, b1))
30611}
30612
30613/// Transpose elements
30614///
30615/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p8)
30616#[inline]
30617#[target_feature(enable = "neon")]
30618#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30619#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30620#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30621#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30622#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30623pub unsafe fn vtrnq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
30624    let a1: poly8x16_t = simd_shuffle!(a, b, [0, 16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]);
30625    let b1: poly8x16_t = simd_shuffle!(a, b, [1, 17, 3, 19, 5, 21, 7, 23, 9, 25, 11, 27, 13, 29, 15, 31]);
30626    transmute((a1, b1))
30627}
30628
30629/// Transpose elements
30630///
30631/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_p16)
30632#[inline]
30633#[target_feature(enable = "neon")]
30634#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30635#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30636#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30637#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30638#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30639pub unsafe fn vtrnq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
30640    let a1: poly16x8_t = simd_shuffle!(a, b, [0, 8, 2, 10, 4, 12, 6, 14]);
30641    let b1: poly16x8_t = simd_shuffle!(a, b, [1, 9, 3, 11, 5, 13, 7, 15]);
30642    transmute((a1, b1))
30643}
30644
30645/// Transpose elements
30646///
30647/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_s32)
30648#[inline]
30649#[target_feature(enable = "neon")]
30650#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30651#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30652#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30653#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30654#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30655pub unsafe fn vtrn_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
30656    let a1: int32x2_t = simd_shuffle!(a, b, [0, 2]);
30657    let b1: int32x2_t = simd_shuffle!(a, b, [1, 3]);
30658    transmute((a1, b1))
30659}
30660
30661/// Transpose elements
30662///
30663/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_u32)
30664#[inline]
30665#[target_feature(enable = "neon")]
30666#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30667#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30668#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30669#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30670#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30671pub unsafe fn vtrn_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
30672    let a1: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
30673    let b1: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
30674    transmute((a1, b1))
30675}
30676
30677/// Transpose elements
30678///
30679/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrn_f32)
30680#[inline]
30681#[target_feature(enable = "neon")]
30682#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30683#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30684#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30685#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30686#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30687pub unsafe fn vtrn_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
30688    let a1: float32x2_t = simd_shuffle!(a, b, [0, 2]);
30689    let b1: float32x2_t = simd_shuffle!(a, b, [1, 3]);
30690    transmute((a1, b1))
30691}
30692
30693/// Transpose elements
30694///
30695/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vtrnq_f32)
30696#[inline]
30697#[target_feature(enable = "neon")]
30698#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30699#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30700#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(trn))]
30701#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30702#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30703pub unsafe fn vtrnq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
30704    let a1: float32x4_t = simd_shuffle!(a, b, [0, 4, 2, 6]);
30705    let b1: float32x4_t = simd_shuffle!(a, b, [1, 5, 3, 7]);
30706    transmute((a1, b1))
30707}
30708
30709/// Zip vectors
30710///
30711/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s8)
30712#[inline]
30713#[target_feature(enable = "neon")]
30714#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30715#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
30716#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30717#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30718#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30719pub unsafe fn vzip_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
30720    let a0: int8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
30721    let b0: int8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
30722    transmute((a0, b0))
30723}
30724
30725/// Zip vectors
30726///
30727/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s16)
30728#[inline]
30729#[target_feature(enable = "neon")]
30730#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30731#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
30732#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30733#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30734#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30735pub unsafe fn vzip_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
30736    let a0: int16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
30737    let b0: int16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
30738    transmute((a0, b0))
30739}
30740
30741/// Zip vectors
30742///
30743/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u8)
30744#[inline]
30745#[target_feature(enable = "neon")]
30746#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30747#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
30748#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30749#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30750#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30751pub unsafe fn vzip_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
30752    let a0: uint8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
30753    let b0: uint8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
30754    transmute((a0, b0))
30755}
30756
30757/// Zip vectors
30758///
30759/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u16)
30760#[inline]
30761#[target_feature(enable = "neon")]
30762#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30763#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
30764#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30765#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30766#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30767pub unsafe fn vzip_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
30768    let a0: uint16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
30769    let b0: uint16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
30770    transmute((a0, b0))
30771}
30772
30773/// Zip vectors
30774///
30775/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p8)
30776#[inline]
30777#[target_feature(enable = "neon")]
30778#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30779#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vzip))]
30780#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30781#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30782#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30783pub unsafe fn vzip_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
30784    let a0: poly8x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
30785    let b0: poly8x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
30786    transmute((a0, b0))
30787}
30788
30789/// Zip vectors
30790///
30791/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_p16)
30792#[inline]
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(vzip))]
30796#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30797#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30798#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30799pub unsafe fn vzip_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
30800    let a0: poly16x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
30801    let b0: poly16x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
30802    transmute((a0, b0))
30803}
30804
30805/// Zip vectors
30806///
30807/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_s32)
30808#[inline]
30809#[target_feature(enable = "neon")]
30810#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30811#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30812#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30813#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30814#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30815pub unsafe fn vzip_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
30816    let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
30817    let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
30818    transmute((a0, b0))
30819}
30820
30821/// Zip vectors
30822///
30823/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_u32)
30824#[inline]
30825#[target_feature(enable = "neon")]
30826#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30827#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30828#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30829#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30830#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30831pub unsafe fn vzip_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
30832    let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
30833    let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
30834    transmute((a0, b0))
30835}
30836
30837/// Zip vectors
30838///
30839/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s8)
30840#[inline]
30841#[target_feature(enable = "neon")]
30842#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30843#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
30844#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30845#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30846#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30847pub unsafe fn vzipq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
30848    let a0: int8x16_t = simd_shuffle!(a, b, [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]);
30849    let b0: int8x16_t = simd_shuffle!(a, b, [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]);
30850    transmute((a0, b0))
30851}
30852
30853/// Zip vectors
30854///
30855/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s16)
30856#[inline]
30857#[target_feature(enable = "neon")]
30858#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30859#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
30860#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30861#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30862#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30863pub unsafe fn vzipq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
30864    let a0: int16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
30865    let b0: int16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
30866    transmute((a0, b0))
30867}
30868
30869/// Zip vectors
30870///
30871/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_s32)
30872#[inline]
30873#[target_feature(enable = "neon")]
30874#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30875#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
30876#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30877#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30878#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30879pub unsafe fn vzipq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
30880    let a0: int32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
30881    let b0: int32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
30882    transmute((a0, b0))
30883}
30884
30885/// Zip vectors
30886///
30887/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u8)
30888#[inline]
30889#[target_feature(enable = "neon")]
30890#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30891#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
30892#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30893#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30894#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30895pub unsafe fn vzipq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
30896    let a0: uint8x16_t = simd_shuffle!(a, b, [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]);
30897    let b0: uint8x16_t = simd_shuffle!(a, b, [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]);
30898    transmute((a0, b0))
30899}
30900
30901/// Zip vectors
30902///
30903/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u16)
30904#[inline]
30905#[target_feature(enable = "neon")]
30906#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30907#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
30908#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30909#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30910#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30911pub unsafe fn vzipq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
30912    let a0: uint16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
30913    let b0: uint16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
30914    transmute((a0, b0))
30915}
30916
30917/// Zip vectors
30918///
30919/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_u32)
30920#[inline]
30921#[target_feature(enable = "neon")]
30922#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30923#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
30924#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30925#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30926#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30927pub unsafe fn vzipq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
30928    let a0: uint32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
30929    let b0: uint32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
30930    transmute((a0, b0))
30931}
30932
30933/// Zip vectors
30934///
30935/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p8)
30936#[inline]
30937#[target_feature(enable = "neon")]
30938#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30939#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
30940#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30941#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30942#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30943pub unsafe fn vzipq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
30944    let a0: poly8x16_t = simd_shuffle!(a, b, [0, 16, 1, 17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23]);
30945    let b0: poly8x16_t = simd_shuffle!(a, b, [8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31]);
30946    transmute((a0, b0))
30947}
30948
30949/// Zip vectors
30950///
30951/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_p16)
30952#[inline]
30953#[target_feature(enable = "neon")]
30954#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30955#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
30956#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30957#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30958#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30959pub unsafe fn vzipq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
30960    let a0: poly16x8_t = simd_shuffle!(a, b, [0, 8, 1, 9, 2, 10, 3, 11]);
30961    let b0: poly16x8_t = simd_shuffle!(a, b, [4, 12, 5, 13, 6, 14, 7, 15]);
30962    transmute((a0, b0))
30963}
30964
30965/// Zip vectors
30966///
30967/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzip_f32)
30968#[inline]
30969#[target_feature(enable = "neon")]
30970#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30971#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
30972#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30973#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30974#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30975pub unsafe fn vzip_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
30976    let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
30977    let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
30978    transmute((a0, b0))
30979}
30980
30981/// Zip vectors
30982///
30983/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vzipq_f32)
30984#[inline]
30985#[target_feature(enable = "neon")]
30986#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
30987#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vorr))]
30988#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
30989#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
30990#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
30991pub unsafe fn vzipq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
30992    let a0: float32x4_t = simd_shuffle!(a, b, [0, 4, 1, 5]);
30993    let b0: float32x4_t = simd_shuffle!(a, b, [2, 6, 3, 7]);
30994    transmute((a0, b0))
30995}
30996
30997/// Unzip vectors
30998///
30999/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s8)
31000#[inline]
31001#[target_feature(enable = "neon")]
31002#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31003#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31004#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31005#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31006#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31007pub unsafe fn vuzp_s8(a: int8x8_t, b: int8x8_t) -> int8x8x2_t {
31008    let a0: int8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
31009    let b0: int8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
31010    transmute((a0, b0))
31011}
31012
31013/// Unzip vectors
31014///
31015/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s16)
31016#[inline]
31017#[target_feature(enable = "neon")]
31018#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31019#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31020#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31021#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31022#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31023pub unsafe fn vuzp_s16(a: int16x4_t, b: int16x4_t) -> int16x4x2_t {
31024    let a0: int16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
31025    let b0: int16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
31026    transmute((a0, b0))
31027}
31028
31029/// Unzip vectors
31030///
31031/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s8)
31032#[inline]
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(vuzp))]
31036#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31037#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31038#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31039pub unsafe fn vuzpq_s8(a: int8x16_t, b: int8x16_t) -> int8x16x2_t {
31040    let a0: int8x16_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]);
31041    let b0: int8x16_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]);
31042    transmute((a0, b0))
31043}
31044
31045/// Unzip vectors
31046///
31047/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s16)
31048#[inline]
31049#[target_feature(enable = "neon")]
31050#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31051#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31052#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31053#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31054#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31055pub unsafe fn vuzpq_s16(a: int16x8_t, b: int16x8_t) -> int16x8x2_t {
31056    let a0: int16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
31057    let b0: int16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
31058    transmute((a0, b0))
31059}
31060
31061/// Unzip vectors
31062///
31063/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_s32)
31064#[inline]
31065#[target_feature(enable = "neon")]
31066#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31067#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31068#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31069#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31070#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31071pub unsafe fn vuzpq_s32(a: int32x4_t, b: int32x4_t) -> int32x4x2_t {
31072    let a0: int32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
31073    let b0: int32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
31074    transmute((a0, b0))
31075}
31076
31077/// Unzip vectors
31078///
31079/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u8)
31080#[inline]
31081#[target_feature(enable = "neon")]
31082#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31083#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31084#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31085#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31086#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31087pub unsafe fn vuzp_u8(a: uint8x8_t, b: uint8x8_t) -> uint8x8x2_t {
31088    let a0: uint8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
31089    let b0: uint8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
31090    transmute((a0, b0))
31091}
31092
31093/// Unzip vectors
31094///
31095/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u16)
31096#[inline]
31097#[target_feature(enable = "neon")]
31098#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31099#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31100#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31101#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31102#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31103pub unsafe fn vuzp_u16(a: uint16x4_t, b: uint16x4_t) -> uint16x4x2_t {
31104    let a0: uint16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
31105    let b0: uint16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
31106    transmute((a0, b0))
31107}
31108
31109/// Unzip vectors
31110///
31111/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u8)
31112#[inline]
31113#[target_feature(enable = "neon")]
31114#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31115#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31116#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31117#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31118#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31119pub unsafe fn vuzpq_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16x2_t {
31120    let a0: uint8x16_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]);
31121    let b0: uint8x16_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]);
31122    transmute((a0, b0))
31123}
31124
31125/// Unzip vectors
31126///
31127/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u16)
31128#[inline]
31129#[target_feature(enable = "neon")]
31130#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31131#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31132#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31133#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31134#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31135pub unsafe fn vuzpq_u16(a: uint16x8_t, b: uint16x8_t) -> uint16x8x2_t {
31136    let a0: uint16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
31137    let b0: uint16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
31138    transmute((a0, b0))
31139}
31140
31141/// Unzip vectors
31142///
31143/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_u32)
31144#[inline]
31145#[target_feature(enable = "neon")]
31146#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31147#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31148#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31149#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31150#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31151pub unsafe fn vuzpq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4x2_t {
31152    let a0: uint32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
31153    let b0: uint32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
31154    transmute((a0, b0))
31155}
31156
31157/// Unzip vectors
31158///
31159/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p8)
31160#[inline]
31161#[target_feature(enable = "neon")]
31162#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31163#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31164#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31165#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31166#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31167pub unsafe fn vuzp_p8(a: poly8x8_t, b: poly8x8_t) -> poly8x8x2_t {
31168    let a0: poly8x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
31169    let b0: poly8x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
31170    transmute((a0, b0))
31171}
31172
31173/// Unzip vectors
31174///
31175/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_p16)
31176#[inline]
31177#[target_feature(enable = "neon")]
31178#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31179#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31180#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31181#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31182#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31183pub unsafe fn vuzp_p16(a: poly16x4_t, b: poly16x4_t) -> poly16x4x2_t {
31184    let a0: poly16x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
31185    let b0: poly16x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
31186    transmute((a0, b0))
31187}
31188
31189/// Unzip vectors
31190///
31191/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p8)
31192#[inline]
31193#[target_feature(enable = "neon")]
31194#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31195#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31196#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31197#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31198#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31199pub unsafe fn vuzpq_p8(a: poly8x16_t, b: poly8x16_t) -> poly8x16x2_t {
31200    let a0: poly8x16_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]);
31201    let b0: poly8x16_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31]);
31202    transmute((a0, b0))
31203}
31204
31205/// Unzip vectors
31206///
31207/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_p16)
31208#[inline]
31209#[target_feature(enable = "neon")]
31210#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31211#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31212#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31213#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31214#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31215pub unsafe fn vuzpq_p16(a: poly16x8_t, b: poly16x8_t) -> poly16x8x2_t {
31216    let a0: poly16x8_t = simd_shuffle!(a, b, [0, 2, 4, 6, 8, 10, 12, 14]);
31217    let b0: poly16x8_t = simd_shuffle!(a, b, [1, 3, 5, 7, 9, 11, 13, 15]);
31218    transmute((a0, b0))
31219}
31220
31221/// Unzip vectors
31222///
31223/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_s32)
31224#[inline]
31225#[target_feature(enable = "neon")]
31226#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31227#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
31228#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
31229#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31230#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31231pub unsafe fn vuzp_s32(a: int32x2_t, b: int32x2_t) -> int32x2x2_t {
31232    let a0: int32x2_t = simd_shuffle!(a, b, [0, 2]);
31233    let b0: int32x2_t = simd_shuffle!(a, b, [1, 3]);
31234    transmute((a0, b0))
31235}
31236
31237/// Unzip vectors
31238///
31239/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_u32)
31240#[inline]
31241#[target_feature(enable = "neon")]
31242#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31243#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
31244#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
31245#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31246#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31247pub unsafe fn vuzp_u32(a: uint32x2_t, b: uint32x2_t) -> uint32x2x2_t {
31248    let a0: uint32x2_t = simd_shuffle!(a, b, [0, 2]);
31249    let b0: uint32x2_t = simd_shuffle!(a, b, [1, 3]);
31250    transmute((a0, b0))
31251}
31252
31253/// Unzip vectors
31254///
31255/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzp_f32)
31256#[inline]
31257#[target_feature(enable = "neon")]
31258#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31259#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vtrn))]
31260#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(zip))]
31261#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31262#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31263pub unsafe fn vuzp_f32(a: float32x2_t, b: float32x2_t) -> float32x2x2_t {
31264    let a0: float32x2_t = simd_shuffle!(a, b, [0, 2]);
31265    let b0: float32x2_t = simd_shuffle!(a, b, [1, 3]);
31266    transmute((a0, b0))
31267}
31268
31269/// Unzip vectors
31270///
31271/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vuzpq_f32)
31272#[inline]
31273#[target_feature(enable = "neon")]
31274#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31275#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vuzp))]
31276#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uzp))]
31277#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31278#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31279pub unsafe fn vuzpq_f32(a: float32x4_t, b: float32x4_t) -> float32x4x2_t {
31280    let a0: float32x4_t = simd_shuffle!(a, b, [0, 2, 4, 6]);
31281    let b0: float32x4_t = simd_shuffle!(a, b, [1, 3, 5, 7]);
31282    transmute((a0, b0))
31283}
31284
31285/// Unsigned Absolute difference and Accumulate Long
31286///
31287/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_u8)
31288#[inline]
31289#[target_feature(enable = "neon")]
31290#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31291#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.u8"))]
31292#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabal))]
31293#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31294#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31295pub unsafe fn vabal_u8(a: uint16x8_t, b: uint8x8_t, c: uint8x8_t) -> uint16x8_t {
31296    let d: uint8x8_t = vabd_u8(b, c);
31297    simd_add(a, simd_cast(d))
31298}
31299
31300/// Unsigned Absolute difference and Accumulate Long
31301///
31302/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_u16)
31303#[inline]
31304#[target_feature(enable = "neon")]
31305#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31306#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.u16"))]
31307#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabal))]
31308#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31309#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31310pub unsafe fn vabal_u16(a: uint32x4_t, b: uint16x4_t, c: uint16x4_t) -> uint32x4_t {
31311    let d: uint16x4_t = vabd_u16(b, c);
31312    simd_add(a, simd_cast(d))
31313}
31314
31315/// Unsigned Absolute difference and Accumulate Long
31316///
31317/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_u32)
31318#[inline]
31319#[target_feature(enable = "neon")]
31320#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31321#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.u32"))]
31322#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(uabal))]
31323#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31324#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31325pub unsafe fn vabal_u32(a: uint64x2_t, b: uint32x2_t, c: uint32x2_t) -> uint64x2_t {
31326    let d: uint32x2_t = vabd_u32(b, c);
31327    simd_add(a, simd_cast(d))
31328}
31329
31330/// Signed Absolute difference and Accumulate Long
31331///
31332/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_s8)
31333#[inline]
31334#[target_feature(enable = "neon")]
31335#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31336#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.s8"))]
31337#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabal))]
31338#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31339#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31340pub unsafe fn vabal_s8(a: int16x8_t, b: int8x8_t, c: int8x8_t) -> int16x8_t {
31341    let d: int8x8_t = vabd_s8(b, c);
31342    let e: uint8x8_t = simd_cast(d);
31343    simd_add(a, simd_cast(e))
31344}
31345
31346/// Signed Absolute difference and Accumulate Long
31347///
31348/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_s16)
31349#[inline]
31350#[target_feature(enable = "neon")]
31351#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31352#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.s16"))]
31353#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabal))]
31354#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31355#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31356pub unsafe fn vabal_s16(a: int32x4_t, b: int16x4_t, c: int16x4_t) -> int32x4_t {
31357    let d: int16x4_t = vabd_s16(b, c);
31358    let e: uint16x4_t = simd_cast(d);
31359    simd_add(a, simd_cast(e))
31360}
31361
31362/// Signed Absolute difference and Accumulate Long
31363///
31364/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vabal_s32)
31365#[inline]
31366#[target_feature(enable = "neon")]
31367#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31368#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vabal.s32"))]
31369#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sabal))]
31370#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31371#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31372pub unsafe fn vabal_s32(a: int64x2_t, b: int32x2_t, c: int32x2_t) -> int64x2_t {
31373    let d: int32x2_t = vabd_s32(b, c);
31374    let e: uint32x2_t = simd_cast(d);
31375    simd_add(a, simd_cast(e))
31376}
31377
31378/// Signed saturating Absolute value
31379///
31380/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s8)
31381#[inline]
31382#[target_feature(enable = "neon")]
31383#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31384#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s8"))]
31385#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqabs))]
31386#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31387#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31388pub unsafe fn vqabs_s8(a: int8x8_t) -> int8x8_t {
31389    #[allow(improper_ctypes)]
31390    extern "unadjusted" {
31391        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i8")]
31392        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqabs.v8i8")]
31393        fn vqabs_s8_(a: int8x8_t) -> int8x8_t;
31394    }
31395vqabs_s8_(a)
31396}
31397
31398/// Signed saturating Absolute value
31399///
31400/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s8)
31401#[inline]
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("vqabs.s8"))]
31405#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqabs))]
31406#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31407#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31408pub unsafe fn vqabsq_s8(a: int8x16_t) -> int8x16_t {
31409    #[allow(improper_ctypes)]
31410    extern "unadjusted" {
31411        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v16i8")]
31412        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqabs.v16i8")]
31413        fn vqabsq_s8_(a: int8x16_t) -> int8x16_t;
31414    }
31415vqabsq_s8_(a)
31416}
31417
31418/// Signed saturating Absolute value
31419///
31420/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s16)
31421#[inline]
31422#[target_feature(enable = "neon")]
31423#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31424#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
31425#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqabs))]
31426#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31427#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31428pub unsafe fn vqabs_s16(a: int16x4_t) -> int16x4_t {
31429    #[allow(improper_ctypes)]
31430    extern "unadjusted" {
31431        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i16")]
31432        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqabs.v4i16")]
31433        fn vqabs_s16_(a: int16x4_t) -> int16x4_t;
31434    }
31435vqabs_s16_(a)
31436}
31437
31438/// Signed saturating Absolute value
31439///
31440/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s16)
31441#[inline]
31442#[target_feature(enable = "neon")]
31443#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31444#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s16"))]
31445#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqabs))]
31446#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31447#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31448pub unsafe fn vqabsq_s16(a: int16x8_t) -> int16x8_t {
31449    #[allow(improper_ctypes)]
31450    extern "unadjusted" {
31451        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v8i16")]
31452        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqabs.v8i16")]
31453        fn vqabsq_s16_(a: int16x8_t) -> int16x8_t;
31454    }
31455vqabsq_s16_(a)
31456}
31457
31458/// Signed saturating Absolute value
31459///
31460/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabs_s32)
31461#[inline]
31462#[target_feature(enable = "neon")]
31463#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31464#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
31465#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqabs))]
31466#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31467#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31468pub unsafe fn vqabs_s32(a: int32x2_t) -> int32x2_t {
31469    #[allow(improper_ctypes)]
31470    extern "unadjusted" {
31471        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v2i32")]
31472        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqabs.v2i32")]
31473        fn vqabs_s32_(a: int32x2_t) -> int32x2_t;
31474    }
31475vqabs_s32_(a)
31476}
31477
31478/// Signed saturating Absolute value
31479///
31480/// [Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqabsq_s32)
31481#[inline]
31482#[target_feature(enable = "neon")]
31483#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
31484#[cfg_attr(all(test, target_arch = "arm"), assert_instr("vqabs.s32"))]
31485#[cfg_attr(all(test, any(target_arch = "aarch64", target_arch = "arm64ec")), assert_instr(sqabs))]
31486#[cfg_attr(not(target_arch = "arm"), stable(feature = "neon_intrinsics", since = "1.59.0"))]
31487#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
31488pub unsafe fn vqabsq_s32(a: int32x4_t) -> int32x4_t {
31489    #[allow(improper_ctypes)]
31490    extern "unadjusted" {
31491        #[cfg_attr(target_arch = "arm", link_name = "llvm.arm.neon.vqabs.v4i32")]
31492        #[cfg_attr(any(target_arch = "aarch64", target_arch = "arm64ec"), link_name = "llvm.aarch64.neon.sqabs.v4i32")]
31493        fn vqabsq_s32_(a: int32x4_t) -> int32x4_t;
31494    }
31495vqabsq_s32_(a)
31496}
31497
31498#[cfg(test)]
31499#[allow(overflowing_literals)]
31500mod test {
31501    use super::*;
31502    use crate::core_arch::simd::*;
31503    use std::mem::transmute;
31504    use stdarch_test::simd_test;
31505
31506    #[simd_test(enable = "neon")]
31507    unsafe fn test_vand_s8() {
31508        let a: i8x8 = i8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31509        let b: i8x8 = i8x8::new(0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F);
31510        let e: i8x8 = i8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31511        let r: i8x8 = transmute(vand_s8(transmute(a), transmute(b)));
31512        assert_eq!(r, e);
31513
31514        let a: i8x8 = i8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31515        let b: i8x8 = i8x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31516        let e: i8x8 = i8x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31517        let r: i8x8 = transmute(vand_s8(transmute(a), transmute(b)));
31518        assert_eq!(r, e);
31519    }
31520
31521    #[simd_test(enable = "neon")]
31522    unsafe fn test_vandq_s8() {
31523        let a: i8x16 = i8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x00);
31524        let b: i8x16 = i8x16::new(0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F);
31525        let e: i8x16 = i8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x00);
31526        let r: i8x16 = transmute(vandq_s8(transmute(a), transmute(b)));
31527        assert_eq!(r, e);
31528
31529        let a: i8x16 = i8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x00);
31530        let b: i8x16 = i8x16::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31531        let e: i8x16 = i8x16::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31532        let r: i8x16 = transmute(vandq_s8(transmute(a), transmute(b)));
31533        assert_eq!(r, e);
31534    }
31535
31536    #[simd_test(enable = "neon")]
31537    unsafe fn test_vand_s16() {
31538        let a: i16x4 = i16x4::new(0x00, 0x01, 0x02, 0x03);
31539        let b: i16x4 = i16x4::new(0x0F, 0x0F, 0x0F, 0x0F);
31540        let e: i16x4 = i16x4::new(0x00, 0x01, 0x02, 0x03);
31541        let r: i16x4 = transmute(vand_s16(transmute(a), transmute(b)));
31542        assert_eq!(r, e);
31543
31544        let a: i16x4 = i16x4::new(0x00, 0x01, 0x02, 0x03);
31545        let b: i16x4 = i16x4::new(0x00, 0x00, 0x00, 0x00);
31546        let e: i16x4 = i16x4::new(0x00, 0x00, 0x00, 0x00);
31547        let r: i16x4 = transmute(vand_s16(transmute(a), transmute(b)));
31548        assert_eq!(r, e);
31549    }
31550
31551    #[simd_test(enable = "neon")]
31552    unsafe fn test_vandq_s16() {
31553        let a: i16x8 = i16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31554        let b: i16x8 = i16x8::new(0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F);
31555        let e: i16x8 = i16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31556        let r: i16x8 = transmute(vandq_s16(transmute(a), transmute(b)));
31557        assert_eq!(r, e);
31558
31559        let a: i16x8 = i16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31560        let b: i16x8 = i16x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31561        let e: i16x8 = i16x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31562        let r: i16x8 = transmute(vandq_s16(transmute(a), transmute(b)));
31563        assert_eq!(r, e);
31564    }
31565
31566    #[simd_test(enable = "neon")]
31567    unsafe fn test_vand_s32() {
31568        let a: i32x2 = i32x2::new(0x00, 0x01);
31569        let b: i32x2 = i32x2::new(0x0F, 0x0F);
31570        let e: i32x2 = i32x2::new(0x00, 0x01);
31571        let r: i32x2 = transmute(vand_s32(transmute(a), transmute(b)));
31572        assert_eq!(r, e);
31573
31574        let a: i32x2 = i32x2::new(0x00, 0x01);
31575        let b: i32x2 = i32x2::new(0x00, 0x00);
31576        let e: i32x2 = i32x2::new(0x00, 0x00);
31577        let r: i32x2 = transmute(vand_s32(transmute(a), transmute(b)));
31578        assert_eq!(r, e);
31579    }
31580
31581    #[simd_test(enable = "neon")]
31582    unsafe fn test_vandq_s32() {
31583        let a: i32x4 = i32x4::new(0x00, 0x01, 0x02, 0x03);
31584        let b: i32x4 = i32x4::new(0x0F, 0x0F, 0x0F, 0x0F);
31585        let e: i32x4 = i32x4::new(0x00, 0x01, 0x02, 0x03);
31586        let r: i32x4 = transmute(vandq_s32(transmute(a), transmute(b)));
31587        assert_eq!(r, e);
31588
31589        let a: i32x4 = i32x4::new(0x00, 0x01, 0x02, 0x03);
31590        let b: i32x4 = i32x4::new(0x00, 0x00, 0x00, 0x00);
31591        let e: i32x4 = i32x4::new(0x00, 0x00, 0x00, 0x00);
31592        let r: i32x4 = transmute(vandq_s32(transmute(a), transmute(b)));
31593        assert_eq!(r, e);
31594    }
31595
31596    #[simd_test(enable = "neon")]
31597    unsafe fn test_vand_u8() {
31598        let a: u8x8 = u8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31599        let b: u8x8 = u8x8::new(0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F);
31600        let e: u8x8 = u8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31601        let r: u8x8 = transmute(vand_u8(transmute(a), transmute(b)));
31602        assert_eq!(r, e);
31603
31604        let a: u8x8 = u8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31605        let b: u8x8 = u8x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31606        let e: u8x8 = u8x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31607        let r: u8x8 = transmute(vand_u8(transmute(a), transmute(b)));
31608        assert_eq!(r, e);
31609    }
31610
31611    #[simd_test(enable = "neon")]
31612    unsafe fn test_vandq_u8() {
31613        let a: u8x16 = u8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x00);
31614        let b: u8x16 = u8x16::new(0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F);
31615        let e: u8x16 = u8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x00);
31616        let r: u8x16 = transmute(vandq_u8(transmute(a), transmute(b)));
31617        assert_eq!(r, e);
31618
31619        let a: u8x16 = u8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x00);
31620        let b: u8x16 = u8x16::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31621        let e: u8x16 = u8x16::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31622        let r: u8x16 = transmute(vandq_u8(transmute(a), transmute(b)));
31623        assert_eq!(r, e);
31624    }
31625
31626    #[simd_test(enable = "neon")]
31627    unsafe fn test_vand_u16() {
31628        let a: u16x4 = u16x4::new(0x00, 0x01, 0x02, 0x03);
31629        let b: u16x4 = u16x4::new(0x0F, 0x0F, 0x0F, 0x0F);
31630        let e: u16x4 = u16x4::new(0x00, 0x01, 0x02, 0x03);
31631        let r: u16x4 = transmute(vand_u16(transmute(a), transmute(b)));
31632        assert_eq!(r, e);
31633
31634        let a: u16x4 = u16x4::new(0x00, 0x01, 0x02, 0x03);
31635        let b: u16x4 = u16x4::new(0x00, 0x00, 0x00, 0x00);
31636        let e: u16x4 = u16x4::new(0x00, 0x00, 0x00, 0x00);
31637        let r: u16x4 = transmute(vand_u16(transmute(a), transmute(b)));
31638        assert_eq!(r, e);
31639    }
31640
31641    #[simd_test(enable = "neon")]
31642    unsafe fn test_vandq_u16() {
31643        let a: u16x8 = u16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31644        let b: u16x8 = u16x8::new(0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F);
31645        let e: u16x8 = u16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31646        let r: u16x8 = transmute(vandq_u16(transmute(a), transmute(b)));
31647        assert_eq!(r, e);
31648
31649        let a: u16x8 = u16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31650        let b: u16x8 = u16x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31651        let e: u16x8 = u16x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31652        let r: u16x8 = transmute(vandq_u16(transmute(a), transmute(b)));
31653        assert_eq!(r, e);
31654    }
31655
31656    #[simd_test(enable = "neon")]
31657    unsafe fn test_vand_u32() {
31658        let a: u32x2 = u32x2::new(0x00, 0x01);
31659        let b: u32x2 = u32x2::new(0x0F, 0x0F);
31660        let e: u32x2 = u32x2::new(0x00, 0x01);
31661        let r: u32x2 = transmute(vand_u32(transmute(a), transmute(b)));
31662        assert_eq!(r, e);
31663
31664        let a: u32x2 = u32x2::new(0x00, 0x01);
31665        let b: u32x2 = u32x2::new(0x00, 0x00);
31666        let e: u32x2 = u32x2::new(0x00, 0x00);
31667        let r: u32x2 = transmute(vand_u32(transmute(a), transmute(b)));
31668        assert_eq!(r, e);
31669    }
31670
31671    #[simd_test(enable = "neon")]
31672    unsafe fn test_vandq_u32() {
31673        let a: u32x4 = u32x4::new(0x00, 0x01, 0x02, 0x03);
31674        let b: u32x4 = u32x4::new(0x0F, 0x0F, 0x0F, 0x0F);
31675        let e: u32x4 = u32x4::new(0x00, 0x01, 0x02, 0x03);
31676        let r: u32x4 = transmute(vandq_u32(transmute(a), transmute(b)));
31677        assert_eq!(r, e);
31678
31679        let a: u32x4 = u32x4::new(0x00, 0x01, 0x02, 0x03);
31680        let b: u32x4 = u32x4::new(0x00, 0x00, 0x00, 0x00);
31681        let e: u32x4 = u32x4::new(0x00, 0x00, 0x00, 0x00);
31682        let r: u32x4 = transmute(vandq_u32(transmute(a), transmute(b)));
31683        assert_eq!(r, e);
31684    }
31685
31686    #[simd_test(enable = "neon")]
31687    unsafe fn test_vand_s64() {
31688        let a: i64x1 = i64x1::new(0x00);
31689        let b: i64x1 = i64x1::new(0x0F);
31690        let e: i64x1 = i64x1::new(0x00);
31691        let r: i64x1 = transmute(vand_s64(transmute(a), transmute(b)));
31692        assert_eq!(r, e);
31693
31694        let a: i64x1 = i64x1::new(0x00);
31695        let b: i64x1 = i64x1::new(0x00);
31696        let e: i64x1 = i64x1::new(0x00);
31697        let r: i64x1 = transmute(vand_s64(transmute(a), transmute(b)));
31698        assert_eq!(r, e);
31699    }
31700
31701    #[simd_test(enable = "neon")]
31702    unsafe fn test_vandq_s64() {
31703        let a: i64x2 = i64x2::new(0x00, 0x01);
31704        let b: i64x2 = i64x2::new(0x0F, 0x0F);
31705        let e: i64x2 = i64x2::new(0x00, 0x01);
31706        let r: i64x2 = transmute(vandq_s64(transmute(a), transmute(b)));
31707        assert_eq!(r, e);
31708
31709        let a: i64x2 = i64x2::new(0x00, 0x01);
31710        let b: i64x2 = i64x2::new(0x00, 0x00);
31711        let e: i64x2 = i64x2::new(0x00, 0x00);
31712        let r: i64x2 = transmute(vandq_s64(transmute(a), transmute(b)));
31713        assert_eq!(r, e);
31714    }
31715
31716    #[simd_test(enable = "neon")]
31717    unsafe fn test_vand_u64() {
31718        let a: u64x1 = u64x1::new(0x00);
31719        let b: u64x1 = u64x1::new(0x0F);
31720        let e: u64x1 = u64x1::new(0x00);
31721        let r: u64x1 = transmute(vand_u64(transmute(a), transmute(b)));
31722        assert_eq!(r, e);
31723
31724        let a: u64x1 = u64x1::new(0x00);
31725        let b: u64x1 = u64x1::new(0x00);
31726        let e: u64x1 = u64x1::new(0x00);
31727        let r: u64x1 = transmute(vand_u64(transmute(a), transmute(b)));
31728        assert_eq!(r, e);
31729    }
31730
31731    #[simd_test(enable = "neon")]
31732    unsafe fn test_vandq_u64() {
31733        let a: u64x2 = u64x2::new(0x00, 0x01);
31734        let b: u64x2 = u64x2::new(0x0F, 0x0F);
31735        let e: u64x2 = u64x2::new(0x00, 0x01);
31736        let r: u64x2 = transmute(vandq_u64(transmute(a), transmute(b)));
31737        assert_eq!(r, e);
31738
31739        let a: u64x2 = u64x2::new(0x00, 0x01);
31740        let b: u64x2 = u64x2::new(0x00, 0x00);
31741        let e: u64x2 = u64x2::new(0x00, 0x00);
31742        let r: u64x2 = transmute(vandq_u64(transmute(a), transmute(b)));
31743        assert_eq!(r, e);
31744    }
31745
31746    #[simd_test(enable = "neon")]
31747    unsafe fn test_vorr_s8() {
31748        let a: i8x8 = i8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31749        let b: i8x8 = i8x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31750        let e: i8x8 = i8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31751        let r: i8x8 = transmute(vorr_s8(transmute(a), transmute(b)));
31752        assert_eq!(r, e);
31753    }
31754
31755    #[simd_test(enable = "neon")]
31756    unsafe fn test_vorrq_s8() {
31757        let a: i8x16 = i8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F);
31758        let b: i8x16 = i8x16::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31759        let e: i8x16 = i8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F);
31760        let r: i8x16 = transmute(vorrq_s8(transmute(a), transmute(b)));
31761        assert_eq!(r, e);
31762    }
31763
31764    #[simd_test(enable = "neon")]
31765    unsafe fn test_vorr_s16() {
31766        let a: i16x4 = i16x4::new(0x00, 0x01, 0x02, 0x03);
31767        let b: i16x4 = i16x4::new(0x00, 0x00, 0x00, 0x00);
31768        let e: i16x4 = i16x4::new(0x00, 0x01, 0x02, 0x03);
31769        let r: i16x4 = transmute(vorr_s16(transmute(a), transmute(b)));
31770        assert_eq!(r, e);
31771    }
31772
31773    #[simd_test(enable = "neon")]
31774    unsafe fn test_vorrq_s16() {
31775        let a: i16x8 = i16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31776        let b: i16x8 = i16x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31777        let e: i16x8 = i16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31778        let r: i16x8 = transmute(vorrq_s16(transmute(a), transmute(b)));
31779        assert_eq!(r, e);
31780    }
31781
31782    #[simd_test(enable = "neon")]
31783    unsafe fn test_vorr_s32() {
31784        let a: i32x2 = i32x2::new(0x00, 0x01);
31785        let b: i32x2 = i32x2::new(0x00, 0x00);
31786        let e: i32x2 = i32x2::new(0x00, 0x01);
31787        let r: i32x2 = transmute(vorr_s32(transmute(a), transmute(b)));
31788        assert_eq!(r, e);
31789    }
31790
31791    #[simd_test(enable = "neon")]
31792    unsafe fn test_vorrq_s32() {
31793        let a: i32x4 = i32x4::new(0x00, 0x01, 0x02, 0x03);
31794        let b: i32x4 = i32x4::new(0x00, 0x00, 0x00, 0x00);
31795        let e: i32x4 = i32x4::new(0x00, 0x01, 0x02, 0x03);
31796        let r: i32x4 = transmute(vorrq_s32(transmute(a), transmute(b)));
31797        assert_eq!(r, e);
31798    }
31799
31800    #[simd_test(enable = "neon")]
31801    unsafe fn test_vorr_u8() {
31802        let a: u8x8 = u8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31803        let b: u8x8 = u8x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31804        let e: u8x8 = u8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31805        let r: u8x8 = transmute(vorr_u8(transmute(a), transmute(b)));
31806        assert_eq!(r, e);
31807    }
31808
31809    #[simd_test(enable = "neon")]
31810    unsafe fn test_vorrq_u8() {
31811        let a: u8x16 = u8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F);
31812        let b: u8x16 = u8x16::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31813        let e: u8x16 = u8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F);
31814        let r: u8x16 = transmute(vorrq_u8(transmute(a), transmute(b)));
31815        assert_eq!(r, e);
31816    }
31817
31818    #[simd_test(enable = "neon")]
31819    unsafe fn test_vorr_u16() {
31820        let a: u16x4 = u16x4::new(0x00, 0x01, 0x02, 0x03);
31821        let b: u16x4 = u16x4::new(0x00, 0x00, 0x00, 0x00);
31822        let e: u16x4 = u16x4::new(0x00, 0x01, 0x02, 0x03);
31823        let r: u16x4 = transmute(vorr_u16(transmute(a), transmute(b)));
31824        assert_eq!(r, e);
31825    }
31826
31827    #[simd_test(enable = "neon")]
31828    unsafe fn test_vorrq_u16() {
31829        let a: u16x8 = u16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31830        let b: u16x8 = u16x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31831        let e: u16x8 = u16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31832        let r: u16x8 = transmute(vorrq_u16(transmute(a), transmute(b)));
31833        assert_eq!(r, e);
31834    }
31835
31836    #[simd_test(enable = "neon")]
31837    unsafe fn test_vorr_u32() {
31838        let a: u32x2 = u32x2::new(0x00, 0x01);
31839        let b: u32x2 = u32x2::new(0x00, 0x00);
31840        let e: u32x2 = u32x2::new(0x00, 0x01);
31841        let r: u32x2 = transmute(vorr_u32(transmute(a), transmute(b)));
31842        assert_eq!(r, e);
31843    }
31844
31845    #[simd_test(enable = "neon")]
31846    unsafe fn test_vorrq_u32() {
31847        let a: u32x4 = u32x4::new(0x00, 0x01, 0x02, 0x03);
31848        let b: u32x4 = u32x4::new(0x00, 0x00, 0x00, 0x00);
31849        let e: u32x4 = u32x4::new(0x00, 0x01, 0x02, 0x03);
31850        let r: u32x4 = transmute(vorrq_u32(transmute(a), transmute(b)));
31851        assert_eq!(r, e);
31852    }
31853
31854    #[simd_test(enable = "neon")]
31855    unsafe fn test_vorr_s64() {
31856        let a: i64x1 = i64x1::new(0x00);
31857        let b: i64x1 = i64x1::new(0x00);
31858        let e: i64x1 = i64x1::new(0x00);
31859        let r: i64x1 = transmute(vorr_s64(transmute(a), transmute(b)));
31860        assert_eq!(r, e);
31861    }
31862
31863    #[simd_test(enable = "neon")]
31864    unsafe fn test_vorrq_s64() {
31865        let a: i64x2 = i64x2::new(0x00, 0x01);
31866        let b: i64x2 = i64x2::new(0x00, 0x00);
31867        let e: i64x2 = i64x2::new(0x00, 0x01);
31868        let r: i64x2 = transmute(vorrq_s64(transmute(a), transmute(b)));
31869        assert_eq!(r, e);
31870    }
31871
31872    #[simd_test(enable = "neon")]
31873    unsafe fn test_vorr_u64() {
31874        let a: u64x1 = u64x1::new(0x00);
31875        let b: u64x1 = u64x1::new(0x00);
31876        let e: u64x1 = u64x1::new(0x00);
31877        let r: u64x1 = transmute(vorr_u64(transmute(a), transmute(b)));
31878        assert_eq!(r, e);
31879    }
31880
31881    #[simd_test(enable = "neon")]
31882    unsafe fn test_vorrq_u64() {
31883        let a: u64x2 = u64x2::new(0x00, 0x01);
31884        let b: u64x2 = u64x2::new(0x00, 0x00);
31885        let e: u64x2 = u64x2::new(0x00, 0x01);
31886        let r: u64x2 = transmute(vorrq_u64(transmute(a), transmute(b)));
31887        assert_eq!(r, e);
31888    }
31889
31890    #[simd_test(enable = "neon")]
31891    unsafe fn test_veor_s8() {
31892        let a: i8x8 = i8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31893        let b: i8x8 = i8x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31894        let e: i8x8 = i8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31895        let r: i8x8 = transmute(veor_s8(transmute(a), transmute(b)));
31896        assert_eq!(r, e);
31897    }
31898
31899    #[simd_test(enable = "neon")]
31900    unsafe fn test_veorq_s8() {
31901        let a: i8x16 = i8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F);
31902        let b: i8x16 = i8x16::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31903        let e: i8x16 = i8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F);
31904        let r: i8x16 = transmute(veorq_s8(transmute(a), transmute(b)));
31905        assert_eq!(r, e);
31906    }
31907
31908    #[simd_test(enable = "neon")]
31909    unsafe fn test_veor_s16() {
31910        let a: i16x4 = i16x4::new(0x00, 0x01, 0x02, 0x03);
31911        let b: i16x4 = i16x4::new(0x00, 0x00, 0x00, 0x00);
31912        let e: i16x4 = i16x4::new(0x00, 0x01, 0x02, 0x03);
31913        let r: i16x4 = transmute(veor_s16(transmute(a), transmute(b)));
31914        assert_eq!(r, e);
31915    }
31916
31917    #[simd_test(enable = "neon")]
31918    unsafe fn test_veorq_s16() {
31919        let a: i16x8 = i16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31920        let b: i16x8 = i16x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31921        let e: i16x8 = i16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31922        let r: i16x8 = transmute(veorq_s16(transmute(a), transmute(b)));
31923        assert_eq!(r, e);
31924    }
31925
31926    #[simd_test(enable = "neon")]
31927    unsafe fn test_veor_s32() {
31928        let a: i32x2 = i32x2::new(0x00, 0x01);
31929        let b: i32x2 = i32x2::new(0x00, 0x00);
31930        let e: i32x2 = i32x2::new(0x00, 0x01);
31931        let r: i32x2 = transmute(veor_s32(transmute(a), transmute(b)));
31932        assert_eq!(r, e);
31933    }
31934
31935    #[simd_test(enable = "neon")]
31936    unsafe fn test_veorq_s32() {
31937        let a: i32x4 = i32x4::new(0x00, 0x01, 0x02, 0x03);
31938        let b: i32x4 = i32x4::new(0x00, 0x00, 0x00, 0x00);
31939        let e: i32x4 = i32x4::new(0x00, 0x01, 0x02, 0x03);
31940        let r: i32x4 = transmute(veorq_s32(transmute(a), transmute(b)));
31941        assert_eq!(r, e);
31942    }
31943
31944    #[simd_test(enable = "neon")]
31945    unsafe fn test_veor_u8() {
31946        let a: u8x8 = u8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31947        let b: u8x8 = u8x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31948        let e: u8x8 = u8x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31949        let r: u8x8 = transmute(veor_u8(transmute(a), transmute(b)));
31950        assert_eq!(r, e);
31951    }
31952
31953    #[simd_test(enable = "neon")]
31954    unsafe fn test_veorq_u8() {
31955        let a: u8x16 = u8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F);
31956        let b: u8x16 = u8x16::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31957        let e: u8x16 = u8x16::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F);
31958        let r: u8x16 = transmute(veorq_u8(transmute(a), transmute(b)));
31959        assert_eq!(r, e);
31960    }
31961
31962    #[simd_test(enable = "neon")]
31963    unsafe fn test_veor_u16() {
31964        let a: u16x4 = u16x4::new(0x00, 0x01, 0x02, 0x03);
31965        let b: u16x4 = u16x4::new(0x00, 0x00, 0x00, 0x00);
31966        let e: u16x4 = u16x4::new(0x00, 0x01, 0x02, 0x03);
31967        let r: u16x4 = transmute(veor_u16(transmute(a), transmute(b)));
31968        assert_eq!(r, e);
31969    }
31970
31971    #[simd_test(enable = "neon")]
31972    unsafe fn test_veorq_u16() {
31973        let a: u16x8 = u16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31974        let b: u16x8 = u16x8::new(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
31975        let e: u16x8 = u16x8::new(0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
31976        let r: u16x8 = transmute(veorq_u16(transmute(a), transmute(b)));
31977        assert_eq!(r, e);
31978    }
31979
31980    #[simd_test(enable = "neon")]
31981    unsafe fn test_veor_u32() {
31982        let a: u32x2 = u32x2::new(0x00, 0x01);
31983        let b: u32x2 = u32x2::new(0x00, 0x00);
31984        let e: u32x2 = u32x2::new(0x00, 0x01);
31985        let r: u32x2 = transmute(veor_u32(transmute(a), transmute(b)));
31986        assert_eq!(r, e);
31987    }
31988
31989    #[simd_test(enable = "neon")]
31990    unsafe fn test_veorq_u32() {
31991        let a: u32x4 = u32x4::new(0x00, 0x01, 0x02, 0x03);
31992        let b: u32x4 = u32x4::new(0x00, 0x00, 0x00, 0x00);
31993        let e: u32x4 = u32x4::new(0x00, 0x01, 0x02, 0x03);
31994        let r: u32x4 = transmute(veorq_u32(transmute(a), transmute(b)));
31995        assert_eq!(r, e);
31996    }
31997
31998    #[simd_test(enable = "neon")]
31999    unsafe fn test_veor_s64() {
32000        let a: i64x1 = i64x1::new(0x00);
32001        let b: i64x1 = i64x1::new(0x00);
32002        let e: i64x1 = i64x1::new(0x00);
32003        let r: i64x1 = transmute(veor_s64(transmute(a), transmute(b)));
32004        assert_eq!(r, e);
32005    }
32006
32007    #[simd_test(enable = "neon")]
32008    unsafe fn test_veorq_s64() {
32009        let a: i64x2 = i64x2::new(0x00, 0x01);
32010        let b: i64x2 = i64x2::new(0x00, 0x00);
32011        let e: i64x2 = i64x2::new(0x00, 0x01);
32012        let r: i64x2 = transmute(veorq_s64(transmute(a), transmute(b)));
32013        assert_eq!(r, e);
32014    }
32015
32016    #[simd_test(enable = "neon")]
32017    unsafe fn test_veor_u64() {
32018        let a: u64x1 = u64x1::new(0x00);
32019        let b: u64x1 = u64x1::new(0x00);
32020        let e: u64x1 = u64x1::new(0x00);
32021        let r: u64x1 = transmute(veor_u64(transmute(a), transmute(b)));
32022        assert_eq!(r, e);
32023    }
32024
32025    #[simd_test(enable = "neon")]
32026    unsafe fn test_veorq_u64() {
32027        let a: u64x2 = u64x2::new(0x00, 0x01);
32028        let b: u64x2 = u64x2::new(0x00, 0x00);
32029        let e: u64x2 = u64x2::new(0x00, 0x01);
32030        let r: u64x2 = transmute(veorq_u64(transmute(a), transmute(b)));
32031        assert_eq!(r, e);
32032    }
32033
32034    #[simd_test(enable = "neon")]
32035    unsafe fn test_vabd_s8() {
32036        let a: i8x8 = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32037        let b: i8x8 = i8x8::new(16, 15, 14, 13, 12, 11, 10, 9);
32038        let e: i8x8 = i8x8::new(15, 13, 11, 9, 7, 5, 3, 1);
32039        let r: i8x8 = transmute(vabd_s8(transmute(a), transmute(b)));
32040        assert_eq!(r, e);
32041    }
32042
32043    #[simd_test(enable = "neon")]
32044    unsafe fn test_vabdq_s8() {
32045        let a: i8x16 = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
32046        let b: i8x16 = i8x16::new(16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1);
32047        let e: i8x16 = i8x16::new(15, 13, 11, 9, 7, 5, 3, 1, 1, 3, 5, 7, 9, 11, 13, 15);
32048        let r: i8x16 = transmute(vabdq_s8(transmute(a), transmute(b)));
32049        assert_eq!(r, e);
32050    }
32051
32052    #[simd_test(enable = "neon")]
32053    unsafe fn test_vabd_s16() {
32054        let a: i16x4 = i16x4::new(1, 2, 3, 4);
32055        let b: i16x4 = i16x4::new(16, 15, 14, 13);
32056        let e: i16x4 = i16x4::new(15, 13, 11, 9);
32057        let r: i16x4 = transmute(vabd_s16(transmute(a), transmute(b)));
32058        assert_eq!(r, e);
32059    }
32060
32061    #[simd_test(enable = "neon")]
32062    unsafe fn test_vabdq_s16() {
32063        let a: i16x8 = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32064        let b: i16x8 = i16x8::new(16, 15, 14, 13, 12, 11, 10, 9);
32065        let e: i16x8 = i16x8::new(15, 13, 11, 9, 7, 5, 3, 1);
32066        let r: i16x8 = transmute(vabdq_s16(transmute(a), transmute(b)));
32067        assert_eq!(r, e);
32068    }
32069
32070    #[simd_test(enable = "neon")]
32071    unsafe fn test_vabd_s32() {
32072        let a: i32x2 = i32x2::new(1, 2);
32073        let b: i32x2 = i32x2::new(16, 15);
32074        let e: i32x2 = i32x2::new(15, 13);
32075        let r: i32x2 = transmute(vabd_s32(transmute(a), transmute(b)));
32076        assert_eq!(r, e);
32077    }
32078
32079    #[simd_test(enable = "neon")]
32080    unsafe fn test_vabdq_s32() {
32081        let a: i32x4 = i32x4::new(1, 2, 3, 4);
32082        let b: i32x4 = i32x4::new(16, 15, 14, 13);
32083        let e: i32x4 = i32x4::new(15, 13, 11, 9);
32084        let r: i32x4 = transmute(vabdq_s32(transmute(a), transmute(b)));
32085        assert_eq!(r, e);
32086    }
32087
32088    #[simd_test(enable = "neon")]
32089    unsafe fn test_vabd_u8() {
32090        let a: u8x8 = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32091        let b: u8x8 = u8x8::new(16, 15, 14, 13, 12, 11, 10, 9);
32092        let e: u8x8 = u8x8::new(15, 13, 11, 9, 7, 5, 3, 1);
32093        let r: u8x8 = transmute(vabd_u8(transmute(a), transmute(b)));
32094        assert_eq!(r, e);
32095    }
32096
32097    #[simd_test(enable = "neon")]
32098    unsafe fn test_vabdq_u8() {
32099        let a: u8x16 = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
32100        let b: u8x16 = u8x16::new(16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1);
32101        let e: u8x16 = u8x16::new(15, 13, 11, 9, 7, 5, 3, 1, 1, 3, 5, 7, 9, 11, 13, 15);
32102        let r: u8x16 = transmute(vabdq_u8(transmute(a), transmute(b)));
32103        assert_eq!(r, e);
32104    }
32105
32106    #[simd_test(enable = "neon")]
32107    unsafe fn test_vabd_u16() {
32108        let a: u16x4 = u16x4::new(1, 2, 3, 4);
32109        let b: u16x4 = u16x4::new(16, 15, 14, 13);
32110        let e: u16x4 = u16x4::new(15, 13, 11, 9);
32111        let r: u16x4 = transmute(vabd_u16(transmute(a), transmute(b)));
32112        assert_eq!(r, e);
32113    }
32114
32115    #[simd_test(enable = "neon")]
32116    unsafe fn test_vabdq_u16() {
32117        let a: u16x8 = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32118        let b: u16x8 = u16x8::new(16, 15, 14, 13, 12, 11, 10, 9);
32119        let e: u16x8 = u16x8::new(15, 13, 11, 9, 7, 5, 3, 1);
32120        let r: u16x8 = transmute(vabdq_u16(transmute(a), transmute(b)));
32121        assert_eq!(r, e);
32122    }
32123
32124    #[simd_test(enable = "neon")]
32125    unsafe fn test_vabd_u32() {
32126        let a: u32x2 = u32x2::new(1, 2);
32127        let b: u32x2 = u32x2::new(16, 15);
32128        let e: u32x2 = u32x2::new(15, 13);
32129        let r: u32x2 = transmute(vabd_u32(transmute(a), transmute(b)));
32130        assert_eq!(r, e);
32131    }
32132
32133    #[simd_test(enable = "neon")]
32134    unsafe fn test_vabdq_u32() {
32135        let a: u32x4 = u32x4::new(1, 2, 3, 4);
32136        let b: u32x4 = u32x4::new(16, 15, 14, 13);
32137        let e: u32x4 = u32x4::new(15, 13, 11, 9);
32138        let r: u32x4 = transmute(vabdq_u32(transmute(a), transmute(b)));
32139        assert_eq!(r, e);
32140    }
32141
32142    #[simd_test(enable = "neon")]
32143    unsafe fn test_vabd_f32() {
32144        let a: f32x2 = f32x2::new(1.0, 2.0);
32145        let b: f32x2 = f32x2::new(9.0, 3.0);
32146        let e: f32x2 = f32x2::new(8.0, 1.0);
32147        let r: f32x2 = transmute(vabd_f32(transmute(a), transmute(b)));
32148        assert_eq!(r, e);
32149    }
32150
32151    #[simd_test(enable = "neon")]
32152    unsafe fn test_vabdq_f32() {
32153        let a: f32x4 = f32x4::new(1.0, 2.0, 5.0, -4.0);
32154        let b: f32x4 = f32x4::new(9.0, 3.0, 2.0, 8.0);
32155        let e: f32x4 = f32x4::new(8.0, 1.0, 3.0, 12.0);
32156        let r: f32x4 = transmute(vabdq_f32(transmute(a), transmute(b)));
32157        assert_eq!(r, e);
32158    }
32159
32160    #[simd_test(enable = "neon")]
32161    unsafe fn test_vabdl_u8() {
32162        let a: u8x8 = u8x8::new(1, 2, 3, 4, 4, 3, 2, 1);
32163        let b: u8x8 = u8x8::new(10, 10, 10, 10, 10, 10, 10, 10);
32164        let e: u16x8 = u16x8::new(9, 8, 7, 6, 6, 7, 8, 9);
32165        let r: u16x8 = transmute(vabdl_u8(transmute(a), transmute(b)));
32166        assert_eq!(r, e);
32167    }
32168
32169    #[simd_test(enable = "neon")]
32170    unsafe fn test_vabdl_u16() {
32171        let a: u16x4 = u16x4::new(1, 2, 3, 4);
32172        let b: u16x4 = u16x4::new(10, 10, 10, 10);
32173        let e: u32x4 = u32x4::new(9, 8, 7, 6);
32174        let r: u32x4 = transmute(vabdl_u16(transmute(a), transmute(b)));
32175        assert_eq!(r, e);
32176    }
32177
32178    #[simd_test(enable = "neon")]
32179    unsafe fn test_vabdl_u32() {
32180        let a: u32x2 = u32x2::new(1, 2);
32181        let b: u32x2 = u32x2::new(10, 10);
32182        let e: u64x2 = u64x2::new(9, 8);
32183        let r: u64x2 = transmute(vabdl_u32(transmute(a), transmute(b)));
32184        assert_eq!(r, e);
32185    }
32186
32187    #[simd_test(enable = "neon")]
32188    unsafe fn test_vabdl_s8() {
32189        let a: i8x8 = i8x8::new(1, 2, 3, 4, 4, 3, 2, 1);
32190        let b: i8x8 = i8x8::new(10, 10, 10, 10, 10, 10, 10, 10);
32191        let e: i16x8 = i16x8::new(9, 8, 7, 6, 6, 7, 8, 9);
32192        let r: i16x8 = transmute(vabdl_s8(transmute(a), transmute(b)));
32193        assert_eq!(r, e);
32194    }
32195
32196    #[simd_test(enable = "neon")]
32197    unsafe fn test_vabdl_s16() {
32198        let a: i16x4 = i16x4::new(1, 2, 11, 12);
32199        let b: i16x4 = i16x4::new(10, 10, 10, 10);
32200        let e: i32x4 = i32x4::new(9, 8, 1, 2);
32201        let r: i32x4 = transmute(vabdl_s16(transmute(a), transmute(b)));
32202        assert_eq!(r, e);
32203    }
32204
32205    #[simd_test(enable = "neon")]
32206    unsafe fn test_vabdl_s32() {
32207        let a: i32x2 = i32x2::new(1, 11);
32208        let b: i32x2 = i32x2::new(10, 10);
32209        let e: i64x2 = i64x2::new(9, 1);
32210        let r: i64x2 = transmute(vabdl_s32(transmute(a), transmute(b)));
32211        assert_eq!(r, e);
32212    }
32213
32214    #[simd_test(enable = "neon")]
32215    unsafe fn test_vceq_u8() {
32216        let a: u8x8 = u8x8::new(0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32217        let b: u8x8 = u8x8::new(0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32218        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32219        let r: u8x8 = transmute(vceq_u8(transmute(a), transmute(b)));
32220        assert_eq!(r, e);
32221
32222        let a: u8x8 = u8x8::new(0, 0, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32223        let b: u8x8 = u8x8::new(0, 0xFF, 0x02, 0x04, 0x04, 0x00, 0x06, 0x08);
32224        let e: u8x8 = u8x8::new(0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0);
32225        let r: u8x8 = transmute(vceq_u8(transmute(a), transmute(b)));
32226        assert_eq!(r, e);
32227    }
32228
32229    #[simd_test(enable = "neon")]
32230    unsafe fn test_vceqq_u8() {
32231        let a: u8x16 = u8x16::new(0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0xFF);
32232        let b: u8x16 = u8x16::new(0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0xFF);
32233        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32234        let r: u8x16 = transmute(vceqq_u8(transmute(a), transmute(b)));
32235        assert_eq!(r, e);
32236
32237        let a: u8x16 = u8x16::new(0, 0, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xCC, 0x0D, 0xEE, 0xFF);
32238        let b: u8x16 = u8x16::new(0, 0xFF, 0x02, 0x04, 0x04, 0x00, 0x06, 0x08, 0x08, 0x00, 0x0A, 0x0A, 0xCC, 0xD0, 0xEE, 0);
32239        let e: u8x16 = u8x16::new(0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0);
32240        let r: u8x16 = transmute(vceqq_u8(transmute(a), transmute(b)));
32241        assert_eq!(r, e);
32242    }
32243
32244    #[simd_test(enable = "neon")]
32245    unsafe fn test_vceq_u16() {
32246        let a: u16x4 = u16x4::new(0, 0x01, 0x02, 0x03);
32247        let b: u16x4 = u16x4::new(0, 0x01, 0x02, 0x03);
32248        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32249        let r: u16x4 = transmute(vceq_u16(transmute(a), transmute(b)));
32250        assert_eq!(r, e);
32251
32252        let a: u16x4 = u16x4::new(0, 0, 0x02, 0x03);
32253        let b: u16x4 = u16x4::new(0, 0xFF_FF, 0x02, 0x04);
32254        let e: u16x4 = u16x4::new(0xFF_FF, 0, 0xFF_FF, 0);
32255        let r: u16x4 = transmute(vceq_u16(transmute(a), transmute(b)));
32256        assert_eq!(r, e);
32257    }
32258
32259    #[simd_test(enable = "neon")]
32260    unsafe fn test_vceqq_u16() {
32261        let a: u16x8 = u16x8::new(0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32262        let b: u16x8 = u16x8::new(0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32263        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32264        let r: u16x8 = transmute(vceqq_u16(transmute(a), transmute(b)));
32265        assert_eq!(r, e);
32266
32267        let a: u16x8 = u16x8::new(0, 0, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32268        let b: u16x8 = u16x8::new(0, 0xFF_FF, 0x02, 0x04, 0x04, 0x00, 0x06, 0x08);
32269        let e: u16x8 = u16x8::new(0xFF_FF, 0, 0xFF_FF, 0, 0xFF_FF, 0, 0xFF_FF, 0);
32270        let r: u16x8 = transmute(vceqq_u16(transmute(a), transmute(b)));
32271        assert_eq!(r, e);
32272    }
32273
32274    #[simd_test(enable = "neon")]
32275    unsafe fn test_vceq_u32() {
32276        let a: u32x2 = u32x2::new(0, 0x01);
32277        let b: u32x2 = u32x2::new(0, 0x01);
32278        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32279        let r: u32x2 = transmute(vceq_u32(transmute(a), transmute(b)));
32280        assert_eq!(r, e);
32281
32282        let a: u32x2 = u32x2::new(0, 0);
32283        let b: u32x2 = u32x2::new(0, 0xFF_FF_FF_FF);
32284        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0);
32285        let r: u32x2 = transmute(vceq_u32(transmute(a), transmute(b)));
32286        assert_eq!(r, e);
32287    }
32288
32289    #[simd_test(enable = "neon")]
32290    unsafe fn test_vceqq_u32() {
32291        let a: u32x4 = u32x4::new(0, 0x01, 0x02, 0x03);
32292        let b: u32x4 = u32x4::new(0, 0x01, 0x02, 0x03);
32293        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32294        let r: u32x4 = transmute(vceqq_u32(transmute(a), transmute(b)));
32295        assert_eq!(r, e);
32296
32297        let a: u32x4 = u32x4::new(0, 0, 0x02, 0x03);
32298        let b: u32x4 = u32x4::new(0, 0xFF_FF_FF_FF, 0x02, 0x04);
32299        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0, 0xFF_FF_FF_FF, 0);
32300        let r: u32x4 = transmute(vceqq_u32(transmute(a), transmute(b)));
32301        assert_eq!(r, e);
32302    }
32303
32304    #[simd_test(enable = "neon")]
32305    unsafe fn test_vceq_s8() {
32306        let a: i8x8 = i8x8::new(-128, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32307        let b: i8x8 = i8x8::new(-128, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32308        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32309        let r: u8x8 = transmute(vceq_s8(transmute(a), transmute(b)));
32310        assert_eq!(r, e);
32311
32312        let a: i8x8 = i8x8::new(-128, -128, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32313        let b: i8x8 = i8x8::new(-128, 0x7F, 0x02, 0x04, 0x04, 0x00, 0x06, 0x08);
32314        let e: u8x8 = u8x8::new(0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0);
32315        let r: u8x8 = transmute(vceq_s8(transmute(a), transmute(b)));
32316        assert_eq!(r, e);
32317    }
32318
32319    #[simd_test(enable = "neon")]
32320    unsafe fn test_vceqq_s8() {
32321        let a: i8x16 = i8x16::new(-128, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x7F);
32322        let b: i8x16 = i8x16::new(-128, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x7F);
32323        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32324        let r: u8x16 = transmute(vceqq_s8(transmute(a), transmute(b)));
32325        assert_eq!(r, e);
32326
32327        let a: i8x16 = i8x16::new(-128, -128, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xCC, 0x0D, 0xEE, 0x7F);
32328        let b: i8x16 = i8x16::new(-128, 0x7F, 0x02, 0x04, 0x04, 0x00, 0x06, 0x08, 0x08, 0x00, 0x0A, 0x0A, 0xCC, 0xD0, 0xEE, -128);
32329        let e: u8x16 = u8x16::new(0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0);
32330        let r: u8x16 = transmute(vceqq_s8(transmute(a), transmute(b)));
32331        assert_eq!(r, e);
32332    }
32333
32334    #[simd_test(enable = "neon")]
32335    unsafe fn test_vceq_s16() {
32336        let a: i16x4 = i16x4::new(-32768, 0x01, 0x02, 0x03);
32337        let b: i16x4 = i16x4::new(-32768, 0x01, 0x02, 0x03);
32338        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32339        let r: u16x4 = transmute(vceq_s16(transmute(a), transmute(b)));
32340        assert_eq!(r, e);
32341
32342        let a: i16x4 = i16x4::new(-32768, -32768, 0x02, 0x03);
32343        let b: i16x4 = i16x4::new(-32768, 0x7F_FF, 0x02, 0x04);
32344        let e: u16x4 = u16x4::new(0xFF_FF, 0, 0xFF_FF, 0);
32345        let r: u16x4 = transmute(vceq_s16(transmute(a), transmute(b)));
32346        assert_eq!(r, e);
32347    }
32348
32349    #[simd_test(enable = "neon")]
32350    unsafe fn test_vceqq_s16() {
32351        let a: i16x8 = i16x8::new(-32768, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32352        let b: i16x8 = i16x8::new(-32768, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32353        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32354        let r: u16x8 = transmute(vceqq_s16(transmute(a), transmute(b)));
32355        assert_eq!(r, e);
32356
32357        let a: i16x8 = i16x8::new(-32768, -32768, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32358        let b: i16x8 = i16x8::new(-32768, 0x7F_FF, 0x02, 0x04, 0x04, 0x00, 0x06, 0x08);
32359        let e: u16x8 = u16x8::new(0xFF_FF, 0, 0xFF_FF, 0, 0xFF_FF, 0, 0xFF_FF, 0);
32360        let r: u16x8 = transmute(vceqq_s16(transmute(a), transmute(b)));
32361        assert_eq!(r, e);
32362    }
32363
32364    #[simd_test(enable = "neon")]
32365    unsafe fn test_vceq_s32() {
32366        let a: i32x2 = i32x2::new(-2147483648, 0x01);
32367        let b: i32x2 = i32x2::new(-2147483648, 0x01);
32368        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32369        let r: u32x2 = transmute(vceq_s32(transmute(a), transmute(b)));
32370        assert_eq!(r, e);
32371
32372        let a: i32x2 = i32x2::new(-2147483648, -2147483648);
32373        let b: i32x2 = i32x2::new(-2147483648, 0x7F_FF_FF_FF);
32374        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0);
32375        let r: u32x2 = transmute(vceq_s32(transmute(a), transmute(b)));
32376        assert_eq!(r, e);
32377    }
32378
32379    #[simd_test(enable = "neon")]
32380    unsafe fn test_vceqq_s32() {
32381        let a: i32x4 = i32x4::new(-2147483648, 0x01, 0x02, 0x03);
32382        let b: i32x4 = i32x4::new(-2147483648, 0x01, 0x02, 0x03);
32383        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32384        let r: u32x4 = transmute(vceqq_s32(transmute(a), transmute(b)));
32385        assert_eq!(r, e);
32386
32387        let a: i32x4 = i32x4::new(-2147483648, -2147483648, 0x02, 0x03);
32388        let b: i32x4 = i32x4::new(-2147483648, 0x7F_FF_FF_FF, 0x02, 0x04);
32389        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0, 0xFF_FF_FF_FF, 0);
32390        let r: u32x4 = transmute(vceqq_s32(transmute(a), transmute(b)));
32391        assert_eq!(r, e);
32392    }
32393
32394    #[simd_test(enable = "neon")]
32395    unsafe fn test_vceq_p8() {
32396        let a: i8x8 = i8x8::new(-128, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32397        let b: i8x8 = i8x8::new(-128, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32398        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32399        let r: u8x8 = transmute(vceq_p8(transmute(a), transmute(b)));
32400        assert_eq!(r, e);
32401
32402        let a: i8x8 = i8x8::new(-128, -128, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07);
32403        let b: i8x8 = i8x8::new(-128, 0x7F, 0x02, 0x04, 0x04, 0x00, 0x06, 0x08);
32404        let e: u8x8 = u8x8::new(0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0);
32405        let r: u8x8 = transmute(vceq_p8(transmute(a), transmute(b)));
32406        assert_eq!(r, e);
32407    }
32408
32409    #[simd_test(enable = "neon")]
32410    unsafe fn test_vceqq_p8() {
32411        let a: i8x16 = i8x16::new(-128, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x7F);
32412        let b: i8x16 = i8x16::new(-128, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x7F);
32413        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32414        let r: u8x16 = transmute(vceqq_p8(transmute(a), transmute(b)));
32415        assert_eq!(r, e);
32416
32417        let a: i8x16 = i8x16::new(-128, -128, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0xCC, 0x0D, 0xEE, 0x7F);
32418        let b: i8x16 = i8x16::new(-128, 0x7F, 0x02, 0x04, 0x04, 0x00, 0x06, 0x08, 0x08, 0x00, 0x0A, 0x0A, 0xCC, 0xD0, 0xEE, -128);
32419        let e: u8x16 = u8x16::new(0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0, 0xFF, 0);
32420        let r: u8x16 = transmute(vceqq_p8(transmute(a), transmute(b)));
32421        assert_eq!(r, e);
32422    }
32423
32424    #[simd_test(enable = "neon")]
32425    unsafe fn test_vceq_f32() {
32426        let a: f32x2 = f32x2::new(1.2, 3.4);
32427        let b: f32x2 = f32x2::new(1.2, 3.4);
32428        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32429        let r: u32x2 = transmute(vceq_f32(transmute(a), transmute(b)));
32430        assert_eq!(r, e);
32431    }
32432
32433    #[simd_test(enable = "neon")]
32434    unsafe fn test_vceqq_f32() {
32435        let a: f32x4 = f32x4::new(1.2, 3.4, 5.6, 7.8);
32436        let b: f32x4 = f32x4::new(1.2, 3.4, 5.6, 7.8);
32437        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32438        let r: u32x4 = transmute(vceqq_f32(transmute(a), transmute(b)));
32439        assert_eq!(r, e);
32440    }
32441
32442    #[simd_test(enable = "neon")]
32443    unsafe fn test_vtst_s8() {
32444        let a: i8x8 = i8x8::new(-128, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32445        let b: i8x8 = i8x8::new(-128, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32446        let e: u8x8 = u8x8::new(0xFF, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32447        let r: u8x8 = transmute(vtst_s8(transmute(a), transmute(b)));
32448        assert_eq!(r, e);
32449    }
32450
32451    #[simd_test(enable = "neon")]
32452    unsafe fn test_vtstq_s8() {
32453        let a: i8x16 = i8x16::new(-128, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x7F);
32454        let b: i8x16 = i8x16::new(-128, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x7F);
32455        let e: u8x16 = u8x16::new(0xFF, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32456        let r: u8x16 = transmute(vtstq_s8(transmute(a), transmute(b)));
32457        assert_eq!(r, e);
32458    }
32459
32460    #[simd_test(enable = "neon")]
32461    unsafe fn test_vtst_s16() {
32462        let a: i16x4 = i16x4::new(-32768, 0x00, 0x01, 0x02);
32463        let b: i16x4 = i16x4::new(-32768, 0x00, 0x01, 0x02);
32464        let e: u16x4 = u16x4::new(0xFF_FF, 0, 0xFF_FF, 0xFF_FF);
32465        let r: u16x4 = transmute(vtst_s16(transmute(a), transmute(b)));
32466        assert_eq!(r, e);
32467    }
32468
32469    #[simd_test(enable = "neon")]
32470    unsafe fn test_vtstq_s16() {
32471        let a: i16x8 = i16x8::new(-32768, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32472        let b: i16x8 = i16x8::new(-32768, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32473        let e: u16x8 = u16x8::new(0xFF_FF, 0, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32474        let r: u16x8 = transmute(vtstq_s16(transmute(a), transmute(b)));
32475        assert_eq!(r, e);
32476    }
32477
32478    #[simd_test(enable = "neon")]
32479    unsafe fn test_vtst_s32() {
32480        let a: i32x2 = i32x2::new(-2147483648, 0x00);
32481        let b: i32x2 = i32x2::new(-2147483648, 0x00);
32482        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0);
32483        let r: u32x2 = transmute(vtst_s32(transmute(a), transmute(b)));
32484        assert_eq!(r, e);
32485    }
32486
32487    #[simd_test(enable = "neon")]
32488    unsafe fn test_vtstq_s32() {
32489        let a: i32x4 = i32x4::new(-2147483648, 0x00, 0x01, 0x02);
32490        let b: i32x4 = i32x4::new(-2147483648, 0x00, 0x01, 0x02);
32491        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32492        let r: u32x4 = transmute(vtstq_s32(transmute(a), transmute(b)));
32493        assert_eq!(r, e);
32494    }
32495
32496    #[simd_test(enable = "neon")]
32497    unsafe fn test_vtst_p8() {
32498        let a: i8x8 = i8x8::new(-128, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32499        let b: i8x8 = i8x8::new(-128, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32500        let e: u8x8 = u8x8::new(0xFF, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32501        let r: u8x8 = transmute(vtst_p8(transmute(a), transmute(b)));
32502        assert_eq!(r, e);
32503    }
32504
32505    #[simd_test(enable = "neon")]
32506    unsafe fn test_vtstq_p8() {
32507        let a: i8x16 = i8x16::new(-128, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x7F);
32508        let b: i8x16 = i8x16::new(-128, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x7F);
32509        let e: u8x16 = u8x16::new(0xFF, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32510        let r: u8x16 = transmute(vtstq_p8(transmute(a), transmute(b)));
32511        assert_eq!(r, e);
32512    }
32513
32514    #[simd_test(enable = "neon")]
32515    unsafe fn test_vtst_p16() {
32516        let a: i16x4 = i16x4::new(-32768, 0x00, 0x01, 0x02);
32517        let b: i16x4 = i16x4::new(-32768, 0x00, 0x01, 0x02);
32518        let e: u16x4 = u16x4::new(0xFF_FF, 0, 0xFF_FF, 0xFF_FF);
32519        let r: u16x4 = transmute(vtst_p16(transmute(a), transmute(b)));
32520        assert_eq!(r, e);
32521    }
32522
32523    #[simd_test(enable = "neon")]
32524    unsafe fn test_vtstq_p16() {
32525        let a: i16x8 = i16x8::new(-32768, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32526        let b: i16x8 = i16x8::new(-32768, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32527        let e: u16x8 = u16x8::new(0xFF_FF, 0, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32528        let r: u16x8 = transmute(vtstq_p16(transmute(a), transmute(b)));
32529        assert_eq!(r, e);
32530    }
32531
32532    #[simd_test(enable = "neon")]
32533    unsafe fn test_vtst_u8() {
32534        let a: u8x8 = u8x8::new(0, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32535        let b: u8x8 = u8x8::new(0, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32536        let e: u8x8 = u8x8::new(0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32537        let r: u8x8 = transmute(vtst_u8(transmute(a), transmute(b)));
32538        assert_eq!(r, e);
32539    }
32540
32541    #[simd_test(enable = "neon")]
32542    unsafe fn test_vtstq_u8() {
32543        let a: u8x16 = u8x16::new(0, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0xFF);
32544        let b: u8x16 = u8x16::new(0, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0xFF);
32545        let e: u8x16 = u8x16::new(0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32546        let r: u8x16 = transmute(vtstq_u8(transmute(a), transmute(b)));
32547        assert_eq!(r, e);
32548    }
32549
32550    #[simd_test(enable = "neon")]
32551    unsafe fn test_vtst_u16() {
32552        let a: u16x4 = u16x4::new(0, 0x00, 0x01, 0x02);
32553        let b: u16x4 = u16x4::new(0, 0x00, 0x01, 0x02);
32554        let e: u16x4 = u16x4::new(0, 0, 0xFF_FF, 0xFF_FF);
32555        let r: u16x4 = transmute(vtst_u16(transmute(a), transmute(b)));
32556        assert_eq!(r, e);
32557    }
32558
32559    #[simd_test(enable = "neon")]
32560    unsafe fn test_vtstq_u16() {
32561        let a: u16x8 = u16x8::new(0, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32562        let b: u16x8 = u16x8::new(0, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06);
32563        let e: u16x8 = u16x8::new(0, 0, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32564        let r: u16x8 = transmute(vtstq_u16(transmute(a), transmute(b)));
32565        assert_eq!(r, e);
32566    }
32567
32568    #[simd_test(enable = "neon")]
32569    unsafe fn test_vtst_u32() {
32570        let a: u32x2 = u32x2::new(0, 0x00);
32571        let b: u32x2 = u32x2::new(0, 0x00);
32572        let e: u32x2 = u32x2::new(0, 0);
32573        let r: u32x2 = transmute(vtst_u32(transmute(a), transmute(b)));
32574        assert_eq!(r, e);
32575    }
32576
32577    #[simd_test(enable = "neon")]
32578    unsafe fn test_vtstq_u32() {
32579        let a: u32x4 = u32x4::new(0, 0x00, 0x01, 0x02);
32580        let b: u32x4 = u32x4::new(0, 0x00, 0x01, 0x02);
32581        let e: u32x4 = u32x4::new(0, 0, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32582        let r: u32x4 = transmute(vtstq_u32(transmute(a), transmute(b)));
32583        assert_eq!(r, e);
32584    }
32585
32586    #[simd_test(enable = "neon")]
32587    unsafe fn test_vabs_f32() {
32588        let a: f32x2 = f32x2::new(-0.1, -2.2);
32589        let e: f32x2 = f32x2::new(0.1, 2.2);
32590        let r: f32x2 = transmute(vabs_f32(transmute(a)));
32591        assert_eq!(r, e);
32592    }
32593
32594    #[simd_test(enable = "neon")]
32595    unsafe fn test_vabsq_f32() {
32596        let a: f32x4 = f32x4::new(-0.1, -2.2, -3.3, -6.6);
32597        let e: f32x4 = f32x4::new(0.1, 2.2, 3.3, 6.6);
32598        let r: f32x4 = transmute(vabsq_f32(transmute(a)));
32599        assert_eq!(r, e);
32600    }
32601
32602    #[simd_test(enable = "neon")]
32603    unsafe fn test_vcgt_s8() {
32604        let a: i8x8 = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32605        let b: i8x8 = i8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32606        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32607        let r: u8x8 = transmute(vcgt_s8(transmute(a), transmute(b)));
32608        assert_eq!(r, e);
32609    }
32610
32611    #[simd_test(enable = "neon")]
32612    unsafe fn test_vcgtq_s8() {
32613        let a: i8x16 = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
32614        let b: i8x16 = i8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
32615        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32616        let r: u8x16 = transmute(vcgtq_s8(transmute(a), transmute(b)));
32617        assert_eq!(r, e);
32618    }
32619
32620    #[simd_test(enable = "neon")]
32621    unsafe fn test_vcgt_s16() {
32622        let a: i16x4 = i16x4::new(1, 2, 3, 4);
32623        let b: i16x4 = i16x4::new(0, 1, 2, 3);
32624        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32625        let r: u16x4 = transmute(vcgt_s16(transmute(a), transmute(b)));
32626        assert_eq!(r, e);
32627    }
32628
32629    #[simd_test(enable = "neon")]
32630    unsafe fn test_vcgtq_s16() {
32631        let a: i16x8 = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32632        let b: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32633        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32634        let r: u16x8 = transmute(vcgtq_s16(transmute(a), transmute(b)));
32635        assert_eq!(r, e);
32636    }
32637
32638    #[simd_test(enable = "neon")]
32639    unsafe fn test_vcgt_s32() {
32640        let a: i32x2 = i32x2::new(1, 2);
32641        let b: i32x2 = i32x2::new(0, 1);
32642        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32643        let r: u32x2 = transmute(vcgt_s32(transmute(a), transmute(b)));
32644        assert_eq!(r, e);
32645    }
32646
32647    #[simd_test(enable = "neon")]
32648    unsafe fn test_vcgtq_s32() {
32649        let a: i32x4 = i32x4::new(1, 2, 3, 4);
32650        let b: i32x4 = i32x4::new(0, 1, 2, 3);
32651        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32652        let r: u32x4 = transmute(vcgtq_s32(transmute(a), transmute(b)));
32653        assert_eq!(r, e);
32654    }
32655
32656    #[simd_test(enable = "neon")]
32657    unsafe fn test_vcgt_u8() {
32658        let a: u8x8 = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32659        let b: u8x8 = u8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32660        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32661        let r: u8x8 = transmute(vcgt_u8(transmute(a), transmute(b)));
32662        assert_eq!(r, e);
32663    }
32664
32665    #[simd_test(enable = "neon")]
32666    unsafe fn test_vcgtq_u8() {
32667        let a: u8x16 = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
32668        let b: u8x16 = u8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
32669        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32670        let r: u8x16 = transmute(vcgtq_u8(transmute(a), transmute(b)));
32671        assert_eq!(r, e);
32672    }
32673
32674    #[simd_test(enable = "neon")]
32675    unsafe fn test_vcgt_u16() {
32676        let a: u16x4 = u16x4::new(1, 2, 3, 4);
32677        let b: u16x4 = u16x4::new(0, 1, 2, 3);
32678        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32679        let r: u16x4 = transmute(vcgt_u16(transmute(a), transmute(b)));
32680        assert_eq!(r, e);
32681    }
32682
32683    #[simd_test(enable = "neon")]
32684    unsafe fn test_vcgtq_u16() {
32685        let a: u16x8 = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32686        let b: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32687        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32688        let r: u16x8 = transmute(vcgtq_u16(transmute(a), transmute(b)));
32689        assert_eq!(r, e);
32690    }
32691
32692    #[simd_test(enable = "neon")]
32693    unsafe fn test_vcgt_u32() {
32694        let a: u32x2 = u32x2::new(1, 2);
32695        let b: u32x2 = u32x2::new(0, 1);
32696        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32697        let r: u32x2 = transmute(vcgt_u32(transmute(a), transmute(b)));
32698        assert_eq!(r, e);
32699    }
32700
32701    #[simd_test(enable = "neon")]
32702    unsafe fn test_vcgtq_u32() {
32703        let a: u32x4 = u32x4::new(1, 2, 3, 4);
32704        let b: u32x4 = u32x4::new(0, 1, 2, 3);
32705        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32706        let r: u32x4 = transmute(vcgtq_u32(transmute(a), transmute(b)));
32707        assert_eq!(r, e);
32708    }
32709
32710    #[simd_test(enable = "neon")]
32711    unsafe fn test_vcgt_f32() {
32712        let a: f32x2 = f32x2::new(1.2, 2.3);
32713        let b: f32x2 = f32x2::new(0.1, 1.2);
32714        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32715        let r: u32x2 = transmute(vcgt_f32(transmute(a), transmute(b)));
32716        assert_eq!(r, e);
32717    }
32718
32719    #[simd_test(enable = "neon")]
32720    unsafe fn test_vcgtq_f32() {
32721        let a: f32x4 = f32x4::new(1.2, 2.3, 3.4, 4.5);
32722        let b: f32x4 = f32x4::new(0.1, 1.2, 2.3, 3.4);
32723        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32724        let r: u32x4 = transmute(vcgtq_f32(transmute(a), transmute(b)));
32725        assert_eq!(r, e);
32726    }
32727
32728    #[simd_test(enable = "neon")]
32729    unsafe fn test_vclt_s8() {
32730        let a: i8x8 = i8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32731        let b: i8x8 = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32732        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32733        let r: u8x8 = transmute(vclt_s8(transmute(a), transmute(b)));
32734        assert_eq!(r, e);
32735    }
32736
32737    #[simd_test(enable = "neon")]
32738    unsafe fn test_vcltq_s8() {
32739        let a: i8x16 = i8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
32740        let b: i8x16 = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
32741        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32742        let r: u8x16 = transmute(vcltq_s8(transmute(a), transmute(b)));
32743        assert_eq!(r, e);
32744    }
32745
32746    #[simd_test(enable = "neon")]
32747    unsafe fn test_vclt_s16() {
32748        let a: i16x4 = i16x4::new(0, 1, 2, 3);
32749        let b: i16x4 = i16x4::new(1, 2, 3, 4);
32750        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32751        let r: u16x4 = transmute(vclt_s16(transmute(a), transmute(b)));
32752        assert_eq!(r, e);
32753    }
32754
32755    #[simd_test(enable = "neon")]
32756    unsafe fn test_vcltq_s16() {
32757        let a: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32758        let b: i16x8 = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32759        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32760        let r: u16x8 = transmute(vcltq_s16(transmute(a), transmute(b)));
32761        assert_eq!(r, e);
32762    }
32763
32764    #[simd_test(enable = "neon")]
32765    unsafe fn test_vclt_s32() {
32766        let a: i32x2 = i32x2::new(0, 1);
32767        let b: i32x2 = i32x2::new(1, 2);
32768        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32769        let r: u32x2 = transmute(vclt_s32(transmute(a), transmute(b)));
32770        assert_eq!(r, e);
32771    }
32772
32773    #[simd_test(enable = "neon")]
32774    unsafe fn test_vcltq_s32() {
32775        let a: i32x4 = i32x4::new(0, 1, 2, 3);
32776        let b: i32x4 = i32x4::new(1, 2, 3, 4);
32777        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32778        let r: u32x4 = transmute(vcltq_s32(transmute(a), transmute(b)));
32779        assert_eq!(r, e);
32780    }
32781
32782    #[simd_test(enable = "neon")]
32783    unsafe fn test_vclt_u8() {
32784        let a: u8x8 = u8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32785        let b: u8x8 = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32786        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32787        let r: u8x8 = transmute(vclt_u8(transmute(a), transmute(b)));
32788        assert_eq!(r, e);
32789    }
32790
32791    #[simd_test(enable = "neon")]
32792    unsafe fn test_vcltq_u8() {
32793        let a: u8x16 = u8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
32794        let b: u8x16 = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
32795        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32796        let r: u8x16 = transmute(vcltq_u8(transmute(a), transmute(b)));
32797        assert_eq!(r, e);
32798    }
32799
32800    #[simd_test(enable = "neon")]
32801    unsafe fn test_vclt_u16() {
32802        let a: u16x4 = u16x4::new(0, 1, 2, 3);
32803        let b: u16x4 = u16x4::new(1, 2, 3, 4);
32804        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32805        let r: u16x4 = transmute(vclt_u16(transmute(a), transmute(b)));
32806        assert_eq!(r, e);
32807    }
32808
32809    #[simd_test(enable = "neon")]
32810    unsafe fn test_vcltq_u16() {
32811        let a: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32812        let b: u16x8 = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32813        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32814        let r: u16x8 = transmute(vcltq_u16(transmute(a), transmute(b)));
32815        assert_eq!(r, e);
32816    }
32817
32818    #[simd_test(enable = "neon")]
32819    unsafe fn test_vclt_u32() {
32820        let a: u32x2 = u32x2::new(0, 1);
32821        let b: u32x2 = u32x2::new(1, 2);
32822        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32823        let r: u32x2 = transmute(vclt_u32(transmute(a), transmute(b)));
32824        assert_eq!(r, e);
32825    }
32826
32827    #[simd_test(enable = "neon")]
32828    unsafe fn test_vcltq_u32() {
32829        let a: u32x4 = u32x4::new(0, 1, 2, 3);
32830        let b: u32x4 = u32x4::new(1, 2, 3, 4);
32831        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32832        let r: u32x4 = transmute(vcltq_u32(transmute(a), transmute(b)));
32833        assert_eq!(r, e);
32834    }
32835
32836    #[simd_test(enable = "neon")]
32837    unsafe fn test_vclt_f32() {
32838        let a: f32x2 = f32x2::new(0.1, 1.2);
32839        let b: f32x2 = f32x2::new(1.2, 2.3);
32840        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32841        let r: u32x2 = transmute(vclt_f32(transmute(a), transmute(b)));
32842        assert_eq!(r, e);
32843    }
32844
32845    #[simd_test(enable = "neon")]
32846    unsafe fn test_vcltq_f32() {
32847        let a: f32x4 = f32x4::new(0.1, 1.2, 2.3, 3.4);
32848        let b: f32x4 = f32x4::new(1.2, 2.3, 3.4, 4.5);
32849        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32850        let r: u32x4 = transmute(vcltq_f32(transmute(a), transmute(b)));
32851        assert_eq!(r, e);
32852    }
32853
32854    #[simd_test(enable = "neon")]
32855    unsafe fn test_vcle_s8() {
32856        let a: i8x8 = i8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32857        let b: i8x8 = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32858        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32859        let r: u8x8 = transmute(vcle_s8(transmute(a), transmute(b)));
32860        assert_eq!(r, e);
32861    }
32862
32863    #[simd_test(enable = "neon")]
32864    unsafe fn test_vcleq_s8() {
32865        let a: i8x16 = i8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
32866        let b: i8x16 = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
32867        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32868        let r: u8x16 = transmute(vcleq_s8(transmute(a), transmute(b)));
32869        assert_eq!(r, e);
32870    }
32871
32872    #[simd_test(enable = "neon")]
32873    unsafe fn test_vcle_s16() {
32874        let a: i16x4 = i16x4::new(0, 1, 2, 3);
32875        let b: i16x4 = i16x4::new(1, 2, 3, 4);
32876        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32877        let r: u16x4 = transmute(vcle_s16(transmute(a), transmute(b)));
32878        assert_eq!(r, e);
32879    }
32880
32881    #[simd_test(enable = "neon")]
32882    unsafe fn test_vcleq_s16() {
32883        let a: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32884        let b: i16x8 = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32885        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32886        let r: u16x8 = transmute(vcleq_s16(transmute(a), transmute(b)));
32887        assert_eq!(r, e);
32888    }
32889
32890    #[simd_test(enable = "neon")]
32891    unsafe fn test_vcle_s32() {
32892        let a: i32x2 = i32x2::new(0, 1);
32893        let b: i32x2 = i32x2::new(1, 2);
32894        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32895        let r: u32x2 = transmute(vcle_s32(transmute(a), transmute(b)));
32896        assert_eq!(r, e);
32897    }
32898
32899    #[simd_test(enable = "neon")]
32900    unsafe fn test_vcleq_s32() {
32901        let a: i32x4 = i32x4::new(0, 1, 2, 3);
32902        let b: i32x4 = i32x4::new(1, 2, 3, 4);
32903        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32904        let r: u32x4 = transmute(vcleq_s32(transmute(a), transmute(b)));
32905        assert_eq!(r, e);
32906    }
32907
32908    #[simd_test(enable = "neon")]
32909    unsafe fn test_vcle_u8() {
32910        let a: u8x8 = u8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32911        let b: u8x8 = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32912        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32913        let r: u8x8 = transmute(vcle_u8(transmute(a), transmute(b)));
32914        assert_eq!(r, e);
32915    }
32916
32917    #[simd_test(enable = "neon")]
32918    unsafe fn test_vcleq_u8() {
32919        let a: u8x16 = u8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
32920        let b: u8x16 = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
32921        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32922        let r: u8x16 = transmute(vcleq_u8(transmute(a), transmute(b)));
32923        assert_eq!(r, e);
32924    }
32925
32926    #[simd_test(enable = "neon")]
32927    unsafe fn test_vcle_u16() {
32928        let a: u16x4 = u16x4::new(0, 1, 2, 3);
32929        let b: u16x4 = u16x4::new(1, 2, 3, 4);
32930        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32931        let r: u16x4 = transmute(vcle_u16(transmute(a), transmute(b)));
32932        assert_eq!(r, e);
32933    }
32934
32935    #[simd_test(enable = "neon")]
32936    unsafe fn test_vcleq_u16() {
32937        let a: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32938        let b: u16x8 = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32939        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
32940        let r: u16x8 = transmute(vcleq_u16(transmute(a), transmute(b)));
32941        assert_eq!(r, e);
32942    }
32943
32944    #[simd_test(enable = "neon")]
32945    unsafe fn test_vcle_u32() {
32946        let a: u32x2 = u32x2::new(0, 1);
32947        let b: u32x2 = u32x2::new(1, 2);
32948        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32949        let r: u32x2 = transmute(vcle_u32(transmute(a), transmute(b)));
32950        assert_eq!(r, e);
32951    }
32952
32953    #[simd_test(enable = "neon")]
32954    unsafe fn test_vcleq_u32() {
32955        let a: u32x4 = u32x4::new(0, 1, 2, 3);
32956        let b: u32x4 = u32x4::new(1, 2, 3, 4);
32957        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32958        let r: u32x4 = transmute(vcleq_u32(transmute(a), transmute(b)));
32959        assert_eq!(r, e);
32960    }
32961
32962    #[simd_test(enable = "neon")]
32963    unsafe fn test_vcle_f32() {
32964        let a: f32x2 = f32x2::new(0.1, 1.2);
32965        let b: f32x2 = f32x2::new(1.2, 2.3);
32966        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32967        let r: u32x2 = transmute(vcle_f32(transmute(a), transmute(b)));
32968        assert_eq!(r, e);
32969    }
32970
32971    #[simd_test(enable = "neon")]
32972    unsafe fn test_vcleq_f32() {
32973        let a: f32x4 = f32x4::new(0.1, 1.2, 2.3, 3.4);
32974        let b: f32x4 = f32x4::new(1.2, 2.3, 3.4, 4.5);
32975        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
32976        let r: u32x4 = transmute(vcleq_f32(transmute(a), transmute(b)));
32977        assert_eq!(r, e);
32978    }
32979
32980    #[simd_test(enable = "neon")]
32981    unsafe fn test_vcge_s8() {
32982        let a: i8x8 = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
32983        let b: i8x8 = i8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
32984        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32985        let r: u8x8 = transmute(vcge_s8(transmute(a), transmute(b)));
32986        assert_eq!(r, e);
32987    }
32988
32989    #[simd_test(enable = "neon")]
32990    unsafe fn test_vcgeq_s8() {
32991        let a: i8x16 = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
32992        let b: i8x16 = i8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
32993        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
32994        let r: u8x16 = transmute(vcgeq_s8(transmute(a), transmute(b)));
32995        assert_eq!(r, e);
32996    }
32997
32998    #[simd_test(enable = "neon")]
32999    unsafe fn test_vcge_s16() {
33000        let a: i16x4 = i16x4::new(1, 2, 3, 4);
33001        let b: i16x4 = i16x4::new(0, 1, 2, 3);
33002        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
33003        let r: u16x4 = transmute(vcge_s16(transmute(a), transmute(b)));
33004        assert_eq!(r, e);
33005    }
33006
33007    #[simd_test(enable = "neon")]
33008    unsafe fn test_vcgeq_s16() {
33009        let a: i16x8 = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
33010        let b: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
33011        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
33012        let r: u16x8 = transmute(vcgeq_s16(transmute(a), transmute(b)));
33013        assert_eq!(r, e);
33014    }
33015
33016    #[simd_test(enable = "neon")]
33017    unsafe fn test_vcge_s32() {
33018        let a: i32x2 = i32x2::new(1, 2);
33019        let b: i32x2 = i32x2::new(0, 1);
33020        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
33021        let r: u32x2 = transmute(vcge_s32(transmute(a), transmute(b)));
33022        assert_eq!(r, e);
33023    }
33024
33025    #[simd_test(enable = "neon")]
33026    unsafe fn test_vcgeq_s32() {
33027        let a: i32x4 = i32x4::new(1, 2, 3, 4);
33028        let b: i32x4 = i32x4::new(0, 1, 2, 3);
33029        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
33030        let r: u32x4 = transmute(vcgeq_s32(transmute(a), transmute(b)));
33031        assert_eq!(r, e);
33032    }
33033
33034    #[simd_test(enable = "neon")]
33035    unsafe fn test_vcge_u8() {
33036        let a: u8x8 = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
33037        let b: u8x8 = u8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
33038        let e: u8x8 = u8x8::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
33039        let r: u8x8 = transmute(vcge_u8(transmute(a), transmute(b)));
33040        assert_eq!(r, e);
33041    }
33042
33043    #[simd_test(enable = "neon")]
33044    unsafe fn test_vcgeq_u8() {
33045        let a: u8x16 = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
33046        let b: u8x16 = u8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
33047        let e: u8x16 = u8x16::new(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
33048        let r: u8x16 = transmute(vcgeq_u8(transmute(a), transmute(b)));
33049        assert_eq!(r, e);
33050    }
33051
33052    #[simd_test(enable = "neon")]
33053    unsafe fn test_vcge_u16() {
33054        let a: u16x4 = u16x4::new(1, 2, 3, 4);
33055        let b: u16x4 = u16x4::new(0, 1, 2, 3);
33056        let e: u16x4 = u16x4::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
33057        let r: u16x4 = transmute(vcge_u16(transmute(a), transmute(b)));
33058        assert_eq!(r, e);
33059    }
33060
33061    #[simd_test(enable = "neon")]
33062    unsafe fn test_vcgeq_u16() {
33063        let a: u16x8 = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
33064        let b: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
33065        let e: u16x8 = u16x8::new(0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF, 0xFF_FF);
33066        let r: u16x8 = transmute(vcgeq_u16(transmute(a), transmute(b)));
33067        assert_eq!(r, e);
33068    }
33069
33070    #[simd_test(enable = "neon")]
33071    unsafe fn test_vcge_u32() {
33072        let a: u32x2 = u32x2::new(1, 2);
33073        let b: u32x2 = u32x2::new(0, 1);
33074        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
33075        let r: u32x2 = transmute(vcge_u32(transmute(a), transmute(b)));
33076        assert_eq!(r, e);
33077    }
33078
33079    #[simd_test(enable = "neon")]
33080    unsafe fn test_vcgeq_u32() {
33081        let a: u32x4 = u32x4::new(1, 2, 3, 4);
33082        let b: u32x4 = u32x4::new(0, 1, 2, 3);
33083        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
33084        let r: u32x4 = transmute(vcgeq_u32(transmute(a), transmute(b)));
33085        assert_eq!(r, e);
33086    }
33087
33088    #[simd_test(enable = "neon")]
33089    unsafe fn test_vcge_f32() {
33090        let a: f32x2 = f32x2::new(1.2, 2.3);
33091        let b: f32x2 = f32x2::new(0.1, 1.2);
33092        let e: u32x2 = u32x2::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
33093        let r: u32x2 = transmute(vcge_f32(transmute(a), transmute(b)));
33094        assert_eq!(r, e);
33095    }
33096
33097    #[simd_test(enable = "neon")]
33098    unsafe fn test_vcgeq_f32() {
33099        let a: f32x4 = f32x4::new(1.2, 2.3, 3.4, 4.5);
33100        let b: f32x4 = f32x4::new(0.1, 1.2, 2.3, 3.4);
33101        let e: u32x4 = u32x4::new(0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF);
33102        let r: u32x4 = transmute(vcgeq_f32(transmute(a), transmute(b)));
33103        assert_eq!(r, e);
33104    }
33105
33106    #[simd_test(enable = "neon")]
33107    unsafe fn test_vcls_s8() {
33108        let a: i8x8 = i8x8::new(-128, -1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
33109        let e: i8x8 = i8x8::new(0, 7, 7, 7, 7, 7, 7, 7);
33110        let r: i8x8 = transmute(vcls_s8(transmute(a)));
33111        assert_eq!(r, e);
33112    }
33113
33114    #[simd_test(enable = "neon")]
33115    unsafe fn test_vclsq_s8() {
33116        let a: i8x16 = i8x16::new(-128, -1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F);
33117        let e: i8x16 = i8x16::new(0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0);
33118        let r: i8x16 = transmute(vclsq_s8(transmute(a)));
33119        assert_eq!(r, e);
33120    }
33121
33122    #[simd_test(enable = "neon")]
33123    unsafe fn test_vcls_s16() {
33124        let a: i16x4 = i16x4::new(-32768, -1, 0x00, 0x00);
33125        let e: i16x4 = i16x4::new(0, 15, 15, 15);
33126        let r: i16x4 = transmute(vcls_s16(transmute(a)));
33127        assert_eq!(r, e);
33128    }
33129
33130    #[simd_test(enable = "neon")]
33131    unsafe fn test_vclsq_s16() {
33132        let a: i16x8 = i16x8::new(-32768, -1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
33133        let e: i16x8 = i16x8::new(0, 15, 15, 15, 15, 15, 15, 15);
33134        let r: i16x8 = transmute(vclsq_s16(transmute(a)));
33135        assert_eq!(r, e);
33136    }
33137
33138    #[simd_test(enable = "neon")]
33139    unsafe fn test_vcls_s32() {
33140        let a: i32x2 = i32x2::new(-2147483648, -1);
33141        let e: i32x2 = i32x2::new(0, 31);
33142        let r: i32x2 = transmute(vcls_s32(transmute(a)));
33143        assert_eq!(r, e);
33144    }
33145
33146    #[simd_test(enable = "neon")]
33147    unsafe fn test_vclsq_s32() {
33148        let a: i32x4 = i32x4::new(-2147483648, -1, 0x00, 0x00);
33149        let e: i32x4 = i32x4::new(0, 31, 31, 31);
33150        let r: i32x4 = transmute(vclsq_s32(transmute(a)));
33151        assert_eq!(r, e);
33152    }
33153
33154    #[simd_test(enable = "neon")]
33155    unsafe fn test_vcls_u8() {
33156        let a: u8x8 = u8x8::new(0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
33157        let e: i8x8 = i8x8::new(7, 7, 7, 7, 7, 7, 7, 7);
33158        let r: i8x8 = transmute(vcls_u8(transmute(a)));
33159        assert_eq!(r, e);
33160    }
33161
33162    #[simd_test(enable = "neon")]
33163    unsafe fn test_vclsq_u8() {
33164        let a: u8x16 = u8x16::new(0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF);
33165        let e: i8x16 = i8x16::new(7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7);
33166        let r: i8x16 = transmute(vclsq_u8(transmute(a)));
33167        assert_eq!(r, e);
33168    }
33169
33170    #[simd_test(enable = "neon")]
33171    unsafe fn test_vcls_u16() {
33172        let a: u16x4 = u16x4::new(0, 0xFF_FF, 0x00, 0x00);
33173        let e: i16x4 = i16x4::new(15, 15, 15, 15);
33174        let r: i16x4 = transmute(vcls_u16(transmute(a)));
33175        assert_eq!(r, e);
33176    }
33177
33178    #[simd_test(enable = "neon")]
33179    unsafe fn test_vclsq_u16() {
33180        let a: u16x8 = u16x8::new(0, 0xFF_FF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
33181        let e: i16x8 = i16x8::new(15, 15, 15, 15, 15, 15, 15, 15);
33182        let r: i16x8 = transmute(vclsq_u16(transmute(a)));
33183        assert_eq!(r, e);
33184    }
33185
33186    #[simd_test(enable = "neon")]
33187    unsafe fn test_vcls_u32() {
33188        let a: u32x2 = u32x2::new(0, 0xFF_FF_FF_FF);
33189        let e: i32x2 = i32x2::new(31, 31);
33190        let r: i32x2 = transmute(vcls_u32(transmute(a)));
33191        assert_eq!(r, e);
33192    }
33193
33194    #[simd_test(enable = "neon")]
33195    unsafe fn test_vclsq_u32() {
33196        let a: u32x4 = u32x4::new(0, 0xFF_FF_FF_FF, 0x00, 0x00);
33197        let e: i32x4 = i32x4::new(31, 31, 31, 31);
33198        let r: i32x4 = transmute(vclsq_u32(transmute(a)));
33199        assert_eq!(r, e);
33200    }
33201
33202    #[simd_test(enable = "neon")]
33203    unsafe fn test_vclz_s8() {
33204        let a: i8x8 = i8x8::new(-128, -1, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01);
33205        let e: i8x8 = i8x8::new(0, 0, 8, 7, 7, 7, 7, 7);
33206        let r: i8x8 = transmute(vclz_s8(transmute(a)));
33207        assert_eq!(r, e);
33208    }
33209
33210    #[simd_test(enable = "neon")]
33211    unsafe fn test_vclzq_s8() {
33212        let a: i8x16 = i8x16::new(-128, -1, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x7F);
33213        let e: i8x16 = i8x16::new(0, 0, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1);
33214        let r: i8x16 = transmute(vclzq_s8(transmute(a)));
33215        assert_eq!(r, e);
33216    }
33217
33218    #[simd_test(enable = "neon")]
33219    unsafe fn test_vclz_s16() {
33220        let a: i16x4 = i16x4::new(-32768, -1, 0x00, 0x01);
33221        let e: i16x4 = i16x4::new(0, 0, 16, 15);
33222        let r: i16x4 = transmute(vclz_s16(transmute(a)));
33223        assert_eq!(r, e);
33224    }
33225
33226    #[simd_test(enable = "neon")]
33227    unsafe fn test_vclzq_s16() {
33228        let a: i16x8 = i16x8::new(-32768, -1, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01);
33229        let e: i16x8 = i16x8::new(0, 0, 16, 15, 15, 15, 15, 15);
33230        let r: i16x8 = transmute(vclzq_s16(transmute(a)));
33231        assert_eq!(r, e);
33232    }
33233
33234    #[simd_test(enable = "neon")]
33235    unsafe fn test_vclz_s32() {
33236        let a: i32x2 = i32x2::new(-2147483648, -1);
33237        let e: i32x2 = i32x2::new(0, 0);
33238        let r: i32x2 = transmute(vclz_s32(transmute(a)));
33239        assert_eq!(r, e);
33240    }
33241
33242    #[simd_test(enable = "neon")]
33243    unsafe fn test_vclzq_s32() {
33244        let a: i32x4 = i32x4::new(-2147483648, -1, 0x00, 0x01);
33245        let e: i32x4 = i32x4::new(0, 0, 32, 31);
33246        let r: i32x4 = transmute(vclzq_s32(transmute(a)));
33247        assert_eq!(r, e);
33248    }
33249
33250    #[simd_test(enable = "neon")]
33251    unsafe fn test_vclz_u8() {
33252        let a: u8x8 = u8x8::new(0, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01);
33253        let e: u8x8 = u8x8::new(8, 8, 7, 7, 7, 7, 7, 7);
33254        let r: u8x8 = transmute(vclz_u8(transmute(a)));
33255        assert_eq!(r, e);
33256    }
33257
33258    #[simd_test(enable = "neon")]
33259    unsafe fn test_vclzq_u8() {
33260        let a: u8x16 = u8x16::new(0, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF);
33261        let e: u8x16 = u8x16::new(8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0);
33262        let r: u8x16 = transmute(vclzq_u8(transmute(a)));
33263        assert_eq!(r, e);
33264    }
33265
33266    #[simd_test(enable = "neon")]
33267    unsafe fn test_vclz_u16() {
33268        let a: u16x4 = u16x4::new(0, 0x00, 0x01, 0x01);
33269        let e: u16x4 = u16x4::new(16, 16, 15, 15);
33270        let r: u16x4 = transmute(vclz_u16(transmute(a)));
33271        assert_eq!(r, e);
33272    }
33273
33274    #[simd_test(enable = "neon")]
33275    unsafe fn test_vclzq_u16() {
33276        let a: u16x8 = u16x8::new(0, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01);
33277        let e: u16x8 = u16x8::new(16, 16, 15, 15, 15, 15, 15, 15);
33278        let r: u16x8 = transmute(vclzq_u16(transmute(a)));
33279        assert_eq!(r, e);
33280    }
33281
33282    #[simd_test(enable = "neon")]
33283    unsafe fn test_vclz_u32() {
33284        let a: u32x2 = u32x2::new(0, 0x00);
33285        let e: u32x2 = u32x2::new(32, 32);
33286        let r: u32x2 = transmute(vclz_u32(transmute(a)));
33287        assert_eq!(r, e);
33288    }
33289
33290    #[simd_test(enable = "neon")]
33291    unsafe fn test_vclzq_u32() {
33292        let a: u32x4 = u32x4::new(0, 0x00, 0x01, 0x01);
33293        let e: u32x4 = u32x4::new(32, 32, 31, 31);
33294        let r: u32x4 = transmute(vclzq_u32(transmute(a)));
33295        assert_eq!(r, e);
33296    }
33297
33298    #[simd_test(enable = "neon")]
33299    unsafe fn test_vcagt_f32() {
33300        let a: f32x2 = f32x2::new(-1.2, 0.0);
33301        let b: f32x2 = f32x2::new(-1.1, 0.0);
33302        let e: u32x2 = u32x2::new(!0, 0);
33303        let r: u32x2 = transmute(vcagt_f32(transmute(a), transmute(b)));
33304        assert_eq!(r, e);
33305    }
33306
33307    #[simd_test(enable = "neon")]
33308    unsafe fn test_vcagtq_f32() {
33309        let a: f32x4 = f32x4::new(-1.2, 0.0, 1.2, 2.3);
33310        let b: f32x4 = f32x4::new(-1.1, 0.0, 1.1, 2.4);
33311        let e: u32x4 = u32x4::new(!0, 0, 0xFF_FF_FF_FF, 0);
33312        let r: u32x4 = transmute(vcagtq_f32(transmute(a), transmute(b)));
33313        assert_eq!(r, e);
33314    }
33315
33316    #[simd_test(enable = "neon")]
33317    unsafe fn test_vcage_f32() {
33318        let a: f32x2 = f32x2::new(-1.2, 0.0);
33319        let b: f32x2 = f32x2::new(-1.1, 0.0);
33320        let e: u32x2 = u32x2::new(!0, 0xFF_FF_FF_FF);
33321        let r: u32x2 = transmute(vcage_f32(transmute(a), transmute(b)));
33322        assert_eq!(r, e);
33323    }
33324
33325    #[simd_test(enable = "neon")]
33326    unsafe fn test_vcageq_f32() {
33327        let a: f32x4 = f32x4::new(-1.2, 0.0, 1.2, 2.3);
33328        let b: f32x4 = f32x4::new(-1.1, 0.0, 1.1, 2.4);
33329        let e: u32x4 = u32x4::new(!0, 0xFF_FF_FF_FF, 0xFF_FF_FF_FF, 0);
33330        let r: u32x4 = transmute(vcageq_f32(transmute(a), transmute(b)));
33331        assert_eq!(r, e);
33332    }
33333
33334    #[simd_test(enable = "neon")]
33335    unsafe fn test_vcalt_f32() {
33336        let a: f32x2 = f32x2::new(-1.2, 0.0);
33337        let b: f32x2 = f32x2::new(-1.1, 0.0);
33338        let e: u32x2 = u32x2::new(0, 0);
33339        let r: u32x2 = transmute(vcalt_f32(transmute(a), transmute(b)));
33340        assert_eq!(r, e);
33341    }
33342
33343    #[simd_test(enable = "neon")]
33344    unsafe fn test_vcaltq_f32() {
33345        let a: f32x4 = f32x4::new(-1.2, 0.0, 1.2, 2.3);
33346        let b: f32x4 = f32x4::new(-1.1, 0.0, 1.1, 2.4);
33347        let e: u32x4 = u32x4::new(0, 0, 0, 0xFF_FF_FF_FF);
33348        let r: u32x4 = transmute(vcaltq_f32(transmute(a), transmute(b)));
33349        assert_eq!(r, e);
33350    }
33351
33352    #[simd_test(enable = "neon")]
33353    unsafe fn test_vcale_f32() {
33354        let a: f32x2 = f32x2::new(-1.2, 0.0);
33355        let b: f32x2 = f32x2::new(-1.1, 0.0);
33356        let e: u32x2 = u32x2::new(0, 0xFF_FF_FF_FF);
33357        let r: u32x2 = transmute(vcale_f32(transmute(a), transmute(b)));
33358        assert_eq!(r, e);
33359    }
33360
33361    #[simd_test(enable = "neon")]
33362    unsafe fn test_vcaleq_f32() {
33363        let a: f32x4 = f32x4::new(-1.2, 0.0, 1.2, 2.3);
33364        let b: f32x4 = f32x4::new(-1.1, 0.0, 1.1, 2.4);
33365        let e: u32x4 = u32x4::new(0, 0xFF_FF_FF_FF, 0, 0xFF_FF_FF_FF);
33366        let r: u32x4 = transmute(vcaleq_f32(transmute(a), transmute(b)));
33367        assert_eq!(r, e);
33368    }
33369
33370    #[simd_test(enable = "neon")]
33371    unsafe fn test_vcreate_s8() {
33372        let a: u64 = 1;
33373        let e: i8x8 = i8x8::new(1, 0, 0, 0, 0, 0, 0, 0);
33374        let r: i8x8 = transmute(vcreate_s8(a));
33375        assert_eq!(r, e);
33376    }
33377
33378    #[simd_test(enable = "neon")]
33379    unsafe fn test_vcreate_s16() {
33380        let a: u64 = 1;
33381        let e: i16x4 = i16x4::new(1, 0, 0, 0);
33382        let r: i16x4 = transmute(vcreate_s16(a));
33383        assert_eq!(r, e);
33384    }
33385
33386    #[simd_test(enable = "neon")]
33387    unsafe fn test_vcreate_s32() {
33388        let a: u64 = 1;
33389        let e: i32x2 = i32x2::new(1, 0);
33390        let r: i32x2 = transmute(vcreate_s32(a));
33391        assert_eq!(r, e);
33392    }
33393
33394    #[simd_test(enable = "neon")]
33395    unsafe fn test_vcreate_s64() {
33396        let a: u64 = 1;
33397        let e: i64x1 = i64x1::new(1);
33398        let r: i64x1 = transmute(vcreate_s64(a));
33399        assert_eq!(r, e);
33400    }
33401
33402    #[simd_test(enable = "neon")]
33403    unsafe fn test_vcreate_u8() {
33404        let a: u64 = 1;
33405        let e: u8x8 = u8x8::new(1, 0, 0, 0, 0, 0, 0, 0);
33406        let r: u8x8 = transmute(vcreate_u8(a));
33407        assert_eq!(r, e);
33408    }
33409
33410    #[simd_test(enable = "neon")]
33411    unsafe fn test_vcreate_u16() {
33412        let a: u64 = 1;
33413        let e: u16x4 = u16x4::new(1, 0, 0, 0);
33414        let r: u16x4 = transmute(vcreate_u16(a));
33415        assert_eq!(r, e);
33416    }
33417
33418    #[simd_test(enable = "neon")]
33419    unsafe fn test_vcreate_u32() {
33420        let a: u64 = 1;
33421        let e: u32x2 = u32x2::new(1, 0);
33422        let r: u32x2 = transmute(vcreate_u32(a));
33423        assert_eq!(r, e);
33424    }
33425
33426    #[simd_test(enable = "neon")]
33427    unsafe fn test_vcreate_u64() {
33428        let a: u64 = 1;
33429        let e: u64x1 = u64x1::new(1);
33430        let r: u64x1 = transmute(vcreate_u64(a));
33431        assert_eq!(r, e);
33432    }
33433
33434    #[simd_test(enable = "neon")]
33435    unsafe fn test_vcreate_p8() {
33436        let a: u64 = 1;
33437        let e: i8x8 = i8x8::new(1, 0, 0, 0, 0, 0, 0, 0);
33438        let r: i8x8 = transmute(vcreate_p8(a));
33439        assert_eq!(r, e);
33440    }
33441
33442    #[simd_test(enable = "neon")]
33443    unsafe fn test_vcreate_p16() {
33444        let a: u64 = 1;
33445        let e: i16x4 = i16x4::new(1, 0, 0, 0);
33446        let r: i16x4 = transmute(vcreate_p16(a));
33447        assert_eq!(r, e);
33448    }
33449
33450    #[simd_test(enable = "neon,aes")]
33451    unsafe fn test_vcreate_p64() {
33452        let a: u64 = 1;
33453        let e: i64x1 = i64x1::new(1);
33454        let r: i64x1 = transmute(vcreate_p64(a));
33455        assert_eq!(r, e);
33456    }
33457
33458    #[simd_test(enable = "neon")]
33459    unsafe fn test_vcreate_f32() {
33460        let a: u64 = 0;
33461        let e: f32x2 = f32x2::new(0., 0.);
33462        let r: f32x2 = transmute(vcreate_f32(a));
33463        assert_eq!(r, e);
33464    }
33465
33466    #[simd_test(enable = "neon")]
33467    unsafe fn test_vcvt_f32_s32() {
33468        let a: i32x2 = i32x2::new(1, 2);
33469        let e: f32x2 = f32x2::new(1., 2.);
33470        let r: f32x2 = transmute(vcvt_f32_s32(transmute(a)));
33471        assert_eq!(r, e);
33472    }
33473
33474    #[simd_test(enable = "neon")]
33475    unsafe fn test_vcvtq_f32_s32() {
33476        let a: i32x4 = i32x4::new(1, 2, 3, 4);
33477        let e: f32x4 = f32x4::new(1., 2., 3., 4.);
33478        let r: f32x4 = transmute(vcvtq_f32_s32(transmute(a)));
33479        assert_eq!(r, e);
33480    }
33481
33482    #[simd_test(enable = "neon")]
33483    unsafe fn test_vcvt_f32_u32() {
33484        let a: u32x2 = u32x2::new(1, 2);
33485        let e: f32x2 = f32x2::new(1., 2.);
33486        let r: f32x2 = transmute(vcvt_f32_u32(transmute(a)));
33487        assert_eq!(r, e);
33488    }
33489
33490    #[simd_test(enable = "neon")]
33491    unsafe fn test_vcvtq_f32_u32() {
33492        let a: u32x4 = u32x4::new(1, 2, 3, 4);
33493        let e: f32x4 = f32x4::new(1., 2., 3., 4.);
33494        let r: f32x4 = transmute(vcvtq_f32_u32(transmute(a)));
33495        assert_eq!(r, e);
33496    }
33497
33498    #[simd_test(enable = "neon")]
33499    unsafe fn test_vcvt_n_f32_s32() {
33500        let a: i32x2 = i32x2::new(1, 2);
33501        let e: f32x2 = f32x2::new(0.25, 0.5);
33502        let r: f32x2 = transmute(vcvt_n_f32_s32::<2>(transmute(a)));
33503        assert_eq!(r, e);
33504    }
33505
33506    #[simd_test(enable = "neon")]
33507    unsafe fn test_vcvtq_n_f32_s32() {
33508        let a: i32x4 = i32x4::new(1, 2, 3, 4);
33509        let e: f32x4 = f32x4::new(0.25, 0.5, 0.75, 1.);
33510        let r: f32x4 = transmute(vcvtq_n_f32_s32::<2>(transmute(a)));
33511        assert_eq!(r, e);
33512    }
33513
33514    #[simd_test(enable = "neon")]
33515    unsafe fn test_vcvt_n_f32_u32() {
33516        let a: u32x2 = u32x2::new(1, 2);
33517        let e: f32x2 = f32x2::new(0.25, 0.5);
33518        let r: f32x2 = transmute(vcvt_n_f32_u32::<2>(transmute(a)));
33519        assert_eq!(r, e);
33520    }
33521
33522    #[simd_test(enable = "neon")]
33523    unsafe fn test_vcvtq_n_f32_u32() {
33524        let a: u32x4 = u32x4::new(1, 2, 3, 4);
33525        let e: f32x4 = f32x4::new(0.25, 0.5, 0.75, 1.);
33526        let r: f32x4 = transmute(vcvtq_n_f32_u32::<2>(transmute(a)));
33527        assert_eq!(r, e);
33528    }
33529
33530    #[simd_test(enable = "neon")]
33531    unsafe fn test_vcvt_n_s32_f32() {
33532        let a: f32x2 = f32x2::new(0.25, 0.5);
33533        let e: i32x2 = i32x2::new(1, 2);
33534        let r: i32x2 = transmute(vcvt_n_s32_f32::<2>(transmute(a)));
33535        assert_eq!(r, e);
33536    }
33537
33538    #[simd_test(enable = "neon")]
33539    unsafe fn test_vcvtq_n_s32_f32() {
33540        let a: f32x4 = f32x4::new(0.25, 0.5, 0.75, 1.);
33541        let e: i32x4 = i32x4::new(1, 2, 3, 4);
33542        let r: i32x4 = transmute(vcvtq_n_s32_f32::<2>(transmute(a)));
33543        assert_eq!(r, e);
33544    }
33545
33546    #[simd_test(enable = "neon")]
33547    unsafe fn test_vcvt_n_u32_f32() {
33548        let a: f32x2 = f32x2::new(0.25, 0.5);
33549        let e: u32x2 = u32x2::new(1, 2);
33550        let r: u32x2 = transmute(vcvt_n_u32_f32::<2>(transmute(a)));
33551        assert_eq!(r, e);
33552    }
33553
33554    #[simd_test(enable = "neon")]
33555    unsafe fn test_vcvtq_n_u32_f32() {
33556        let a: f32x4 = f32x4::new(0.25, 0.5, 0.75, 1.);
33557        let e: u32x4 = u32x4::new(1, 2, 3, 4);
33558        let r: u32x4 = transmute(vcvtq_n_u32_f32::<2>(transmute(a)));
33559        assert_eq!(r, e);
33560    }
33561
33562    #[simd_test(enable = "neon")]
33563    unsafe fn test_vcvt_s32_f32() {
33564        let a: f32x2 = f32x2::new(-1.1, 2.1);
33565        let e: i32x2 = i32x2::new(-1, 2);
33566        let r: i32x2 = transmute(vcvt_s32_f32(transmute(a)));
33567        assert_eq!(r, e);
33568    }
33569
33570    #[simd_test(enable = "neon")]
33571    unsafe fn test_vcvtq_s32_f32() {
33572        let a: f32x4 = f32x4::new(-1.1, 2.1, -2.9, 3.9);
33573        let e: i32x4 = i32x4::new(-1, 2, -2, 3);
33574        let r: i32x4 = transmute(vcvtq_s32_f32(transmute(a)));
33575        assert_eq!(r, e);
33576    }
33577
33578    #[simd_test(enable = "neon")]
33579    unsafe fn test_vcvt_u32_f32() {
33580        let a: f32x2 = f32x2::new(1.1, 2.1);
33581        let e: u32x2 = u32x2::new(1, 2);
33582        let r: u32x2 = transmute(vcvt_u32_f32(transmute(a)));
33583        assert_eq!(r, e);
33584    }
33585
33586    #[simd_test(enable = "neon")]
33587    unsafe fn test_vcvtq_u32_f32() {
33588        let a: f32x4 = f32x4::new(1.1, 2.1, 2.9, 3.9);
33589        let e: u32x4 = u32x4::new(1, 2, 2, 3);
33590        let r: u32x4 = transmute(vcvtq_u32_f32(transmute(a)));
33591        assert_eq!(r, e);
33592    }
33593
33594    #[simd_test(enable = "neon")]
33595    unsafe fn test_vdup_lane_s8() {
33596        let a: i8x8 = i8x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33597        let e: i8x8 = i8x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33598        let r: i8x8 = transmute(vdup_lane_s8::<4>(transmute(a)));
33599        assert_eq!(r, e);
33600    }
33601
33602    #[simd_test(enable = "neon")]
33603    unsafe fn test_vdupq_laneq_s8() {
33604        let a: i8x16 = i8x16::new(1, 1, 1, 4, 1, 6, 7, 8, 1, 10, 11, 12, 13, 14, 15, 16);
33605        let e: i8x16 = i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
33606        let r: i8x16 = transmute(vdupq_laneq_s8::<8>(transmute(a)));
33607        assert_eq!(r, e);
33608    }
33609
33610    #[simd_test(enable = "neon")]
33611    unsafe fn test_vdup_lane_s16() {
33612        let a: i16x4 = i16x4::new(1, 1, 1, 4);
33613        let e: i16x4 = i16x4::new(1, 1, 1, 1);
33614        let r: i16x4 = transmute(vdup_lane_s16::<2>(transmute(a)));
33615        assert_eq!(r, e);
33616    }
33617
33618    #[simd_test(enable = "neon")]
33619    unsafe fn test_vdupq_laneq_s16() {
33620        let a: i16x8 = i16x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33621        let e: i16x8 = i16x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33622        let r: i16x8 = transmute(vdupq_laneq_s16::<4>(transmute(a)));
33623        assert_eq!(r, e);
33624    }
33625
33626    #[simd_test(enable = "neon")]
33627    unsafe fn test_vdup_lane_s32() {
33628        let a: i32x2 = i32x2::new(1, 1);
33629        let e: i32x2 = i32x2::new(1, 1);
33630        let r: i32x2 = transmute(vdup_lane_s32::<1>(transmute(a)));
33631        assert_eq!(r, e);
33632    }
33633
33634    #[simd_test(enable = "neon")]
33635    unsafe fn test_vdupq_laneq_s32() {
33636        let a: i32x4 = i32x4::new(1, 1, 1, 4);
33637        let e: i32x4 = i32x4::new(1, 1, 1, 1);
33638        let r: i32x4 = transmute(vdupq_laneq_s32::<2>(transmute(a)));
33639        assert_eq!(r, e);
33640    }
33641
33642    #[simd_test(enable = "neon")]
33643    unsafe fn test_vdup_laneq_s8() {
33644        let a: i8x16 = i8x16::new(1, 1, 1, 4, 1, 6, 7, 8, 1, 10, 11, 12, 13, 14, 15, 16);
33645        let e: i8x8 = i8x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33646        let r: i8x8 = transmute(vdup_laneq_s8::<8>(transmute(a)));
33647        assert_eq!(r, e);
33648    }
33649
33650    #[simd_test(enable = "neon")]
33651    unsafe fn test_vdup_laneq_s16() {
33652        let a: i16x8 = i16x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33653        let e: i16x4 = i16x4::new(1, 1, 1, 1);
33654        let r: i16x4 = transmute(vdup_laneq_s16::<4>(transmute(a)));
33655        assert_eq!(r, e);
33656    }
33657
33658    #[simd_test(enable = "neon")]
33659    unsafe fn test_vdup_laneq_s32() {
33660        let a: i32x4 = i32x4::new(1, 1, 1, 4);
33661        let e: i32x2 = i32x2::new(1, 1);
33662        let r: i32x2 = transmute(vdup_laneq_s32::<2>(transmute(a)));
33663        assert_eq!(r, e);
33664    }
33665
33666    #[simd_test(enable = "neon")]
33667    unsafe fn test_vdupq_lane_s8() {
33668        let a: i8x8 = i8x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33669        let e: i8x16 = i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
33670        let r: i8x16 = transmute(vdupq_lane_s8::<4>(transmute(a)));
33671        assert_eq!(r, e);
33672    }
33673
33674    #[simd_test(enable = "neon")]
33675    unsafe fn test_vdupq_lane_s16() {
33676        let a: i16x4 = i16x4::new(1, 1, 1, 4);
33677        let e: i16x8 = i16x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33678        let r: i16x8 = transmute(vdupq_lane_s16::<2>(transmute(a)));
33679        assert_eq!(r, e);
33680    }
33681
33682    #[simd_test(enable = "neon")]
33683    unsafe fn test_vdupq_lane_s32() {
33684        let a: i32x2 = i32x2::new(1, 1);
33685        let e: i32x4 = i32x4::new(1, 1, 1, 1);
33686        let r: i32x4 = transmute(vdupq_lane_s32::<1>(transmute(a)));
33687        assert_eq!(r, e);
33688    }
33689
33690    #[simd_test(enable = "neon")]
33691    unsafe fn test_vdup_lane_u8() {
33692        let a: u8x8 = u8x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33693        let e: u8x8 = u8x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33694        let r: u8x8 = transmute(vdup_lane_u8::<4>(transmute(a)));
33695        assert_eq!(r, e);
33696    }
33697
33698    #[simd_test(enable = "neon")]
33699    unsafe fn test_vdupq_laneq_u8() {
33700        let a: u8x16 = u8x16::new(1, 1, 1, 4, 1, 6, 7, 8, 1, 10, 11, 12, 13, 14, 15, 16);
33701        let e: u8x16 = u8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
33702        let r: u8x16 = transmute(vdupq_laneq_u8::<8>(transmute(a)));
33703        assert_eq!(r, e);
33704    }
33705
33706    #[simd_test(enable = "neon")]
33707    unsafe fn test_vdup_lane_u16() {
33708        let a: u16x4 = u16x4::new(1, 1, 1, 4);
33709        let e: u16x4 = u16x4::new(1, 1, 1, 1);
33710        let r: u16x4 = transmute(vdup_lane_u16::<2>(transmute(a)));
33711        assert_eq!(r, e);
33712    }
33713
33714    #[simd_test(enable = "neon")]
33715    unsafe fn test_vdupq_laneq_u16() {
33716        let a: u16x8 = u16x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33717        let e: u16x8 = u16x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33718        let r: u16x8 = transmute(vdupq_laneq_u16::<4>(transmute(a)));
33719        assert_eq!(r, e);
33720    }
33721
33722    #[simd_test(enable = "neon")]
33723    unsafe fn test_vdup_lane_u32() {
33724        let a: u32x2 = u32x2::new(1, 1);
33725        let e: u32x2 = u32x2::new(1, 1);
33726        let r: u32x2 = transmute(vdup_lane_u32::<1>(transmute(a)));
33727        assert_eq!(r, e);
33728    }
33729
33730    #[simd_test(enable = "neon")]
33731    unsafe fn test_vdupq_laneq_u32() {
33732        let a: u32x4 = u32x4::new(1, 1, 1, 4);
33733        let e: u32x4 = u32x4::new(1, 1, 1, 1);
33734        let r: u32x4 = transmute(vdupq_laneq_u32::<2>(transmute(a)));
33735        assert_eq!(r, e);
33736    }
33737
33738    #[simd_test(enable = "neon")]
33739    unsafe fn test_vdup_laneq_u8() {
33740        let a: u8x16 = u8x16::new(1, 1, 1, 4, 1, 6, 7, 8, 1, 10, 11, 12, 13, 14, 15, 16);
33741        let e: u8x8 = u8x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33742        let r: u8x8 = transmute(vdup_laneq_u8::<8>(transmute(a)));
33743        assert_eq!(r, e);
33744    }
33745
33746    #[simd_test(enable = "neon")]
33747    unsafe fn test_vdup_laneq_u16() {
33748        let a: u16x8 = u16x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33749        let e: u16x4 = u16x4::new(1, 1, 1, 1);
33750        let r: u16x4 = transmute(vdup_laneq_u16::<4>(transmute(a)));
33751        assert_eq!(r, e);
33752    }
33753
33754    #[simd_test(enable = "neon")]
33755    unsafe fn test_vdup_laneq_u32() {
33756        let a: u32x4 = u32x4::new(1, 1, 1, 4);
33757        let e: u32x2 = u32x2::new(1, 1);
33758        let r: u32x2 = transmute(vdup_laneq_u32::<2>(transmute(a)));
33759        assert_eq!(r, e);
33760    }
33761
33762    #[simd_test(enable = "neon")]
33763    unsafe fn test_vdupq_lane_u8() {
33764        let a: u8x8 = u8x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33765        let e: u8x16 = u8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
33766        let r: u8x16 = transmute(vdupq_lane_u8::<4>(transmute(a)));
33767        assert_eq!(r, e);
33768    }
33769
33770    #[simd_test(enable = "neon")]
33771    unsafe fn test_vdupq_lane_u16() {
33772        let a: u16x4 = u16x4::new(1, 1, 1, 4);
33773        let e: u16x8 = u16x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33774        let r: u16x8 = transmute(vdupq_lane_u16::<2>(transmute(a)));
33775        assert_eq!(r, e);
33776    }
33777
33778    #[simd_test(enable = "neon")]
33779    unsafe fn test_vdupq_lane_u32() {
33780        let a: u32x2 = u32x2::new(1, 1);
33781        let e: u32x4 = u32x4::new(1, 1, 1, 1);
33782        let r: u32x4 = transmute(vdupq_lane_u32::<1>(transmute(a)));
33783        assert_eq!(r, e);
33784    }
33785
33786    #[simd_test(enable = "neon")]
33787    unsafe fn test_vdup_lane_p8() {
33788        let a: i8x8 = i8x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33789        let e: i8x8 = i8x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33790        let r: i8x8 = transmute(vdup_lane_p8::<4>(transmute(a)));
33791        assert_eq!(r, e);
33792    }
33793
33794    #[simd_test(enable = "neon")]
33795    unsafe fn test_vdupq_laneq_p8() {
33796        let a: i8x16 = i8x16::new(1, 1, 1, 4, 1, 6, 7, 8, 1, 10, 11, 12, 13, 14, 15, 16);
33797        let e: i8x16 = i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
33798        let r: i8x16 = transmute(vdupq_laneq_p8::<8>(transmute(a)));
33799        assert_eq!(r, e);
33800    }
33801
33802    #[simd_test(enable = "neon")]
33803    unsafe fn test_vdup_lane_p16() {
33804        let a: i16x4 = i16x4::new(1, 1, 1, 4);
33805        let e: i16x4 = i16x4::new(1, 1, 1, 1);
33806        let r: i16x4 = transmute(vdup_lane_p16::<2>(transmute(a)));
33807        assert_eq!(r, e);
33808    }
33809
33810    #[simd_test(enable = "neon")]
33811    unsafe fn test_vdupq_laneq_p16() {
33812        let a: i16x8 = i16x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33813        let e: i16x8 = i16x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33814        let r: i16x8 = transmute(vdupq_laneq_p16::<4>(transmute(a)));
33815        assert_eq!(r, e);
33816    }
33817
33818    #[simd_test(enable = "neon")]
33819    unsafe fn test_vdup_laneq_p8() {
33820        let a: i8x16 = i8x16::new(1, 1, 1, 4, 1, 6, 7, 8, 1, 10, 11, 12, 13, 14, 15, 16);
33821        let e: i8x8 = i8x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33822        let r: i8x8 = transmute(vdup_laneq_p8::<8>(transmute(a)));
33823        assert_eq!(r, e);
33824    }
33825
33826    #[simd_test(enable = "neon")]
33827    unsafe fn test_vdup_laneq_p16() {
33828        let a: i16x8 = i16x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33829        let e: i16x4 = i16x4::new(1, 1, 1, 1);
33830        let r: i16x4 = transmute(vdup_laneq_p16::<4>(transmute(a)));
33831        assert_eq!(r, e);
33832    }
33833
33834    #[simd_test(enable = "neon")]
33835    unsafe fn test_vdupq_lane_p8() {
33836        let a: i8x8 = i8x8::new(1, 1, 1, 4, 1, 6, 7, 8);
33837        let e: i8x16 = i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
33838        let r: i8x16 = transmute(vdupq_lane_p8::<4>(transmute(a)));
33839        assert_eq!(r, e);
33840    }
33841
33842    #[simd_test(enable = "neon")]
33843    unsafe fn test_vdupq_lane_p16() {
33844        let a: i16x4 = i16x4::new(1, 1, 1, 4);
33845        let e: i16x8 = i16x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33846        let r: i16x8 = transmute(vdupq_lane_p16::<2>(transmute(a)));
33847        assert_eq!(r, e);
33848    }
33849
33850    #[simd_test(enable = "neon")]
33851    unsafe fn test_vdupq_laneq_s64() {
33852        let a: i64x2 = i64x2::new(1, 1);
33853        let e: i64x2 = i64x2::new(1, 1);
33854        let r: i64x2 = transmute(vdupq_laneq_s64::<1>(transmute(a)));
33855        assert_eq!(r, e);
33856    }
33857
33858    #[simd_test(enable = "neon")]
33859    unsafe fn test_vdupq_lane_s64() {
33860        let a: i64x1 = i64x1::new(1);
33861        let e: i64x2 = i64x2::new(1, 1);
33862        let r: i64x2 = transmute(vdupq_lane_s64::<0>(transmute(a)));
33863        assert_eq!(r, e);
33864    }
33865
33866    #[simd_test(enable = "neon")]
33867    unsafe fn test_vdupq_laneq_u64() {
33868        let a: u64x2 = u64x2::new(1, 1);
33869        let e: u64x2 = u64x2::new(1, 1);
33870        let r: u64x2 = transmute(vdupq_laneq_u64::<1>(transmute(a)));
33871        assert_eq!(r, e);
33872    }
33873
33874    #[simd_test(enable = "neon")]
33875    unsafe fn test_vdupq_lane_u64() {
33876        let a: u64x1 = u64x1::new(1);
33877        let e: u64x2 = u64x2::new(1, 1);
33878        let r: u64x2 = transmute(vdupq_lane_u64::<0>(transmute(a)));
33879        assert_eq!(r, e);
33880    }
33881
33882    #[simd_test(enable = "neon")]
33883    unsafe fn test_vdup_lane_f32() {
33884        let a: f32x2 = f32x2::new(1., 1.);
33885        let e: f32x2 = f32x2::new(1., 1.);
33886        let r: f32x2 = transmute(vdup_lane_f32::<1>(transmute(a)));
33887        assert_eq!(r, e);
33888    }
33889
33890    #[simd_test(enable = "neon")]
33891    unsafe fn test_vdupq_laneq_f32() {
33892        let a: f32x4 = f32x4::new(1., 1., 1., 4.);
33893        let e: f32x4 = f32x4::new(1., 1., 1., 1.);
33894        let r: f32x4 = transmute(vdupq_laneq_f32::<2>(transmute(a)));
33895        assert_eq!(r, e);
33896    }
33897
33898    #[simd_test(enable = "neon")]
33899    unsafe fn test_vdup_laneq_f32() {
33900        let a: f32x4 = f32x4::new(1., 1., 1., 4.);
33901        let e: f32x2 = f32x2::new(1., 1.);
33902        let r: f32x2 = transmute(vdup_laneq_f32::<2>(transmute(a)));
33903        assert_eq!(r, e);
33904    }
33905
33906    #[simd_test(enable = "neon")]
33907    unsafe fn test_vdupq_lane_f32() {
33908        let a: f32x2 = f32x2::new(1., 1.);
33909        let e: f32x4 = f32x4::new(1., 1., 1., 1.);
33910        let r: f32x4 = transmute(vdupq_lane_f32::<1>(transmute(a)));
33911        assert_eq!(r, e);
33912    }
33913
33914    #[simd_test(enable = "neon")]
33915    unsafe fn test_vdup_lane_s64() {
33916        let a: i64x1 = i64x1::new(0);
33917        let e: i64x1 = i64x1::new(0);
33918        let r: i64x1 = transmute(vdup_lane_s64::<0>(transmute(a)));
33919        assert_eq!(r, e);
33920    }
33921
33922    #[simd_test(enable = "neon")]
33923    unsafe fn test_vdup_lane_u64() {
33924        let a: u64x1 = u64x1::new(0);
33925        let e: u64x1 = u64x1::new(0);
33926        let r: u64x1 = transmute(vdup_lane_u64::<0>(transmute(a)));
33927        assert_eq!(r, e);
33928    }
33929
33930    #[simd_test(enable = "neon")]
33931    unsafe fn test_vdup_laneq_s64() {
33932        let a: i64x2 = i64x2::new(0, 1);
33933        let e: i64x1 = i64x1::new(1);
33934        let r: i64x1 = transmute(vdup_laneq_s64::<1>(transmute(a)));
33935        assert_eq!(r, e);
33936    }
33937
33938    #[simd_test(enable = "neon")]
33939    unsafe fn test_vdup_laneq_u64() {
33940        let a: u64x2 = u64x2::new(0, 1);
33941        let e: u64x1 = u64x1::new(1);
33942        let r: u64x1 = transmute(vdup_laneq_u64::<1>(transmute(a)));
33943        assert_eq!(r, e);
33944    }
33945
33946    #[simd_test(enable = "neon")]
33947    unsafe fn test_vext_s8() {
33948        let a: i8x8 = i8x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33949        let b: i8x8 = i8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
33950        let e: i8x8 = i8x8::new(1, 2, 2, 2, 2, 2, 2, 2);
33951        let r: i8x8 = transmute(vext_s8::<7>(transmute(a), transmute(b)));
33952        assert_eq!(r, e);
33953    }
33954
33955    #[simd_test(enable = "neon")]
33956    unsafe fn test_vextq_s8() {
33957        let a: i8x16 = i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
33958        let b: i8x16 = i8x16::new(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
33959        let e: i8x16 = i8x16::new(1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
33960        let r: i8x16 = transmute(vextq_s8::<15>(transmute(a), transmute(b)));
33961        assert_eq!(r, e);
33962    }
33963
33964    #[simd_test(enable = "neon")]
33965    unsafe fn test_vext_s16() {
33966        let a: i16x4 = i16x4::new(1, 1, 1, 1);
33967        let b: i16x4 = i16x4::new(2, 2, 2, 2);
33968        let e: i16x4 = i16x4::new(1, 2, 2, 2);
33969        let r: i16x4 = transmute(vext_s16::<3>(transmute(a), transmute(b)));
33970        assert_eq!(r, e);
33971    }
33972
33973    #[simd_test(enable = "neon")]
33974    unsafe fn test_vextq_s16() {
33975        let a: i16x8 = i16x8::new(1, 1, 1, 1, 1, 1, 1, 1);
33976        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
33977        let e: i16x8 = i16x8::new(1, 2, 2, 2, 2, 2, 2, 2);
33978        let r: i16x8 = transmute(vextq_s16::<7>(transmute(a), transmute(b)));
33979        assert_eq!(r, e);
33980    }
33981
33982    #[simd_test(enable = "neon")]
33983    unsafe fn test_vext_s32() {
33984        let a: i32x2 = i32x2::new(1, 1);
33985        let b: i32x2 = i32x2::new(2, 2);
33986        let e: i32x2 = i32x2::new(1, 2);
33987        let r: i32x2 = transmute(vext_s32::<1>(transmute(a), transmute(b)));
33988        assert_eq!(r, e);
33989    }
33990
33991    #[simd_test(enable = "neon")]
33992    unsafe fn test_vextq_s32() {
33993        let a: i32x4 = i32x4::new(1, 1, 1, 1);
33994        let b: i32x4 = i32x4::new(2, 2, 2, 2);
33995        let e: i32x4 = i32x4::new(1, 2, 2, 2);
33996        let r: i32x4 = transmute(vextq_s32::<3>(transmute(a), transmute(b)));
33997        assert_eq!(r, e);
33998    }
33999
34000    #[simd_test(enable = "neon")]
34001    unsafe fn test_vext_u8() {
34002        let a: u8x8 = u8x8::new(1, 1, 1, 1, 1, 1, 1, 1);
34003        let b: u8x8 = u8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34004        let e: u8x8 = u8x8::new(1, 2, 2, 2, 2, 2, 2, 2);
34005        let r: u8x8 = transmute(vext_u8::<7>(transmute(a), transmute(b)));
34006        assert_eq!(r, e);
34007    }
34008
34009    #[simd_test(enable = "neon")]
34010    unsafe fn test_vextq_u8() {
34011        let a: u8x16 = u8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
34012        let b: u8x16 = u8x16::new(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
34013        let e: u8x16 = u8x16::new(1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
34014        let r: u8x16 = transmute(vextq_u8::<15>(transmute(a), transmute(b)));
34015        assert_eq!(r, e);
34016    }
34017
34018    #[simd_test(enable = "neon")]
34019    unsafe fn test_vext_u16() {
34020        let a: u16x4 = u16x4::new(1, 1, 1, 1);
34021        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34022        let e: u16x4 = u16x4::new(1, 2, 2, 2);
34023        let r: u16x4 = transmute(vext_u16::<3>(transmute(a), transmute(b)));
34024        assert_eq!(r, e);
34025    }
34026
34027    #[simd_test(enable = "neon")]
34028    unsafe fn test_vextq_u16() {
34029        let a: u16x8 = u16x8::new(1, 1, 1, 1, 1, 1, 1, 1);
34030        let b: u16x8 = u16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34031        let e: u16x8 = u16x8::new(1, 2, 2, 2, 2, 2, 2, 2);
34032        let r: u16x8 = transmute(vextq_u16::<7>(transmute(a), transmute(b)));
34033        assert_eq!(r, e);
34034    }
34035
34036    #[simd_test(enable = "neon")]
34037    unsafe fn test_vext_u32() {
34038        let a: u32x2 = u32x2::new(1, 1);
34039        let b: u32x2 = u32x2::new(2, 2);
34040        let e: u32x2 = u32x2::new(1, 2);
34041        let r: u32x2 = transmute(vext_u32::<1>(transmute(a), transmute(b)));
34042        assert_eq!(r, e);
34043    }
34044
34045    #[simd_test(enable = "neon")]
34046    unsafe fn test_vextq_u32() {
34047        let a: u32x4 = u32x4::new(1, 1, 1, 1);
34048        let b: u32x4 = u32x4::new(2, 2, 2, 2);
34049        let e: u32x4 = u32x4::new(1, 2, 2, 2);
34050        let r: u32x4 = transmute(vextq_u32::<3>(transmute(a), transmute(b)));
34051        assert_eq!(r, e);
34052    }
34053
34054    #[simd_test(enable = "neon")]
34055    unsafe fn test_vext_p8() {
34056        let a: i8x8 = i8x8::new(1, 1, 1, 1, 1, 1, 1, 1);
34057        let b: i8x8 = i8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34058        let e: i8x8 = i8x8::new(1, 2, 2, 2, 2, 2, 2, 2);
34059        let r: i8x8 = transmute(vext_p8::<7>(transmute(a), transmute(b)));
34060        assert_eq!(r, e);
34061    }
34062
34063    #[simd_test(enable = "neon")]
34064    unsafe fn test_vextq_p8() {
34065        let a: i8x16 = i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1);
34066        let b: i8x16 = i8x16::new(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
34067        let e: i8x16 = i8x16::new(1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
34068        let r: i8x16 = transmute(vextq_p8::<15>(transmute(a), transmute(b)));
34069        assert_eq!(r, e);
34070    }
34071
34072    #[simd_test(enable = "neon")]
34073    unsafe fn test_vext_p16() {
34074        let a: i16x4 = i16x4::new(1, 1, 1, 1);
34075        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34076        let e: i16x4 = i16x4::new(1, 2, 2, 2);
34077        let r: i16x4 = transmute(vext_p16::<3>(transmute(a), transmute(b)));
34078        assert_eq!(r, e);
34079    }
34080
34081    #[simd_test(enable = "neon")]
34082    unsafe fn test_vextq_p16() {
34083        let a: i16x8 = i16x8::new(1, 1, 1, 1, 1, 1, 1, 1);
34084        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34085        let e: i16x8 = i16x8::new(1, 2, 2, 2, 2, 2, 2, 2);
34086        let r: i16x8 = transmute(vextq_p16::<7>(transmute(a), transmute(b)));
34087        assert_eq!(r, e);
34088    }
34089
34090    #[simd_test(enable = "neon")]
34091    unsafe fn test_vextq_s64() {
34092        let a: i64x2 = i64x2::new(1, 1);
34093        let b: i64x2 = i64x2::new(2, 2);
34094        let e: i64x2 = i64x2::new(1, 2);
34095        let r: i64x2 = transmute(vextq_s64::<1>(transmute(a), transmute(b)));
34096        assert_eq!(r, e);
34097    }
34098
34099    #[simd_test(enable = "neon")]
34100    unsafe fn test_vextq_u64() {
34101        let a: u64x2 = u64x2::new(1, 1);
34102        let b: u64x2 = u64x2::new(2, 2);
34103        let e: u64x2 = u64x2::new(1, 2);
34104        let r: u64x2 = transmute(vextq_u64::<1>(transmute(a), transmute(b)));
34105        assert_eq!(r, e);
34106    }
34107
34108    #[simd_test(enable = "neon")]
34109    unsafe fn test_vext_f32() {
34110        let a: f32x2 = f32x2::new(1., 1.);
34111        let b: f32x2 = f32x2::new(2., 2.);
34112        let e: f32x2 = f32x2::new(1., 2.);
34113        let r: f32x2 = transmute(vext_f32::<1>(transmute(a), transmute(b)));
34114        assert_eq!(r, e);
34115    }
34116
34117    #[simd_test(enable = "neon")]
34118    unsafe fn test_vextq_f32() {
34119        let a: f32x4 = f32x4::new(1., 1., 1., 1.);
34120        let b: f32x4 = f32x4::new(2., 2., 2., 2.);
34121        let e: f32x4 = f32x4::new(1., 2., 2., 2.);
34122        let r: f32x4 = transmute(vextq_f32::<3>(transmute(a), transmute(b)));
34123        assert_eq!(r, e);
34124    }
34125
34126    #[simd_test(enable = "neon")]
34127    unsafe fn test_vmla_s8() {
34128        let a: i8x8 = i8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34129        let b: i8x8 = i8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34130        let c: i8x8 = i8x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34131        let e: i8x8 = i8x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34132        let r: i8x8 = transmute(vmla_s8(transmute(a), transmute(b), transmute(c)));
34133        assert_eq!(r, e);
34134    }
34135
34136    #[simd_test(enable = "neon")]
34137    unsafe fn test_vmlaq_s8() {
34138        let a: i8x16 = i8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
34139        let b: i8x16 = i8x16::new(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
34140        let c: i8x16 = i8x16::new(3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3);
34141        let e: i8x16 = i8x16::new(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21);
34142        let r: i8x16 = transmute(vmlaq_s8(transmute(a), transmute(b), transmute(c)));
34143        assert_eq!(r, e);
34144    }
34145
34146    #[simd_test(enable = "neon")]
34147    unsafe fn test_vmla_s16() {
34148        let a: i16x4 = i16x4::new(0, 1, 2, 3);
34149        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34150        let c: i16x4 = i16x4::new(3, 3, 3, 3);
34151        let e: i16x4 = i16x4::new(6, 7, 8, 9);
34152        let r: i16x4 = transmute(vmla_s16(transmute(a), transmute(b), transmute(c)));
34153        assert_eq!(r, e);
34154    }
34155
34156    #[simd_test(enable = "neon")]
34157    unsafe fn test_vmlaq_s16() {
34158        let a: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34159        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34160        let c: i16x8 = i16x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34161        let e: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34162        let r: i16x8 = transmute(vmlaq_s16(transmute(a), transmute(b), transmute(c)));
34163        assert_eq!(r, e);
34164    }
34165
34166    #[simd_test(enable = "neon")]
34167    unsafe fn test_vmla_s32() {
34168        let a: i32x2 = i32x2::new(0, 1);
34169        let b: i32x2 = i32x2::new(2, 2);
34170        let c: i32x2 = i32x2::new(3, 3);
34171        let e: i32x2 = i32x2::new(6, 7);
34172        let r: i32x2 = transmute(vmla_s32(transmute(a), transmute(b), transmute(c)));
34173        assert_eq!(r, e);
34174    }
34175
34176    #[simd_test(enable = "neon")]
34177    unsafe fn test_vmlaq_s32() {
34178        let a: i32x4 = i32x4::new(0, 1, 2, 3);
34179        let b: i32x4 = i32x4::new(2, 2, 2, 2);
34180        let c: i32x4 = i32x4::new(3, 3, 3, 3);
34181        let e: i32x4 = i32x4::new(6, 7, 8, 9);
34182        let r: i32x4 = transmute(vmlaq_s32(transmute(a), transmute(b), transmute(c)));
34183        assert_eq!(r, e);
34184    }
34185
34186    #[simd_test(enable = "neon")]
34187    unsafe fn test_vmla_u8() {
34188        let a: u8x8 = u8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34189        let b: u8x8 = u8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34190        let c: u8x8 = u8x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34191        let e: u8x8 = u8x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34192        let r: u8x8 = transmute(vmla_u8(transmute(a), transmute(b), transmute(c)));
34193        assert_eq!(r, e);
34194    }
34195
34196    #[simd_test(enable = "neon")]
34197    unsafe fn test_vmlaq_u8() {
34198        let a: u8x16 = u8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
34199        let b: u8x16 = u8x16::new(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
34200        let c: u8x16 = u8x16::new(3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3);
34201        let e: u8x16 = u8x16::new(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21);
34202        let r: u8x16 = transmute(vmlaq_u8(transmute(a), transmute(b), transmute(c)));
34203        assert_eq!(r, e);
34204    }
34205
34206    #[simd_test(enable = "neon")]
34207    unsafe fn test_vmla_u16() {
34208        let a: u16x4 = u16x4::new(0, 1, 2, 3);
34209        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34210        let c: u16x4 = u16x4::new(3, 3, 3, 3);
34211        let e: u16x4 = u16x4::new(6, 7, 8, 9);
34212        let r: u16x4 = transmute(vmla_u16(transmute(a), transmute(b), transmute(c)));
34213        assert_eq!(r, e);
34214    }
34215
34216    #[simd_test(enable = "neon")]
34217    unsafe fn test_vmlaq_u16() {
34218        let a: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34219        let b: u16x8 = u16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34220        let c: u16x8 = u16x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34221        let e: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34222        let r: u16x8 = transmute(vmlaq_u16(transmute(a), transmute(b), transmute(c)));
34223        assert_eq!(r, e);
34224    }
34225
34226    #[simd_test(enable = "neon")]
34227    unsafe fn test_vmla_u32() {
34228        let a: u32x2 = u32x2::new(0, 1);
34229        let b: u32x2 = u32x2::new(2, 2);
34230        let c: u32x2 = u32x2::new(3, 3);
34231        let e: u32x2 = u32x2::new(6, 7);
34232        let r: u32x2 = transmute(vmla_u32(transmute(a), transmute(b), transmute(c)));
34233        assert_eq!(r, e);
34234    }
34235
34236    #[simd_test(enable = "neon")]
34237    unsafe fn test_vmlaq_u32() {
34238        let a: u32x4 = u32x4::new(0, 1, 2, 3);
34239        let b: u32x4 = u32x4::new(2, 2, 2, 2);
34240        let c: u32x4 = u32x4::new(3, 3, 3, 3);
34241        let e: u32x4 = u32x4::new(6, 7, 8, 9);
34242        let r: u32x4 = transmute(vmlaq_u32(transmute(a), transmute(b), transmute(c)));
34243        assert_eq!(r, e);
34244    }
34245
34246    #[simd_test(enable = "neon")]
34247    unsafe fn test_vmla_f32() {
34248        let a: f32x2 = f32x2::new(0., 1.);
34249        let b: f32x2 = f32x2::new(2., 2.);
34250        let c: f32x2 = f32x2::new(3., 3.);
34251        let e: f32x2 = f32x2::new(6., 7.);
34252        let r: f32x2 = transmute(vmla_f32(transmute(a), transmute(b), transmute(c)));
34253        assert_eq!(r, e);
34254    }
34255
34256    #[simd_test(enable = "neon")]
34257    unsafe fn test_vmlaq_f32() {
34258        let a: f32x4 = f32x4::new(0., 1., 2., 3.);
34259        let b: f32x4 = f32x4::new(2., 2., 2., 2.);
34260        let c: f32x4 = f32x4::new(3., 3., 3., 3.);
34261        let e: f32x4 = f32x4::new(6., 7., 8., 9.);
34262        let r: f32x4 = transmute(vmlaq_f32(transmute(a), transmute(b), transmute(c)));
34263        assert_eq!(r, e);
34264    }
34265
34266    #[simd_test(enable = "neon")]
34267    unsafe fn test_vmla_n_s16() {
34268        let a: i16x4 = i16x4::new(0, 1, 2, 3);
34269        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34270        let c: i16 = 3;
34271        let e: i16x4 = i16x4::new(6, 7, 8, 9);
34272        let r: i16x4 = transmute(vmla_n_s16(transmute(a), transmute(b), c));
34273        assert_eq!(r, e);
34274    }
34275
34276    #[simd_test(enable = "neon")]
34277    unsafe fn test_vmlaq_n_s16() {
34278        let a: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34279        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34280        let c: i16 = 3;
34281        let e: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34282        let r: i16x8 = transmute(vmlaq_n_s16(transmute(a), transmute(b), c));
34283        assert_eq!(r, e);
34284    }
34285
34286    #[simd_test(enable = "neon")]
34287    unsafe fn test_vmla_n_s32() {
34288        let a: i32x2 = i32x2::new(0, 1);
34289        let b: i32x2 = i32x2::new(2, 2);
34290        let c: i32 = 3;
34291        let e: i32x2 = i32x2::new(6, 7);
34292        let r: i32x2 = transmute(vmla_n_s32(transmute(a), transmute(b), c));
34293        assert_eq!(r, e);
34294    }
34295
34296    #[simd_test(enable = "neon")]
34297    unsafe fn test_vmlaq_n_s32() {
34298        let a: i32x4 = i32x4::new(0, 1, 2, 3);
34299        let b: i32x4 = i32x4::new(2, 2, 2, 2);
34300        let c: i32 = 3;
34301        let e: i32x4 = i32x4::new(6, 7, 8, 9);
34302        let r: i32x4 = transmute(vmlaq_n_s32(transmute(a), transmute(b), c));
34303        assert_eq!(r, e);
34304    }
34305
34306    #[simd_test(enable = "neon")]
34307    unsafe fn test_vmla_n_u16() {
34308        let a: u16x4 = u16x4::new(0, 1, 2, 3);
34309        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34310        let c: u16 = 3;
34311        let e: u16x4 = u16x4::new(6, 7, 8, 9);
34312        let r: u16x4 = transmute(vmla_n_u16(transmute(a), transmute(b), c));
34313        assert_eq!(r, e);
34314    }
34315
34316    #[simd_test(enable = "neon")]
34317    unsafe fn test_vmlaq_n_u16() {
34318        let a: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34319        let b: u16x8 = u16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34320        let c: u16 = 3;
34321        let e: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34322        let r: u16x8 = transmute(vmlaq_n_u16(transmute(a), transmute(b), c));
34323        assert_eq!(r, e);
34324    }
34325
34326    #[simd_test(enable = "neon")]
34327    unsafe fn test_vmla_n_u32() {
34328        let a: u32x2 = u32x2::new(0, 1);
34329        let b: u32x2 = u32x2::new(2, 2);
34330        let c: u32 = 3;
34331        let e: u32x2 = u32x2::new(6, 7);
34332        let r: u32x2 = transmute(vmla_n_u32(transmute(a), transmute(b), c));
34333        assert_eq!(r, e);
34334    }
34335
34336    #[simd_test(enable = "neon")]
34337    unsafe fn test_vmlaq_n_u32() {
34338        let a: u32x4 = u32x4::new(0, 1, 2, 3);
34339        let b: u32x4 = u32x4::new(2, 2, 2, 2);
34340        let c: u32 = 3;
34341        let e: u32x4 = u32x4::new(6, 7, 8, 9);
34342        let r: u32x4 = transmute(vmlaq_n_u32(transmute(a), transmute(b), c));
34343        assert_eq!(r, e);
34344    }
34345
34346    #[simd_test(enable = "neon")]
34347    unsafe fn test_vmla_n_f32() {
34348        let a: f32x2 = f32x2::new(0., 1.);
34349        let b: f32x2 = f32x2::new(2., 2.);
34350        let c: f32 = 3.;
34351        let e: f32x2 = f32x2::new(6., 7.);
34352        let r: f32x2 = transmute(vmla_n_f32(transmute(a), transmute(b), c));
34353        assert_eq!(r, e);
34354    }
34355
34356    #[simd_test(enable = "neon")]
34357    unsafe fn test_vmlaq_n_f32() {
34358        let a: f32x4 = f32x4::new(0., 1., 2., 3.);
34359        let b: f32x4 = f32x4::new(2., 2., 2., 2.);
34360        let c: f32 = 3.;
34361        let e: f32x4 = f32x4::new(6., 7., 8., 9.);
34362        let r: f32x4 = transmute(vmlaq_n_f32(transmute(a), transmute(b), c));
34363        assert_eq!(r, e);
34364    }
34365
34366    #[simd_test(enable = "neon")]
34367    unsafe fn test_vmla_lane_s16() {
34368        let a: i16x4 = i16x4::new(0, 1, 2, 3);
34369        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34370        let c: i16x4 = i16x4::new(0, 3, 0, 0);
34371        let e: i16x4 = i16x4::new(6, 7, 8, 9);
34372        let r: i16x4 = transmute(vmla_lane_s16::<1>(transmute(a), transmute(b), transmute(c)));
34373        assert_eq!(r, e);
34374    }
34375
34376    #[simd_test(enable = "neon")]
34377    unsafe fn test_vmla_laneq_s16() {
34378        let a: i16x4 = i16x4::new(0, 1, 2, 3);
34379        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34380        let c: i16x8 = i16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
34381        let e: i16x4 = i16x4::new(6, 7, 8, 9);
34382        let r: i16x4 = transmute(vmla_laneq_s16::<1>(transmute(a), transmute(b), transmute(c)));
34383        assert_eq!(r, e);
34384    }
34385
34386    #[simd_test(enable = "neon")]
34387    unsafe fn test_vmlaq_lane_s16() {
34388        let a: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34389        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34390        let c: i16x4 = i16x4::new(0, 3, 0, 0);
34391        let e: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34392        let r: i16x8 = transmute(vmlaq_lane_s16::<1>(transmute(a), transmute(b), transmute(c)));
34393        assert_eq!(r, e);
34394    }
34395
34396    #[simd_test(enable = "neon")]
34397    unsafe fn test_vmlaq_laneq_s16() {
34398        let a: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34399        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34400        let c: i16x8 = i16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
34401        let e: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34402        let r: i16x8 = transmute(vmlaq_laneq_s16::<1>(transmute(a), transmute(b), transmute(c)));
34403        assert_eq!(r, e);
34404    }
34405
34406    #[simd_test(enable = "neon")]
34407    unsafe fn test_vmla_lane_s32() {
34408        let a: i32x2 = i32x2::new(0, 1);
34409        let b: i32x2 = i32x2::new(2, 2);
34410        let c: i32x2 = i32x2::new(0, 3);
34411        let e: i32x2 = i32x2::new(6, 7);
34412        let r: i32x2 = transmute(vmla_lane_s32::<1>(transmute(a), transmute(b), transmute(c)));
34413        assert_eq!(r, e);
34414    }
34415
34416    #[simd_test(enable = "neon")]
34417    unsafe fn test_vmla_laneq_s32() {
34418        let a: i32x2 = i32x2::new(0, 1);
34419        let b: i32x2 = i32x2::new(2, 2);
34420        let c: i32x4 = i32x4::new(0, 3, 0, 0);
34421        let e: i32x2 = i32x2::new(6, 7);
34422        let r: i32x2 = transmute(vmla_laneq_s32::<1>(transmute(a), transmute(b), transmute(c)));
34423        assert_eq!(r, e);
34424    }
34425
34426    #[simd_test(enable = "neon")]
34427    unsafe fn test_vmlaq_lane_s32() {
34428        let a: i32x4 = i32x4::new(0, 1, 2, 3);
34429        let b: i32x4 = i32x4::new(2, 2, 2, 2);
34430        let c: i32x2 = i32x2::new(0, 3);
34431        let e: i32x4 = i32x4::new(6, 7, 8, 9);
34432        let r: i32x4 = transmute(vmlaq_lane_s32::<1>(transmute(a), transmute(b), transmute(c)));
34433        assert_eq!(r, e);
34434    }
34435
34436    #[simd_test(enable = "neon")]
34437    unsafe fn test_vmlaq_laneq_s32() {
34438        let a: i32x4 = i32x4::new(0, 1, 2, 3);
34439        let b: i32x4 = i32x4::new(2, 2, 2, 2);
34440        let c: i32x4 = i32x4::new(0, 3, 0, 0);
34441        let e: i32x4 = i32x4::new(6, 7, 8, 9);
34442        let r: i32x4 = transmute(vmlaq_laneq_s32::<1>(transmute(a), transmute(b), transmute(c)));
34443        assert_eq!(r, e);
34444    }
34445
34446    #[simd_test(enable = "neon")]
34447    unsafe fn test_vmla_lane_u16() {
34448        let a: u16x4 = u16x4::new(0, 1, 2, 3);
34449        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34450        let c: u16x4 = u16x4::new(0, 3, 0, 0);
34451        let e: u16x4 = u16x4::new(6, 7, 8, 9);
34452        let r: u16x4 = transmute(vmla_lane_u16::<1>(transmute(a), transmute(b), transmute(c)));
34453        assert_eq!(r, e);
34454    }
34455
34456    #[simd_test(enable = "neon")]
34457    unsafe fn test_vmla_laneq_u16() {
34458        let a: u16x4 = u16x4::new(0, 1, 2, 3);
34459        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34460        let c: u16x8 = u16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
34461        let e: u16x4 = u16x4::new(6, 7, 8, 9);
34462        let r: u16x4 = transmute(vmla_laneq_u16::<1>(transmute(a), transmute(b), transmute(c)));
34463        assert_eq!(r, e);
34464    }
34465
34466    #[simd_test(enable = "neon")]
34467    unsafe fn test_vmlaq_lane_u16() {
34468        let a: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34469        let b: u16x8 = u16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34470        let c: u16x4 = u16x4::new(0, 3, 0, 0);
34471        let e: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34472        let r: u16x8 = transmute(vmlaq_lane_u16::<1>(transmute(a), transmute(b), transmute(c)));
34473        assert_eq!(r, e);
34474    }
34475
34476    #[simd_test(enable = "neon")]
34477    unsafe fn test_vmlaq_laneq_u16() {
34478        let a: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34479        let b: u16x8 = u16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34480        let c: u16x8 = u16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
34481        let e: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34482        let r: u16x8 = transmute(vmlaq_laneq_u16::<1>(transmute(a), transmute(b), transmute(c)));
34483        assert_eq!(r, e);
34484    }
34485
34486    #[simd_test(enable = "neon")]
34487    unsafe fn test_vmla_lane_u32() {
34488        let a: u32x2 = u32x2::new(0, 1);
34489        let b: u32x2 = u32x2::new(2, 2);
34490        let c: u32x2 = u32x2::new(0, 3);
34491        let e: u32x2 = u32x2::new(6, 7);
34492        let r: u32x2 = transmute(vmla_lane_u32::<1>(transmute(a), transmute(b), transmute(c)));
34493        assert_eq!(r, e);
34494    }
34495
34496    #[simd_test(enable = "neon")]
34497    unsafe fn test_vmla_laneq_u32() {
34498        let a: u32x2 = u32x2::new(0, 1);
34499        let b: u32x2 = u32x2::new(2, 2);
34500        let c: u32x4 = u32x4::new(0, 3, 0, 0);
34501        let e: u32x2 = u32x2::new(6, 7);
34502        let r: u32x2 = transmute(vmla_laneq_u32::<1>(transmute(a), transmute(b), transmute(c)));
34503        assert_eq!(r, e);
34504    }
34505
34506    #[simd_test(enable = "neon")]
34507    unsafe fn test_vmlaq_lane_u32() {
34508        let a: u32x4 = u32x4::new(0, 1, 2, 3);
34509        let b: u32x4 = u32x4::new(2, 2, 2, 2);
34510        let c: u32x2 = u32x2::new(0, 3);
34511        let e: u32x4 = u32x4::new(6, 7, 8, 9);
34512        let r: u32x4 = transmute(vmlaq_lane_u32::<1>(transmute(a), transmute(b), transmute(c)));
34513        assert_eq!(r, e);
34514    }
34515
34516    #[simd_test(enable = "neon")]
34517    unsafe fn test_vmlaq_laneq_u32() {
34518        let a: u32x4 = u32x4::new(0, 1, 2, 3);
34519        let b: u32x4 = u32x4::new(2, 2, 2, 2);
34520        let c: u32x4 = u32x4::new(0, 3, 0, 0);
34521        let e: u32x4 = u32x4::new(6, 7, 8, 9);
34522        let r: u32x4 = transmute(vmlaq_laneq_u32::<1>(transmute(a), transmute(b), transmute(c)));
34523        assert_eq!(r, e);
34524    }
34525
34526    #[simd_test(enable = "neon")]
34527    unsafe fn test_vmla_lane_f32() {
34528        let a: f32x2 = f32x2::new(0., 1.);
34529        let b: f32x2 = f32x2::new(2., 2.);
34530        let c: f32x2 = f32x2::new(0., 3.);
34531        let e: f32x2 = f32x2::new(6., 7.);
34532        let r: f32x2 = transmute(vmla_lane_f32::<1>(transmute(a), transmute(b), transmute(c)));
34533        assert_eq!(r, e);
34534    }
34535
34536    #[simd_test(enable = "neon")]
34537    unsafe fn test_vmla_laneq_f32() {
34538        let a: f32x2 = f32x2::new(0., 1.);
34539        let b: f32x2 = f32x2::new(2., 2.);
34540        let c: f32x4 = f32x4::new(0., 3., 0., 0.);
34541        let e: f32x2 = f32x2::new(6., 7.);
34542        let r: f32x2 = transmute(vmla_laneq_f32::<1>(transmute(a), transmute(b), transmute(c)));
34543        assert_eq!(r, e);
34544    }
34545
34546    #[simd_test(enable = "neon")]
34547    unsafe fn test_vmlaq_lane_f32() {
34548        let a: f32x4 = f32x4::new(0., 1., 2., 3.);
34549        let b: f32x4 = f32x4::new(2., 2., 2., 2.);
34550        let c: f32x2 = f32x2::new(0., 3.);
34551        let e: f32x4 = f32x4::new(6., 7., 8., 9.);
34552        let r: f32x4 = transmute(vmlaq_lane_f32::<1>(transmute(a), transmute(b), transmute(c)));
34553        assert_eq!(r, e);
34554    }
34555
34556    #[simd_test(enable = "neon")]
34557    unsafe fn test_vmlaq_laneq_f32() {
34558        let a: f32x4 = f32x4::new(0., 1., 2., 3.);
34559        let b: f32x4 = f32x4::new(2., 2., 2., 2.);
34560        let c: f32x4 = f32x4::new(0., 3., 0., 0.);
34561        let e: f32x4 = f32x4::new(6., 7., 8., 9.);
34562        let r: f32x4 = transmute(vmlaq_laneq_f32::<1>(transmute(a), transmute(b), transmute(c)));
34563        assert_eq!(r, e);
34564    }
34565
34566    #[simd_test(enable = "neon")]
34567    unsafe fn test_vmlal_s8() {
34568        let a: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34569        let b: i8x8 = i8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34570        let c: i8x8 = i8x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34571        let e: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34572        let r: i16x8 = transmute(vmlal_s8(transmute(a), transmute(b), transmute(c)));
34573        assert_eq!(r, e);
34574    }
34575
34576    #[simd_test(enable = "neon")]
34577    unsafe fn test_vmlal_s16() {
34578        let a: i32x4 = i32x4::new(0, 1, 2, 3);
34579        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34580        let c: i16x4 = i16x4::new(3, 3, 3, 3);
34581        let e: i32x4 = i32x4::new(6, 7, 8, 9);
34582        let r: i32x4 = transmute(vmlal_s16(transmute(a), transmute(b), transmute(c)));
34583        assert_eq!(r, e);
34584    }
34585
34586    #[simd_test(enable = "neon")]
34587    unsafe fn test_vmlal_s32() {
34588        let a: i64x2 = i64x2::new(0, 1);
34589        let b: i32x2 = i32x2::new(2, 2);
34590        let c: i32x2 = i32x2::new(3, 3);
34591        let e: i64x2 = i64x2::new(6, 7);
34592        let r: i64x2 = transmute(vmlal_s32(transmute(a), transmute(b), transmute(c)));
34593        assert_eq!(r, e);
34594    }
34595
34596    #[simd_test(enable = "neon")]
34597    unsafe fn test_vmlal_u8() {
34598        let a: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34599        let b: u8x8 = u8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34600        let c: u8x8 = u8x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34601        let e: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34602        let r: u16x8 = transmute(vmlal_u8(transmute(a), transmute(b), transmute(c)));
34603        assert_eq!(r, e);
34604    }
34605
34606    #[simd_test(enable = "neon")]
34607    unsafe fn test_vmlal_u16() {
34608        let a: u32x4 = u32x4::new(0, 1, 2, 3);
34609        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34610        let c: u16x4 = u16x4::new(3, 3, 3, 3);
34611        let e: u32x4 = u32x4::new(6, 7, 8, 9);
34612        let r: u32x4 = transmute(vmlal_u16(transmute(a), transmute(b), transmute(c)));
34613        assert_eq!(r, e);
34614    }
34615
34616    #[simd_test(enable = "neon")]
34617    unsafe fn test_vmlal_u32() {
34618        let a: u64x2 = u64x2::new(0, 1);
34619        let b: u32x2 = u32x2::new(2, 2);
34620        let c: u32x2 = u32x2::new(3, 3);
34621        let e: u64x2 = u64x2::new(6, 7);
34622        let r: u64x2 = transmute(vmlal_u32(transmute(a), transmute(b), transmute(c)));
34623        assert_eq!(r, e);
34624    }
34625
34626    #[simd_test(enable = "neon")]
34627    unsafe fn test_vmlal_n_s16() {
34628        let a: i32x4 = i32x4::new(0, 1, 2, 3);
34629        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34630        let c: i16 = 3;
34631        let e: i32x4 = i32x4::new(6, 7, 8, 9);
34632        let r: i32x4 = transmute(vmlal_n_s16(transmute(a), transmute(b), c));
34633        assert_eq!(r, e);
34634    }
34635
34636    #[simd_test(enable = "neon")]
34637    unsafe fn test_vmlal_n_s32() {
34638        let a: i64x2 = i64x2::new(0, 1);
34639        let b: i32x2 = i32x2::new(2, 2);
34640        let c: i32 = 3;
34641        let e: i64x2 = i64x2::new(6, 7);
34642        let r: i64x2 = transmute(vmlal_n_s32(transmute(a), transmute(b), c));
34643        assert_eq!(r, e);
34644    }
34645
34646    #[simd_test(enable = "neon")]
34647    unsafe fn test_vmlal_n_u16() {
34648        let a: u32x4 = u32x4::new(0, 1, 2, 3);
34649        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34650        let c: u16 = 3;
34651        let e: u32x4 = u32x4::new(6, 7, 8, 9);
34652        let r: u32x4 = transmute(vmlal_n_u16(transmute(a), transmute(b), c));
34653        assert_eq!(r, e);
34654    }
34655
34656    #[simd_test(enable = "neon")]
34657    unsafe fn test_vmlal_n_u32() {
34658        let a: u64x2 = u64x2::new(0, 1);
34659        let b: u32x2 = u32x2::new(2, 2);
34660        let c: u32 = 3;
34661        let e: u64x2 = u64x2::new(6, 7);
34662        let r: u64x2 = transmute(vmlal_n_u32(transmute(a), transmute(b), c));
34663        assert_eq!(r, e);
34664    }
34665
34666    #[simd_test(enable = "neon")]
34667    unsafe fn test_vmlal_lane_s16() {
34668        let a: i32x4 = i32x4::new(0, 1, 2, 3);
34669        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34670        let c: i16x4 = i16x4::new(0, 3, 0, 0);
34671        let e: i32x4 = i32x4::new(6, 7, 8, 9);
34672        let r: i32x4 = transmute(vmlal_lane_s16::<1>(transmute(a), transmute(b), transmute(c)));
34673        assert_eq!(r, e);
34674    }
34675
34676    #[simd_test(enable = "neon")]
34677    unsafe fn test_vmlal_laneq_s16() {
34678        let a: i32x4 = i32x4::new(0, 1, 2, 3);
34679        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34680        let c: i16x8 = i16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
34681        let e: i32x4 = i32x4::new(6, 7, 8, 9);
34682        let r: i32x4 = transmute(vmlal_laneq_s16::<1>(transmute(a), transmute(b), transmute(c)));
34683        assert_eq!(r, e);
34684    }
34685
34686    #[simd_test(enable = "neon")]
34687    unsafe fn test_vmlal_lane_s32() {
34688        let a: i64x2 = i64x2::new(0, 1);
34689        let b: i32x2 = i32x2::new(2, 2);
34690        let c: i32x2 = i32x2::new(0, 3);
34691        let e: i64x2 = i64x2::new(6, 7);
34692        let r: i64x2 = transmute(vmlal_lane_s32::<1>(transmute(a), transmute(b), transmute(c)));
34693        assert_eq!(r, e);
34694    }
34695
34696    #[simd_test(enable = "neon")]
34697    unsafe fn test_vmlal_laneq_s32() {
34698        let a: i64x2 = i64x2::new(0, 1);
34699        let b: i32x2 = i32x2::new(2, 2);
34700        let c: i32x4 = i32x4::new(0, 3, 0, 0);
34701        let e: i64x2 = i64x2::new(6, 7);
34702        let r: i64x2 = transmute(vmlal_laneq_s32::<1>(transmute(a), transmute(b), transmute(c)));
34703        assert_eq!(r, e);
34704    }
34705
34706    #[simd_test(enable = "neon")]
34707    unsafe fn test_vmlal_lane_u16() {
34708        let a: u32x4 = u32x4::new(0, 1, 2, 3);
34709        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34710        let c: u16x4 = u16x4::new(0, 3, 0, 0);
34711        let e: u32x4 = u32x4::new(6, 7, 8, 9);
34712        let r: u32x4 = transmute(vmlal_lane_u16::<1>(transmute(a), transmute(b), transmute(c)));
34713        assert_eq!(r, e);
34714    }
34715
34716    #[simd_test(enable = "neon")]
34717    unsafe fn test_vmlal_laneq_u16() {
34718        let a: u32x4 = u32x4::new(0, 1, 2, 3);
34719        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34720        let c: u16x8 = u16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
34721        let e: u32x4 = u32x4::new(6, 7, 8, 9);
34722        let r: u32x4 = transmute(vmlal_laneq_u16::<1>(transmute(a), transmute(b), transmute(c)));
34723        assert_eq!(r, e);
34724    }
34725
34726    #[simd_test(enable = "neon")]
34727    unsafe fn test_vmlal_lane_u32() {
34728        let a: u64x2 = u64x2::new(0, 1);
34729        let b: u32x2 = u32x2::new(2, 2);
34730        let c: u32x2 = u32x2::new(0, 3);
34731        let e: u64x2 = u64x2::new(6, 7);
34732        let r: u64x2 = transmute(vmlal_lane_u32::<1>(transmute(a), transmute(b), transmute(c)));
34733        assert_eq!(r, e);
34734    }
34735
34736    #[simd_test(enable = "neon")]
34737    unsafe fn test_vmlal_laneq_u32() {
34738        let a: u64x2 = u64x2::new(0, 1);
34739        let b: u32x2 = u32x2::new(2, 2);
34740        let c: u32x4 = u32x4::new(0, 3, 0, 0);
34741        let e: u64x2 = u64x2::new(6, 7);
34742        let r: u64x2 = transmute(vmlal_laneq_u32::<1>(transmute(a), transmute(b), transmute(c)));
34743        assert_eq!(r, e);
34744    }
34745
34746    #[simd_test(enable = "neon")]
34747    unsafe fn test_vmls_s8() {
34748        let a: i8x8 = i8x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34749        let b: i8x8 = i8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34750        let c: i8x8 = i8x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34751        let e: i8x8 = i8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34752        let r: i8x8 = transmute(vmls_s8(transmute(a), transmute(b), transmute(c)));
34753        assert_eq!(r, e);
34754    }
34755
34756    #[simd_test(enable = "neon")]
34757    unsafe fn test_vmlsq_s8() {
34758        let a: i8x16 = i8x16::new(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21);
34759        let b: i8x16 = i8x16::new(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
34760        let c: i8x16 = i8x16::new(3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3);
34761        let e: i8x16 = i8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
34762        let r: i8x16 = transmute(vmlsq_s8(transmute(a), transmute(b), transmute(c)));
34763        assert_eq!(r, e);
34764    }
34765
34766    #[simd_test(enable = "neon")]
34767    unsafe fn test_vmls_s16() {
34768        let a: i16x4 = i16x4::new(6, 7, 8, 9);
34769        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34770        let c: i16x4 = i16x4::new(3, 3, 3, 3);
34771        let e: i16x4 = i16x4::new(0, 1, 2, 3);
34772        let r: i16x4 = transmute(vmls_s16(transmute(a), transmute(b), transmute(c)));
34773        assert_eq!(r, e);
34774    }
34775
34776    #[simd_test(enable = "neon")]
34777    unsafe fn test_vmlsq_s16() {
34778        let a: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34779        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34780        let c: i16x8 = i16x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34781        let e: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34782        let r: i16x8 = transmute(vmlsq_s16(transmute(a), transmute(b), transmute(c)));
34783        assert_eq!(r, e);
34784    }
34785
34786    #[simd_test(enable = "neon")]
34787    unsafe fn test_vmls_s32() {
34788        let a: i32x2 = i32x2::new(6, 7);
34789        let b: i32x2 = i32x2::new(2, 2);
34790        let c: i32x2 = i32x2::new(3, 3);
34791        let e: i32x2 = i32x2::new(0, 1);
34792        let r: i32x2 = transmute(vmls_s32(transmute(a), transmute(b), transmute(c)));
34793        assert_eq!(r, e);
34794    }
34795
34796    #[simd_test(enable = "neon")]
34797    unsafe fn test_vmlsq_s32() {
34798        let a: i32x4 = i32x4::new(6, 7, 8, 9);
34799        let b: i32x4 = i32x4::new(2, 2, 2, 2);
34800        let c: i32x4 = i32x4::new(3, 3, 3, 3);
34801        let e: i32x4 = i32x4::new(0, 1, 2, 3);
34802        let r: i32x4 = transmute(vmlsq_s32(transmute(a), transmute(b), transmute(c)));
34803        assert_eq!(r, e);
34804    }
34805
34806    #[simd_test(enable = "neon")]
34807    unsafe fn test_vmls_u8() {
34808        let a: u8x8 = u8x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34809        let b: u8x8 = u8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34810        let c: u8x8 = u8x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34811        let e: u8x8 = u8x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34812        let r: u8x8 = transmute(vmls_u8(transmute(a), transmute(b), transmute(c)));
34813        assert_eq!(r, e);
34814    }
34815
34816    #[simd_test(enable = "neon")]
34817    unsafe fn test_vmlsq_u8() {
34818        let a: u8x16 = u8x16::new(6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21);
34819        let b: u8x16 = u8x16::new(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2);
34820        let c: u8x16 = u8x16::new(3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3);
34821        let e: u8x16 = u8x16::new(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
34822        let r: u8x16 = transmute(vmlsq_u8(transmute(a), transmute(b), transmute(c)));
34823        assert_eq!(r, e);
34824    }
34825
34826    #[simd_test(enable = "neon")]
34827    unsafe fn test_vmls_u16() {
34828        let a: u16x4 = u16x4::new(6, 7, 8, 9);
34829        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34830        let c: u16x4 = u16x4::new(3, 3, 3, 3);
34831        let e: u16x4 = u16x4::new(0, 1, 2, 3);
34832        let r: u16x4 = transmute(vmls_u16(transmute(a), transmute(b), transmute(c)));
34833        assert_eq!(r, e);
34834    }
34835
34836    #[simd_test(enable = "neon")]
34837    unsafe fn test_vmlsq_u16() {
34838        let a: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34839        let b: u16x8 = u16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34840        let c: u16x8 = u16x8::new(3, 3, 3, 3, 3, 3, 3, 3);
34841        let e: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34842        let r: u16x8 = transmute(vmlsq_u16(transmute(a), transmute(b), transmute(c)));
34843        assert_eq!(r, e);
34844    }
34845
34846    #[simd_test(enable = "neon")]
34847    unsafe fn test_vmls_u32() {
34848        let a: u32x2 = u32x2::new(6, 7);
34849        let b: u32x2 = u32x2::new(2, 2);
34850        let c: u32x2 = u32x2::new(3, 3);
34851        let e: u32x2 = u32x2::new(0, 1);
34852        let r: u32x2 = transmute(vmls_u32(transmute(a), transmute(b), transmute(c)));
34853        assert_eq!(r, e);
34854    }
34855
34856    #[simd_test(enable = "neon")]
34857    unsafe fn test_vmlsq_u32() {
34858        let a: u32x4 = u32x4::new(6, 7, 8, 9);
34859        let b: u32x4 = u32x4::new(2, 2, 2, 2);
34860        let c: u32x4 = u32x4::new(3, 3, 3, 3);
34861        let e: u32x4 = u32x4::new(0, 1, 2, 3);
34862        let r: u32x4 = transmute(vmlsq_u32(transmute(a), transmute(b), transmute(c)));
34863        assert_eq!(r, e);
34864    }
34865
34866    #[simd_test(enable = "neon")]
34867    unsafe fn test_vmls_f32() {
34868        let a: f32x2 = f32x2::new(6., 7.);
34869        let b: f32x2 = f32x2::new(2., 2.);
34870        let c: f32x2 = f32x2::new(3., 3.);
34871        let e: f32x2 = f32x2::new(0., 1.);
34872        let r: f32x2 = transmute(vmls_f32(transmute(a), transmute(b), transmute(c)));
34873        assert_eq!(r, e);
34874    }
34875
34876    #[simd_test(enable = "neon")]
34877    unsafe fn test_vmlsq_f32() {
34878        let a: f32x4 = f32x4::new(6., 7., 8., 9.);
34879        let b: f32x4 = f32x4::new(2., 2., 2., 2.);
34880        let c: f32x4 = f32x4::new(3., 3., 3., 3.);
34881        let e: f32x4 = f32x4::new(0., 1., 2., 3.);
34882        let r: f32x4 = transmute(vmlsq_f32(transmute(a), transmute(b), transmute(c)));
34883        assert_eq!(r, e);
34884    }
34885
34886    #[simd_test(enable = "neon")]
34887    unsafe fn test_vmls_n_s16() {
34888        let a: i16x4 = i16x4::new(6, 7, 8, 9);
34889        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34890        let c: i16 = 3;
34891        let e: i16x4 = i16x4::new(0, 1, 2, 3);
34892        let r: i16x4 = transmute(vmls_n_s16(transmute(a), transmute(b), c));
34893        assert_eq!(r, e);
34894    }
34895
34896    #[simd_test(enable = "neon")]
34897    unsafe fn test_vmlsq_n_s16() {
34898        let a: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34899        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34900        let c: i16 = 3;
34901        let e: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34902        let r: i16x8 = transmute(vmlsq_n_s16(transmute(a), transmute(b), c));
34903        assert_eq!(r, e);
34904    }
34905
34906    #[simd_test(enable = "neon")]
34907    unsafe fn test_vmls_n_s32() {
34908        let a: i32x2 = i32x2::new(6, 7);
34909        let b: i32x2 = i32x2::new(2, 2);
34910        let c: i32 = 3;
34911        let e: i32x2 = i32x2::new(0, 1);
34912        let r: i32x2 = transmute(vmls_n_s32(transmute(a), transmute(b), c));
34913        assert_eq!(r, e);
34914    }
34915
34916    #[simd_test(enable = "neon")]
34917    unsafe fn test_vmlsq_n_s32() {
34918        let a: i32x4 = i32x4::new(6, 7, 8, 9);
34919        let b: i32x4 = i32x4::new(2, 2, 2, 2);
34920        let c: i32 = 3;
34921        let e: i32x4 = i32x4::new(0, 1, 2, 3);
34922        let r: i32x4 = transmute(vmlsq_n_s32(transmute(a), transmute(b), c));
34923        assert_eq!(r, e);
34924    }
34925
34926    #[simd_test(enable = "neon")]
34927    unsafe fn test_vmls_n_u16() {
34928        let a: u16x4 = u16x4::new(6, 7, 8, 9);
34929        let b: u16x4 = u16x4::new(2, 2, 2, 2);
34930        let c: u16 = 3;
34931        let e: u16x4 = u16x4::new(0, 1, 2, 3);
34932        let r: u16x4 = transmute(vmls_n_u16(transmute(a), transmute(b), c));
34933        assert_eq!(r, e);
34934    }
34935
34936    #[simd_test(enable = "neon")]
34937    unsafe fn test_vmlsq_n_u16() {
34938        let a: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
34939        let b: u16x8 = u16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
34940        let c: u16 = 3;
34941        let e: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
34942        let r: u16x8 = transmute(vmlsq_n_u16(transmute(a), transmute(b), c));
34943        assert_eq!(r, e);
34944    }
34945
34946    #[simd_test(enable = "neon")]
34947    unsafe fn test_vmls_n_u32() {
34948        let a: u32x2 = u32x2::new(6, 7);
34949        let b: u32x2 = u32x2::new(2, 2);
34950        let c: u32 = 3;
34951        let e: u32x2 = u32x2::new(0, 1);
34952        let r: u32x2 = transmute(vmls_n_u32(transmute(a), transmute(b), c));
34953        assert_eq!(r, e);
34954    }
34955
34956    #[simd_test(enable = "neon")]
34957    unsafe fn test_vmlsq_n_u32() {
34958        let a: u32x4 = u32x4::new(6, 7, 8, 9);
34959        let b: u32x4 = u32x4::new(2, 2, 2, 2);
34960        let c: u32 = 3;
34961        let e: u32x4 = u32x4::new(0, 1, 2, 3);
34962        let r: u32x4 = transmute(vmlsq_n_u32(transmute(a), transmute(b), c));
34963        assert_eq!(r, e);
34964    }
34965
34966    #[simd_test(enable = "neon")]
34967    unsafe fn test_vmls_n_f32() {
34968        let a: f32x2 = f32x2::new(6., 7.);
34969        let b: f32x2 = f32x2::new(2., 2.);
34970        let c: f32 = 3.;
34971        let e: f32x2 = f32x2::new(0., 1.);
34972        let r: f32x2 = transmute(vmls_n_f32(transmute(a), transmute(b), c));
34973        assert_eq!(r, e);
34974    }
34975
34976    #[simd_test(enable = "neon")]
34977    unsafe fn test_vmlsq_n_f32() {
34978        let a: f32x4 = f32x4::new(6., 7., 8., 9.);
34979        let b: f32x4 = f32x4::new(2., 2., 2., 2.);
34980        let c: f32 = 3.;
34981        let e: f32x4 = f32x4::new(0., 1., 2., 3.);
34982        let r: f32x4 = transmute(vmlsq_n_f32(transmute(a), transmute(b), c));
34983        assert_eq!(r, e);
34984    }
34985
34986    #[simd_test(enable = "neon")]
34987    unsafe fn test_vmls_lane_s16() {
34988        let a: i16x4 = i16x4::new(6, 7, 8, 9);
34989        let b: i16x4 = i16x4::new(2, 2, 2, 2);
34990        let c: i16x4 = i16x4::new(0, 3, 0, 0);
34991        let e: i16x4 = i16x4::new(0, 1, 2, 3);
34992        let r: i16x4 = transmute(vmls_lane_s16::<1>(transmute(a), transmute(b), transmute(c)));
34993        assert_eq!(r, e);
34994    }
34995
34996    #[simd_test(enable = "neon")]
34997    unsafe fn test_vmls_laneq_s16() {
34998        let a: i16x4 = i16x4::new(6, 7, 8, 9);
34999        let b: i16x4 = i16x4::new(2, 2, 2, 2);
35000        let c: i16x8 = i16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
35001        let e: i16x4 = i16x4::new(0, 1, 2, 3);
35002        let r: i16x4 = transmute(vmls_laneq_s16::<1>(transmute(a), transmute(b), transmute(c)));
35003        assert_eq!(r, e);
35004    }
35005
35006    #[simd_test(enable = "neon")]
35007    unsafe fn test_vmlsq_lane_s16() {
35008        let a: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
35009        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
35010        let c: i16x4 = i16x4::new(0, 3, 0, 0);
35011        let e: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
35012        let r: i16x8 = transmute(vmlsq_lane_s16::<1>(transmute(a), transmute(b), transmute(c)));
35013        assert_eq!(r, e);
35014    }
35015
35016    #[simd_test(enable = "neon")]
35017    unsafe fn test_vmlsq_laneq_s16() {
35018        let a: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
35019        let b: i16x8 = i16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
35020        let c: i16x8 = i16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
35021        let e: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
35022        let r: i16x8 = transmute(vmlsq_laneq_s16::<1>(transmute(a), transmute(b), transmute(c)));
35023        assert_eq!(r, e);
35024    }
35025
35026    #[simd_test(enable = "neon")]
35027    unsafe fn test_vmls_lane_s32() {
35028        let a: i32x2 = i32x2::new(6, 7);
35029        let b: i32x2 = i32x2::new(2, 2);
35030        let c: i32x2 = i32x2::new(0, 3);
35031        let e: i32x2 = i32x2::new(0, 1);
35032        let r: i32x2 = transmute(vmls_lane_s32::<1>(transmute(a), transmute(b), transmute(c)));
35033        assert_eq!(r, e);
35034    }
35035
35036    #[simd_test(enable = "neon")]
35037    unsafe fn test_vmls_laneq_s32() {
35038        let a: i32x2 = i32x2::new(6, 7);
35039        let b: i32x2 = i32x2::new(2, 2);
35040        let c: i32x4 = i32x4::new(0, 3, 0, 0);
35041        let e: i32x2 = i32x2::new(0, 1);
35042        let r: i32x2 = transmute(vmls_laneq_s32::<1>(transmute(a), transmute(b), transmute(c)));
35043        assert_eq!(r, e);
35044    }
35045
35046    #[simd_test(enable = "neon")]
35047    unsafe fn test_vmlsq_lane_s32() {
35048        let a: i32x4 = i32x4::new(6, 7, 8, 9);
35049        let b: i32x4 = i32x4::new(2, 2, 2, 2);
35050        let c: i32x2 = i32x2::new(0, 3);
35051        let e: i32x4 = i32x4::new(0, 1, 2, 3);
35052        let r: i32x4 = transmute(vmlsq_lane_s32::<1>(transmute(a), transmute(b), transmute(c)));
35053        assert_eq!(r, e);
35054    }
35055
35056    #[simd_test(enable = "neon")]
35057    unsafe fn test_vmlsq_laneq_s32() {
35058        let a: i32x4 = i32x4::new(6, 7, 8, 9);
35059        let b: i32x4 = i32x4::new(2, 2, 2, 2);
35060        let c: i32x4 = i32x4::new(0, 3, 0, 0);
35061        let e: i32x4 = i32x4::new(0, 1, 2, 3);
35062        let r: i32x4 = transmute(vmlsq_laneq_s32::<1>(transmute(a), transmute(b), transmute(c)));
35063        assert_eq!(r, e);
35064    }
35065
35066    #[simd_test(enable = "neon")]
35067    unsafe fn test_vmls_lane_u16() {
35068        let a: u16x4 = u16x4::new(6, 7, 8, 9);
35069        let b: u16x4 = u16x4::new(2, 2, 2, 2);
35070        let c: u16x4 = u16x4::new(0, 3, 0, 0);
35071        let e: u16x4 = u16x4::new(0, 1, 2, 3);
35072        let r: u16x4 = transmute(vmls_lane_u16::<1>(transmute(a), transmute(b), transmute(c)));
35073        assert_eq!(r, e);
35074    }
35075
35076    #[simd_test(enable = "neon")]
35077    unsafe fn test_vmls_laneq_u16() {
35078        let a: u16x4 = u16x4::new(6, 7, 8, 9);
35079        let b: u16x4 = u16x4::new(2, 2, 2, 2);
35080        let c: u16x8 = u16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
35081        let e: u16x4 = u16x4::new(0, 1, 2, 3);
35082        let r: u16x4 = transmute(vmls_laneq_u16::<1>(transmute(a), transmute(b), transmute(c)));
35083        assert_eq!(r, e);
35084    }
35085
35086    #[simd_test(enable = "neon")]
35087    unsafe fn test_vmlsq_lane_u16() {
35088        let a: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
35089        let b: u16x8 = u16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
35090        let c: u16x4 = u16x4::new(0, 3, 0, 0);
35091        let e: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
35092        let r: u16x8 = transmute(vmlsq_lane_u16::<1>(transmute(a), transmute(b), transmute(c)));
35093        assert_eq!(r, e);
35094    }
35095
35096    #[simd_test(enable = "neon")]
35097    unsafe fn test_vmlsq_laneq_u16() {
35098        let a: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
35099        let b: u16x8 = u16x8::new(2, 2, 2, 2, 2, 2, 2, 2);
35100        let c: u16x8 = u16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
35101        let e: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
35102        let r: u16x8 = transmute(vmlsq_laneq_u16::<1>(transmute(a), transmute(b), transmute(c)));
35103        assert_eq!(r, e);
35104    }
35105
35106    #[simd_test(enable = "neon")]
35107    unsafe fn test_vmls_lane_u32() {
35108        let a: u32x2 = u32x2::new(6, 7);
35109        let b: u32x2 = u32x2::new(2, 2);
35110        let c: u32x2 = u32x2::new(0, 3);
35111        let e: u32x2 = u32x2::new(0, 1);
35112        let r: u32x2 = transmute(vmls_lane_u32::<1>(transmute(a), transmute(b), transmute(c)));
35113        assert_eq!(r, e);
35114    }
35115
35116    #[simd_test(enable = "neon")]
35117    unsafe fn test_vmls_laneq_u32() {
35118        let a: u32x2 = u32x2::new(6, 7);
35119        let b: u32x2 = u32x2::new(2, 2);
35120        let c: u32x4 = u32x4::new(0, 3, 0, 0);
35121        let e: u32x2 = u32x2::new(0, 1);
35122        let r: u32x2 = transmute(vmls_laneq_u32::<1>(transmute(a), transmute(b), transmute(c)));
35123        assert_eq!(r, e);
35124    }
35125
35126    #[simd_test(enable = "neon")]
35127    unsafe fn test_vmlsq_lane_u32() {
35128        let a: u32x4 = u32x4::new(6, 7, 8, 9);
35129        let b: u32x4 = u32x4::new(2, 2, 2, 2);
35130        let c: u32x2 = u32x2::new(0, 3);
35131        let e: u32x4 = u32x4::new(0, 1, 2, 3);
35132        let r: u32x4 = transmute(vmlsq_lane_u32::<1>(transmute(a), transmute(b), transmute(c)));
35133        assert_eq!(r, e);
35134    }
35135
35136    #[simd_test(enable = "neon")]
35137    unsafe fn test_vmlsq_laneq_u32() {
35138        let a: u32x4 = u32x4::new(6, 7, 8, 9);
35139        let b: u32x4 = u32x4::new(2, 2, 2, 2);
35140        let c: u32x4 = u32x4::new(0, 3, 0, 0);
35141        let e: u32x4 = u32x4::new(0, 1, 2, 3);
35142        let r: u32x4 = transmute(vmlsq_laneq_u32::<1>(transmute(a), transmute(b), transmute(c)));
35143        assert_eq!(r, e);
35144    }
35145
35146    #[simd_test(enable = "neon")]
35147    unsafe fn test_vmls_lane_f32() {
35148        let a: f32x2 = f32x2::new(6., 7.);
35149        let b: f32x2 = f32x2::new(2., 2.);
35150        let c: f32x2 = f32x2::new(0., 3.);
35151        let e: f32x2 = f32x2::new(0., 1.);
35152        let r: f32x2 = transmute(vmls_lane_f32::<1>(transmute(a), transmute(b), transmute(c)));
35153        assert_eq!(r, e);
35154    }
35155
35156    #[simd_test(enable = "neon")]
35157    unsafe fn test_vmls_laneq_f32() {
35158        let a: f32x2 = f32x2::new(6., 7.);
35159        let b: f32x2 = f32x2::new(2., 2.);
35160        let c: f32x4 = f32x4::new(0., 3., 0., 0.);
35161        let e: f32x2 = f32x2::new(0., 1.);
35162        let r: f32x2 = transmute(vmls_laneq_f32::<1>(transmute(a), transmute(b), transmute(c)));
35163        assert_eq!(r, e);
35164    }
35165
35166    #[simd_test(enable = "neon")]
35167    unsafe fn test_vmlsq_lane_f32() {
35168        let a: f32x4 = f32x4::new(6., 7., 8., 9.);
35169        let b: f32x4 = f32x4::new(2., 2., 2., 2.);
35170        let c: f32x2 = f32x2::new(0., 3.);
35171        let e: f32x4 = f32x4::new(0., 1., 2., 3.);
35172        let r: f32x4 = transmute(vmlsq_lane_f32::<1>(transmute(a), transmute(b), transmute(c)));
35173        assert_eq!(r, e);
35174    }
35175
35176    #[simd_test(enable = "neon")]
35177    unsafe fn test_vmlsq_laneq_f32() {
35178        let a: f32x4 = f32x4::new(6., 7., 8., 9.);
35179        let b: f32x4 = f32x4::new(2., 2., 2., 2.);
35180        let c: f32x4 = f32x4::new(0., 3., 0., 0.);
35181        let e: f32x4 = f32x4::new(0., 1., 2., 3.);
35182        let r: f32x4 = transmute(vmlsq_laneq_f32::<1>(transmute(a), transmute(b), transmute(c)));
35183        assert_eq!(r, e);
35184    }
35185
35186    #[simd_test(enable = "neon")]
35187    unsafe fn test_vmlsl_s8() {
35188        let a: i16x8 = i16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
35189        let b: i8x8 = i8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
35190        let c: i8x8 = i8x8::new(3, 3, 3, 3, 3, 3, 3, 3);
35191        let e: i16x8 = i16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
35192        let r: i16x8 = transmute(vmlsl_s8(transmute(a), transmute(b), transmute(c)));
35193        assert_eq!(r, e);
35194    }
35195
35196    #[simd_test(enable = "neon")]
35197    unsafe fn test_vmlsl_s16() {
35198        let a: i32x4 = i32x4::new(6, 7, 8, 9);
35199        let b: i16x4 = i16x4::new(2, 2, 2, 2);
35200        let c: i16x4 = i16x4::new(3, 3, 3, 3);
35201        let e: i32x4 = i32x4::new(0, 1, 2, 3);
35202        let r: i32x4 = transmute(vmlsl_s16(transmute(a), transmute(b), transmute(c)));
35203        assert_eq!(r, e);
35204    }
35205
35206    #[simd_test(enable = "neon")]
35207    unsafe fn test_vmlsl_s32() {
35208        let a: i64x2 = i64x2::new(6, 7);
35209        let b: i32x2 = i32x2::new(2, 2);
35210        let c: i32x2 = i32x2::new(3, 3);
35211        let e: i64x2 = i64x2::new(0, 1);
35212        let r: i64x2 = transmute(vmlsl_s32(transmute(a), transmute(b), transmute(c)));
35213        assert_eq!(r, e);
35214    }
35215
35216    #[simd_test(enable = "neon")]
35217    unsafe fn test_vmlsl_u8() {
35218        let a: u16x8 = u16x8::new(6, 7, 8, 9, 10, 11, 12, 13);
35219        let b: u8x8 = u8x8::new(2, 2, 2, 2, 2, 2, 2, 2);
35220        let c: u8x8 = u8x8::new(3, 3, 3, 3, 3, 3, 3, 3);
35221        let e: u16x8 = u16x8::new(0, 1, 2, 3, 4, 5, 6, 7);
35222        let r: u16x8 = transmute(vmlsl_u8(transmute(a), transmute(b), transmute(c)));
35223        assert_eq!(r, e);
35224    }
35225
35226    #[simd_test(enable = "neon")]
35227    unsafe fn test_vmlsl_u16() {
35228        let a: u32x4 = u32x4::new(6, 7, 8, 9);
35229        let b: u16x4 = u16x4::new(2, 2, 2, 2);
35230        let c: u16x4 = u16x4::new(3, 3, 3, 3);
35231        let e: u32x4 = u32x4::new(0, 1, 2, 3);
35232        let r: u32x4 = transmute(vmlsl_u16(transmute(a), transmute(b), transmute(c)));
35233        assert_eq!(r, e);
35234    }
35235
35236    #[simd_test(enable = "neon")]
35237    unsafe fn test_vmlsl_u32() {
35238        let a: u64x2 = u64x2::new(6, 7);
35239        let b: u32x2 = u32x2::new(2, 2);
35240        let c: u32x2 = u32x2::new(3, 3);
35241        let e: u64x2 = u64x2::new(0, 1);
35242        let r: u64x2 = transmute(vmlsl_u32(transmute(a), transmute(b), transmute(c)));
35243        assert_eq!(r, e);
35244    }
35245
35246    #[simd_test(enable = "neon")]
35247    unsafe fn test_vmlsl_n_s16() {
35248        let a: i32x4 = i32x4::new(6, 7, 8, 9);
35249        let b: i16x4 = i16x4::new(2, 2, 2, 2);
35250        let c: i16 = 3;
35251        let e: i32x4 = i32x4::new(0, 1, 2, 3);
35252        let r: i32x4 = transmute(vmlsl_n_s16(transmute(a), transmute(b), c));
35253        assert_eq!(r, e);
35254    }
35255
35256    #[simd_test(enable = "neon")]
35257    unsafe fn test_vmlsl_n_s32() {
35258        let a: i64x2 = i64x2::new(6, 7);
35259        let b: i32x2 = i32x2::new(2, 2);
35260        let c: i32 = 3;
35261        let e: i64x2 = i64x2::new(0, 1);
35262        let r: i64x2 = transmute(vmlsl_n_s32(transmute(a), transmute(b), c));
35263        assert_eq!(r, e);
35264    }
35265
35266    #[simd_test(enable = "neon")]
35267    unsafe fn test_vmlsl_n_u16() {
35268        let a: u32x4 = u32x4::new(6, 7, 8, 9);
35269        let b: u16x4 = u16x4::new(2, 2, 2, 2);
35270        let c: u16 = 3;
35271        let e: u32x4 = u32x4::new(0, 1, 2, 3);
35272        let r: u32x4 = transmute(vmlsl_n_u16(transmute(a), transmute(b), c));
35273        assert_eq!(r, e);
35274    }
35275
35276    #[simd_test(enable = "neon")]
35277    unsafe fn test_vmlsl_n_u32() {
35278        let a: u64x2 = u64x2::new(6, 7);
35279        let b: u32x2 = u32x2::new(2, 2);
35280        let c: u32 = 3;
35281        let e: u64x2 = u64x2::new(0, 1);
35282        let r: u64x2 = transmute(vmlsl_n_u32(transmute(a), transmute(b), c));
35283        assert_eq!(r, e);
35284    }
35285
35286    #[simd_test(enable = "neon")]
35287    unsafe fn test_vmlsl_lane_s16() {
35288        let a: i32x4 = i32x4::new(6, 7, 8, 9);
35289        let b: i16x4 = i16x4::new(2, 2, 2, 2);
35290        let c: i16x4 = i16x4::new(0, 3, 0, 0);
35291        let e: i32x4 = i32x4::new(0, 1, 2, 3);
35292        let r: i32x4 = transmute(vmlsl_lane_s16::<1>(transmute(a), transmute(b), transmute(c)));
35293        assert_eq!(r, e);
35294    }
35295
35296    #[simd_test(enable = "neon")]
35297    unsafe fn test_vmlsl_laneq_s16() {
35298        let a: i32x4 = i32x4::new(6, 7, 8, 9);
35299        let b: i16x4 = i16x4::new(2, 2, 2, 2);
35300        let c: i16x8 = i16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
35301        let e: i32x4 = i32x4::new(0, 1, 2, 3);
35302        let r: i32x4 = transmute(vmlsl_laneq_s16::<1>(transmute(a), transmute(b), transmute(c)));
35303        assert_eq!(r, e);
35304    }
35305
35306    #[simd_test(enable = "neon")]
35307    unsafe fn test_vmlsl_lane_s32() {
35308        let a: i64x2 = i64x2::new(6, 7);
35309        let b: i32x2 = i32x2::new(2, 2);
35310        let c: i32x2 = i32x2::new(0, 3);
35311        let e: i64x2 = i64x2::new(0, 1);
35312        let r: i64x2 = transmute(vmlsl_lane_s32::<1>(transmute(a), transmute(b), transmute(c)));
35313        assert_eq!(r, e);
35314    }
35315
35316    #[simd_test(enable = "neon")]
35317    unsafe fn test_vmlsl_laneq_s32() {
35318        let a: i64x2 = i64x2::new(6, 7);
35319        let b: i32x2 = i32x2::new(2, 2);
35320        let c: i32x4 = i32x4::new(0, 3, 0, 0);
35321        let e: i64x2 = i64x2::new(0, 1);
35322        let r: i64x2 = transmute(vmlsl_laneq_s32::<1>(transmute(a), transmute(b), transmute(c)));
35323        assert_eq!(r, e);
35324    }
35325
35326    #[simd_test(enable = "neon")]
35327    unsafe fn test_vmlsl_lane_u16() {
35328        let a: u32x4 = u32x4::new(6, 7, 8, 9);
35329        let b: u16x4 = u16x4::new(2, 2, 2, 2);
35330        let c: u16x4 = u16x4::new(0, 3, 0, 0);
35331        let e: u32x4 = u32x4::new(0, 1, 2, 3);
35332        let r: u32x4 = transmute(vmlsl_lane_u16::<1>(transmute(a), transmute(b), transmute(c)));
35333        assert_eq!(r, e);
35334    }
35335
35336    #[simd_test(enable = "neon")]
35337    unsafe fn test_vmlsl_laneq_u16() {
35338        let a: u32x4 = u32x4::new(6, 7, 8, 9);
35339        let b: u16x4 = u16x4::new(2, 2, 2, 2);
35340        let c: u16x8 = u16x8::new(0, 3, 0, 0, 0, 0, 0, 0);
35341        let e: u32x4 = u32x4::new(0, 1, 2, 3);
35342        let r: u32x4 = transmute(vmlsl_laneq_u16::<1>(transmute(a), transmute(b), transmute(c)));
35343        assert_eq!(r, e);
35344    }
35345
35346    #[simd_test(enable = "neon")]
35347    unsafe fn test_vmlsl_lane_u32() {
35348        let a: u64x2 = u64x2::new(6, 7);
35349        let b: u32x2 = u32x2::new(2, 2);
35350        let c: u32x2 = u32x2::new(0, 3);
35351        let e: u64x2 = u64x2::new(0, 1);
35352        let r: u64x2 = transmute(vmlsl_lane_u32::<1>(transmute(a), transmute(b), transmute(c)));
35353        assert_eq!(r, e);
35354    }
35355
35356    #[simd_test(enable = "neon")]
35357    unsafe fn test_vmlsl_laneq_u32() {
35358        let a: u64x2 = u64x2::new(6, 7);
35359        let b: u32x2 = u32x2::new(2, 2);
35360        let c: u32x4 = u32x4::new(0, 3, 0, 0);
35361        let e: u64x2 = u64x2::new(0, 1);
35362        let r: u64x2 = transmute(vmlsl_laneq_u32::<1>(transmute(a), transmute(b), transmute(c)));
35363        assert_eq!(r, e);
35364    }
35365
35366    #[simd_test(enable = "neon")]
35367    unsafe fn test_vneg_s8() {
35368        let a: i8x8 = i8x8::new(0, 1, -1, 2, -2, 3, -3, 4);
35369        let e: i8x8 = i8x8::new(0, -1, 1, -2, 2, -3, 3, -4);
35370        let r: i8x8 = transmute(vneg_s8(transmute(a)));
35371        assert_eq!(r, e);
35372    }
35373
35374    #[simd_test(enable = "neon")]
35375    unsafe fn test_vnegq_s8() {
35376        let a: i8x16 = i8x16::new(0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6, 7, -7, 8);
35377        let e: i8x16 = i8x16::new(0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5, -6, 6, -7, 7, -8);
35378        let r: i8x16 = transmute(vnegq_s8(transmute(a)));
35379        assert_eq!(r, e);
35380    }
35381
35382    #[simd_test(enable = "neon")]
35383    unsafe fn test_vneg_s16() {
35384        let a: i16x4 = i16x4::new(0, 1, -1, 2);
35385        let e: i16x4 = i16x4::new(0, -1, 1, -2);
35386        let r: i16x4 = transmute(vneg_s16(transmute(a)));
35387        assert_eq!(r, e);
35388    }
35389
35390    #[simd_test(enable = "neon")]
35391    unsafe fn test_vnegq_s16() {
35392        let a: i16x8 = i16x8::new(0, 1, -1, 2, -2, 3, -3, 4);
35393        let e: i16x8 = i16x8::new(0, -1, 1, -2, 2, -3, 3, -4);
35394        let r: i16x8 = transmute(vnegq_s16(transmute(a)));
35395        assert_eq!(r, e);
35396    }
35397
35398    #[simd_test(enable = "neon")]
35399    unsafe fn test_vneg_s32() {
35400        let a: i32x2 = i32x2::new(0, 1);
35401        let e: i32x2 = i32x2::new(0, -1);
35402        let r: i32x2 = transmute(vneg_s32(transmute(a)));
35403        assert_eq!(r, e);
35404    }
35405
35406    #[simd_test(enable = "neon")]
35407    unsafe fn test_vnegq_s32() {
35408        let a: i32x4 = i32x4::new(0, 1, -1, 2);
35409        let e: i32x4 = i32x4::new(0, -1, 1, -2);
35410        let r: i32x4 = transmute(vnegq_s32(transmute(a)));
35411        assert_eq!(r, e);
35412    }
35413
35414    #[simd_test(enable = "neon")]
35415    unsafe fn test_vneg_f32() {
35416        let a: f32x2 = f32x2::new(0., 1.);
35417        let e: f32x2 = f32x2::new(0., -1.);
35418        let r: f32x2 = transmute(vneg_f32(transmute(a)));
35419        assert_eq!(r, e);
35420    }
35421
35422    #[simd_test(enable = "neon")]
35423    unsafe fn test_vnegq_f32() {
35424        let a: f32x4 = f32x4::new(0., 1., -1., 2.);
35425        let e: f32x4 = f32x4::new(0., -1., 1., -2.);
35426        let r: f32x4 = transmute(vnegq_f32(transmute(a)));
35427        assert_eq!(r, e);
35428    }
35429
35430    #[simd_test(enable = "neon")]
35431    unsafe fn test_vqneg_s8() {
35432        let a: i8x8 = i8x8::new(-128, 0, 1, -1, 2, -2, 3, -3);
35433        let e: i8x8 = i8x8::new(0x7F, 0, -1, 1, -2, 2, -3, 3);
35434        let r: i8x8 = transmute(vqneg_s8(transmute(a)));
35435        assert_eq!(r, e);
35436    }
35437
35438    #[simd_test(enable = "neon")]
35439    unsafe fn test_vqnegq_s8() {
35440        let a: i8x16 = i8x16::new(-128, 0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, 6, -6, 7, -7);
35441        let e: i8x16 = i8x16::new(0x7F, 0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5, -6, 6, -7, 7);
35442        let r: i8x16 = transmute(vqnegq_s8(transmute(a)));
35443        assert_eq!(r, e);
35444    }
35445
35446    #[simd_test(enable = "neon")]
35447    unsafe fn test_vqneg_s16() {
35448        let a: i16x4 = i16x4::new(-32768, 0, 1, -1);
35449        let e: i16x4 = i16x4::new(0x7F_FF, 0, -1, 1);
35450        let r: i16x4 = transmute(vqneg_s16(transmute(a)));
35451        assert_eq!(r, e);
35452    }
35453
35454    #[simd_test(enable = "neon")]
35455    unsafe fn test_vqnegq_s16() {
35456        let a: i16x8 = i16x8::new(-32768, 0, 1, -1, 2, -2, 3, -3);
35457        let e: i16x8 = i16x8::new(0x7F_FF, 0, -1, 1, -2, 2, -3, 3);
35458        let r: i16x8 = transmute(vqnegq_s16(transmute(a)));
35459        assert_eq!(r, e);
35460    }
35461
35462    #[simd_test(enable = "neon")]
35463    unsafe fn test_vqneg_s32() {
35464        let a: i32x2 = i32x2::new(-2147483648, 0);
35465        let e: i32x2 = i32x2::new(0x7F_FF_FF_FF, 0);
35466        let r: i32x2 = transmute(vqneg_s32(transmute(a)));
35467        assert_eq!(r, e);
35468    }
35469
35470    #[simd_test(enable = "neon")]
35471    unsafe fn test_vqnegq_s32() {
35472        let a: i32x4 = i32x4::new(-2147483648, 0, 1, -1);
35473        let e: i32x4 = i32x4::new(0x7F_FF_FF_FF, 0, -1, 1);
35474        let r: i32x4 = transmute(vqnegq_s32(transmute(a)));
35475        assert_eq!(r, e);
35476    }
35477
35478    #[simd_test(enable = "neon")]
35479    unsafe fn test_vqsub_u8() {
35480        let a: u8x8 = u8x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35481        let b: u8x8 = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35482        let e: u8x8 = u8x8::new(41, 40, 39, 38, 37, 36, 35, 34);
35483        let r: u8x8 = transmute(vqsub_u8(transmute(a), transmute(b)));
35484        assert_eq!(r, e);
35485    }
35486
35487    #[simd_test(enable = "neon")]
35488    unsafe fn test_vqsubq_u8() {
35489        let a: u8x16 = u8x16::new(42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42);
35490        let b: u8x16 = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
35491        let e: u8x16 = u8x16::new(41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26);
35492        let r: u8x16 = transmute(vqsubq_u8(transmute(a), transmute(b)));
35493        assert_eq!(r, e);
35494    }
35495
35496    #[simd_test(enable = "neon")]
35497    unsafe fn test_vqsub_u16() {
35498        let a: u16x4 = u16x4::new(42, 42, 42, 42);
35499        let b: u16x4 = u16x4::new(1, 2, 3, 4);
35500        let e: u16x4 = u16x4::new(41, 40, 39, 38);
35501        let r: u16x4 = transmute(vqsub_u16(transmute(a), transmute(b)));
35502        assert_eq!(r, e);
35503    }
35504
35505    #[simd_test(enable = "neon")]
35506    unsafe fn test_vqsubq_u16() {
35507        let a: u16x8 = u16x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35508        let b: u16x8 = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35509        let e: u16x8 = u16x8::new(41, 40, 39, 38, 37, 36, 35, 34);
35510        let r: u16x8 = transmute(vqsubq_u16(transmute(a), transmute(b)));
35511        assert_eq!(r, e);
35512    }
35513
35514    #[simd_test(enable = "neon")]
35515    unsafe fn test_vqsub_u32() {
35516        let a: u32x2 = u32x2::new(42, 42);
35517        let b: u32x2 = u32x2::new(1, 2);
35518        let e: u32x2 = u32x2::new(41, 40);
35519        let r: u32x2 = transmute(vqsub_u32(transmute(a), transmute(b)));
35520        assert_eq!(r, e);
35521    }
35522
35523    #[simd_test(enable = "neon")]
35524    unsafe fn test_vqsubq_u32() {
35525        let a: u32x4 = u32x4::new(42, 42, 42, 42);
35526        let b: u32x4 = u32x4::new(1, 2, 3, 4);
35527        let e: u32x4 = u32x4::new(41, 40, 39, 38);
35528        let r: u32x4 = transmute(vqsubq_u32(transmute(a), transmute(b)));
35529        assert_eq!(r, e);
35530    }
35531
35532    #[simd_test(enable = "neon")]
35533    unsafe fn test_vqsub_u64() {
35534        let a: u64x1 = u64x1::new(42);
35535        let b: u64x1 = u64x1::new(1);
35536        let e: u64x1 = u64x1::new(41);
35537        let r: u64x1 = transmute(vqsub_u64(transmute(a), transmute(b)));
35538        assert_eq!(r, e);
35539    }
35540
35541    #[simd_test(enable = "neon")]
35542    unsafe fn test_vqsubq_u64() {
35543        let a: u64x2 = u64x2::new(42, 42);
35544        let b: u64x2 = u64x2::new(1, 2);
35545        let e: u64x2 = u64x2::new(41, 40);
35546        let r: u64x2 = transmute(vqsubq_u64(transmute(a), transmute(b)));
35547        assert_eq!(r, e);
35548    }
35549
35550    #[simd_test(enable = "neon")]
35551    unsafe fn test_vqsub_s8() {
35552        let a: i8x8 = i8x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35553        let b: i8x8 = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35554        let e: i8x8 = i8x8::new(41, 40, 39, 38, 37, 36, 35, 34);
35555        let r: i8x8 = transmute(vqsub_s8(transmute(a), transmute(b)));
35556        assert_eq!(r, e);
35557    }
35558
35559    #[simd_test(enable = "neon")]
35560    unsafe fn test_vqsubq_s8() {
35561        let a: i8x16 = i8x16::new(42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42);
35562        let b: i8x16 = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
35563        let e: i8x16 = i8x16::new(41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26);
35564        let r: i8x16 = transmute(vqsubq_s8(transmute(a), transmute(b)));
35565        assert_eq!(r, e);
35566    }
35567
35568    #[simd_test(enable = "neon")]
35569    unsafe fn test_vqsub_s16() {
35570        let a: i16x4 = i16x4::new(42, 42, 42, 42);
35571        let b: i16x4 = i16x4::new(1, 2, 3, 4);
35572        let e: i16x4 = i16x4::new(41, 40, 39, 38);
35573        let r: i16x4 = transmute(vqsub_s16(transmute(a), transmute(b)));
35574        assert_eq!(r, e);
35575    }
35576
35577    #[simd_test(enable = "neon")]
35578    unsafe fn test_vqsubq_s16() {
35579        let a: i16x8 = i16x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35580        let b: i16x8 = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35581        let e: i16x8 = i16x8::new(41, 40, 39, 38, 37, 36, 35, 34);
35582        let r: i16x8 = transmute(vqsubq_s16(transmute(a), transmute(b)));
35583        assert_eq!(r, e);
35584    }
35585
35586    #[simd_test(enable = "neon")]
35587    unsafe fn test_vqsub_s32() {
35588        let a: i32x2 = i32x2::new(42, 42);
35589        let b: i32x2 = i32x2::new(1, 2);
35590        let e: i32x2 = i32x2::new(41, 40);
35591        let r: i32x2 = transmute(vqsub_s32(transmute(a), transmute(b)));
35592        assert_eq!(r, e);
35593    }
35594
35595    #[simd_test(enable = "neon")]
35596    unsafe fn test_vqsubq_s32() {
35597        let a: i32x4 = i32x4::new(42, 42, 42, 42);
35598        let b: i32x4 = i32x4::new(1, 2, 3, 4);
35599        let e: i32x4 = i32x4::new(41, 40, 39, 38);
35600        let r: i32x4 = transmute(vqsubq_s32(transmute(a), transmute(b)));
35601        assert_eq!(r, e);
35602    }
35603
35604    #[simd_test(enable = "neon")]
35605    unsafe fn test_vqsub_s64() {
35606        let a: i64x1 = i64x1::new(42);
35607        let b: i64x1 = i64x1::new(1);
35608        let e: i64x1 = i64x1::new(41);
35609        let r: i64x1 = transmute(vqsub_s64(transmute(a), transmute(b)));
35610        assert_eq!(r, e);
35611    }
35612
35613    #[simd_test(enable = "neon")]
35614    unsafe fn test_vqsubq_s64() {
35615        let a: i64x2 = i64x2::new(42, 42);
35616        let b: i64x2 = i64x2::new(1, 2);
35617        let e: i64x2 = i64x2::new(41, 40);
35618        let r: i64x2 = transmute(vqsubq_s64(transmute(a), transmute(b)));
35619        assert_eq!(r, e);
35620    }
35621
35622    #[simd_test(enable = "neon")]
35623    unsafe fn test_vhadd_u8() {
35624        let a: u8x8 = u8x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35625        let b: u8x8 = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35626        let e: u8x8 = u8x8::new(21, 22, 22, 23, 23, 24, 24, 25);
35627        let r: u8x8 = transmute(vhadd_u8(transmute(a), transmute(b)));
35628        assert_eq!(r, e);
35629    }
35630
35631    #[simd_test(enable = "neon")]
35632    unsafe fn test_vhaddq_u8() {
35633        let a: u8x16 = u8x16::new(42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42);
35634        let b: u8x16 = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
35635        let e: u8x16 = u8x16::new(21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29);
35636        let r: u8x16 = transmute(vhaddq_u8(transmute(a), transmute(b)));
35637        assert_eq!(r, e);
35638    }
35639
35640    #[simd_test(enable = "neon")]
35641    unsafe fn test_vhadd_u16() {
35642        let a: u16x4 = u16x4::new(42, 42, 42, 42);
35643        let b: u16x4 = u16x4::new(1, 2, 3, 4);
35644        let e: u16x4 = u16x4::new(21, 22, 22, 23);
35645        let r: u16x4 = transmute(vhadd_u16(transmute(a), transmute(b)));
35646        assert_eq!(r, e);
35647    }
35648
35649    #[simd_test(enable = "neon")]
35650    unsafe fn test_vhaddq_u16() {
35651        let a: u16x8 = u16x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35652        let b: u16x8 = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35653        let e: u16x8 = u16x8::new(21, 22, 22, 23, 23, 24, 24, 25);
35654        let r: u16x8 = transmute(vhaddq_u16(transmute(a), transmute(b)));
35655        assert_eq!(r, e);
35656    }
35657
35658    #[simd_test(enable = "neon")]
35659    unsafe fn test_vhadd_u32() {
35660        let a: u32x2 = u32x2::new(42, 42);
35661        let b: u32x2 = u32x2::new(1, 2);
35662        let e: u32x2 = u32x2::new(21, 22);
35663        let r: u32x2 = transmute(vhadd_u32(transmute(a), transmute(b)));
35664        assert_eq!(r, e);
35665    }
35666
35667    #[simd_test(enable = "neon")]
35668    unsafe fn test_vhaddq_u32() {
35669        let a: u32x4 = u32x4::new(42, 42, 42, 42);
35670        let b: u32x4 = u32x4::new(1, 2, 3, 4);
35671        let e: u32x4 = u32x4::new(21, 22, 22, 23);
35672        let r: u32x4 = transmute(vhaddq_u32(transmute(a), transmute(b)));
35673        assert_eq!(r, e);
35674    }
35675
35676    #[simd_test(enable = "neon")]
35677    unsafe fn test_vhadd_s8() {
35678        let a: i8x8 = i8x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35679        let b: i8x8 = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35680        let e: i8x8 = i8x8::new(21, 22, 22, 23, 23, 24, 24, 25);
35681        let r: i8x8 = transmute(vhadd_s8(transmute(a), transmute(b)));
35682        assert_eq!(r, e);
35683    }
35684
35685    #[simd_test(enable = "neon")]
35686    unsafe fn test_vhaddq_s8() {
35687        let a: i8x16 = i8x16::new(42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42);
35688        let b: i8x16 = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
35689        let e: i8x16 = i8x16::new(21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29);
35690        let r: i8x16 = transmute(vhaddq_s8(transmute(a), transmute(b)));
35691        assert_eq!(r, e);
35692    }
35693
35694    #[simd_test(enable = "neon")]
35695    unsafe fn test_vhadd_s16() {
35696        let a: i16x4 = i16x4::new(42, 42, 42, 42);
35697        let b: i16x4 = i16x4::new(1, 2, 3, 4);
35698        let e: i16x4 = i16x4::new(21, 22, 22, 23);
35699        let r: i16x4 = transmute(vhadd_s16(transmute(a), transmute(b)));
35700        assert_eq!(r, e);
35701    }
35702
35703    #[simd_test(enable = "neon")]
35704    unsafe fn test_vhaddq_s16() {
35705        let a: i16x8 = i16x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35706        let b: i16x8 = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35707        let e: i16x8 = i16x8::new(21, 22, 22, 23, 23, 24, 24, 25);
35708        let r: i16x8 = transmute(vhaddq_s16(transmute(a), transmute(b)));
35709        assert_eq!(r, e);
35710    }
35711
35712    #[simd_test(enable = "neon")]
35713    unsafe fn test_vhadd_s32() {
35714        let a: i32x2 = i32x2::new(42, 42);
35715        let b: i32x2 = i32x2::new(1, 2);
35716        let e: i32x2 = i32x2::new(21, 22);
35717        let r: i32x2 = transmute(vhadd_s32(transmute(a), transmute(b)));
35718        assert_eq!(r, e);
35719    }
35720
35721    #[simd_test(enable = "neon")]
35722    unsafe fn test_vhaddq_s32() {
35723        let a: i32x4 = i32x4::new(42, 42, 42, 42);
35724        let b: i32x4 = i32x4::new(1, 2, 3, 4);
35725        let e: i32x4 = i32x4::new(21, 22, 22, 23);
35726        let r: i32x4 = transmute(vhaddq_s32(transmute(a), transmute(b)));
35727        assert_eq!(r, e);
35728    }
35729
35730    #[simd_test(enable = "neon")]
35731    unsafe fn test_vrhadd_u8() {
35732        let a: u8x8 = u8x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35733        let b: u8x8 = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35734        let e: u8x8 = u8x8::new(22, 22, 23, 23, 24, 24, 25, 25);
35735        let r: u8x8 = transmute(vrhadd_u8(transmute(a), transmute(b)));
35736        assert_eq!(r, e);
35737    }
35738
35739    #[simd_test(enable = "neon")]
35740    unsafe fn test_vrhaddq_u8() {
35741        let a: u8x16 = u8x16::new(42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42);
35742        let b: u8x16 = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
35743        let e: u8x16 = u8x16::new(22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29);
35744        let r: u8x16 = transmute(vrhaddq_u8(transmute(a), transmute(b)));
35745        assert_eq!(r, e);
35746    }
35747
35748    #[simd_test(enable = "neon")]
35749    unsafe fn test_vrhadd_u16() {
35750        let a: u16x4 = u16x4::new(42, 42, 42, 42);
35751        let b: u16x4 = u16x4::new(1, 2, 3, 4);
35752        let e: u16x4 = u16x4::new(22, 22, 23, 23);
35753        let r: u16x4 = transmute(vrhadd_u16(transmute(a), transmute(b)));
35754        assert_eq!(r, e);
35755    }
35756
35757    #[simd_test(enable = "neon")]
35758    unsafe fn test_vrhaddq_u16() {
35759        let a: u16x8 = u16x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35760        let b: u16x8 = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35761        let e: u16x8 = u16x8::new(22, 22, 23, 23, 24, 24, 25, 25);
35762        let r: u16x8 = transmute(vrhaddq_u16(transmute(a), transmute(b)));
35763        assert_eq!(r, e);
35764    }
35765
35766    #[simd_test(enable = "neon")]
35767    unsafe fn test_vrhadd_u32() {
35768        let a: u32x2 = u32x2::new(42, 42);
35769        let b: u32x2 = u32x2::new(1, 2);
35770        let e: u32x2 = u32x2::new(22, 22);
35771        let r: u32x2 = transmute(vrhadd_u32(transmute(a), transmute(b)));
35772        assert_eq!(r, e);
35773    }
35774
35775    #[simd_test(enable = "neon")]
35776    unsafe fn test_vrhaddq_u32() {
35777        let a: u32x4 = u32x4::new(42, 42, 42, 42);
35778        let b: u32x4 = u32x4::new(1, 2, 3, 4);
35779        let e: u32x4 = u32x4::new(22, 22, 23, 23);
35780        let r: u32x4 = transmute(vrhaddq_u32(transmute(a), transmute(b)));
35781        assert_eq!(r, e);
35782    }
35783
35784    #[simd_test(enable = "neon")]
35785    unsafe fn test_vrhadd_s8() {
35786        let a: i8x8 = i8x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35787        let b: i8x8 = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35788        let e: i8x8 = i8x8::new(22, 22, 23, 23, 24, 24, 25, 25);
35789        let r: i8x8 = transmute(vrhadd_s8(transmute(a), transmute(b)));
35790        assert_eq!(r, e);
35791    }
35792
35793    #[simd_test(enable = "neon")]
35794    unsafe fn test_vrhaddq_s8() {
35795        let a: i8x16 = i8x16::new(42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42);
35796        let b: i8x16 = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
35797        let e: i8x16 = i8x16::new(22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29);
35798        let r: i8x16 = transmute(vrhaddq_s8(transmute(a), transmute(b)));
35799        assert_eq!(r, e);
35800    }
35801
35802    #[simd_test(enable = "neon")]
35803    unsafe fn test_vrhadd_s16() {
35804        let a: i16x4 = i16x4::new(42, 42, 42, 42);
35805        let b: i16x4 = i16x4::new(1, 2, 3, 4);
35806        let e: i16x4 = i16x4::new(22, 22, 23, 23);
35807        let r: i16x4 = transmute(vrhadd_s16(transmute(a), transmute(b)));
35808        assert_eq!(r, e);
35809    }
35810
35811    #[simd_test(enable = "neon")]
35812    unsafe fn test_vrhaddq_s16() {
35813        let a: i16x8 = i16x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35814        let b: i16x8 = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35815        let e: i16x8 = i16x8::new(22, 22, 23, 23, 24, 24, 25, 25);
35816        let r: i16x8 = transmute(vrhaddq_s16(transmute(a), transmute(b)));
35817        assert_eq!(r, e);
35818    }
35819
35820    #[simd_test(enable = "neon")]
35821    unsafe fn test_vrhadd_s32() {
35822        let a: i32x2 = i32x2::new(42, 42);
35823        let b: i32x2 = i32x2::new(1, 2);
35824        let e: i32x2 = i32x2::new(22, 22);
35825        let r: i32x2 = transmute(vrhadd_s32(transmute(a), transmute(b)));
35826        assert_eq!(r, e);
35827    }
35828
35829    #[simd_test(enable = "neon")]
35830    unsafe fn test_vrhaddq_s32() {
35831        let a: i32x4 = i32x4::new(42, 42, 42, 42);
35832        let b: i32x4 = i32x4::new(1, 2, 3, 4);
35833        let e: i32x4 = i32x4::new(22, 22, 23, 23);
35834        let r: i32x4 = transmute(vrhaddq_s32(transmute(a), transmute(b)));
35835        assert_eq!(r, e);
35836    }
35837
35838    #[cfg_attr(target_arch = "arm", simd_test(enable = "neon,crc"))]
35839    #[cfg_attr(target_arch = "aarch64", simd_test(enable = "neon"))]
35840    #[cfg_attr(target_arch = "arm64ec", simd_test(enable = "neon"))]
35841    unsafe fn test_vrndn_f32() {
35842        let a: f32x2 = f32x2::new(-1.5, 0.5);
35843        let e: f32x2 = f32x2::new(-2.0, 0.0);
35844        let r: f32x2 = transmute(vrndn_f32(transmute(a)));
35845        assert_eq!(r, e);
35846    }
35847
35848    #[cfg_attr(target_arch = "arm", simd_test(enable = "neon,crc"))]
35849    #[cfg_attr(target_arch = "aarch64", simd_test(enable = "neon"))]
35850    #[cfg_attr(target_arch = "arm64ec", simd_test(enable = "neon"))]
35851    unsafe fn test_vrndnq_f32() {
35852        let a: f32x4 = f32x4::new(-1.5, 0.5, 1.5, 2.5);
35853        let e: f32x4 = f32x4::new(-2.0, 0.0, 2.0, 2.0);
35854        let r: f32x4 = transmute(vrndnq_f32(transmute(a)));
35855        assert_eq!(r, e);
35856    }
35857
35858    #[simd_test(enable = "neon")]
35859    unsafe fn test_vqadd_u8() {
35860        let a: u8x8 = u8x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35861        let b: u8x8 = u8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35862        let e: u8x8 = u8x8::new(43, 44, 45, 46, 47, 48, 49, 50);
35863        let r: u8x8 = transmute(vqadd_u8(transmute(a), transmute(b)));
35864        assert_eq!(r, e);
35865    }
35866
35867    #[simd_test(enable = "neon")]
35868    unsafe fn test_vqaddq_u8() {
35869        let a: u8x16 = u8x16::new(42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42);
35870        let b: u8x16 = u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
35871        let e: u8x16 = u8x16::new(43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58);
35872        let r: u8x16 = transmute(vqaddq_u8(transmute(a), transmute(b)));
35873        assert_eq!(r, e);
35874    }
35875
35876    #[simd_test(enable = "neon")]
35877    unsafe fn test_vqadd_u16() {
35878        let a: u16x4 = u16x4::new(42, 42, 42, 42);
35879        let b: u16x4 = u16x4::new(1, 2, 3, 4);
35880        let e: u16x4 = u16x4::new(43, 44, 45, 46);
35881        let r: u16x4 = transmute(vqadd_u16(transmute(a), transmute(b)));
35882        assert_eq!(r, e);
35883    }
35884
35885    #[simd_test(enable = "neon")]
35886    unsafe fn test_vqaddq_u16() {
35887        let a: u16x8 = u16x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35888        let b: u16x8 = u16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35889        let e: u16x8 = u16x8::new(43, 44, 45, 46, 47, 48, 49, 50);
35890        let r: u16x8 = transmute(vqaddq_u16(transmute(a), transmute(b)));
35891        assert_eq!(r, e);
35892    }
35893
35894    #[simd_test(enable = "neon")]
35895    unsafe fn test_vqadd_u32() {
35896        let a: u32x2 = u32x2::new(42, 42);
35897        let b: u32x2 = u32x2::new(1, 2);
35898        let e: u32x2 = u32x2::new(43, 44);
35899        let r: u32x2 = transmute(vqadd_u32(transmute(a), transmute(b)));
35900        assert_eq!(r, e);
35901    }
35902
35903    #[simd_test(enable = "neon")]
35904    unsafe fn test_vqaddq_u32() {
35905        let a: u32x4 = u32x4::new(42, 42, 42, 42);
35906        let b: u32x4 = u32x4::new(1, 2, 3, 4);
35907        let e: u32x4 = u32x4::new(43, 44, 45, 46);
35908        let r: u32x4 = transmute(vqaddq_u32(transmute(a), transmute(b)));
35909        assert_eq!(r, e);
35910    }
35911
35912    #[simd_test(enable = "neon")]
35913    unsafe fn test_vqadd_u64() {
35914        let a: u64x1 = u64x1::new(42);
35915        let b: u64x1 = u64x1::new(1);
35916        let e: u64x1 = u64x1::new(43);
35917        let r: u64x1 = transmute(vqadd_u64(transmute(a), transmute(b)));
35918        assert_eq!(r, e);
35919    }
35920
35921    #[simd_test(enable = "neon")]
35922    unsafe fn test_vqaddq_u64() {
35923        let a: u64x2 = u64x2::new(42, 42);
35924        let b: u64x2 = u64x2::new(1, 2);
35925        let e: u64x2 = u64x2::new(43, 44);
35926        let r: u64x2 = transmute(vqaddq_u64(transmute(a), transmute(b)));
35927        assert_eq!(r, e);
35928    }
35929
35930    #[simd_test(enable = "neon")]
35931    unsafe fn test_vqadd_s8() {
35932        let a: i8x8 = i8x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35933        let b: i8x8 = i8x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35934        let e: i8x8 = i8x8::new(43, 44, 45, 46, 47, 48, 49, 50);
35935        let r: i8x8 = transmute(vqadd_s8(transmute(a), transmute(b)));
35936        assert_eq!(r, e);
35937    }
35938
35939    #[simd_test(enable = "neon")]
35940    unsafe fn test_vqaddq_s8() {
35941        let a: i8x16 = i8x16::new(42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42);
35942        let b: i8x16 = i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16);
35943        let e: i8x16 = i8x16::new(43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58);
35944        let r: i8x16 = transmute(vqaddq_s8(transmute(a), transmute(b)));
35945        assert_eq!(r, e);
35946    }
35947
35948    #[simd_test(enable = "neon")]
35949    unsafe fn test_vqadd_s16() {
35950        let a: i16x4 = i16x4::new(42, 42, 42, 42);
35951        let b: i16x4 = i16x4::new(1, 2, 3, 4);
35952        let e: i16x4 = i16x4::new(43, 44, 45, 46);
35953        let r: i16x4 = transmute(vqadd_s16(transmute(a), transmute(b)));
35954        assert_eq!(r, e);
35955    }
35956
35957    #[simd_test(enable = "neon")]
35958    unsafe fn test_vqaddq_s16() {
35959        let a: i16x8 = i16x8::new(42, 42, 42, 42, 42, 42, 42, 42);
35960        let b: i16x8 = i16x8::new(1, 2, 3, 4, 5, 6, 7, 8);
35961        let e: i16x8 = i16x8::new(43, 44, 45, 46, 47, 48, 49, 50);
35962        let r: i16x8 = transmute(vqaddq_s16(transmute(a), transmute(b)));
35963        assert_eq!(r, e);
35964    }
35965
35966    #[simd_test(enable = "neon")]
35967    unsafe fn test_vqadd_s32() {
35968        let a: i32x2 = i32x2::new(42, 42);
35969        let b: i32x2 = i32x2::new(1, 2);
35970        let e: i32x2 = i32x2::new(43, 44);
35971        let r: i32x2 = transmute(vqadd_s32(transmute(a), transmute(b)));
35972        assert_eq!(r, e);
35973    }
35974
35975    #[simd_test(enable = "neon")]
35976    unsafe fn test_vqaddq_s32() {
35977        let a: i32x4 = i32x4::new(42, 42, 42, 42);
35978        let b: i32x4 = i32x4::new(1, 2, 3, 4);
35979        let e: i32x4 = i32x4::new(43, 44, 45, 46);
35980        let r: i32x4 = transmute(vqaddq_s32(transmute(a), transmute(b)));
35981        assert_eq!(r, e);
35982    }
35983
35984    #[simd_test(enable = "neon")]
35985    unsafe fn test_vqadd_s64() {
35986        let a: i64x1 = i64x1::new(42);
35987        let b: i64x1 = i64x1::new(1);
35988        let e: i64x1 = i64x1::new(43);
35989        let r: i64x1 = transmute(vqadd_s64(transmute(a), transmute(b)));
35990        assert_eq!(r, e);
35991    }
35992
35993    #[simd_test(enable = "neon")]
35994    unsafe fn test_vqaddq_s64() {
35995        let a: i64x2 = i64x2::new(42, 42);
35996        let b: i64x2 = i64x2::new(1, 2);
35997        let e: i64x2 = i64x2::new(43, 44);
35998        let r: i64x2 = transmute(vqaddq_s64(transmute(a), transmute(b)));
35999        assert_eq!(r, e);
36000    }
36001
36002    #[simd_test(enable = "neon")]
36003    unsafe fn test_vld1_s8_x2() {
36004        let a: [i8; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36005        let e: [i8x8; 2] = [i8x8::new(1, 2, 3, 4, 5, 6, 7, 8), i8x8::new(9, 10, 11, 12, 13, 14, 15, 16)];
36006        let r: [i8x8; 2] = transmute(vld1_s8_x2(a[1..].as_ptr()));
36007        assert_eq!(r, e);
36008    }
36009
36010    #[simd_test(enable = "neon")]
36011    unsafe fn test_vld1_s16_x2() {
36012        let a: [i16; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36013        let e: [i16x4; 2] = [i16x4::new(1, 2, 3, 4), i16x4::new(5, 6, 7, 8)];
36014        let r: [i16x4; 2] = transmute(vld1_s16_x2(a[1..].as_ptr()));
36015        assert_eq!(r, e);
36016    }
36017
36018    #[simd_test(enable = "neon")]
36019    unsafe fn test_vld1_s32_x2() {
36020        let a: [i32; 5] = [0, 1, 2, 3, 4];
36021        let e: [i32x2; 2] = [i32x2::new(1, 2), i32x2::new(3, 4)];
36022        let r: [i32x2; 2] = transmute(vld1_s32_x2(a[1..].as_ptr()));
36023        assert_eq!(r, e);
36024    }
36025
36026    #[simd_test(enable = "neon")]
36027    unsafe fn test_vld1_s64_x2() {
36028        let a: [i64; 3] = [0, 1, 2];
36029        let e: [i64x1; 2] = [i64x1::new(1), i64x1::new(2)];
36030        let r: [i64x1; 2] = transmute(vld1_s64_x2(a[1..].as_ptr()));
36031        assert_eq!(r, e);
36032    }
36033
36034    #[simd_test(enable = "neon")]
36035    unsafe fn test_vld1q_s8_x2() {
36036        let a: [i8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36037        let e: [i8x16; 2] = [i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), i8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)];
36038        let r: [i8x16; 2] = transmute(vld1q_s8_x2(a[1..].as_ptr()));
36039        assert_eq!(r, e);
36040    }
36041
36042    #[simd_test(enable = "neon")]
36043    unsafe fn test_vld1q_s16_x2() {
36044        let a: [i16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36045        let e: [i16x8; 2] = [i16x8::new(1, 2, 3, 4, 5, 6, 7, 8), i16x8::new(9, 10, 11, 12, 13, 14, 15, 16)];
36046        let r: [i16x8; 2] = transmute(vld1q_s16_x2(a[1..].as_ptr()));
36047        assert_eq!(r, e);
36048    }
36049
36050    #[simd_test(enable = "neon")]
36051    unsafe fn test_vld1q_s32_x2() {
36052        let a: [i32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36053        let e: [i32x4; 2] = [i32x4::new(1, 2, 3, 4), i32x4::new(5, 6, 7, 8)];
36054        let r: [i32x4; 2] = transmute(vld1q_s32_x2(a[1..].as_ptr()));
36055        assert_eq!(r, e);
36056    }
36057
36058    #[simd_test(enable = "neon")]
36059    unsafe fn test_vld1q_s64_x2() {
36060        let a: [i64; 5] = [0, 1, 2, 3, 4];
36061        let e: [i64x2; 2] = [i64x2::new(1, 2), i64x2::new(3, 4)];
36062        let r: [i64x2; 2] = transmute(vld1q_s64_x2(a[1..].as_ptr()));
36063        assert_eq!(r, e);
36064    }
36065
36066    #[simd_test(enable = "neon")]
36067    unsafe fn test_vld1_s8_x3() {
36068        let a: [i8; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
36069        let e: [i8x8; 3] = [i8x8::new(1, 2, 3, 4, 5, 6, 7, 8), i8x8::new(9, 10, 11, 12, 13, 14, 15, 16), i8x8::new(17, 18, 19, 20, 21, 22, 23, 24)];
36070        let r: [i8x8; 3] = transmute(vld1_s8_x3(a[1..].as_ptr()));
36071        assert_eq!(r, e);
36072    }
36073
36074    #[simd_test(enable = "neon")]
36075    unsafe fn test_vld1_s16_x3() {
36076        let a: [i16; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
36077        let e: [i16x4; 3] = [i16x4::new(1, 2, 3, 4), i16x4::new(5, 6, 7, 8), i16x4::new(9, 10, 11, 12)];
36078        let r: [i16x4; 3] = transmute(vld1_s16_x3(a[1..].as_ptr()));
36079        assert_eq!(r, e);
36080    }
36081
36082    #[simd_test(enable = "neon")]
36083    unsafe fn test_vld1_s32_x3() {
36084        let a: [i32; 7] = [0, 1, 2, 3, 4, 5, 6];
36085        let e: [i32x2; 3] = [i32x2::new(1, 2), i32x2::new(3, 4), i32x2::new(5, 6)];
36086        let r: [i32x2; 3] = transmute(vld1_s32_x3(a[1..].as_ptr()));
36087        assert_eq!(r, e);
36088    }
36089
36090    #[simd_test(enable = "neon")]
36091    unsafe fn test_vld1_s64_x3() {
36092        let a: [i64; 4] = [0, 1, 2, 3];
36093        let e: [i64x1; 3] = [i64x1::new(1), i64x1::new(2), i64x1::new(3)];
36094        let r: [i64x1; 3] = transmute(vld1_s64_x3(a[1..].as_ptr()));
36095        assert_eq!(r, e);
36096    }
36097
36098    #[simd_test(enable = "neon")]
36099    unsafe fn test_vld1q_s8_x3() {
36100        let a: [i8; 49] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36101        let e: [i8x16; 3] = [i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), i8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32), i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)];
36102        let r: [i8x16; 3] = transmute(vld1q_s8_x3(a[1..].as_ptr()));
36103        assert_eq!(r, e);
36104    }
36105
36106    #[simd_test(enable = "neon")]
36107    unsafe fn test_vld1q_s16_x3() {
36108        let a: [i16; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
36109        let e: [i16x8; 3] = [i16x8::new(1, 2, 3, 4, 5, 6, 7, 8), i16x8::new(9, 10, 11, 12, 13, 14, 15, 16), i16x8::new(17, 18, 19, 20, 21, 22, 23, 24)];
36110        let r: [i16x8; 3] = transmute(vld1q_s16_x3(a[1..].as_ptr()));
36111        assert_eq!(r, e);
36112    }
36113
36114    #[simd_test(enable = "neon")]
36115    unsafe fn test_vld1q_s32_x3() {
36116        let a: [i32; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
36117        let e: [i32x4; 3] = [i32x4::new(1, 2, 3, 4), i32x4::new(5, 6, 7, 8), i32x4::new(9, 10, 11, 12)];
36118        let r: [i32x4; 3] = transmute(vld1q_s32_x3(a[1..].as_ptr()));
36119        assert_eq!(r, e);
36120    }
36121
36122    #[simd_test(enable = "neon")]
36123    unsafe fn test_vld1q_s64_x3() {
36124        let a: [i64; 7] = [0, 1, 2, 3, 4, 5, 6];
36125        let e: [i64x2; 3] = [i64x2::new(1, 2), i64x2::new(3, 4), i64x2::new(5, 6)];
36126        let r: [i64x2; 3] = transmute(vld1q_s64_x3(a[1..].as_ptr()));
36127        assert_eq!(r, e);
36128    }
36129
36130    #[simd_test(enable = "neon")]
36131    unsafe fn test_vld1_s8_x4() {
36132        let a: [i8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36133        let e: [i8x8; 4] = [i8x8::new(1, 2, 3, 4, 5, 6, 7, 8), i8x8::new(9, 10, 11, 12, 13, 14, 15, 16), i8x8::new(17, 18, 19, 20, 21, 22, 23, 24), i8x8::new(25, 26, 27, 28, 29, 30, 31, 32)];
36134        let r: [i8x8; 4] = transmute(vld1_s8_x4(a[1..].as_ptr()));
36135        assert_eq!(r, e);
36136    }
36137
36138    #[simd_test(enable = "neon")]
36139    unsafe fn test_vld1_s16_x4() {
36140        let a: [i16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36141        let e: [i16x4; 4] = [i16x4::new(1, 2, 3, 4), i16x4::new(5, 6, 7, 8), i16x4::new(9, 10, 11, 12), i16x4::new(13, 14, 15, 16)];
36142        let r: [i16x4; 4] = transmute(vld1_s16_x4(a[1..].as_ptr()));
36143        assert_eq!(r, e);
36144    }
36145
36146    #[simd_test(enable = "neon")]
36147    unsafe fn test_vld1_s32_x4() {
36148        let a: [i32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36149        let e: [i32x2; 4] = [i32x2::new(1, 2), i32x2::new(3, 4), i32x2::new(5, 6), i32x2::new(7, 8)];
36150        let r: [i32x2; 4] = transmute(vld1_s32_x4(a[1..].as_ptr()));
36151        assert_eq!(r, e);
36152    }
36153
36154    #[simd_test(enable = "neon")]
36155    unsafe fn test_vld1_s64_x4() {
36156        let a: [i64; 5] = [0, 1, 2, 3, 4];
36157        let e: [i64x1; 4] = [i64x1::new(1), i64x1::new(2), i64x1::new(3), i64x1::new(4)];
36158        let r: [i64x1; 4] = transmute(vld1_s64_x4(a[1..].as_ptr()));
36159        assert_eq!(r, e);
36160    }
36161
36162    #[simd_test(enable = "neon")]
36163    unsafe fn test_vld1q_s8_x4() {
36164        let a: [i8; 65] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36165        let e: [i8x16; 4] = [i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), i8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32), i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), i8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)];
36166        let r: [i8x16; 4] = transmute(vld1q_s8_x4(a[1..].as_ptr()));
36167        assert_eq!(r, e);
36168    }
36169
36170    #[simd_test(enable = "neon")]
36171    unsafe fn test_vld1q_s16_x4() {
36172        let a: [i16; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36173        let e: [i16x8; 4] = [i16x8::new(1, 2, 3, 4, 5, 6, 7, 8), i16x8::new(9, 10, 11, 12, 13, 14, 15, 16), i16x8::new(17, 18, 19, 20, 21, 22, 23, 24), i16x8::new(25, 26, 27, 28, 29, 30, 31, 32)];
36174        let r: [i16x8; 4] = transmute(vld1q_s16_x4(a[1..].as_ptr()));
36175        assert_eq!(r, e);
36176    }
36177
36178    #[simd_test(enable = "neon")]
36179    unsafe fn test_vld1q_s32_x4() {
36180        let a: [i32; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36181        let e: [i32x4; 4] = [i32x4::new(1, 2, 3, 4), i32x4::new(5, 6, 7, 8), i32x4::new(9, 10, 11, 12), i32x4::new(13, 14, 15, 16)];
36182        let r: [i32x4; 4] = transmute(vld1q_s32_x4(a[1..].as_ptr()));
36183        assert_eq!(r, e);
36184    }
36185
36186    #[simd_test(enable = "neon")]
36187    unsafe fn test_vld1q_s64_x4() {
36188        let a: [i64; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36189        let e: [i64x2; 4] = [i64x2::new(1, 2), i64x2::new(3, 4), i64x2::new(5, 6), i64x2::new(7, 8)];
36190        let r: [i64x2; 4] = transmute(vld1q_s64_x4(a[1..].as_ptr()));
36191        assert_eq!(r, e);
36192    }
36193
36194    #[simd_test(enable = "neon")]
36195    unsafe fn test_vld1_u8_x2() {
36196        let a: [u8; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36197        let e: [u8x8; 2] = [u8x8::new(1, 2, 3, 4, 5, 6, 7, 8), u8x8::new(9, 10, 11, 12, 13, 14, 15, 16)];
36198        let r: [u8x8; 2] = transmute(vld1_u8_x2(a[1..].as_ptr()));
36199        assert_eq!(r, e);
36200    }
36201
36202    #[simd_test(enable = "neon")]
36203    unsafe fn test_vld1_u16_x2() {
36204        let a: [u16; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36205        let e: [u16x4; 2] = [u16x4::new(1, 2, 3, 4), u16x4::new(5, 6, 7, 8)];
36206        let r: [u16x4; 2] = transmute(vld1_u16_x2(a[1..].as_ptr()));
36207        assert_eq!(r, e);
36208    }
36209
36210    #[simd_test(enable = "neon")]
36211    unsafe fn test_vld1_u32_x2() {
36212        let a: [u32; 5] = [0, 1, 2, 3, 4];
36213        let e: [u32x2; 2] = [u32x2::new(1, 2), u32x2::new(3, 4)];
36214        let r: [u32x2; 2] = transmute(vld1_u32_x2(a[1..].as_ptr()));
36215        assert_eq!(r, e);
36216    }
36217
36218    #[simd_test(enable = "neon")]
36219    unsafe fn test_vld1_u64_x2() {
36220        let a: [u64; 3] = [0, 1, 2];
36221        let e: [u64x1; 2] = [u64x1::new(1), u64x1::new(2)];
36222        let r: [u64x1; 2] = transmute(vld1_u64_x2(a[1..].as_ptr()));
36223        assert_eq!(r, e);
36224    }
36225
36226    #[simd_test(enable = "neon")]
36227    unsafe fn test_vld1q_u8_x2() {
36228        let a: [u8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36229        let e: [u8x16; 2] = [u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), u8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)];
36230        let r: [u8x16; 2] = transmute(vld1q_u8_x2(a[1..].as_ptr()));
36231        assert_eq!(r, e);
36232    }
36233
36234    #[simd_test(enable = "neon")]
36235    unsafe fn test_vld1q_u16_x2() {
36236        let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36237        let e: [u16x8; 2] = [u16x8::new(1, 2, 3, 4, 5, 6, 7, 8), u16x8::new(9, 10, 11, 12, 13, 14, 15, 16)];
36238        let r: [u16x8; 2] = transmute(vld1q_u16_x2(a[1..].as_ptr()));
36239        assert_eq!(r, e);
36240    }
36241
36242    #[simd_test(enable = "neon")]
36243    unsafe fn test_vld1q_u32_x2() {
36244        let a: [u32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36245        let e: [u32x4; 2] = [u32x4::new(1, 2, 3, 4), u32x4::new(5, 6, 7, 8)];
36246        let r: [u32x4; 2] = transmute(vld1q_u32_x2(a[1..].as_ptr()));
36247        assert_eq!(r, e);
36248    }
36249
36250    #[simd_test(enable = "neon")]
36251    unsafe fn test_vld1q_u64_x2() {
36252        let a: [u64; 5] = [0, 1, 2, 3, 4];
36253        let e: [u64x2; 2] = [u64x2::new(1, 2), u64x2::new(3, 4)];
36254        let r: [u64x2; 2] = transmute(vld1q_u64_x2(a[1..].as_ptr()));
36255        assert_eq!(r, e);
36256    }
36257
36258    #[simd_test(enable = "neon")]
36259    unsafe fn test_vld1_u8_x3() {
36260        let a: [u8; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
36261        let e: [u8x8; 3] = [u8x8::new(1, 2, 3, 4, 5, 6, 7, 8), u8x8::new(9, 10, 11, 12, 13, 14, 15, 16), u8x8::new(17, 18, 19, 20, 21, 22, 23, 24)];
36262        let r: [u8x8; 3] = transmute(vld1_u8_x3(a[1..].as_ptr()));
36263        assert_eq!(r, e);
36264    }
36265
36266    #[simd_test(enable = "neon")]
36267    unsafe fn test_vld1_u16_x3() {
36268        let a: [u16; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
36269        let e: [u16x4; 3] = [u16x4::new(1, 2, 3, 4), u16x4::new(5, 6, 7, 8), u16x4::new(9, 10, 11, 12)];
36270        let r: [u16x4; 3] = transmute(vld1_u16_x3(a[1..].as_ptr()));
36271        assert_eq!(r, e);
36272    }
36273
36274    #[simd_test(enable = "neon")]
36275    unsafe fn test_vld1_u32_x3() {
36276        let a: [u32; 7] = [0, 1, 2, 3, 4, 5, 6];
36277        let e: [u32x2; 3] = [u32x2::new(1, 2), u32x2::new(3, 4), u32x2::new(5, 6)];
36278        let r: [u32x2; 3] = transmute(vld1_u32_x3(a[1..].as_ptr()));
36279        assert_eq!(r, e);
36280    }
36281
36282    #[simd_test(enable = "neon")]
36283    unsafe fn test_vld1_u64_x3() {
36284        let a: [u64; 4] = [0, 1, 2, 3];
36285        let e: [u64x1; 3] = [u64x1::new(1), u64x1::new(2), u64x1::new(3)];
36286        let r: [u64x1; 3] = transmute(vld1_u64_x3(a[1..].as_ptr()));
36287        assert_eq!(r, e);
36288    }
36289
36290    #[simd_test(enable = "neon")]
36291    unsafe fn test_vld1q_u8_x3() {
36292        let a: [u8; 49] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36293        let e: [u8x16; 3] = [u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), u8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32), u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)];
36294        let r: [u8x16; 3] = transmute(vld1q_u8_x3(a[1..].as_ptr()));
36295        assert_eq!(r, e);
36296    }
36297
36298    #[simd_test(enable = "neon")]
36299    unsafe fn test_vld1q_u16_x3() {
36300        let a: [u16; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
36301        let e: [u16x8; 3] = [u16x8::new(1, 2, 3, 4, 5, 6, 7, 8), u16x8::new(9, 10, 11, 12, 13, 14, 15, 16), u16x8::new(17, 18, 19, 20, 21, 22, 23, 24)];
36302        let r: [u16x8; 3] = transmute(vld1q_u16_x3(a[1..].as_ptr()));
36303        assert_eq!(r, e);
36304    }
36305
36306    #[simd_test(enable = "neon")]
36307    unsafe fn test_vld1q_u32_x3() {
36308        let a: [u32; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
36309        let e: [u32x4; 3] = [u32x4::new(1, 2, 3, 4), u32x4::new(5, 6, 7, 8), u32x4::new(9, 10, 11, 12)];
36310        let r: [u32x4; 3] = transmute(vld1q_u32_x3(a[1..].as_ptr()));
36311        assert_eq!(r, e);
36312    }
36313
36314    #[simd_test(enable = "neon")]
36315    unsafe fn test_vld1q_u64_x3() {
36316        let a: [u64; 7] = [0, 1, 2, 3, 4, 5, 6];
36317        let e: [u64x2; 3] = [u64x2::new(1, 2), u64x2::new(3, 4), u64x2::new(5, 6)];
36318        let r: [u64x2; 3] = transmute(vld1q_u64_x3(a[1..].as_ptr()));
36319        assert_eq!(r, e);
36320    }
36321
36322    #[simd_test(enable = "neon")]
36323    unsafe fn test_vld1_u8_x4() {
36324        let a: [u8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36325        let e: [u8x8; 4] = [u8x8::new(1, 2, 3, 4, 5, 6, 7, 8), u8x8::new(9, 10, 11, 12, 13, 14, 15, 16), u8x8::new(17, 18, 19, 20, 21, 22, 23, 24), u8x8::new(25, 26, 27, 28, 29, 30, 31, 32)];
36326        let r: [u8x8; 4] = transmute(vld1_u8_x4(a[1..].as_ptr()));
36327        assert_eq!(r, e);
36328    }
36329
36330    #[simd_test(enable = "neon")]
36331    unsafe fn test_vld1_u16_x4() {
36332        let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36333        let e: [u16x4; 4] = [u16x4::new(1, 2, 3, 4), u16x4::new(5, 6, 7, 8), u16x4::new(9, 10, 11, 12), u16x4::new(13, 14, 15, 16)];
36334        let r: [u16x4; 4] = transmute(vld1_u16_x4(a[1..].as_ptr()));
36335        assert_eq!(r, e);
36336    }
36337
36338    #[simd_test(enable = "neon")]
36339    unsafe fn test_vld1_u32_x4() {
36340        let a: [u32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36341        let e: [u32x2; 4] = [u32x2::new(1, 2), u32x2::new(3, 4), u32x2::new(5, 6), u32x2::new(7, 8)];
36342        let r: [u32x2; 4] = transmute(vld1_u32_x4(a[1..].as_ptr()));
36343        assert_eq!(r, e);
36344    }
36345
36346    #[simd_test(enable = "neon")]
36347    unsafe fn test_vld1_u64_x4() {
36348        let a: [u64; 5] = [0, 1, 2, 3, 4];
36349        let e: [u64x1; 4] = [u64x1::new(1), u64x1::new(2), u64x1::new(3), u64x1::new(4)];
36350        let r: [u64x1; 4] = transmute(vld1_u64_x4(a[1..].as_ptr()));
36351        assert_eq!(r, e);
36352    }
36353
36354    #[simd_test(enable = "neon")]
36355    unsafe fn test_vld1q_u8_x4() {
36356        let a: [u8; 65] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36357        let e: [u8x16; 4] = [u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), u8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32), u8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), u8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)];
36358        let r: [u8x16; 4] = transmute(vld1q_u8_x4(a[1..].as_ptr()));
36359        assert_eq!(r, e);
36360    }
36361
36362    #[simd_test(enable = "neon")]
36363    unsafe fn test_vld1q_u16_x4() {
36364        let a: [u16; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36365        let e: [u16x8; 4] = [u16x8::new(1, 2, 3, 4, 5, 6, 7, 8), u16x8::new(9, 10, 11, 12, 13, 14, 15, 16), u16x8::new(17, 18, 19, 20, 21, 22, 23, 24), u16x8::new(25, 26, 27, 28, 29, 30, 31, 32)];
36366        let r: [u16x8; 4] = transmute(vld1q_u16_x4(a[1..].as_ptr()));
36367        assert_eq!(r, e);
36368    }
36369
36370    #[simd_test(enable = "neon")]
36371    unsafe fn test_vld1q_u32_x4() {
36372        let a: [u32; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36373        let e: [u32x4; 4] = [u32x4::new(1, 2, 3, 4), u32x4::new(5, 6, 7, 8), u32x4::new(9, 10, 11, 12), u32x4::new(13, 14, 15, 16)];
36374        let r: [u32x4; 4] = transmute(vld1q_u32_x4(a[1..].as_ptr()));
36375        assert_eq!(r, e);
36376    }
36377
36378    #[simd_test(enable = "neon")]
36379    unsafe fn test_vld1q_u64_x4() {
36380        let a: [u64; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36381        let e: [u64x2; 4] = [u64x2::new(1, 2), u64x2::new(3, 4), u64x2::new(5, 6), u64x2::new(7, 8)];
36382        let r: [u64x2; 4] = transmute(vld1q_u64_x4(a[1..].as_ptr()));
36383        assert_eq!(r, e);
36384    }
36385
36386    #[simd_test(enable = "neon")]
36387    unsafe fn test_vld1_p8_x2() {
36388        let a: [u8; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36389        let e: [i8x8; 2] = [i8x8::new(1, 2, 3, 4, 5, 6, 7, 8), i8x8::new(9, 10, 11, 12, 13, 14, 15, 16)];
36390        let r: [i8x8; 2] = transmute(vld1_p8_x2(a[1..].as_ptr()));
36391        assert_eq!(r, e);
36392    }
36393
36394    #[simd_test(enable = "neon")]
36395    unsafe fn test_vld1_p8_x3() {
36396        let a: [u8; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
36397        let e: [i8x8; 3] = [i8x8::new(1, 2, 3, 4, 5, 6, 7, 8), i8x8::new(9, 10, 11, 12, 13, 14, 15, 16), i8x8::new(17, 18, 19, 20, 21, 22, 23, 24)];
36398        let r: [i8x8; 3] = transmute(vld1_p8_x3(a[1..].as_ptr()));
36399        assert_eq!(r, e);
36400    }
36401
36402    #[simd_test(enable = "neon")]
36403    unsafe fn test_vld1_p8_x4() {
36404        let a: [u8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36405        let e: [i8x8; 4] = [i8x8::new(1, 2, 3, 4, 5, 6, 7, 8), i8x8::new(9, 10, 11, 12, 13, 14, 15, 16), i8x8::new(17, 18, 19, 20, 21, 22, 23, 24), i8x8::new(25, 26, 27, 28, 29, 30, 31, 32)];
36406        let r: [i8x8; 4] = transmute(vld1_p8_x4(a[1..].as_ptr()));
36407        assert_eq!(r, e);
36408    }
36409
36410    #[simd_test(enable = "neon")]
36411    unsafe fn test_vld1q_p8_x2() {
36412        let a: [u8; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36413        let e: [i8x16; 2] = [i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), i8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)];
36414        let r: [i8x16; 2] = transmute(vld1q_p8_x2(a[1..].as_ptr()));
36415        assert_eq!(r, e);
36416    }
36417
36418    #[simd_test(enable = "neon")]
36419    unsafe fn test_vld1q_p8_x3() {
36420        let a: [u8; 49] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36421        let e: [i8x16; 3] = [i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), i8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32), i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)];
36422        let r: [i8x16; 3] = transmute(vld1q_p8_x3(a[1..].as_ptr()));
36423        assert_eq!(r, e);
36424    }
36425
36426    #[simd_test(enable = "neon")]
36427    unsafe fn test_vld1q_p8_x4() {
36428        let a: [u8; 65] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36429        let e: [i8x16; 4] = [i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), i8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32), i8x16::new(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), i8x16::new(17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)];
36430        let r: [i8x16; 4] = transmute(vld1q_p8_x4(a[1..].as_ptr()));
36431        assert_eq!(r, e);
36432    }
36433
36434    #[simd_test(enable = "neon")]
36435    unsafe fn test_vld1_p16_x2() {
36436        let a: [u16; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36437        let e: [i16x4; 2] = [i16x4::new(1, 2, 3, 4), i16x4::new(5, 6, 7, 8)];
36438        let r: [i16x4; 2] = transmute(vld1_p16_x2(a[1..].as_ptr()));
36439        assert_eq!(r, e);
36440    }
36441
36442    #[simd_test(enable = "neon")]
36443    unsafe fn test_vld1_p16_x3() {
36444        let a: [u16; 13] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
36445        let e: [i16x4; 3] = [i16x4::new(1, 2, 3, 4), i16x4::new(5, 6, 7, 8), i16x4::new(9, 10, 11, 12)];
36446        let r: [i16x4; 3] = transmute(vld1_p16_x3(a[1..].as_ptr()));
36447        assert_eq!(r, e);
36448    }
36449
36450    #[simd_test(enable = "neon")]
36451    unsafe fn test_vld1_p16_x4() {
36452        let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36453        let e: [i16x4; 4] = [i16x4::new(1, 2, 3, 4), i16x4::new(5, 6, 7, 8), i16x4::new(9, 10, 11, 12), i16x4::new(13, 14, 15, 16)];
36454        let r: [i16x4; 4] = transmute(vld1_p16_x4(a[1..].as_ptr()));
36455        assert_eq!(r, e);
36456    }
36457
36458    #[simd_test(enable = "neon")]
36459    unsafe fn test_vld1q_p16_x2() {
36460        let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
36461        let e: [i16x8; 2] = [i16x8::new(1, 2, 3, 4, 5, 6, 7, 8), i16x8::new(9, 10, 11, 12, 13, 14, 15, 16)];
36462        let r: [i16x8; 2] = transmute(vld1q_p16_x2(a[1..].as_ptr()));
36463        assert_eq!(r, e);
36464    }
36465
36466    #[simd_test(enable = "neon")]
36467    unsafe fn test_vld1q_p16_x3() {
36468        let a: [u16; 25] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
36469        let e: [i16x8; 3] = [i16x8::new(1, 2, 3, 4, 5, 6, 7, 8), i16x8::new(9, 10, 11, 12, 13, 14, 15, 16), i16x8::new(17, 18, 19, 20, 21, 22, 23, 24)];
36470        let r: [i16x8; 3] = transmute(vld1q_p16_x3(a[1..].as_ptr()));
36471        assert_eq!(r, e);
36472    }
36473
36474    #[simd_test(enable = "neon")]
36475    unsafe fn test_vld1q_p16_x4() {
36476        let a: [u16; 33] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32];
36477        let e: [i16x8; 4] = [i16x8::new(1, 2, 3, 4, 5, 6, 7, 8), i16x8::new(9, 10, 11, 12, 13, 14, 15, 16), i16x8::new(17, 18, 19, 20, 21, 22, 23, 24), i16x8::new(25, 26, 27, 28, 29, 30, 31, 32)];
36478        let r: [i16x8; 4] = transmute(vld1q_p16_x4(a[1..].as_ptr()));
36479        assert_eq!(r, e);
36480    }
36481
36482    #[simd_test(enable = "neon")]
36483    unsafe fn test_vld1_p64_x2() {
36484        let a: [u64; 3] = [0, 1, 2];
36485        let e: [i64x1; 2] = [i64x1::new(1), i64x1::new(2)];
36486        let r: [i64x1; 2] = transmute(vld1_p64_x2(a[1..].as_ptr()));
36487        assert_eq!(r, e);
36488    }
36489
36490    #[simd_test(enable = "neon")]
36491    unsafe fn test_vld1_p64_x3() {
36492        let a: [u64; 4] = [0, 1, 2, 3];
36493        let e: [i64x1; 3] = [i64x1::new(1), i64x1::new(2), i64x1::new(3)];
36494        let r: [i64x1; 3] = transmute(vld1_p64_x3(a[1..].as_ptr()));
36495        assert_eq!(r, e);
36496    }
36497
36498    #[simd_test(enable = "neon")]
36499    unsafe fn test_vld1_p64_x4() {
36500        let a: [u64; 5] = [0, 1, 2, 3, 4];
36501        let e: [i64x1; 4] = [i64x1::new(1), i64x1::new(2), i64x1::new(3), i64x1::new(4)];
36502        let r: [i64x1; 4] = transmute(vld1_p64_x4(a[1..].as_ptr()));
36503        assert_eq!(r, e);
36504    }
36505
36506    #[simd_test(enable = "neon")]
36507    unsafe fn test_vld1q_p64_x2() {
36508        let a: [u64; 5] = [0, 1, 2, 3, 4];
36509        let e: [i64x2; 2] = [i64x2::new(1, 2), i64x2::new(3, 4)];
36510        let r: [i64x2; 2] = transmute(vld1q_p64_x2(a[1..].as_ptr()));
36511        assert_eq!(r, e);
36512    }
36513
36514    #[simd_test(enable = "neon")]
36515    unsafe fn test_vld1q_p64_x3() {
36516        let a: [u64; 7] = [0, 1, 2, 3, 4, 5, 6];
36517        let e: [i64x2; 3] = [i64x2::new(1, 2), i64x2::new(3, 4), i64x2::new(5, 6)];
36518        let r: [i64x2; 3] = transmute(vld1q_p64_x3(a[1..].as_ptr()));
36519        assert_eq!(r, e);
36520    }
36521
36522    #[simd_test(enable = "neon")]
36523    unsafe fn test_vld1q_p64_x4() {
36524        let a: [u64; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36525        let e: [i64x2; 4] = [i64x2::new(1, 2), i64x2::new(3, 4), i64x2::new(5, 6), i64x2::new(7, 8)];
36526        let r: [i64x2; 4] = transmute(vld1q_p64_x4(a[1..].as_ptr()));
36527        assert_eq!(r, e);
36528    }
36529
36530    #[simd_test(enable = "neon")]
36531    unsafe fn test_vld1_f32_x2() {
36532        let a: [f32; 5] = [0., 1., 2., 3., 4.];
36533        let e: [f32x2; 2] = [f32x2::new(1., 2.), f32x2::new(3., 4.)];
36534        let r: [f32x2; 2] = transmute(vld1_f32_x2(a[1..].as_ptr()));
36535        assert_eq!(r, e);
36536    }
36537
36538    #[simd_test(enable = "neon")]
36539    unsafe fn test_vld1q_f32_x2() {
36540        let a: [f32; 9] = [0., 1., 2., 3., 4., 5., 6., 7., 8.];
36541        let e: [f32x4; 2] = [f32x4::new(1., 2., 3., 4.), f32x4::new(5., 6., 7., 8.)];
36542        let r: [f32x4; 2] = transmute(vld1q_f32_x2(a[1..].as_ptr()));
36543        assert_eq!(r, e);
36544    }
36545
36546    #[simd_test(enable = "neon")]
36547    unsafe fn test_vld1_f32_x3() {
36548        let a: [f32; 7] = [0., 1., 2., 3., 4., 5., 6.];
36549        let e: [f32x2; 3] = [f32x2::new(1., 2.), f32x2::new(3., 4.), f32x2::new(5., 6.)];
36550        let r: [f32x2; 3] = transmute(vld1_f32_x3(a[1..].as_ptr()));
36551        assert_eq!(r, e);
36552    }
36553
36554    #[simd_test(enable = "neon")]
36555    unsafe fn test_vld1q_f32_x3() {
36556        let a: [f32; 13] = [0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12.];
36557        let e: [f32x4; 3] = [f32x4::new(1., 2., 3., 4.), f32x4::new(5., 6., 7., 8.), f32x4::new(9., 10., 11., 12.)];
36558        let r: [f32x4; 3] = transmute(vld1q_f32_x3(a[1..].as_ptr()));
36559        assert_eq!(r, e);
36560    }
36561
36562    #[simd_test(enable = "neon")]
36563    unsafe fn test_vld1_f32_x4() {
36564        let a: [f32; 9] = [0., 1., 2., 3., 4., 5., 6., 7., 8.];
36565        let e: [f32x2; 4] = [f32x2::new(1., 2.), f32x2::new(3., 4.), f32x2::new(5., 6.), f32x2::new(7., 8.)];
36566        let r: [f32x2; 4] = transmute(vld1_f32_x4(a[1..].as_ptr()));
36567        assert_eq!(r, e);
36568    }
36569
36570    #[simd_test(enable = "neon")]
36571    unsafe fn test_vld1q_f32_x4() {
36572        let a: [f32; 17] = [0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14., 15., 16.];
36573        let e: [f32x4; 4] = [f32x4::new(1., 2., 3., 4.), f32x4::new(5., 6., 7., 8.), f32x4::new(9., 10., 11., 12.), f32x4::new(13., 14., 15., 16.)];
36574        let r: [f32x4; 4] = transmute(vld1q_f32_x4(a[1..].as_ptr()));
36575        assert_eq!(r, e);
36576    }
36577
36578    #[simd_test(enable = "neon")]
36579    unsafe fn test_vld2_s8() {
36580        let a: [i8; 17] = [0, 1, 2, 2, 3, 2, 4, 3, 5, 2, 6, 3, 7, 4, 8, 5, 9];
36581        let e: [i8x8; 2] = [i8x8::new(1, 2, 2, 3, 2, 3, 4, 5), i8x8::new(2, 3, 4, 5, 6, 7, 8, 9)];
36582        let r: [i8x8; 2] = transmute(vld2_s8(a[1..].as_ptr()));
36583        assert_eq!(r, e);
36584    }
36585
36586    #[simd_test(enable = "neon")]
36587    unsafe fn test_vld2_s16() {
36588        let a: [i16; 9] = [0, 1, 2, 2, 3, 2, 4, 3, 5];
36589        let e: [i16x4; 2] = [i16x4::new(1, 2, 2, 3), i16x4::new(2, 3, 4, 5)];
36590        let r: [i16x4; 2] = transmute(vld2_s16(a[1..].as_ptr()));
36591        assert_eq!(r, e);
36592    }
36593
36594    #[simd_test(enable = "neon")]
36595    unsafe fn test_vld2_s32() {
36596        let a: [i32; 5] = [0, 1, 2, 2, 3];
36597        let e: [i32x2; 2] = [i32x2::new(1, 2), i32x2::new(2, 3)];
36598        let r: [i32x2; 2] = transmute(vld2_s32(a[1..].as_ptr()));
36599        assert_eq!(r, e);
36600    }
36601
36602    #[simd_test(enable = "neon")]
36603    unsafe fn test_vld2q_s8() {
36604        let a: [i8; 33] = [0, 1, 2, 2, 3, 2, 4, 3, 5, 2, 6, 3, 7, 4, 8, 5, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16, 9, 17];
36605        let e: [i8x16; 2] = [i8x16::new(1, 2, 2, 3, 2, 3, 4, 5, 2, 3, 4, 5, 6, 7, 8, 9), i8x16::new(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)];
36606        let r: [i8x16; 2] = transmute(vld2q_s8(a[1..].as_ptr()));
36607        assert_eq!(r, e);
36608    }
36609
36610    #[simd_test(enable = "neon")]
36611    unsafe fn test_vld2q_s16() {
36612        let a: [i16; 17] = [0, 1, 2, 2, 3, 2, 4, 3, 5, 2, 6, 3, 7, 4, 8, 5, 9];
36613        let e: [i16x8; 2] = [i16x8::new(1, 2, 2, 3, 2, 3, 4, 5), i16x8::new(2, 3, 4, 5, 6, 7, 8, 9)];
36614        let r: [i16x8; 2] = transmute(vld2q_s16(a[1..].as_ptr()));
36615        assert_eq!(r, e);
36616    }
36617
36618    #[simd_test(enable = "neon")]
36619    unsafe fn test_vld2q_s32() {
36620        let a: [i32; 9] = [0, 1, 2, 2, 3, 2, 4, 3, 5];
36621        let e: [i32x4; 2] = [i32x4::new(1, 2, 2, 3), i32x4::new(2, 3, 4, 5)];
36622        let r: [i32x4; 2] = transmute(vld2q_s32(a[1..].as_ptr()));
36623        assert_eq!(r, e);
36624    }
36625
36626    #[simd_test(enable = "neon")]
36627    unsafe fn test_vld2_s64() {
36628        let a: [i64; 3] = [0, 1, 2];
36629        let e: [i64x1; 2] = [i64x1::new(1), i64x1::new(2)];
36630        let r: [i64x1; 2] = transmute(vld2_s64(a[1..].as_ptr()));
36631        assert_eq!(r, e);
36632    }
36633
36634    #[simd_test(enable = "neon")]
36635    unsafe fn test_vld2_u8() {
36636        let a: [u8; 17] = [0, 1, 2, 2, 3, 2, 4, 3, 5, 2, 6, 3, 7, 4, 8, 5, 9];
36637        let e: [u8x8; 2] = [u8x8::new(1, 2, 2, 3, 2, 3, 4, 5), u8x8::new(2, 3, 4, 5, 6, 7, 8, 9)];
36638        let r: [u8x8; 2] = transmute(vld2_u8(a[1..].as_ptr()));
36639        assert_eq!(r, e);
36640    }
36641
36642    #[simd_test(enable = "neon")]
36643    unsafe fn test_vld2_u16() {
36644        let a: [u16; 9] = [0, 1, 2, 2, 3, 2, 4, 3, 5];
36645        let e: [u16x4; 2] = [u16x4::new(1, 2, 2, 3), u16x4::new(2, 3, 4, 5)];
36646        let r: [u16x4; 2] = transmute(vld2_u16(a[1..].as_ptr()));
36647        assert_eq!(r, e);
36648    }
36649
36650    #[simd_test(enable = "neon")]
36651    unsafe fn test_vld2_u32() {
36652        let a: [u32; 5] = [0, 1, 2, 2, 3];
36653        let e: [u32x2; 2] = [u32x2::new(1, 2), u32x2::new(2, 3)];
36654        let r: [u32x2; 2] = transmute(vld2_u32(a[1..].as_ptr()));
36655        assert_eq!(r, e);
36656    }
36657
36658    #[simd_test(enable = "neon")]
36659    unsafe fn test_vld2q_u8() {
36660        let a: [u8; 33] = [0, 1, 2, 2, 3, 2, 4, 3, 5, 2, 6, 3, 7, 4, 8, 5, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16, 9, 17];
36661        let e: [u8x16; 2] = [u8x16::new(1, 2, 2, 3, 2, 3, 4, 5, 2, 3, 4, 5, 6, 7, 8, 9), u8x16::new(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)];
36662        let r: [u8x16; 2] = transmute(vld2q_u8(a[1..].as_ptr()));
36663        assert_eq!(r, e);
36664    }
36665
36666    #[simd_test(enable = "neon")]
36667    unsafe fn test_vld2q_u16() {
36668        let a: [u16; 17] = [0, 1, 2, 2, 3, 2, 4, 3, 5, 2, 6, 3, 7, 4, 8, 5, 9];
36669        let e: [u16x8; 2] = [u16x8::new(1, 2, 2, 3, 2, 3, 4, 5), u16x8::new(2, 3, 4, 5, 6, 7, 8, 9)];
36670        let r: [u16x8; 2] = transmute(vld2q_u16(a[1..].as_ptr()));
36671        assert_eq!(r, e);
36672    }
36673
36674    #[simd_test(enable = "neon")]
36675    unsafe fn test_vld2q_u32() {
36676        let a: [u32; 9] = [0, 1, 2, 2, 3, 2, 4, 3, 5];
36677        let e: [u32x4; 2] = [u32x4::new(1, 2, 2, 3), u32x4::new(2, 3, 4, 5)];
36678        let r: [u32x4; 2] = transmute(vld2q_u32(a[1..].as_ptr()));
36679        assert_eq!(r, e);
36680    }
36681
36682    #[simd_test(enable = "neon")]
36683    unsafe fn test_vld2_p8() {
36684        let a: [u8; 17] = [0, 1, 2, 2, 3, 2, 4, 3, 5, 2, 6, 3, 7, 4, 8, 5, 9];
36685        let e: [i8x8; 2] = [i8x8::new(1, 2, 2, 3, 2, 3, 4, 5), i8x8::new(2, 3, 4, 5, 6, 7, 8, 9)];
36686        let r: [i8x8; 2] = transmute(vld2_p8(a[1..].as_ptr()));
36687        assert_eq!(r, e);
36688    }
36689
36690    #[simd_test(enable = "neon")]
36691    unsafe fn test_vld2_p16() {
36692        let a: [u16; 9] = [0, 1, 2, 2, 3, 2, 4, 3, 5];
36693        let e: [i16x4; 2] = [i16x4::new(1, 2, 2, 3), i16x4::new(2, 3, 4, 5)];
36694        let r: [i16x4; 2] = transmute(vld2_p16(a[1..].as_ptr()));
36695        assert_eq!(r, e);
36696    }
36697
36698    #[simd_test(enable = "neon")]
36699    unsafe fn test_vld2q_p8() {
36700        let a: [u8; 33] = [0, 1, 2, 2, 3, 2, 4, 3, 5, 2, 6, 3, 7, 4, 8, 5, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16, 9, 17];
36701        let e: [i8x16; 2] = [i8x16::new(1, 2, 2, 3, 2, 3, 4, 5, 2, 3, 4, 5, 6, 7, 8, 9), i8x16::new(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)];
36702        let r: [i8x16; 2] = transmute(vld2q_p8(a[1..].as_ptr()));
36703        assert_eq!(r, e);
36704    }
36705
36706    #[simd_test(enable = "neon")]
36707    unsafe fn test_vld2q_p16() {
36708        let a: [u16; 17] = [0, 1, 2, 2, 3, 2, 4, 3, 5, 2, 6, 3, 7, 4, 8, 5, 9];
36709        let e: [i16x8; 2] = [i16x8::new(1, 2, 2, 3, 2, 3, 4, 5), i16x8::new(2, 3, 4, 5, 6, 7, 8, 9)];
36710        let r: [i16x8; 2] = transmute(vld2q_p16(a[1..].as_ptr()));
36711        assert_eq!(r, e);
36712    }
36713
36714    #[simd_test(enable = "neon")]
36715    unsafe fn test_vld2_u64() {
36716        let a: [u64; 3] = [0, 1, 2];
36717        let e: [u64x1; 2] = [u64x1::new(1), u64x1::new(2)];
36718        let r: [u64x1; 2] = transmute(vld2_u64(a[1..].as_ptr()));
36719        assert_eq!(r, e);
36720    }
36721
36722    #[simd_test(enable = "neon")]
36723    unsafe fn test_vld2_p64() {
36724        let a: [u64; 3] = [0, 1, 2];
36725        let e: [i64x1; 2] = [i64x1::new(1), i64x1::new(2)];
36726        let r: [i64x1; 2] = transmute(vld2_p64(a[1..].as_ptr()));
36727        assert_eq!(r, e);
36728    }
36729
36730    #[simd_test(enable = "neon")]
36731    unsafe fn test_vld2_f32() {
36732        let a: [f32; 5] = [0., 1., 2., 2., 3.];
36733        let e: [f32x2; 2] = [f32x2::new(1., 2.), f32x2::new(2., 3.)];
36734        let r: [f32x2; 2] = transmute(vld2_f32(a[1..].as_ptr()));
36735        assert_eq!(r, e);
36736    }
36737
36738    #[simd_test(enable = "neon")]
36739    unsafe fn test_vld2q_f32() {
36740        let a: [f32; 9] = [0., 1., 2., 2., 3., 2., 4., 3., 5.];
36741        let e: [f32x4; 2] = [f32x4::new(1., 2., 2., 3.), f32x4::new(2., 3., 4., 5.)];
36742        let r: [f32x4; 2] = transmute(vld2q_f32(a[1..].as_ptr()));
36743        assert_eq!(r, e);
36744    }
36745
36746    #[simd_test(enable = "neon")]
36747    unsafe fn test_vld2_dup_s8() {
36748        let a: [i8; 17] = [0, 1, 1, 2, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9];
36749        let e: [i8x8; 2] = [i8x8::new(1, 1, 1, 1, 1, 1, 1, 1), i8x8::new(1, 1, 1, 1, 1, 1, 1, 1)];
36750        let r: [i8x8; 2] = transmute(vld2_dup_s8(a[1..].as_ptr()));
36751        assert_eq!(r, e);
36752    }
36753
36754    #[simd_test(enable = "neon")]
36755    unsafe fn test_vld2_dup_s16() {
36756        let a: [i16; 9] = [0, 1, 1, 2, 3, 1, 4, 3, 5];
36757        let e: [i16x4; 2] = [i16x4::new(1, 1, 1, 1), i16x4::new(1, 1, 1, 1)];
36758        let r: [i16x4; 2] = transmute(vld2_dup_s16(a[1..].as_ptr()));
36759        assert_eq!(r, e);
36760    }
36761
36762    #[simd_test(enable = "neon")]
36763    unsafe fn test_vld2_dup_s32() {
36764        let a: [i32; 5] = [0, 1, 1, 2, 3];
36765        let e: [i32x2; 2] = [i32x2::new(1, 1), i32x2::new(1, 1)];
36766        let r: [i32x2; 2] = transmute(vld2_dup_s32(a[1..].as_ptr()));
36767        assert_eq!(r, e);
36768    }
36769
36770    #[simd_test(enable = "neon")]
36771    unsafe fn test_vld2q_dup_s8() {
36772        let a: [i8; 33] = [0, 1, 1, 2, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16, 9, 17];
36773        let e: [i8x16; 2] = [i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)];
36774        let r: [i8x16; 2] = transmute(vld2q_dup_s8(a[1..].as_ptr()));
36775        assert_eq!(r, e);
36776    }
36777
36778    #[simd_test(enable = "neon")]
36779    unsafe fn test_vld2q_dup_s16() {
36780        let a: [i16; 17] = [0, 1, 1, 2, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9];
36781        let e: [i16x8; 2] = [i16x8::new(1, 1, 1, 1, 1, 1, 1, 1), i16x8::new(1, 1, 1, 1, 1, 1, 1, 1)];
36782        let r: [i16x8; 2] = transmute(vld2q_dup_s16(a[1..].as_ptr()));
36783        assert_eq!(r, e);
36784    }
36785
36786    #[simd_test(enable = "neon")]
36787    unsafe fn test_vld2q_dup_s32() {
36788        let a: [i32; 9] = [0, 1, 1, 2, 3, 1, 4, 3, 5];
36789        let e: [i32x4; 2] = [i32x4::new(1, 1, 1, 1), i32x4::new(1, 1, 1, 1)];
36790        let r: [i32x4; 2] = transmute(vld2q_dup_s32(a[1..].as_ptr()));
36791        assert_eq!(r, e);
36792    }
36793
36794    #[simd_test(enable = "neon")]
36795    unsafe fn test_vld2_dup_s64() {
36796        let a: [i64; 3] = [0, 1, 1];
36797        let e: [i64x1; 2] = [i64x1::new(1), i64x1::new(1)];
36798        let r: [i64x1; 2] = transmute(vld2_dup_s64(a[1..].as_ptr()));
36799        assert_eq!(r, e);
36800    }
36801
36802    #[simd_test(enable = "neon")]
36803    unsafe fn test_vld2_dup_u8() {
36804        let a: [u8; 17] = [0, 1, 1, 2, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9];
36805        let e: [u8x8; 2] = [u8x8::new(1, 1, 1, 1, 1, 1, 1, 1), u8x8::new(1, 1, 1, 1, 1, 1, 1, 1)];
36806        let r: [u8x8; 2] = transmute(vld2_dup_u8(a[1..].as_ptr()));
36807        assert_eq!(r, e);
36808    }
36809
36810    #[simd_test(enable = "neon")]
36811    unsafe fn test_vld2_dup_u16() {
36812        let a: [u16; 9] = [0, 1, 1, 2, 3, 1, 4, 3, 5];
36813        let e: [u16x4; 2] = [u16x4::new(1, 1, 1, 1), u16x4::new(1, 1, 1, 1)];
36814        let r: [u16x4; 2] = transmute(vld2_dup_u16(a[1..].as_ptr()));
36815        assert_eq!(r, e);
36816    }
36817
36818    #[simd_test(enable = "neon")]
36819    unsafe fn test_vld2_dup_u32() {
36820        let a: [u32; 5] = [0, 1, 1, 2, 3];
36821        let e: [u32x2; 2] = [u32x2::new(1, 1), u32x2::new(1, 1)];
36822        let r: [u32x2; 2] = transmute(vld2_dup_u32(a[1..].as_ptr()));
36823        assert_eq!(r, e);
36824    }
36825
36826    #[simd_test(enable = "neon")]
36827    unsafe fn test_vld2q_dup_u8() {
36828        let a: [u8; 33] = [0, 1, 1, 2, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16, 9, 17];
36829        let e: [u8x16; 2] = [u8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), u8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)];
36830        let r: [u8x16; 2] = transmute(vld2q_dup_u8(a[1..].as_ptr()));
36831        assert_eq!(r, e);
36832    }
36833
36834    #[simd_test(enable = "neon")]
36835    unsafe fn test_vld2q_dup_u16() {
36836        let a: [u16; 17] = [0, 1, 1, 2, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9];
36837        let e: [u16x8; 2] = [u16x8::new(1, 1, 1, 1, 1, 1, 1, 1), u16x8::new(1, 1, 1, 1, 1, 1, 1, 1)];
36838        let r: [u16x8; 2] = transmute(vld2q_dup_u16(a[1..].as_ptr()));
36839        assert_eq!(r, e);
36840    }
36841
36842    #[simd_test(enable = "neon")]
36843    unsafe fn test_vld2q_dup_u32() {
36844        let a: [u32; 9] = [0, 1, 1, 2, 3, 1, 4, 3, 5];
36845        let e: [u32x4; 2] = [u32x4::new(1, 1, 1, 1), u32x4::new(1, 1, 1, 1)];
36846        let r: [u32x4; 2] = transmute(vld2q_dup_u32(a[1..].as_ptr()));
36847        assert_eq!(r, e);
36848    }
36849
36850    #[simd_test(enable = "neon")]
36851    unsafe fn test_vld2_dup_p8() {
36852        let a: [u8; 17] = [0, 1, 1, 2, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9];
36853        let e: [i8x8; 2] = [i8x8::new(1, 1, 1, 1, 1, 1, 1, 1), i8x8::new(1, 1, 1, 1, 1, 1, 1, 1)];
36854        let r: [i8x8; 2] = transmute(vld2_dup_p8(a[1..].as_ptr()));
36855        assert_eq!(r, e);
36856    }
36857
36858    #[simd_test(enable = "neon")]
36859    unsafe fn test_vld2_dup_p16() {
36860        let a: [u16; 9] = [0, 1, 1, 2, 3, 1, 4, 3, 5];
36861        let e: [i16x4; 2] = [i16x4::new(1, 1, 1, 1), i16x4::new(1, 1, 1, 1)];
36862        let r: [i16x4; 2] = transmute(vld2_dup_p16(a[1..].as_ptr()));
36863        assert_eq!(r, e);
36864    }
36865
36866    #[simd_test(enable = "neon")]
36867    unsafe fn test_vld2q_dup_p8() {
36868        let a: [u8; 33] = [0, 1, 1, 2, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 8, 16, 9, 17];
36869        let e: [i8x16; 2] = [i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), i8x16::new(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)];
36870        let r: [i8x16; 2] = transmute(vld2q_dup_p8(a[1..].as_ptr()));
36871        assert_eq!(r, e);
36872    }
36873
36874    #[simd_test(enable = "neon")]
36875    unsafe fn test_vld2q_dup_p16() {
36876        let a: [u16; 17] = [0, 1, 1, 2, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9];
36877        let e: [i16x8; 2] = [i16x8::new(1, 1, 1, 1, 1, 1, 1, 1), i16x8::new(1, 1, 1, 1, 1, 1, 1, 1)];
36878        let r: [i16x8; 2] = transmute(vld2q_dup_p16(a[1..].as_ptr()));
36879        assert_eq!(r, e);
36880    }
36881
36882    #[simd_test(enable = "neon")]
36883    unsafe fn test_vld2_dup_u64() {
36884        let a: [u64; 3] = [0, 1, 1];
36885        let e: [u64x1; 2] = [u64x1::new(1), u64x1::new(1)];
36886        let r: [u64x1; 2] = transmute(vld2_dup_u64(a[1..].as_ptr()));
36887        assert_eq!(r, e);
36888    }
36889
36890    #[simd_test(enable = "neon")]
36891    unsafe fn test_vld2_dup_p64() {
36892        let a: [u64; 3] = [0, 1, 1];
36893        let e: [i64x1; 2] = [i64x1::new(1), i64x1::new(1)];
36894        let r: [i64x1; 2] = transmute(vld2_dup_p64(a[1..].as_ptr()));
36895        assert_eq!(r, e);
36896    }
36897
36898    #[simd_test(enable = "neon")]
36899    unsafe fn test_vld2_dup_f32() {
36900        let a: [f32; 5] = [0., 1., 1., 2., 3.];
36901        let e: [f32x2; 2] = [f32x2::new(1., 1.), f32x2::new(1., 1.)];
36902        let r: [f32x2; 2] = transmute(vld2_dup_f32(a[1..].as_ptr()));
36903        assert_eq!(r, e);
36904    }
36905
36906    #[simd_test(enable = "neon")]
36907    unsafe fn test_vld2q_dup_f32() {
36908        let a: [f32; 9] = [0., 1., 1., 2., 3., 1., 4., 3., 5.];
36909        let e: [f32x4; 2] = [f32x4::new(1., 1., 1., 1.), f32x4::new(1., 1., 1., 1.)];
36910        let r: [f32x4; 2] = transmute(vld2q_dup_f32(a[1..].as_ptr()));
36911        assert_eq!(r, e);
36912    }
36913
36914    #[simd_test(enable = "neon")]
36915    unsafe fn test_vld2_lane_s8() {
36916        let a: [i8; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8];
36917        let b: [i8x8; 2] = [i8x8::new(0, 2, 2, 14, 2, 16, 17, 18), i8x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
36918        let e: [i8x8; 2] = [i8x8::new(1, 2, 2, 14, 2, 16, 17, 18), i8x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
36919        let r: [i8x8; 2] = transmute(vld2_lane_s8::<0>(a[1..].as_ptr(), transmute(b)));
36920        assert_eq!(r, e);
36921    }
36922
36923    #[simd_test(enable = "neon")]
36924    unsafe fn test_vld2_lane_s16() {
36925        let a: [i16; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36926        let b: [i16x4; 2] = [i16x4::new(0, 2, 2, 14), i16x4::new(2, 16, 17, 18)];
36927        let e: [i16x4; 2] = [i16x4::new(1, 2, 2, 14), i16x4::new(2, 16, 17, 18)];
36928        let r: [i16x4; 2] = transmute(vld2_lane_s16::<0>(a[1..].as_ptr(), transmute(b)));
36929        assert_eq!(r, e);
36930    }
36931
36932    #[simd_test(enable = "neon")]
36933    unsafe fn test_vld2_lane_s32() {
36934        let a: [i32; 5] = [0, 1, 2, 3, 4];
36935        let b: [i32x2; 2] = [i32x2::new(0, 2), i32x2::new(2, 14)];
36936        let e: [i32x2; 2] = [i32x2::new(1, 2), i32x2::new(2, 14)];
36937        let r: [i32x2; 2] = transmute(vld2_lane_s32::<0>(a[1..].as_ptr(), transmute(b)));
36938        assert_eq!(r, e);
36939    }
36940
36941    #[simd_test(enable = "neon")]
36942    unsafe fn test_vld2q_lane_s16() {
36943        let a: [i16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8];
36944        let b: [i16x8; 2] = [i16x8::new(0, 2, 2, 14, 2, 16, 17, 18), i16x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
36945        let e: [i16x8; 2] = [i16x8::new(1, 2, 2, 14, 2, 16, 17, 18), i16x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
36946        let r: [i16x8; 2] = transmute(vld2q_lane_s16::<0>(a[1..].as_ptr(), transmute(b)));
36947        assert_eq!(r, e);
36948    }
36949
36950    #[simd_test(enable = "neon")]
36951    unsafe fn test_vld2q_lane_s32() {
36952        let a: [i32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36953        let b: [i32x4; 2] = [i32x4::new(0, 2, 2, 14), i32x4::new(2, 16, 17, 18)];
36954        let e: [i32x4; 2] = [i32x4::new(1, 2, 2, 14), i32x4::new(2, 16, 17, 18)];
36955        let r: [i32x4; 2] = transmute(vld2q_lane_s32::<0>(a[1..].as_ptr(), transmute(b)));
36956        assert_eq!(r, e);
36957    }
36958
36959    #[simd_test(enable = "neon")]
36960    unsafe fn test_vld2_lane_u8() {
36961        let a: [u8; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8];
36962        let b: [u8x8; 2] = [u8x8::new(0, 2, 2, 14, 2, 16, 17, 18), u8x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
36963        let e: [u8x8; 2] = [u8x8::new(1, 2, 2, 14, 2, 16, 17, 18), u8x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
36964        let r: [u8x8; 2] = transmute(vld2_lane_u8::<0>(a[1..].as_ptr(), transmute(b)));
36965        assert_eq!(r, e);
36966    }
36967
36968    #[simd_test(enable = "neon")]
36969    unsafe fn test_vld2_lane_u16() {
36970        let a: [u16; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36971        let b: [u16x4; 2] = [u16x4::new(0, 2, 2, 14), u16x4::new(2, 16, 17, 18)];
36972        let e: [u16x4; 2] = [u16x4::new(1, 2, 2, 14), u16x4::new(2, 16, 17, 18)];
36973        let r: [u16x4; 2] = transmute(vld2_lane_u16::<0>(a[1..].as_ptr(), transmute(b)));
36974        assert_eq!(r, e);
36975    }
36976
36977    #[simd_test(enable = "neon")]
36978    unsafe fn test_vld2_lane_u32() {
36979        let a: [u32; 5] = [0, 1, 2, 3, 4];
36980        let b: [u32x2; 2] = [u32x2::new(0, 2), u32x2::new(2, 14)];
36981        let e: [u32x2; 2] = [u32x2::new(1, 2), u32x2::new(2, 14)];
36982        let r: [u32x2; 2] = transmute(vld2_lane_u32::<0>(a[1..].as_ptr(), transmute(b)));
36983        assert_eq!(r, e);
36984    }
36985
36986    #[simd_test(enable = "neon")]
36987    unsafe fn test_vld2q_lane_u16() {
36988        let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8];
36989        let b: [u16x8; 2] = [u16x8::new(0, 2, 2, 14, 2, 16, 17, 18), u16x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
36990        let e: [u16x8; 2] = [u16x8::new(1, 2, 2, 14, 2, 16, 17, 18), u16x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
36991        let r: [u16x8; 2] = transmute(vld2q_lane_u16::<0>(a[1..].as_ptr(), transmute(b)));
36992        assert_eq!(r, e);
36993    }
36994
36995    #[simd_test(enable = "neon")]
36996    unsafe fn test_vld2q_lane_u32() {
36997        let a: [u32; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
36998        let b: [u32x4; 2] = [u32x4::new(0, 2, 2, 14), u32x4::new(2, 16, 17, 18)];
36999        let e: [u32x4; 2] = [u32x4::new(1, 2, 2, 14), u32x4::new(2, 16, 17, 18)];
37000        let r: [u32x4; 2] = transmute(vld2q_lane_u32::<0>(a[1..].as_ptr(), transmute(b)));
37001        assert_eq!(r, e);
37002    }
37003
37004    #[simd_test(enable = "neon")]
37005    unsafe fn test_vld2_lane_p8() {
37006        let a: [u8; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8];
37007        let b: [i8x8; 2] = [i8x8::new(0, 2, 2, 14, 2, 16, 17, 18), i8x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
37008        let e: [i8x8; 2] = [i8x8::new(1, 2, 2, 14, 2, 16, 17, 18), i8x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
37009        let r: [i8x8; 2] = transmute(vld2_lane_p8::<0>(a[1..].as_ptr(), transmute(b)));
37010        assert_eq!(r, e);
37011    }
37012
37013    #[simd_test(enable = "neon")]
37014    unsafe fn test_vld2_lane_p16() {
37015        let a: [u16; 9] = [0, 1, 2, 3, 4, 5, 6, 7, 8];
37016        let b: [i16x4; 2] = [i16x4::new(0, 2, 2, 14), i16x4::new(2, 16, 17, 18)];
37017        let e: [i16x4; 2] = [i16x4::new(1, 2, 2, 14), i16x4::new(2, 16, 17, 18)];
37018        let r: [i16x4; 2] = transmute(vld2_lane_p16::<0>(a[1..].as_ptr(), transmute(b)));
37019        assert_eq!(r, e);
37020    }
37021
37022    #[simd_test(enable = "neon")]
37023    unsafe fn test_vld2q_lane_p16() {
37024        let a: [u16; 17] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8];
37025        let b: [i16x8; 2] = [i16x8::new(0, 2, 2, 14, 2, 16, 17, 18), i16x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
37026        let e: [i16x8; 2] = [i16x8::new(1, 2, 2, 14, 2, 16, 17, 18), i16x8::new(2, 20, 21, 22, 23, 24, 25, 26)];
37027        let r: [i16x8; 2] = transmute(vld2q_lane_p16::<0>(a[1..].as_ptr(), transmute(b)));
37028        assert_eq!(r, e);
37029    }
37030
37031    #[simd_test(enable = "neon")]
37032    unsafe fn test_vld2_lane_f32() {
37033        let a: [f32; 5] = [0., 1., 2., 3., 4.];
37034        let b: [f32x2; 2] = [f32x2::new(0., 2.), f32x2::new(2., 14.)];
37035        let e: [f32x2; 2] = [f32x2::new(1., 2.), f32x2::new(2., 14.)];
37036        let r: [f32x2; 2] = transmute(vld2_lane_f32::<0>(a[1..].as_ptr(), transmute(b)));
37037        assert_eq!(r, e);
37038    }
37039
37040    #[simd_test(enable = "neon")]
37041    unsafe fn test_vld2q_lane_f32() {
37042        let a: [f32; 9] = [0., 1., 2., 3., 4., 5., 6., 7., 8.];
37043        let b: [f32x4; 2] = [f32x4::new(0., 2., 2., 14.), f32x4::new(2., 16., 17., 18.)];
37044        let e: [f32x4; 2] = [f32x4::new(1., 2., 2., 14.), f32x4::new(2., 16., 17., 18.)];
37045        let r: [f32x4; 2] = transmute(vld2q_lane_f32::<0>(a[1..].as_ptr(), transmute(b)));
37046        assert_eq!(r, e);
37047    }
37048
37049    #[simd_test(enable = "neon")]
37050    unsafe fn test_vld3_s8() {
37051        let a: [i8; 25] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8, 2, 13, 13, 4, 14, 14, 7, 15, 15, 8, 16, 16];
37052        let e: [i8x8; 3] = [i8x8::new(1, 2, 2, 4, 2, 4, 7, 8), i8x8::new(2, 4, 7, 8, 13, 14, 15, 16), i8x8::new(2, 4, 7, 8, 13, 14, 15, 16)];
37053        let r: [i8x8; 3] = transmute(vld3_s8(a[1..].as_ptr()));
37054        assert_eq!(r, e);
37055    }
37056
37057    #[simd_test(enable = "neon")]
37058    unsafe fn test_vld3_s16() {
37059        let a: [i16; 13] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8];
37060        let e: [i16x4; 3] = [i16x4::new(1, 2, 2, 4), i16x4::new(2, 4, 7, 8), i16x4::new(2, 4, 7, 8)];
37061        let r: [i16x4; 3] = transmute(vld3_s16(a[1..].as_ptr()));
37062        assert_eq!(r, e);
37063    }
37064
37065    #[simd_test(enable = "neon")]
37066    unsafe fn test_vld3_s32() {
37067        let a: [i32; 7] = [0, 1, 2, 2, 2, 4, 4];
37068        let e: [i32x2; 3] = [i32x2::new(1, 2), i32x2::new(2, 4), i32x2::new(2, 4)];
37069        let r: [i32x2; 3] = transmute(vld3_s32(a[1..].as_ptr()));
37070        assert_eq!(r, e);
37071    }
37072
37073    #[simd_test(enable = "neon")]
37074    unsafe fn test_vld3q_s8() {
37075        let a: [i8; 49] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8, 2, 13, 13, 4, 14, 14, 7, 15, 15, 8, 16, 16, 2, 25, 41, 4, 26, 42, 7, 27, 43, 8, 28, 44, 13, 29, 45, 14, 30, 46, 15, 31, 47, 16, 32, 48];
37076        let e: [i8x16; 3] = [i8x16::new(1, 2, 2, 4, 2, 4, 7, 8, 2, 4, 7, 8, 13, 14, 15, 16), i8x16::new(2, 4, 7, 8, 13, 14, 15, 16, 25, 26, 27, 28, 29, 30, 31, 32), i8x16::new(2, 4, 7, 8, 13, 14, 15, 16, 41, 42, 43, 44, 45, 46, 47, 48)];
37077        let r: [i8x16; 3] = transmute(vld3q_s8(a[1..].as_ptr()));
37078        assert_eq!(r, e);
37079    }
37080
37081    #[simd_test(enable = "neon")]
37082    unsafe fn test_vld3q_s16() {
37083        let a: [i16; 25] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8, 2, 13, 13, 4, 14, 14, 7, 15, 15, 8, 16, 16];
37084        let e: [i16x8; 3] = [i16x8::new(1, 2, 2, 4, 2, 4, 7, 8), i16x8::new(2, 4, 7, 8, 13, 14, 15, 16), i16x8::new(2, 4, 7, 8, 13, 14, 15, 16)];
37085        let r: [i16x8; 3] = transmute(vld3q_s16(a[1..].as_ptr()));
37086        assert_eq!(r, e);
37087    }
37088
37089    #[simd_test(enable = "neon")]
37090    unsafe fn test_vld3q_s32() {
37091        let a: [i32; 13] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8];
37092        let e: [i32x4; 3] = [i32x4::new(1, 2, 2, 4), i32x4::new(2, 4, 7, 8), i32x4::new(2, 4, 7, 8)];
37093        let r: [i32x4; 3] = transmute(vld3q_s32(a[1..].as_ptr()));
37094        assert_eq!(r, e);
37095    }
37096
37097    #[simd_test(enable = "neon")]
37098    unsafe fn test_vld3_s64() {
37099        let a: [i64; 4] = [0, 1, 2, 2];
37100        let e: [i64x1; 3] = [i64x1::new(1), i64x1::new(2), i64x1::new(2)];
37101        let r: [i64x1; 3] = transmute(vld3_s64(a[1..].as_ptr()));
37102        assert_eq!(r, e);
37103    }
37104
37105    #[simd_test(enable = "neon")]
37106    unsafe fn test_vld3_u8() {
37107        let a: [u8; 25] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8, 2, 13, 13, 4, 14, 14, 7, 15, 15, 8, 16, 16];
37108        let e: [u8x8; 3] = [u8x8::new(1, 2, 2, 4, 2, 4, 7, 8), u8x8::new(2, 4, 7, 8, 13, 14, 15, 16), u8x8::new(2, 4, 7, 8, 13, 14, 15, 16)];
37109        let r: [u8x8; 3] = transmute(vld3_u8(a[1..].as_ptr()));
37110        assert_eq!(r, e);
37111    }
37112
37113    #[simd_test(enable = "neon")]
37114    unsafe fn test_vld3_u16() {
37115        let a: [u16; 13] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8];
37116        let e: [u16x4; 3] = [u16x4::new(1, 2, 2, 4), u16x4::new(2, 4, 7, 8), u16x4::new(2, 4, 7, 8)];
37117        let r: [u16x4; 3] = transmute(vld3_u16(a[1..].as_ptr()));
37118        assert_eq!(r, e);
37119    }
37120
37121    #[simd_test(enable = "neon")]
37122    unsafe fn test_vld3_u32() {
37123        let a: [u32; 7] = [0, 1, 2, 2, 2, 4, 4];
37124        let e: [u32x2; 3] = [u32x2::new(1, 2), u32x2::new(2, 4), u32x2::new(2, 4)];
37125        let r: [u32x2; 3] = transmute(vld3_u32(a[1..].as_ptr()));
37126        assert_eq!(r, e);
37127    }
37128
37129    #[simd_test(enable = "neon")]
37130    unsafe fn test_vld3q_u8() {
37131        let a: [u8; 49] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8, 2, 13, 13, 4, 14, 14, 7, 15, 15, 8, 16, 16, 2, 25, 41, 4, 26, 42, 7, 27, 43, 8, 28, 44, 13, 29, 45, 14, 30, 46, 15, 31, 47, 16, 32, 48];
37132        let e: [u8x16; 3] = [u8x16::new(1, 2, 2, 4, 2, 4, 7, 8, 2, 4, 7, 8, 13, 14, 15, 16), u8x16::new(2, 4, 7, 8, 13, 14, 15, 16, 25, 26, 27, 28, 29, 30, 31, 32), u8x16::new(2, 4, 7, 8, 13, 14, 15, 16, 41, 42, 43, 44, 45, 46, 47, 48)];
37133        let r: [u8x16; 3] = transmute(vld3q_u8(a[1..].as_ptr()));
37134        assert_eq!(r, e);
37135    }
37136
37137    #[simd_test(enable = "neon")]
37138    unsafe fn test_vld3q_u16() {
37139        let a: [u16; 25] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8, 2, 13, 13, 4, 14, 14, 7, 15, 15, 8, 16, 16];
37140        let e: [u16x8; 3] = [u16x8::new(1, 2, 2, 4, 2, 4, 7, 8), u16x8::new(2, 4, 7, 8, 13, 14, 15, 16), u16x8::new(2, 4, 7, 8, 13, 14, 15, 16)];
37141        let r: [u16x8; 3] = transmute(vld3q_u16(a[1..].as_ptr()));
37142        assert_eq!(r, e);
37143    }
37144
37145    #[simd_test(enable = "neon")]
37146    unsafe fn test_vld3q_u32() {
37147        let a: [u32; 13] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8];
37148        let e: [u32x4; 3] = [u32x4::new(1, 2, 2, 4), u32x4::new(2, 4, 7, 8), u32x4::new(2, 4, 7, 8)];
37149        let r: [u32x4; 3] = transmute(vld3q_u32(a[1..].as_ptr()));
37150        assert_eq!(r, e);
37151    }
37152
37153    #[simd_test(enable = "neon")]
37154    unsafe fn test_vld3_p8() {
37155        let a: [u8; 25] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8, 2, 13, 13, 4, 14, 14, 7, 15, 15, 8, 16, 16];
37156        let e: [i8x8; 3] = [i8x8::new(1, 2, 2, 4, 2, 4, 7, 8), i8x8::new(2, 4, 7, 8, 13, 14, 15, 16), i8x8::new(2, 4, 7, 8, 13, 14, 15, 16)];
37157        let r: [i8x8; 3] = transmute(vld3_p8(a[1..].as_ptr()));
37158        assert_eq!(r, e);
37159    }
37160
37161    #[simd_test(enable = "neon")]
37162    unsafe fn test_vld3_p16() {
37163        let a: [u16; 13] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8];
37164        let e: [i16x4; 3] = [i16x4::new(1, 2, 2, 4), i16x4::new(2, 4, 7, 8), i16x4::new(2, 4, 7, 8)];
37165        let r: [i16x4; 3] = transmute(vld3_p16(a[1..].as_ptr()));
37166        assert_eq!(r, e);
37167    }
37168
37169    #[simd_test(enable = "neon")]
37170    unsafe fn test_vld3q_p8() {
37171        let a: [u8; 49] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8, 2, 13, 13, 4, 14, 14, 7, 15, 15, 8, 16, 16, 2, 25, 41, 4, 26, 42, 7, 27, 43, 8, 28, 44, 13, 29, 45, 14, 30, 46, 15, 31, 47, 16, 32, 48];
37172        let e: [i8x16; 3] = [i8x16::new(1, 2, 2, 4, 2, 4, 7, 8, 2, 4, 7, 8, 13, 14, 15, 16), i8x16::new(2, 4, 7, 8, 13, 14, 15, 16, 25, 26, 27, 28, 29, 30, 31, 32), i8x16::new(2, 4, 7, 8, 13, 14, 15, 16, 41, 42, 43, 44, 45, 46, 47, 48)];
37173        let r: [i8x16; 3] = transmute(vld3q_p8(a[1..].as_ptr()));
37174        assert_eq!(r, e);
37175    }
37176
37177    #[simd_test(enable = "neon")]
37178    unsafe fn test_vld3q_p16() {
37179        let a: [u16; 25] = [0, 1, 2, 2, 2, 4, 4, 2, 7, 7, 4, 8, 8, 2, 13, 13, 4, 14, 14, 7, 15, 15, 8, 16, 16];
37180        let e: [i16x8; 3] = [i16x8::new(1, 2, 2, 4, 2, 4, 7, 8), i16x8::new(2, 4, 7, 8, 13, 14, 15, 16), i16x8::new(2, 4, 7, 8, 13, 14, 15, 16)];
37181        let r: [i16x8; 3] = transmute(vld3q_p16(a[1..].as_ptr()));
37182        assert_eq!(r, e);
37183    }
37184
37185    #[simd_test(enable = "neon")]
37186    unsafe fn test_vld3_u64() {
37187        let a: [u64; 4] = [0, 1, 2, 2];
37188        let e: [u64x1; 3] = [u64x1::new(1), u64x1::new(2), u64x1::new(2)];
37189        let r: [u64x1; 3] = transmute(vld3_u64(a[1..].as_ptr()));
37190        assert_eq!(r, e);
37191    }
37192
37193    #[simd_test(enable = "neon")]
37194    unsafe fn test_vld3_p64() {
37195        let a: [u64; 4] = [0, 1, 2, 2];
37196        let e: [i64x1; 3] = [i64x1::new(1), i64x1::new(2), i64x1::new(2)];
37197        let r: [i64x1; 3] = transmute(vld3_p64(a[1..].as_ptr()));
37198        assert_eq!(r, e);
37199    }
37200
37201    #[simd_test(enable = "neon")]
37202    unsafe fn test_vld3_f32() {
37203        let a: [f32; 7] = [0., 1., 2., 2., 2., 4., 4.];
37204        let e: [f32x2; 3] = [f32x2::new(1., 2.), f32x2::new(2., 4.), f32x2::new(2., 4.)];
37205        let r: [f32x2; 3] = transmute(vld3_f32(a[1..].as_ptr()));
37206        assert_eq!(r, e);
37207    }
37208
37209    #[simd_test(enable = "neon")]
37210    unsafe fn test_vld3q_f32() {
37211        let a: [f32; 13] = [0., 1., 2., 2., 2., 4., 4., 2., 7., 7., 4., 8., 8.];
37212        let e: [f32x4; 3] = [f32x4::new(1., 2., 2., 4.), f32x4::new(2., 4., 7., 8.), f32x4::new(2., 4., 7., 8.)];
37213        let r: [f32x4; 3] = transmute(vld3q_f32(a[1..].as_ptr()));
37214        assert_eq!(r, e);
37215    }
37216
37217    #[simd_test(enable = "neon")]
37218    unsafe fn test_vld3_dup_s8() {
37219        let a: [i8; 25] = [0, 1, 1, 1, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9, 2, 10, 3, 11, 4, 12, 5, 13];
37220        let e: [i8x8; 3] = [i8x8::new(1, 1, 1, 1, 1, 1, 1, 1), i8x8::new(1, 1, 1, 1, 1, 1, 1, 1), i8x8::new(1, 1, 1, 1, 1, 1, 1, 1)];
37221        let r: [i8x8; 3] = transmute(vld3_dup_s8(a[1..].as_ptr()));
37222        assert_eq!(r, e);
37223    }
37224
37225    #[simd_test(enable = "neon")]
37226    unsafe fn test_vld3_dup_s16() {
37227        let a: [i16; 13] = [0, 1, 1, 1, 3, 1, 4, 3, 5, 1, 6, 3, 7];
37228        let e: [i16x4; 3] = [i16x4::new(1, 1, 1, 1), i16x4::new(1, 1, 1, 1), i16x4::new(1, 1, 1, 1)];
37229        let r: [i16x4; 3] = transmute(vld3_dup_s16(a[1..].as_ptr()));
37230        assert_eq!(r, e);
37231    }
37232
37233    #[simd_test(enable = "neon")]
37234    unsafe fn test_vld3_dup_s32() {
37235        let a: [i32; 7] = [0, 1, 1, 1, 3, 1, 4];
37236        let e: [i32x2; 3] = [i32x2::new(1, 1), i32x2::new(1, 1), i32x2::new(1, 1)];
37237        let r: [i32x2; 3] = transmute(vld3_dup_s32(a[1..].as_ptr()));
37238        assert_eq!(r, e);
37239    }
37240
37241    #[simd_test(enable = "neon")]
37242    unsafe fn test_vld3q_dup_s8() {
37243        let a: [i8; 49] = [0, 1, 1, 1, 3, 1, 4, 3, 5, 1, 6, 3, 7, 4, 8, 5, 9, 2, 10,