@@ -24470,6 +24470,73 @@ pub fn vrsrad_n_u64<const N: i32>(a: u64, b: u64) -> u64 {
24470
24470
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_s16)"]
24471
24471
#[inline]
24472
24472
#[target_feature(enable = "neon")]
24473
+ #[cfg(target_endian = "little")]
24474
+ #[cfg_attr(test, assert_instr(rsubhn2))]
24475
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
24476
+ pub fn vrsubhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
24477
+ let x: int8x8_t = vrsubhn_s16(b, c);
24478
+ unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
24479
+ }
24480
+ #[doc = "Rounding subtract returning high narrow"]
24481
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_s32)"]
24482
+ #[inline]
24483
+ #[target_feature(enable = "neon")]
24484
+ #[cfg(target_endian = "little")]
24485
+ #[cfg_attr(test, assert_instr(rsubhn2))]
24486
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
24487
+ pub fn vrsubhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
24488
+ let x: int16x4_t = vrsubhn_s32(b, c);
24489
+ unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7]) }
24490
+ }
24491
+ #[doc = "Rounding subtract returning high narrow"]
24492
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_s64)"]
24493
+ #[inline]
24494
+ #[target_feature(enable = "neon")]
24495
+ #[cfg(target_endian = "little")]
24496
+ #[cfg_attr(test, assert_instr(rsubhn2))]
24497
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
24498
+ pub fn vrsubhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
24499
+ let x: int32x2_t = vrsubhn_s64(b, c);
24500
+ unsafe { simd_shuffle!(a, x, [0, 1, 2, 3]) }
24501
+ }
24502
+ #[doc = "Rounding subtract returning high narrow"]
24503
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_u16)"]
24504
+ #[inline]
24505
+ #[target_feature(enable = "neon")]
24506
+ #[cfg(target_endian = "little")]
24507
+ #[cfg_attr(test, assert_instr(rsubhn2))]
24508
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
24509
+ pub fn vrsubhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
24510
+ let x: uint8x8_t = vrsubhn_u16(b, c);
24511
+ unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) }
24512
+ }
24513
+ #[doc = "Rounding subtract returning high narrow"]
24514
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_u32)"]
24515
+ #[inline]
24516
+ #[target_feature(enable = "neon")]
24517
+ #[cfg(target_endian = "little")]
24518
+ #[cfg_attr(test, assert_instr(rsubhn2))]
24519
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
24520
+ pub fn vrsubhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
24521
+ let x: uint16x4_t = vrsubhn_u32(b, c);
24522
+ unsafe { simd_shuffle!(a, x, [0, 1, 2, 3, 4, 5, 6, 7]) }
24523
+ }
24524
+ #[doc = "Rounding subtract returning high narrow"]
24525
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_u64)"]
24526
+ #[inline]
24527
+ #[target_feature(enable = "neon")]
24528
+ #[cfg(target_endian = "little")]
24529
+ #[cfg_attr(test, assert_instr(rsubhn2))]
24530
+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
24531
+ pub fn vrsubhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
24532
+ let x: uint32x2_t = vrsubhn_u64(b, c);
24533
+ unsafe { simd_shuffle!(a, x, [0, 1, 2, 3]) }
24534
+ }
24535
+ #[doc = "Rounding subtract returning high narrow"]
24536
+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_s16)"]
24537
+ #[inline]
24538
+ #[target_feature(enable = "neon")]
24539
+ #[cfg(target_endian = "big")]
24473
24540
#[cfg_attr(test, assert_instr(rsubhn))]
24474
24541
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24475
24542
pub fn vrsubhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
@@ -24480,6 +24547,7 @@ pub fn vrsubhn_high_s16(a: int8x8_t, b: int16x8_t, c: int16x8_t) -> int8x16_t {
24480
24547
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_s32)"]
24481
24548
#[inline]
24482
24549
#[target_feature(enable = "neon")]
24550
+ #[cfg(target_endian = "big")]
24483
24551
#[cfg_attr(test, assert_instr(rsubhn))]
24484
24552
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24485
24553
pub fn vrsubhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
@@ -24490,6 +24558,7 @@ pub fn vrsubhn_high_s32(a: int16x4_t, b: int32x4_t, c: int32x4_t) -> int16x8_t {
24490
24558
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_s64)"]
24491
24559
#[inline]
24492
24560
#[target_feature(enable = "neon")]
24561
+ #[cfg(target_endian = "big")]
24493
24562
#[cfg_attr(test, assert_instr(rsubhn))]
24494
24563
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24495
24564
pub fn vrsubhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
@@ -24500,6 +24569,7 @@ pub fn vrsubhn_high_s64(a: int32x2_t, b: int64x2_t, c: int64x2_t) -> int32x4_t {
24500
24569
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_u16)"]
24501
24570
#[inline]
24502
24571
#[target_feature(enable = "neon")]
24572
+ #[cfg(target_endian = "big")]
24503
24573
#[cfg_attr(test, assert_instr(rsubhn))]
24504
24574
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24505
24575
pub fn vrsubhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_t {
@@ -24510,6 +24580,7 @@ pub fn vrsubhn_high_u16(a: uint8x8_t, b: uint16x8_t, c: uint16x8_t) -> uint8x16_
24510
24580
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_u32)"]
24511
24581
#[inline]
24512
24582
#[target_feature(enable = "neon")]
24583
+ #[cfg(target_endian = "big")]
24513
24584
#[cfg_attr(test, assert_instr(rsubhn))]
24514
24585
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24515
24586
pub fn vrsubhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8_t {
@@ -24520,6 +24591,7 @@ pub fn vrsubhn_high_u32(a: uint16x4_t, b: uint32x4_t, c: uint32x4_t) -> uint16x8
24520
24591
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsubhn_high_u64)"]
24521
24592
#[inline]
24522
24593
#[target_feature(enable = "neon")]
24594
+ #[cfg(target_endian = "big")]
24523
24595
#[cfg_attr(test, assert_instr(rsubhn))]
24524
24596
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
24525
24597
pub fn vrsubhn_high_u64(a: uint32x2_t, b: uint64x2_t, c: uint64x2_t) -> uint32x4_t {
0 commit comments