@@ -10756,7 +10756,7 @@ pub fn vfmlal_lane_high_f16<const LANE: i32>(
1075610756 b: float16x4_t,
1075710757) -> float32x2_t {
1075810758 static_assert_uimm_bits!(LANE, 2);
10759- unsafe { vfmlal_high_f16(r, a, vdup_n_f16(simd_extract!(b, LANE as u32))) }
10759+ vfmlal_high_f16(r, a, vdup_lane_f16::<LANE>(b))
1076010760}
1076110761#[doc = "Floating-point fused Multiply-Add Long to accumulator (by element)."]
1076210762#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlal_laneq_high_f16)"]
@@ -10773,7 +10773,7 @@ pub fn vfmlal_laneq_high_f16<const LANE: i32>(
1077310773 b: float16x8_t,
1077410774) -> float32x2_t {
1077510775 static_assert_uimm_bits!(LANE, 3);
10776- unsafe { vfmlal_high_f16(r, a, vdup_n_f16(simd_extract!(b, LANE as u32))) }
10776+ vfmlal_high_f16(r, a, vdup_laneq_f16::<LANE>(b))
1077710777}
1077810778#[doc = "Floating-point fused Multiply-Add Long to accumulator (by element)."]
1077910779#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlalq_lane_high_f16)"]
@@ -10790,7 +10790,7 @@ pub fn vfmlalq_lane_high_f16<const LANE: i32>(
1079010790 b: float16x4_t,
1079110791) -> float32x4_t {
1079210792 static_assert_uimm_bits!(LANE, 2);
10793- unsafe { vfmlalq_high_f16(r, a, vdupq_n_f16(simd_extract!(b, LANE as u32))) }
10793+ vfmlalq_high_f16(r, a, vdupq_lane_f16::<LANE>(b))
1079410794}
1079510795#[doc = "Floating-point fused Multiply-Add Long to accumulator (by element)."]
1079610796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlalq_laneq_high_f16)"]
@@ -10807,7 +10807,7 @@ pub fn vfmlalq_laneq_high_f16<const LANE: i32>(
1080710807 b: float16x8_t,
1080810808) -> float32x4_t {
1080910809 static_assert_uimm_bits!(LANE, 3);
10810- unsafe { vfmlalq_high_f16(r, a, vdupq_n_f16(simd_extract!(b, LANE as u32))) }
10810+ vfmlalq_high_f16(r, a, vdupq_laneq_f16::<LANE>(b))
1081110811}
1081210812#[doc = "Floating-point fused Multiply-Add Long to accumulator (by element)."]
1081310813#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlal_lane_low_f16)"]
@@ -10824,7 +10824,7 @@ pub fn vfmlal_lane_low_f16<const LANE: i32>(
1082410824 b: float16x4_t,
1082510825) -> float32x2_t {
1082610826 static_assert_uimm_bits!(LANE, 2);
10827- unsafe { vfmlal_low_f16(r, a, vdup_n_f16(simd_extract!(b, LANE as u32))) }
10827+ vfmlal_low_f16(r, a, vdup_lane_f16::<LANE>(b))
1082810828}
1082910829#[doc = "Floating-point fused Multiply-Add Long to accumulator (by element)."]
1083010830#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlal_laneq_low_f16)"]
@@ -10841,7 +10841,7 @@ pub fn vfmlal_laneq_low_f16<const LANE: i32>(
1084110841 b: float16x8_t,
1084210842) -> float32x2_t {
1084310843 static_assert_uimm_bits!(LANE, 3);
10844- unsafe { vfmlal_low_f16(r, a, vdup_n_f16(simd_extract!(b, LANE as u32))) }
10844+ vfmlal_low_f16(r, a, vdup_laneq_f16::<LANE>(b))
1084510845}
1084610846#[doc = "Floating-point fused Multiply-Add Long to accumulator (by element)."]
1084710847#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlalq_lane_low_f16)"]
@@ -10858,7 +10858,7 @@ pub fn vfmlalq_lane_low_f16<const LANE: i32>(
1085810858 b: float16x4_t,
1085910859) -> float32x4_t {
1086010860 static_assert_uimm_bits!(LANE, 2);
10861- unsafe { vfmlalq_low_f16(r, a, vdupq_n_f16(simd_extract!(b, LANE as u32))) }
10861+ vfmlalq_low_f16(r, a, vdupq_lane_f16::<LANE>(b))
1086210862}
1086310863#[doc = "Floating-point fused Multiply-Add Long to accumulator (by element)."]
1086410864#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlalq_laneq_low_f16)"]
@@ -10875,7 +10875,7 @@ pub fn vfmlalq_laneq_low_f16<const LANE: i32>(
1087510875 b: float16x8_t,
1087610876) -> float32x4_t {
1087710877 static_assert_uimm_bits!(LANE, 3);
10878- unsafe { vfmlalq_low_f16(r, a, vdupq_n_f16(simd_extract!(b, LANE as u32))) }
10878+ vfmlalq_low_f16(r, a, vdupq_laneq_f16::<LANE>(b))
1087910879}
1088010880#[doc = "Floating-point fused Multiply-Add Long to accumulator (vector)."]
1088110881#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlal_low_f16)"]
@@ -10964,7 +10964,7 @@ pub fn vfmlsl_lane_high_f16<const LANE: i32>(
1096410964 b: float16x4_t,
1096510965) -> float32x2_t {
1096610966 static_assert_uimm_bits!(LANE, 2);
10967- unsafe { vfmlsl_high_f16(r, a, vdup_n_f16(simd_extract!(b, LANE as u32))) }
10967+ vfmlsl_high_f16(r, a, vdup_lane_f16::<LANE>(b))
1096810968}
1096910969#[doc = "Floating-point fused Multiply-Subtract Long from accumulator (by element)."]
1097010970#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlsl_laneq_high_f16)"]
@@ -10981,7 +10981,7 @@ pub fn vfmlsl_laneq_high_f16<const LANE: i32>(
1098110981 b: float16x8_t,
1098210982) -> float32x2_t {
1098310983 static_assert_uimm_bits!(LANE, 3);
10984- unsafe { vfmlsl_high_f16(r, a, vdup_n_f16(simd_extract!(b, LANE as u32))) }
10984+ vfmlsl_high_f16(r, a, vdup_laneq_f16::<LANE>(b))
1098510985}
1098610986#[doc = "Floating-point fused Multiply-Subtract Long from accumulator (by element)."]
1098710987#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlslq_lane_high_f16)"]
@@ -10998,7 +10998,7 @@ pub fn vfmlslq_lane_high_f16<const LANE: i32>(
1099810998 b: float16x4_t,
1099910999) -> float32x4_t {
1100011000 static_assert_uimm_bits!(LANE, 2);
11001- unsafe { vfmlslq_high_f16(r, a, vdupq_n_f16(simd_extract!(b, LANE as u32))) }
11001+ vfmlslq_high_f16(r, a, vdupq_lane_f16::<LANE>(b))
1100211002}
1100311003#[doc = "Floating-point fused Multiply-Subtract Long from accumulator (by element)."]
1100411004#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlslq_laneq_high_f16)"]
@@ -11015,7 +11015,7 @@ pub fn vfmlslq_laneq_high_f16<const LANE: i32>(
1101511015 b: float16x8_t,
1101611016) -> float32x4_t {
1101711017 static_assert_uimm_bits!(LANE, 3);
11018- unsafe { vfmlslq_high_f16(r, a, vdupq_n_f16(simd_extract!(b, LANE as u32))) }
11018+ vfmlslq_high_f16(r, a, vdupq_laneq_f16::<LANE>(b))
1101911019}
1102011020#[doc = "Floating-point fused Multiply-Subtract Long from accumulator (by element)."]
1102111021#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlsl_lane_low_f16)"]
@@ -11032,7 +11032,7 @@ pub fn vfmlsl_lane_low_f16<const LANE: i32>(
1103211032 b: float16x4_t,
1103311033) -> float32x2_t {
1103411034 static_assert_uimm_bits!(LANE, 2);
11035- unsafe { vfmlsl_low_f16(r, a, vdup_n_f16(simd_extract!(b, LANE as u32))) }
11035+ vfmlsl_low_f16(r, a, vdup_lane_f16::<LANE>(b))
1103611036}
1103711037#[doc = "Floating-point fused Multiply-Subtract Long from accumulator (by element)."]
1103811038#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlsl_laneq_low_f16)"]
@@ -11049,7 +11049,7 @@ pub fn vfmlsl_laneq_low_f16<const LANE: i32>(
1104911049 b: float16x8_t,
1105011050) -> float32x2_t {
1105111051 static_assert_uimm_bits!(LANE, 3);
11052- unsafe { vfmlsl_low_f16(r, a, vdup_n_f16(simd_extract!(b, LANE as u32))) }
11052+ vfmlsl_low_f16(r, a, vdup_laneq_f16::<LANE>(b))
1105311053}
1105411054#[doc = "Floating-point fused Multiply-Subtract Long from accumulator (by element)."]
1105511055#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlslq_lane_low_f16)"]
@@ -11066,7 +11066,7 @@ pub fn vfmlslq_lane_low_f16<const LANE: i32>(
1106611066 b: float16x4_t,
1106711067) -> float32x4_t {
1106811068 static_assert_uimm_bits!(LANE, 2);
11069- unsafe { vfmlslq_low_f16(r, a, vdupq_n_f16(simd_extract!(b, LANE as u32))) }
11069+ vfmlslq_low_f16(r, a, vdupq_lane_f16::<LANE>(b))
1107011070}
1107111071#[doc = "Floating-point fused Multiply-Subtract Long from accumulator (by element)."]
1107211072#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlslq_laneq_low_f16)"]
@@ -11083,7 +11083,7 @@ pub fn vfmlslq_laneq_low_f16<const LANE: i32>(
1108311083 b: float16x8_t,
1108411084) -> float32x4_t {
1108511085 static_assert_uimm_bits!(LANE, 3);
11086- unsafe { vfmlslq_low_f16(r, a, vdupq_n_f16(simd_extract!(b, LANE as u32))) }
11086+ vfmlslq_low_f16(r, a, vdupq_laneq_f16::<LANE>(b))
1108711087}
1108811088#[doc = "Floating-point fused Multiply-Subtract Long from accumulator (vector)."]
1108911089#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vfmlsl_low_f16)"]
@@ -14520,7 +14520,7 @@ pub fn vmlaq_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t) -> float64x2_t
1452014520#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1452114521pub fn vmlal_high_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x8_t, c: int16x4_t) -> int32x4_t {
1452214522 static_assert_uimm_bits!(LANE, 2);
14523- unsafe { vmlal_high_s16(a, b, simd_shuffle!(c, c, [LANE as u32; 8])) }
14523+ vmlal_high_s16(a, b, vdupq_lane_s16::<LANE>(c))
1452414524}
1452514525#[doc = "Multiply-add long"]
1452614526#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_high_laneq_s16)"]
@@ -14535,7 +14535,7 @@ pub fn vmlal_high_laneq_s16<const LANE: i32>(
1453514535 c: int16x8_t,
1453614536) -> int32x4_t {
1453714537 static_assert_uimm_bits!(LANE, 3);
14538- unsafe { vmlal_high_s16(a, b, simd_shuffle!(c, c, [LANE as u32; 8])) }
14538+ vmlal_high_s16(a, b, vdupq_laneq_s16::<LANE>(c))
1453914539}
1454014540#[doc = "Multiply-add long"]
1454114541#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_high_lane_s32)"]
@@ -14546,7 +14546,7 @@ pub fn vmlal_high_laneq_s16<const LANE: i32>(
1454614546#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1454714547pub fn vmlal_high_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x4_t, c: int32x2_t) -> int64x2_t {
1454814548 static_assert_uimm_bits!(LANE, 1);
14549- unsafe { vmlal_high_s32(a, b, simd_shuffle!(c, c, [LANE as u32; 4])) }
14549+ vmlal_high_s32(a, b, vdupq_lane_s32::<LANE>(c))
1455014550}
1455114551#[doc = "Multiply-add long"]
1455214552#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_high_laneq_s32)"]
@@ -14561,7 +14561,7 @@ pub fn vmlal_high_laneq_s32<const LANE: i32>(
1456114561 c: int32x4_t,
1456214562) -> int64x2_t {
1456314563 static_assert_uimm_bits!(LANE, 2);
14564- unsafe { vmlal_high_s32(a, b, simd_shuffle!(c, c, [LANE as u32; 4])) }
14564+ vmlal_high_s32(a, b, vdupq_laneq_s32::<LANE>(c))
1456514565}
1456614566#[doc = "Multiply-add long"]
1456714567#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_high_lane_u16)"]
@@ -14576,7 +14576,7 @@ pub fn vmlal_high_lane_u16<const LANE: i32>(
1457614576 c: uint16x4_t,
1457714577) -> uint32x4_t {
1457814578 static_assert_uimm_bits!(LANE, 2);
14579- unsafe { vmlal_high_u16(a, b, simd_shuffle!(c, c, [LANE as u32; 8])) }
14579+ vmlal_high_u16(a, b, vdupq_lane_u16::<LANE>(c))
1458014580}
1458114581#[doc = "Multiply-add long"]
1458214582#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_high_laneq_u16)"]
@@ -14591,7 +14591,7 @@ pub fn vmlal_high_laneq_u16<const LANE: i32>(
1459114591 c: uint16x8_t,
1459214592) -> uint32x4_t {
1459314593 static_assert_uimm_bits!(LANE, 3);
14594- unsafe { vmlal_high_u16(a, b, simd_shuffle!(c, c, [LANE as u32; 8])) }
14594+ vmlal_high_u16(a, b, vdupq_laneq_u16::<LANE>(c))
1459514595}
1459614596#[doc = "Multiply-add long"]
1459714597#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_high_lane_u32)"]
@@ -14606,7 +14606,7 @@ pub fn vmlal_high_lane_u32<const LANE: i32>(
1460614606 c: uint32x2_t,
1460714607) -> uint64x2_t {
1460814608 static_assert_uimm_bits!(LANE, 1);
14609- unsafe { vmlal_high_u32(a, b, simd_shuffle!(c, c, [LANE as u32; 4])) }
14609+ vmlal_high_u32(a, b, vdupq_lane_u32::<LANE>(c))
1461014610}
1461114611#[doc = "Multiply-add long"]
1461214612#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_high_laneq_u32)"]
@@ -14621,7 +14621,7 @@ pub fn vmlal_high_laneq_u32<const LANE: i32>(
1462114621 c: uint32x4_t,
1462214622) -> uint64x2_t {
1462314623 static_assert_uimm_bits!(LANE, 2);
14624- unsafe { vmlal_high_u32(a, b, simd_shuffle!(c, c, [LANE as u32; 4])) }
14624+ vmlal_high_u32(a, b, vdupq_laneq_u32::<LANE>(c))
1462514625}
1462614626#[doc = "Multiply-add long"]
1462714627#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlal_high_n_s16)"]
@@ -14764,7 +14764,7 @@ pub fn vmlsq_f64(a: float64x2_t, b: float64x2_t, c: float64x2_t) -> float64x2_t
1476414764#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1476514765pub fn vmlsl_high_lane_s16<const LANE: i32>(a: int32x4_t, b: int16x8_t, c: int16x4_t) -> int32x4_t {
1476614766 static_assert_uimm_bits!(LANE, 2);
14767- unsafe { vmlsl_high_s16(a, b, simd_shuffle!(c, c, [LANE as u32; 8])) }
14767+ vmlsl_high_s16(a, b, vdupq_lane_s16::<LANE>(c))
1476814768}
1476914769#[doc = "Multiply-subtract long"]
1477014770#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_high_laneq_s16)"]
@@ -14779,7 +14779,7 @@ pub fn vmlsl_high_laneq_s16<const LANE: i32>(
1477914779 c: int16x8_t,
1478014780) -> int32x4_t {
1478114781 static_assert_uimm_bits!(LANE, 3);
14782- unsafe { vmlsl_high_s16(a, b, simd_shuffle!(c, c, [LANE as u32; 8])) }
14782+ vmlsl_high_s16(a, b, vdupq_laneq_s16::<LANE>(c))
1478314783}
1478414784#[doc = "Multiply-subtract long"]
1478514785#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_high_lane_s32)"]
@@ -14790,7 +14790,7 @@ pub fn vmlsl_high_laneq_s16<const LANE: i32>(
1479014790#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1479114791pub fn vmlsl_high_lane_s32<const LANE: i32>(a: int64x2_t, b: int32x4_t, c: int32x2_t) -> int64x2_t {
1479214792 static_assert_uimm_bits!(LANE, 1);
14793- unsafe { vmlsl_high_s32(a, b, simd_shuffle!(c, c, [LANE as u32; 4])) }
14793+ vmlsl_high_s32(a, b, vdupq_lane_s32::<LANE>(c))
1479414794}
1479514795#[doc = "Multiply-subtract long"]
1479614796#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_high_laneq_s32)"]
@@ -14805,7 +14805,7 @@ pub fn vmlsl_high_laneq_s32<const LANE: i32>(
1480514805 c: int32x4_t,
1480614806) -> int64x2_t {
1480714807 static_assert_uimm_bits!(LANE, 2);
14808- unsafe { vmlsl_high_s32(a, b, simd_shuffle!(c, c, [LANE as u32; 4])) }
14808+ vmlsl_high_s32(a, b, vdupq_laneq_s32::<LANE>(c))
1480914809}
1481014810#[doc = "Multiply-subtract long"]
1481114811#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_high_lane_u16)"]
@@ -14820,7 +14820,7 @@ pub fn vmlsl_high_lane_u16<const LANE: i32>(
1482014820 c: uint16x4_t,
1482114821) -> uint32x4_t {
1482214822 static_assert_uimm_bits!(LANE, 2);
14823- unsafe { vmlsl_high_u16(a, b, simd_shuffle!(c, c, [LANE as u32; 8])) }
14823+ vmlsl_high_u16(a, b, vdupq_lane_u16::<LANE>(c))
1482414824}
1482514825#[doc = "Multiply-subtract long"]
1482614826#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_high_laneq_u16)"]
@@ -14835,7 +14835,7 @@ pub fn vmlsl_high_laneq_u16<const LANE: i32>(
1483514835 c: uint16x8_t,
1483614836) -> uint32x4_t {
1483714837 static_assert_uimm_bits!(LANE, 3);
14838- unsafe { vmlsl_high_u16(a, b, simd_shuffle!(c, c, [LANE as u32; 8])) }
14838+ vmlsl_high_u16(a, b, vdupq_laneq_u16::<LANE>(c))
1483914839}
1484014840#[doc = "Multiply-subtract long"]
1484114841#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_high_lane_u32)"]
@@ -14850,7 +14850,7 @@ pub fn vmlsl_high_lane_u32<const LANE: i32>(
1485014850 c: uint32x2_t,
1485114851) -> uint64x2_t {
1485214852 static_assert_uimm_bits!(LANE, 1);
14853- unsafe { vmlsl_high_u32(a, b, simd_shuffle!(c, c, [LANE as u32; 4])) }
14853+ vmlsl_high_u32(a, b, vdupq_lane_u32::<LANE>(c))
1485414854}
1485514855#[doc = "Multiply-subtract long"]
1485614856#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_high_laneq_u32)"]
@@ -14865,7 +14865,7 @@ pub fn vmlsl_high_laneq_u32<const LANE: i32>(
1486514865 c: uint32x4_t,
1486614866) -> uint64x2_t {
1486714867 static_assert_uimm_bits!(LANE, 2);
14868- unsafe { vmlsl_high_u32(a, b, simd_shuffle!(c, c, [LANE as u32; 4])) }
14868+ vmlsl_high_u32(a, b, vdupq_laneq_u32::<LANE>(c))
1486914869}
1487014870#[doc = "Multiply-subtract long"]
1487114871#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmlsl_high_n_s16)"]
@@ -15270,7 +15270,7 @@ pub fn vmulh_laneq_f16<const LANE: i32>(a: f16, b: float16x8_t) -> f16 {
1527015270#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1527115271pub fn vmull_high_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int32x4_t {
1527215272 static_assert_uimm_bits!(LANE, 2);
15273- unsafe { vmull_high_s16(a, simd_shuffle!(b, b, [LANE as u32; 8])) }
15273+ vmull_high_s16(a, vdupq_lane_s16::<LANE>(b))
1527415274}
1527515275#[doc = "Multiply long"]
1527615276#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_high_laneq_s16)"]
@@ -15281,7 +15281,7 @@ pub fn vmull_high_lane_s16<const LANE: i32>(a: int16x8_t, b: int16x4_t) -> int32
1528115281#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1528215282pub fn vmull_high_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int32x4_t {
1528315283 static_assert_uimm_bits!(LANE, 3);
15284- unsafe { vmull_high_s16(a, simd_shuffle!(b, b, [LANE as u32; 8])) }
15284+ vmull_high_s16(a, vdupq_laneq_s16::<LANE>(b))
1528515285}
1528615286#[doc = "Multiply long"]
1528715287#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_high_lane_s32)"]
@@ -15292,7 +15292,7 @@ pub fn vmull_high_laneq_s16<const LANE: i32>(a: int16x8_t, b: int16x8_t) -> int3
1529215292#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1529315293pub fn vmull_high_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int64x2_t {
1529415294 static_assert_uimm_bits!(LANE, 1);
15295- unsafe { vmull_high_s32(a, simd_shuffle!(b, b, [LANE as u32; 4])) }
15295+ vmull_high_s32(a, vdupq_lane_s32::<LANE>(b))
1529615296}
1529715297#[doc = "Multiply long"]
1529815298#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_high_laneq_s32)"]
@@ -15303,7 +15303,7 @@ pub fn vmull_high_lane_s32<const LANE: i32>(a: int32x4_t, b: int32x2_t) -> int64
1530315303#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1530415304pub fn vmull_high_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int64x2_t {
1530515305 static_assert_uimm_bits!(LANE, 2);
15306- unsafe { vmull_high_s32(a, simd_shuffle!(b, b, [LANE as u32; 4])) }
15306+ vmull_high_s32(a, vdupq_laneq_s32::<LANE>(b))
1530715307}
1530815308#[doc = "Multiply long"]
1530915309#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_high_lane_u16)"]
@@ -15314,7 +15314,7 @@ pub fn vmull_high_laneq_s32<const LANE: i32>(a: int32x4_t, b: int32x4_t) -> int6
1531415314#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1531515315pub fn vmull_high_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x4_t) -> uint32x4_t {
1531615316 static_assert_uimm_bits!(LANE, 2);
15317- unsafe { vmull_high_u16(a, simd_shuffle!(b, b, [LANE as u32; 8])) }
15317+ vmull_high_u16(a, vdupq_lane_u16::<LANE>(b))
1531815318}
1531915319#[doc = "Multiply long"]
1532015320#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_high_laneq_u16)"]
@@ -15325,7 +15325,7 @@ pub fn vmull_high_lane_u16<const LANE: i32>(a: uint16x8_t, b: uint16x4_t) -> uin
1532515325#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1532615326pub fn vmull_high_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t) -> uint32x4_t {
1532715327 static_assert_uimm_bits!(LANE, 3);
15328- unsafe { vmull_high_u16(a, simd_shuffle!(b, b, [LANE as u32; 8])) }
15328+ vmull_high_u16(a, vdupq_laneq_u16::<LANE>(b))
1532915329}
1533015330#[doc = "Multiply long"]
1533115331#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_high_lane_u32)"]
@@ -15336,7 +15336,7 @@ pub fn vmull_high_laneq_u16<const LANE: i32>(a: uint16x8_t, b: uint16x8_t) -> ui
1533615336#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1533715337pub fn vmull_high_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x2_t) -> uint64x2_t {
1533815338 static_assert_uimm_bits!(LANE, 1);
15339- unsafe { vmull_high_u32(a, simd_shuffle!(b, b, [LANE as u32; 4])) }
15339+ vmull_high_u32(a, vdupq_lane_u32::<LANE>(b))
1534015340}
1534115341#[doc = "Multiply long"]
1534215342#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_high_laneq_u32)"]
@@ -15347,7 +15347,7 @@ pub fn vmull_high_lane_u32<const LANE: i32>(a: uint32x4_t, b: uint32x2_t) -> uin
1534715347#[stable(feature = "neon_intrinsics", since = "1.59.0")]
1534815348pub fn vmull_high_laneq_u32<const LANE: i32>(a: uint32x4_t, b: uint32x4_t) -> uint64x2_t {
1534915349 static_assert_uimm_bits!(LANE, 2);
15350- unsafe { vmull_high_u32(a, simd_shuffle!(b, b, [LANE as u32; 4])) }
15350+ vmull_high_u32(a, vdupq_laneq_u32::<LANE>(b))
1535115351}
1535215352#[doc = "Multiply long"]
1535315353#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vmull_high_n_s16)"]
0 commit comments