Add tracking issue for all remaining unstable NEON intrinsics
This commit is contained in:
parent
736da66780
commit
7de980e124
5 changed files with 149 additions and 33 deletions
|
|
@ -15,6 +15,7 @@ use stdarch_test::assert_instr;
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(eor3))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn veor3q_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -30,6 +31,7 @@ pub unsafe fn veor3q_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(eor3))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn veor3q_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -45,6 +47,7 @@ pub unsafe fn veor3q_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(eor3))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn veor3q_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -60,6 +63,7 @@ pub unsafe fn veor3q_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(eor3))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn veor3q_s64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -75,6 +79,7 @@ pub unsafe fn veor3q_s64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(eor3))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn veor3q_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -90,6 +95,7 @@ pub unsafe fn veor3q_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(eor3))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn veor3q_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -105,6 +111,7 @@ pub unsafe fn veor3q_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(eor3))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn veor3q_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -120,6 +127,7 @@ pub unsafe fn veor3q_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(eor3))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn veor3q_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uint64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -8360,6 +8368,7 @@ pub unsafe fn vst4q_lane_f64<const LANE: i32>(a: *mut f64, b: float64x2x4_t) {
|
|||
#[target_feature(enable = "neon,i8mm")]
|
||||
#[cfg_attr(test, assert_instr(usdot, LANE = 3))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
|
||||
pub unsafe fn vusdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x16_t) -> int32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 2);
|
||||
let c: int32x4_t = transmute(c);
|
||||
|
|
@ -8374,6 +8383,7 @@ pub unsafe fn vusdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: i
|
|||
#[target_feature(enable = "neon,i8mm")]
|
||||
#[cfg_attr(test, assert_instr(usdot, LANE = 3))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
|
||||
pub unsafe fn vusdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 2);
|
||||
let c: int32x4_t = transmute(c);
|
||||
|
|
@ -8388,6 +8398,7 @@ pub unsafe fn vusdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c:
|
|||
#[target_feature(enable = "neon,i8mm")]
|
||||
#[cfg_attr(test, assert_instr(sudot, LANE = 3))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
|
||||
pub unsafe fn vsudot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x16_t) -> int32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 2);
|
||||
let c: uint32x4_t = transmute(c);
|
||||
|
|
@ -8402,6 +8413,7 @@ pub unsafe fn vsudot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: ui
|
|||
#[target_feature(enable = "neon,i8mm")]
|
||||
#[cfg_attr(test, assert_instr(sudot, LANE = 3))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_i8mm", issue = "117223")]
|
||||
pub unsafe fn vsudotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x16_t) -> int32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 2);
|
||||
let c: uint32x4_t = transmute(c);
|
||||
|
|
@ -9965,6 +9977,7 @@ pub unsafe fn vsubl_high_u32(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(bcax))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vbcaxq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -9980,6 +9993,7 @@ pub unsafe fn vbcaxq_s8(a: int8x16_t, b: int8x16_t, c: int8x16_t) -> int8x16_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(bcax))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vbcaxq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -9995,6 +10009,7 @@ pub unsafe fn vbcaxq_s16(a: int16x8_t, b: int16x8_t, c: int16x8_t) -> int16x8_t
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(bcax))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vbcaxq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10010,6 +10025,7 @@ pub unsafe fn vbcaxq_s32(a: int32x4_t, b: int32x4_t, c: int32x4_t) -> int32x4_t
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(bcax))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vbcaxq_s64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10025,6 +10041,7 @@ pub unsafe fn vbcaxq_s64(a: int64x2_t, b: int64x2_t, c: int64x2_t) -> int64x2_t
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(bcax))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vbcaxq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10040,6 +10057,7 @@ pub unsafe fn vbcaxq_u8(a: uint8x16_t, b: uint8x16_t, c: uint8x16_t) -> uint8x16
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(bcax))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vbcaxq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x8_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10055,6 +10073,7 @@ pub unsafe fn vbcaxq_u16(a: uint16x8_t, b: uint16x8_t, c: uint16x8_t) -> uint16x
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(bcax))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vbcaxq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10070,6 +10089,7 @@ pub unsafe fn vbcaxq_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(bcax))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vbcaxq_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uint64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10085,6 +10105,7 @@ pub unsafe fn vbcaxq_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uint64x
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcadd))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcadd_rot270_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10100,6 +10121,7 @@ pub unsafe fn vcadd_rot270_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcadd))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcaddq_rot270_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10115,6 +10137,7 @@ pub unsafe fn vcaddq_rot270_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcadd))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcaddq_rot270_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10130,6 +10153,7 @@ pub unsafe fn vcaddq_rot270_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcadd))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcadd_rot90_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10145,6 +10169,7 @@ pub unsafe fn vcadd_rot90_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcadd))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcaddq_rot90_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10160,6 +10185,7 @@ pub unsafe fn vcaddq_rot90_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcadd))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcaddq_rot90_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10175,6 +10201,7 @@ pub unsafe fn vcaddq_rot90_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10190,6 +10217,7 @@ pub unsafe fn vcmla_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10205,6 +10233,7 @@ pub unsafe fn vcmlaq_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> floa
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10220,6 +10249,7 @@ pub unsafe fn vcmlaq_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t) -> floa
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_rot90_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10235,6 +10265,7 @@ pub unsafe fn vcmla_rot90_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) ->
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot90_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10250,6 +10281,7 @@ pub unsafe fn vcmlaq_rot90_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot90_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10265,6 +10297,7 @@ pub unsafe fn vcmlaq_rot90_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t) -
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_rot180_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10280,6 +10313,7 @@ pub unsafe fn vcmla_rot180_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot180_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10295,6 +10329,7 @@ pub unsafe fn vcmlaq_rot180_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t)
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot180_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10310,6 +10345,7 @@ pub unsafe fn vcmlaq_rot180_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t)
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_rot270_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10325,6 +10361,7 @@ pub unsafe fn vcmla_rot270_f32(a: float32x2_t, b: float32x2_t, c: float32x2_t) -
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot270_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10340,6 +10377,7 @@ pub unsafe fn vcmlaq_rot270_f32(a: float32x4_t, b: float32x4_t, c: float32x4_t)
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla))]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot270_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -10356,6 +10394,7 @@ pub unsafe fn vcmlaq_rot270_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t)
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
|
||||
static_assert!(LANE == 0);
|
||||
let c: float32x2_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10369,6 +10408,7 @@ pub unsafe fn vcmla_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c:
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x4_t) -> float32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
let c: float32x2_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10382,6 +10422,7 @@ pub unsafe fn vcmla_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x2_t) -> float32x4_t {
|
||||
static_assert!(LANE == 0);
|
||||
let c: float32x4_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1, 2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10395,6 +10436,7 @@ pub unsafe fn vcmlaq_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
let c: float32x4_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1, 2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10408,6 +10450,7 @@ pub unsafe fn vcmlaq_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t,
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_rot90_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
|
||||
static_assert!(LANE == 0);
|
||||
let c: float32x2_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10421,6 +10464,7 @@ pub unsafe fn vcmla_rot90_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_rot90_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x4_t) -> float32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
let c: float32x2_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10434,6 +10478,7 @@ pub unsafe fn vcmla_rot90_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot90_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x2_t) -> float32x4_t {
|
||||
static_assert!(LANE == 0);
|
||||
let c: float32x4_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1, 2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10447,6 +10492,7 @@ pub unsafe fn vcmlaq_rot90_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot90_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
let c: float32x4_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1, 2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10460,6 +10506,7 @@ pub unsafe fn vcmlaq_rot90_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_rot180_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
|
||||
static_assert!(LANE == 0);
|
||||
let c: float32x2_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10473,6 +10520,7 @@ pub unsafe fn vcmla_rot180_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_rot180_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x4_t) -> float32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
let c: float32x2_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10486,6 +10534,7 @@ pub unsafe fn vcmla_rot180_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot180_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x2_t) -> float32x4_t {
|
||||
static_assert!(LANE == 0);
|
||||
let c: float32x4_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1, 2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10499,6 +10548,7 @@ pub unsafe fn vcmlaq_rot180_lane_f32<const LANE: i32>(a: float32x4_t, b: float32
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot180_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
let c: float32x4_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1, 2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10512,6 +10562,7 @@ pub unsafe fn vcmlaq_rot180_laneq_f32<const LANE: i32>(a: float32x4_t, b: float3
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_rot270_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x2_t) -> float32x2_t {
|
||||
static_assert!(LANE == 0);
|
||||
let c: float32x2_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10525,6 +10576,7 @@ pub unsafe fn vcmla_rot270_lane_f32<const LANE: i32>(a: float32x2_t, b: float32x
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmla_rot270_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32x2_t, c: float32x4_t) -> float32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
let c: float32x2_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10538,6 +10590,7 @@ pub unsafe fn vcmla_rot270_laneq_f32<const LANE: i32>(a: float32x2_t, b: float32
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot270_lane_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x2_t) -> float32x4_t {
|
||||
static_assert!(LANE == 0);
|
||||
let c: float32x4_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1, 2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10551,6 +10604,7 @@ pub unsafe fn vcmlaq_rot270_lane_f32<const LANE: i32>(a: float32x4_t, b: float32
|
|||
#[target_feature(enable = "neon,fcma")]
|
||||
#[cfg_attr(test, assert_instr(fcmla, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_fcma", issue = "117222")]
|
||||
pub unsafe fn vcmlaq_rot270_laneq_f32<const LANE: i32>(a: float32x4_t, b: float32x4_t, c: float32x4_t) -> float32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
let c: float32x4_t = simd_shuffle!(c, c, [2 * LANE as u32, 2 * LANE as u32 + 1, 2 * LANE as u32, 2 * LANE as u32 + 1]);
|
||||
|
|
@ -10564,6 +10618,7 @@ pub unsafe fn vcmlaq_rot270_laneq_f32<const LANE: i32>(a: float32x4_t, b: float3
|
|||
#[target_feature(enable = "neon,dotprod")]
|
||||
#[cfg_attr(test, assert_instr(sdot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
|
||||
pub unsafe fn vdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x16_t) -> int32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 2);
|
||||
let c: int32x4_t = transmute(c);
|
||||
|
|
@ -10578,6 +10633,7 @@ pub unsafe fn vdot_laneq_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8
|
|||
#[target_feature(enable = "neon,dotprod")]
|
||||
#[cfg_attr(test, assert_instr(sdot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
|
||||
pub unsafe fn vdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 2);
|
||||
let c: int32x4_t = transmute(c);
|
||||
|
|
@ -10592,6 +10648,7 @@ pub unsafe fn vdotq_laneq_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: in
|
|||
#[target_feature(enable = "neon,dotprod")]
|
||||
#[cfg_attr(test, assert_instr(udot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
|
||||
pub unsafe fn vdot_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x16_t) -> uint32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 2);
|
||||
let c: uint32x4_t = transmute(c);
|
||||
|
|
@ -10606,6 +10663,7 @@ pub unsafe fn vdot_laneq_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: ui
|
|||
#[target_feature(enable = "neon,dotprod")]
|
||||
#[cfg_attr(test, assert_instr(udot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_dotprod", issue = "117224")]
|
||||
pub unsafe fn vdotq_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 2);
|
||||
let c: uint32x4_t = transmute(c);
|
||||
|
|
@ -15123,6 +15181,7 @@ pub unsafe fn vshrn_high_n_u64<const N: i32>(a: uint32x2_t, b: uint64x2_t) -> ui
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sm4")]
|
||||
#[cfg_attr(test, assert_instr(sm3partw1))]
|
||||
#[unstable(feature = "stdarch_neon_sm4", issue = "117226")]
|
||||
pub unsafe fn vsm3partw1q_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15138,6 +15197,7 @@ pub unsafe fn vsm3partw1q_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> ui
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sm4")]
|
||||
#[cfg_attr(test, assert_instr(sm3partw2))]
|
||||
#[unstable(feature = "stdarch_neon_sm4", issue = "117226")]
|
||||
pub unsafe fn vsm3partw2q_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15153,6 +15213,7 @@ pub unsafe fn vsm3partw2q_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> ui
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sm4")]
|
||||
#[cfg_attr(test, assert_instr(sm3ss1))]
|
||||
#[unstable(feature = "stdarch_neon_sm4", issue = "117226")]
|
||||
pub unsafe fn vsm3ss1q_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15168,6 +15229,7 @@ pub unsafe fn vsm3ss1q_u32(a: uint32x4_t, b: uint32x4_t, c: uint32x4_t) -> uint3
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sm4")]
|
||||
#[cfg_attr(test, assert_instr(sm4ekey))]
|
||||
#[unstable(feature = "stdarch_neon_sm4", issue = "117226")]
|
||||
pub unsafe fn vsm4ekeyq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15183,6 +15245,7 @@ pub unsafe fn vsm4ekeyq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sm4")]
|
||||
#[cfg_attr(test, assert_instr(sm4e))]
|
||||
#[unstable(feature = "stdarch_neon_sm4", issue = "117226")]
|
||||
pub unsafe fn vsm4eq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15198,6 +15261,7 @@ pub unsafe fn vsm4eq_u32(a: uint32x4_t, b: uint32x4_t) -> uint32x4_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(rax1))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vrax1q_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15213,6 +15277,7 @@ pub unsafe fn vrax1q_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(sha512h))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vsha512hq_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uint64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15228,6 +15293,7 @@ pub unsafe fn vsha512hq_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uint
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(sha512h2))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vsha512h2q_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uint64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15243,6 +15309,7 @@ pub unsafe fn vsha512h2q_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uin
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(sha512su0))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vsha512su0q_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15258,6 +15325,7 @@ pub unsafe fn vsha512su0q_u64(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(sha512su1))]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vsha512su1q_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> uint64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15273,6 +15341,7 @@ pub unsafe fn vsha512su1q_u64(a: uint64x2_t, b: uint64x2_t, c: uint64x2_t) -> ui
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint32x))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd32x_f32(a: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15288,6 +15357,7 @@ pub unsafe fn vrnd32x_f32(a: float32x2_t) -> float32x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint32x))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd32xq_f32(a: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15303,6 +15373,7 @@ pub unsafe fn vrnd32xq_f32(a: float32x4_t) -> float32x4_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint32x))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd32xq_f64(a: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15318,6 +15389,7 @@ pub unsafe fn vrnd32xq_f64(a: float64x2_t) -> float64x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint32x))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd32x_f64(a: float64x1_t) -> float64x1_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15333,6 +15405,7 @@ pub unsafe fn vrnd32x_f64(a: float64x1_t) -> float64x1_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint32z))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd32z_f32(a: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15348,6 +15421,7 @@ pub unsafe fn vrnd32z_f32(a: float32x2_t) -> float32x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint32z))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd32zq_f32(a: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15363,6 +15437,7 @@ pub unsafe fn vrnd32zq_f32(a: float32x4_t) -> float32x4_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint32z))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd32zq_f64(a: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15378,6 +15453,7 @@ pub unsafe fn vrnd32zq_f64(a: float64x2_t) -> float64x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint32z))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd32z_f64(a: float64x1_t) -> float64x1_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15393,6 +15469,7 @@ pub unsafe fn vrnd32z_f64(a: float64x1_t) -> float64x1_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint64x))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd64x_f32(a: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15408,6 +15485,7 @@ pub unsafe fn vrnd64x_f32(a: float32x2_t) -> float32x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint64x))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd64xq_f32(a: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15423,6 +15501,7 @@ pub unsafe fn vrnd64xq_f32(a: float32x4_t) -> float32x4_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint64x))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd64xq_f64(a: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15438,6 +15517,7 @@ pub unsafe fn vrnd64xq_f64(a: float64x2_t) -> float64x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint64x))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd64x_f64(a: float64x1_t) -> float64x1_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15453,6 +15533,7 @@ pub unsafe fn vrnd64x_f64(a: float64x1_t) -> float64x1_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint64z))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd64z_f32(a: float32x2_t) -> float32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15468,6 +15549,7 @@ pub unsafe fn vrnd64z_f32(a: float32x2_t) -> float32x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint64z))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd64zq_f32(a: float32x4_t) -> float32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15483,6 +15565,7 @@ pub unsafe fn vrnd64zq_f32(a: float32x4_t) -> float32x4_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint64z))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd64zq_f64(a: float64x2_t) -> float64x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -15498,6 +15581,7 @@ pub unsafe fn vrnd64zq_f64(a: float64x2_t) -> float64x2_t {
|
|||
#[inline]
|
||||
#[target_feature(enable = "neon,frintts")]
|
||||
#[cfg_attr(test, assert_instr(frint64z))]
|
||||
#[unstable(feature = "stdarch_neon_ftts", issue = "117227")]
|
||||
pub unsafe fn vrnd64z_f64(a: float64x1_t) -> float64x1_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
|
|||
|
|
@ -3453,6 +3453,7 @@ pub unsafe fn vsriq_n_p64<const N: i32>(a: poly64x2_t, b: poly64x2_t) -> poly64x
|
|||
#[target_feature(enable = "neon,sm4")]
|
||||
#[cfg_attr(test, assert_instr(sm3tt1a, IMM2 = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_sm4", issue = "117226")]
|
||||
pub unsafe fn vsm3tt1aq_u32<const IMM2: i32>(
|
||||
a: uint32x4_t,
|
||||
b: uint32x4_t,
|
||||
|
|
@ -3472,6 +3473,7 @@ pub unsafe fn vsm3tt1aq_u32<const IMM2: i32>(
|
|||
#[target_feature(enable = "neon,sm4")]
|
||||
#[cfg_attr(test, assert_instr(sm3tt1b, IMM2 = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_sm4", issue = "117226")]
|
||||
pub unsafe fn vsm3tt1bq_u32<const IMM2: i32>(
|
||||
a: uint32x4_t,
|
||||
b: uint32x4_t,
|
||||
|
|
@ -3491,6 +3493,7 @@ pub unsafe fn vsm3tt1bq_u32<const IMM2: i32>(
|
|||
#[target_feature(enable = "neon,sm4")]
|
||||
#[cfg_attr(test, assert_instr(sm3tt2a, IMM2 = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_sm4", issue = "117226")]
|
||||
pub unsafe fn vsm3tt2aq_u32<const IMM2: i32>(
|
||||
a: uint32x4_t,
|
||||
b: uint32x4_t,
|
||||
|
|
@ -3510,6 +3513,7 @@ pub unsafe fn vsm3tt2aq_u32<const IMM2: i32>(
|
|||
#[target_feature(enable = "neon,sm4")]
|
||||
#[cfg_attr(test, assert_instr(sm3tt2b, IMM2 = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[unstable(feature = "stdarch_neon_sm4", issue = "117226")]
|
||||
pub unsafe fn vsm3tt2bq_u32<const IMM2: i32>(
|
||||
a: uint32x4_t,
|
||||
b: uint32x4_t,
|
||||
|
|
@ -3529,6 +3533,7 @@ pub unsafe fn vsm3tt2bq_u32<const IMM2: i32>(
|
|||
#[target_feature(enable = "neon,sha3")]
|
||||
#[cfg_attr(test, assert_instr(xar, IMM6 = 0))]
|
||||
#[rustc_legacy_const_generics(2)]
|
||||
#[unstable(feature = "stdarch_neon_sha3", issue = "117225")]
|
||||
pub unsafe fn vxarq_u64<const IMM6: i32>(a: uint64x2_t, b: uint64x2_t) -> uint64x2_t {
|
||||
static_assert_uimm_bits!(IMM6, 6);
|
||||
#[allow(improper_ctypes)]
|
||||
|
|
|
|||
|
|
@ -17708,6 +17708,7 @@ vst4q_lane_f32_(b.0, b.1, b.2, b.3, LANE as i64, a as _)
|
|||
#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
|
||||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(usdot))]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vusdot_s32(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
|
|
@ -17727,6 +17728,7 @@ vusdot_s32_(a, b, c)
|
|||
#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
|
||||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(usdot))]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vusdotq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
|
|
@ -17747,6 +17749,7 @@ vusdotq_s32_(a, b, c)
|
|||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(usdot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: int8x8_t) -> int32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
|
|
@ -17764,6 +17767,7 @@ pub unsafe fn vusdot_lane_s32<const LANE: i32>(a: int32x2_t, b: uint8x8_t, c: in
|
|||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vusdot, LANE = 0))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(usdot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c: int8x8_t) -> int32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
|
|
@ -17781,6 +17785,7 @@ pub unsafe fn vusdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: uint8x16_t, c:
|
|||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(sudot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uint8x8_t) -> int32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
|
|
@ -17798,6 +17803,7 @@ pub unsafe fn vsudot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: uin
|
|||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsudot, LANE = 0))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(sudot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_i8mm", issue = "117223"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vsudotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: uint8x8_t) -> int32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
|
|
@ -19910,6 +19916,7 @@ pub unsafe fn vsubl_u32(a: uint32x2_t, b: uint32x2_t) -> uint64x2_t {
|
|||
#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
|
||||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(sdot))]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vdot_s32(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
|
|
@ -19929,6 +19936,7 @@ vdot_s32_(a, b, c)
|
|||
#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
|
||||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(sdot))]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vdotq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
|
|
@ -19948,6 +19956,7 @@ vdotq_s32_(a, b, c)
|
|||
#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
|
||||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(udot))]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vdot_u32(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
|
||||
#[allow(improper_ctypes)]
|
||||
|
|
@ -19967,6 +19976,7 @@ vdot_u32_(a, b, c)
|
|||
#[cfg_attr(target_arch = "arm", target_feature(enable = "v8"))]
|
||||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(udot))]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vdotq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
|
|
@ -19987,6 +19997,7 @@ vdotq_u32_(a, b, c)
|
|||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(sdot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vdot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x8_t) -> int32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
|
|
@ -20004,6 +20015,7 @@ pub unsafe fn vdot_lane_s32<const LANE: i32>(a: int32x2_t, b: int8x8_t, c: int8x
|
|||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vsdot, LANE = 0))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(sdot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int8x8_t) -> int32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
|
|
@ -20021,6 +20033,7 @@ pub unsafe fn vdotq_lane_s32<const LANE: i32>(a: int32x4_t, b: int8x16_t, c: int
|
|||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(udot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vdot_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uint8x8_t) -> uint32x2_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
|
|
@ -20038,6 +20051,7 @@ pub unsafe fn vdot_lane_u32<const LANE: i32>(a: uint32x2_t, b: uint8x8_t, c: uin
|
|||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(vudot, LANE = 0))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(udot, LANE = 0))]
|
||||
#[rustc_legacy_const_generics(3)]
|
||||
#[cfg_attr(not(target_arch = "arm"), unstable(feature = "stdarch_neon_dotprod", issue = "117224"))]
|
||||
#[cfg_attr(target_arch = "arm", unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800"))]
|
||||
pub unsafe fn vdotq_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint8x16_t, c: uint8x8_t) -> uint32x4_t {
|
||||
static_assert_uimm_bits!(LANE, 1);
|
||||
|
|
|
|||
|
|
@ -8740,6 +8740,10 @@ pub unsafe fn vpadalq_u32(a: uint64x2_t, b: uint32x4_t) -> uint64x2_t {
|
|||
target_arch = "arm",
|
||||
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
|
||||
)]
|
||||
#[cfg_attr(
|
||||
not(target_arch = "arm"),
|
||||
unstable(feature = "stdarch_neon_i8mm", issue = "117223")
|
||||
)]
|
||||
pub unsafe fn vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -8764,6 +8768,10 @@ pub unsafe fn vmmlaq_s32(a: int32x4_t, b: int8x16_t, c: int8x16_t) -> int32x4_t
|
|||
target_arch = "arm",
|
||||
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
|
||||
)]
|
||||
#[cfg_attr(
|
||||
not(target_arch = "arm"),
|
||||
unstable(feature = "stdarch_neon_i8mm", issue = "117223")
|
||||
)]
|
||||
pub unsafe fn vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
@ -8788,6 +8796,10 @@ pub unsafe fn vmmlaq_u32(a: uint32x4_t, b: uint8x16_t, c: uint8x16_t) -> uint32x
|
|||
target_arch = "arm",
|
||||
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
|
||||
)]
|
||||
#[cfg_attr(
|
||||
not(target_arch = "arm"),
|
||||
unstable(feature = "stdarch_neon_i8mm", issue = "117223")
|
||||
)]
|
||||
pub unsafe fn vusmmlaq_s32(a: int32x4_t, b: uint8x16_t, c: int8x16_t) -> int32x4_t {
|
||||
#[allow(improper_ctypes)]
|
||||
extern "unadjusted" {
|
||||
|
|
|
|||
|
|
@ -516,6 +516,26 @@ impl TargetFeature {
|
|||
}
|
||||
}
|
||||
|
||||
/// A stability attribute for the intrinsic.
|
||||
fn stability(&self, aarch64: bool) -> &str {
|
||||
// 32-bit intrinsics are all unstable for now
|
||||
if !aarch64 {
|
||||
return "unstable(feature = \"stdarch_arm_neon_intrinsics\", issue = \"111800\")";
|
||||
}
|
||||
match *self {
|
||||
Default | ArmV7 | Vfp4 | FPArmV8 | AES => {
|
||||
"stable(feature = \"neon_intrinsics\", since = \"1.59.0\")"
|
||||
}
|
||||
FCMA => "unstable(feature = \"stdarch_neon_fcma\", issue = \"117222\")",
|
||||
Dotprod => "unstable(feature = \"stdarch_neon_dotprod\", issue = \"117224\")",
|
||||
I8MM => "unstable(feature = \"stdarch_neon_i8mm\", issue = \"117223\")",
|
||||
SHA3 => "unstable(feature = \"stdarch_neon_sha3\", issue = \"117225\")",
|
||||
RDM => "stable(feature = \"rdm_intrinsics\", since = \"1.62.0\")",
|
||||
SM4 => "unstable(feature = \"stdarch_neon_sm4\", issue = \"117226\")",
|
||||
FTTS => "unstable(feature = \"stdarch_neon_ftts\", issue = \"117227\")",
|
||||
}
|
||||
}
|
||||
|
||||
/// A string for use with #[simd_test(...)] (or `is_arm_feature_detected!(...)`).
|
||||
fn as_simd_test_arg_arm(&self) -> &str {
|
||||
// TODO: Ideally, these would match the target_feature strings (as for AArch64).
|
||||
|
|
@ -1600,18 +1620,13 @@ fn gen_aarch64(
|
|||
}
|
||||
}
|
||||
};
|
||||
let stable = match target {
|
||||
Default | ArmV7 | Vfp4 | FPArmV8 | AES => {
|
||||
String::from("\n#[stable(feature = \"neon_intrinsics\", since = \"1.59.0\")]")
|
||||
}
|
||||
RDM => String::from("\n#[stable(feature = \"rdm_intrinsics\", since = \"1.62.0\")]"),
|
||||
_ => String::new(),
|
||||
};
|
||||
let stable = target.stability(true);
|
||||
let function = format!(
|
||||
r#"
|
||||
{function_doc}
|
||||
#[inline]{target_feature}
|
||||
#[cfg_attr(test, assert_instr({current_aarch64}{const_assert}))]{const_legacy}{stable}
|
||||
#[cfg_attr(test, assert_instr({current_aarch64}{const_assert}))]{const_legacy}
|
||||
#[{stable}]
|
||||
{fn_decl}{{
|
||||
{call_params}
|
||||
}}
|
||||
|
|
@ -2510,31 +2525,23 @@ fn gen_arm(
|
|||
fn_decl, multi_calls, ext_c_aarch64, aarch64_params
|
||||
)
|
||||
};
|
||||
let stable_aarch64 = match target {
|
||||
Default | ArmV7 | Vfp4 | FPArmV8 | AES => {
|
||||
String::from("\n#[stable(feature = \"neon_intrinsics\", since = \"1.59.0\")]")
|
||||
}
|
||||
RDM => String::from("\n#[stable(feature = \"rdm_intrinsics\", since = \"1.62.0\")]"),
|
||||
_ => String::new(),
|
||||
};
|
||||
let stable_arm = match target {
|
||||
_ => String::from(
|
||||
"\n#[unstable(feature = \"stdarch_arm_neon_intrinsics\", issue = \"111800\")]",
|
||||
),
|
||||
};
|
||||
let stable_aarch64 = target.stability(true);
|
||||
let stable_arm = target.stability(false);
|
||||
let function_doc = create_doc_string(current_comment, &name);
|
||||
format!(
|
||||
r#"
|
||||
{function_doc}
|
||||
#[inline]
|
||||
#[cfg(target_arch = "arm")]{target_feature_arm}
|
||||
#[cfg_attr(test, assert_instr({assert_arm}{const_assert}))]{const_legacy}{stable_arm}
|
||||
#[cfg_attr(test, assert_instr({assert_arm}{const_assert}))]{const_legacy}
|
||||
#[{stable_arm}]
|
||||
{call_arm}
|
||||
|
||||
{function_doc}
|
||||
#[inline]
|
||||
#[cfg(not(target_arch = "arm"))]{target_feature_aarch64}
|
||||
#[cfg_attr(test, assert_instr({assert_aarch64}{const_assert}))]{const_legacy}{stable_aarch64}
|
||||
#[cfg_attr(test, assert_instr({assert_aarch64}{const_assert}))]{const_legacy}
|
||||
#[{stable_aarch64}]
|
||||
{call_aarch64}
|
||||
"#,
|
||||
target_feature_arm = target.to_target_feature_attr_arm(),
|
||||
|
|
@ -2575,22 +2582,16 @@ fn gen_arm(
|
|||
String::new()
|
||||
}
|
||||
};
|
||||
let stable_aarch64 = match target {
|
||||
Default | ArmV7 | Vfp4 | FPArmV8 | AES => String::from("\n#[cfg_attr(not(target_arch = \"arm\"), stable(feature = \"neon_intrinsics\", since = \"1.59.0\"))]"),
|
||||
RDM => String::from("\n#[cfg_attr(not(target_arch = \"arm\"), stable(feature = \"rdm_intrinsics\", since = \"1.62.0\"))]"),
|
||||
_ => String::new(),
|
||||
};
|
||||
let stable_arm = match target {
|
||||
_ => {
|
||||
String::from("\n#[cfg_attr(target_arch = \"arm\", unstable(feature = \"stdarch_arm_neon_intrinsics\", issue = \"111800\"))]")
|
||||
}
|
||||
};
|
||||
let stable_aarch64 = target.stability(true);
|
||||
let stable_arm = target.stability(false);
|
||||
format!(
|
||||
r#"
|
||||
{function_doc}
|
||||
#[inline]{target_feature}
|
||||
#[cfg_attr(all(test, target_arch = "arm"), assert_instr({assert_arm}{const_assert}))]
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr({assert_aarch64}{const_assert}))]{const_legacy}{stable_aarch64}{stable_arm}
|
||||
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr({assert_aarch64}{const_assert}))]{const_legacy}
|
||||
#[cfg_attr(not(target_arch = "arm"), {stable_aarch64})]
|
||||
#[cfg_attr(target_arch = "arm", {stable_arm})]
|
||||
{call}
|
||||
"#,
|
||||
function_doc = create_doc_string(current_comment, &name),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue