@@ -7925,7 +7925,7 @@ pub fn vcvth_f16_u64(a: u64) -> f16 {
79257925#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
79267926pub fn vcvth_n_f16_s16<const N: i32>(a: i16) -> f16 {
79277927 static_assert!(N >= 1 && N <= 16);
7928- vcvth_n_f16_s32::<N>(a as i32) as f16
7928+ vcvth_n_f16_s32::<N>(a as i32)
79297929}
79307930#[doc = "Fixed-point convert to floating-point"]
79317931#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvth_n_f16_s32)"]
@@ -7972,7 +7972,7 @@ pub fn vcvth_n_f16_s64<const N: i32>(a: i64) -> f16 {
79727972#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
79737973pub fn vcvth_n_f16_u16<const N: i32>(a: u16) -> f16 {
79747974 static_assert!(N >= 1 && N <= 16);
7975- vcvth_n_f16_u32::<N>(a as u32) as f16
7975+ vcvth_n_f16_u32::<N>(a as u32)
79767976}
79777977#[doc = "Fixed-point convert to floating-point"]
79787978#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vcvth_n_f16_u32)"]
@@ -17157,8 +17157,7 @@ pub fn vqdmlalh_s16(a: i32, b: i16, c: i16) -> i32 {
1715717157#[cfg_attr(test, assert_instr(sqdmlal))]
1715817158#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1715917159pub fn vqdmlals_s32(a: i64, b: i32, c: i32) -> i64 {
17160- let x: i64 = vqaddd_s64(a, vqdmulls_s32(b, c));
17161- x as i64
17160+ vqaddd_s64(a, vqdmulls_s32(b, c))
1716217161}
1716317162#[doc = "Signed saturating doubling multiply-subtract long"]
1716417163#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmlsl_high_lane_s16)"]
@@ -17323,8 +17322,7 @@ pub fn vqdmlslh_s16(a: i32, b: i16, c: i16) -> i32 {
1732317322#[cfg_attr(test, assert_instr(sqdmlsl))]
1732417323#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1732517324pub fn vqdmlsls_s32(a: i64, b: i32, c: i32) -> i64 {
17326- let x: i64 = vqsubd_s64(a, vqdmulls_s32(b, c));
17327- x as i64
17325+ vqsubd_s64(a, vqdmulls_s32(b, c))
1732817326}
1732917327#[doc = "Vector saturating doubling multiply high by scalar"]
1733017328#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqdmulh_lane_s16)"]
@@ -19491,49 +19489,115 @@ pub fn vqtbl1q_s8(a: int8x16_t, b: uint8x16_t) -> int8x16_t {
1949119489#[doc = "Table look-up"]
1949219490#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1_u8)"]
1949319491#[inline]
19492+ #[cfg(target_endian = "little")]
19493+ #[target_feature(enable = "neon")]
19494+ #[cfg_attr(test, assert_instr(tbl))]
19495+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
19496+ pub fn vqtbl1_u8(a: uint8x16_t, b: uint8x8_t) -> uint8x8_t {
19497+ unsafe { transmute(vqtbl1(transmute(a), b)) }
19498+ }
19499+ #[doc = "Table look-up"]
19500+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1_u8)"]
19501+ #[inline]
19502+ #[cfg(target_endian = "big")]
1949419503#[target_feature(enable = "neon")]
1949519504#[cfg_attr(test, assert_instr(tbl))]
1949619505#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1949719506pub fn vqtbl1_u8(a: uint8x16_t, b: uint8x8_t) -> uint8x8_t {
19507+ let a: uint8x16_t =
19508+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19509+ let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
1949819510 unsafe {
19499- let x = transmute(vqtbl1(transmute(a), b));
19500- x
19511+ let ret_val: uint8x8_t = transmute(vqtbl1(transmute(a), b));
19512+ simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
1950119513 }
1950219514}
1950319515#[doc = "Table look-up"]
1950419516#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1q_u8)"]
1950519517#[inline]
19518+ #[cfg(target_endian = "little")]
1950619519#[target_feature(enable = "neon")]
1950719520#[cfg_attr(test, assert_instr(tbl))]
1950819521#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1950919522pub fn vqtbl1q_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
19523+ unsafe { transmute(vqtbl1q(transmute(a), b)) }
19524+ }
19525+ #[doc = "Table look-up"]
19526+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1q_u8)"]
19527+ #[inline]
19528+ #[cfg(target_endian = "big")]
19529+ #[target_feature(enable = "neon")]
19530+ #[cfg_attr(test, assert_instr(tbl))]
19531+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
19532+ pub fn vqtbl1q_u8(a: uint8x16_t, b: uint8x16_t) -> uint8x16_t {
19533+ let a: uint8x16_t =
19534+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19535+ let b: uint8x16_t =
19536+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
1951019537 unsafe {
19511- let x = transmute(vqtbl1q(transmute(a), b));
19512- x
19538+ let ret_val: uint8x16_t = transmute(vqtbl1q(transmute(a), b));
19539+ simd_shuffle!(
19540+ ret_val,
19541+ ret_val,
19542+ [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19543+ )
1951319544 }
1951419545}
1951519546#[doc = "Table look-up"]
1951619547#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1_p8)"]
1951719548#[inline]
19549+ #[cfg(target_endian = "little")]
19550+ #[target_feature(enable = "neon")]
19551+ #[cfg_attr(test, assert_instr(tbl))]
19552+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
19553+ pub fn vqtbl1_p8(a: poly8x16_t, b: uint8x8_t) -> poly8x8_t {
19554+ unsafe { transmute(vqtbl1(transmute(a), b)) }
19555+ }
19556+ #[doc = "Table look-up"]
19557+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1_p8)"]
19558+ #[inline]
19559+ #[cfg(target_endian = "big")]
1951819560#[target_feature(enable = "neon")]
1951919561#[cfg_attr(test, assert_instr(tbl))]
1952019562#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1952119563pub fn vqtbl1_p8(a: poly8x16_t, b: uint8x8_t) -> poly8x8_t {
19564+ let a: poly8x16_t =
19565+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19566+ let b: uint8x8_t = unsafe { simd_shuffle!(b, b, [7, 6, 5, 4, 3, 2, 1, 0]) };
1952219567 unsafe {
19523- let x = transmute(vqtbl1(transmute(a), b));
19524- x
19568+ let ret_val: poly8x8_t = transmute(vqtbl1(transmute(a), b));
19569+ simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
1952519570 }
1952619571}
1952719572#[doc = "Table look-up"]
1952819573#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1q_p8)"]
1952919574#[inline]
19575+ #[cfg(target_endian = "little")]
1953019576#[target_feature(enable = "neon")]
1953119577#[cfg_attr(test, assert_instr(tbl))]
1953219578#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1953319579pub fn vqtbl1q_p8(a: poly8x16_t, b: uint8x16_t) -> poly8x16_t {
19580+ unsafe { transmute(vqtbl1q(transmute(a), b)) }
19581+ }
19582+ #[doc = "Table look-up"]
19583+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbl1q_p8)"]
19584+ #[inline]
19585+ #[cfg(target_endian = "big")]
19586+ #[target_feature(enable = "neon")]
19587+ #[cfg_attr(test, assert_instr(tbl))]
19588+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
19589+ pub fn vqtbl1q_p8(a: poly8x16_t, b: uint8x16_t) -> poly8x16_t {
19590+ let a: poly8x16_t =
19591+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
19592+ let b: uint8x16_t =
19593+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
1953419594 unsafe {
19535- let x = transmute(vqtbl1q(transmute(a), b));
19536- x
19595+ let ret_val: poly8x16_t = transmute(vqtbl1q(transmute(a), b));
19596+ simd_shuffle!(
19597+ ret_val,
19598+ ret_val,
19599+ [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
19600+ )
1953719601 }
1953819602}
1953919603#[doc = "Table look-up"]
@@ -20393,49 +20457,121 @@ pub fn vqtbx1q_s8(a: int8x16_t, b: int8x16_t, c: uint8x16_t) -> int8x16_t {
2039320457#[doc = "Extended table look-up"]
2039420458#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1_u8)"]
2039520459#[inline]
20460+ #[cfg(target_endian = "little")]
2039620461#[target_feature(enable = "neon")]
2039720462#[cfg_attr(test, assert_instr(tbx))]
2039820463#[stable(feature = "neon_intrinsics", since = "1.59.0")]
2039920464pub fn vqtbx1_u8(a: uint8x8_t, b: uint8x16_t, c: uint8x8_t) -> uint8x8_t {
20465+ unsafe { transmute(vqtbx1(transmute(a), transmute(b), c)) }
20466+ }
20467+ #[doc = "Extended table look-up"]
20468+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1_u8)"]
20469+ #[inline]
20470+ #[cfg(target_endian = "big")]
20471+ #[target_feature(enable = "neon")]
20472+ #[cfg_attr(test, assert_instr(tbx))]
20473+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
20474+ pub fn vqtbx1_u8(a: uint8x8_t, b: uint8x16_t, c: uint8x8_t) -> uint8x8_t {
20475+ let a: uint8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
20476+ let b: uint8x16_t =
20477+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20478+ let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
2040020479 unsafe {
20401- let x = transmute(vqtbx1(transmute(a), transmute(b), c));
20402- x
20480+ let ret_val: uint8x8_t = transmute(vqtbx1(transmute(a), transmute(b), c));
20481+ simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
2040320482 }
2040420483}
2040520484#[doc = "Extended table look-up"]
2040620485#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1q_u8)"]
2040720486#[inline]
20487+ #[cfg(target_endian = "little")]
2040820488#[target_feature(enable = "neon")]
2040920489#[cfg_attr(test, assert_instr(tbx))]
2041020490#[stable(feature = "neon_intrinsics", since = "1.59.0")]
2041120491pub fn vqtbx1q_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
20492+ unsafe { transmute(vqtbx1q(transmute(a), transmute(b), c)) }
20493+ }
20494+ #[doc = "Extended table look-up"]
20495+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1q_u8)"]
20496+ #[inline]
20497+ #[cfg(target_endian = "big")]
20498+ #[target_feature(enable = "neon")]
20499+ #[cfg_attr(test, assert_instr(tbx))]
20500+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
20501+ pub fn vqtbx1q_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
20502+ let a: uint8x16_t =
20503+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20504+ let b: uint8x16_t =
20505+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20506+ let c: uint8x16_t =
20507+ unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
2041220508 unsafe {
20413- let x = transmute(vqtbx1q(transmute(a), transmute(b), c));
20414- x
20509+ let ret_val: uint8x16_t = transmute(vqtbx1q(transmute(a), transmute(b), c));
20510+ simd_shuffle!(
20511+ ret_val,
20512+ ret_val,
20513+ [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20514+ )
2041520515 }
2041620516}
2041720517#[doc = "Extended table look-up"]
2041820518#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1_p8)"]
2041920519#[inline]
20520+ #[cfg(target_endian = "little")]
2042020521#[target_feature(enable = "neon")]
2042120522#[cfg_attr(test, assert_instr(tbx))]
2042220523#[stable(feature = "neon_intrinsics", since = "1.59.0")]
2042320524pub fn vqtbx1_p8(a: poly8x8_t, b: poly8x16_t, c: uint8x8_t) -> poly8x8_t {
20525+ unsafe { transmute(vqtbx1(transmute(a), transmute(b), c)) }
20526+ }
20527+ #[doc = "Extended table look-up"]
20528+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1_p8)"]
20529+ #[inline]
20530+ #[cfg(target_endian = "big")]
20531+ #[target_feature(enable = "neon")]
20532+ #[cfg_attr(test, assert_instr(tbx))]
20533+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
20534+ pub fn vqtbx1_p8(a: poly8x8_t, b: poly8x16_t, c: uint8x8_t) -> poly8x8_t {
20535+ let a: poly8x8_t = unsafe { simd_shuffle!(a, a, [7, 6, 5, 4, 3, 2, 1, 0]) };
20536+ let b: poly8x16_t =
20537+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20538+ let c: uint8x8_t = unsafe { simd_shuffle!(c, c, [7, 6, 5, 4, 3, 2, 1, 0]) };
2042420539 unsafe {
20425- let x = transmute(vqtbx1(transmute(a), transmute(b), c));
20426- x
20540+ let ret_val: poly8x8_t = transmute(vqtbx1(transmute(a), transmute(b), c));
20541+ simd_shuffle!(ret_val, ret_val, [7, 6, 5, 4, 3, 2, 1, 0])
2042720542 }
2042820543}
2042920544#[doc = "Extended table look-up"]
2043020545#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1q_p8)"]
2043120546#[inline]
20547+ #[cfg(target_endian = "little")]
20548+ #[target_feature(enable = "neon")]
20549+ #[cfg_attr(test, assert_instr(tbx))]
20550+ #[stable(feature = "neon_intrinsics", since = "1.59.0")]
20551+ pub fn vqtbx1q_p8(a: poly8x16_t, b: poly8x16_t, c: uint8x16_t) -> poly8x16_t {
20552+ unsafe { transmute(vqtbx1q(transmute(a), transmute(b), c)) }
20553+ }
20554+ #[doc = "Extended table look-up"]
20555+ #[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vqtbx1q_p8)"]
20556+ #[inline]
20557+ #[cfg(target_endian = "big")]
2043220558#[target_feature(enable = "neon")]
2043320559#[cfg_attr(test, assert_instr(tbx))]
2043420560#[stable(feature = "neon_intrinsics", since = "1.59.0")]
2043520561pub fn vqtbx1q_p8(a: poly8x16_t, b: poly8x16_t, c: uint8x16_t) -> poly8x16_t {
20562+ let a: poly8x16_t =
20563+ unsafe { simd_shuffle!(a, a, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20564+ let b: poly8x16_t =
20565+ unsafe { simd_shuffle!(b, b, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
20566+ let c: uint8x16_t =
20567+ unsafe { simd_shuffle!(c, c, [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]) };
2043620568 unsafe {
20437- let x = transmute(vqtbx1q(transmute(a), transmute(b), c));
20438- x
20569+ let ret_val: poly8x16_t = transmute(vqtbx1q(transmute(a), transmute(b), c));
20570+ simd_shuffle!(
20571+ ret_val,
20572+ ret_val,
20573+ [15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
20574+ )
2043920575 }
2044020576}
2044120577#[doc = "Extended table look-up"]
@@ -24082,7 +24218,6 @@ pub fn vrsqrtes_f32(a: f32) -> f32 {
2408224218#[doc = "Reciprocal square-root estimate."]
2408324219#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vrsqrteh_f16)"]
2408424220#[inline]
24085- #[target_feature(enable = "neon,fp16")]
2408624221#[cfg_attr(test, assert_instr(frsqrte))]
2408724222#[target_feature(enable = "neon,fp16")]
2408824223#[unstable(feature = "stdarch_neon_f16", issue = "136306")]
0 commit comments