1use super::*;
9#[cfg(test)]
10use stdarch_test::assert_instr;
11
12#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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#[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,