Skip to content

Commit 4abdda2

Browse files
authored
Merge pull request #2107 from sayantn/gen-arm-improvements
gen-arm: Change definitions of some intrinsics
2 parents f0a39a7 + 4756314 commit 4abdda2

2 files changed

Lines changed: 94 additions & 97 deletions

File tree

crates/core_arch/src/aarch64/neon/generated.rs

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -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")]
1452114521
pub 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")]
1454714547
pub 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")]
1476514765
pub 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")]
1479114791
pub 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")]
1527115271
pub 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")]
1528215282
pub 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")]
1529315293
pub 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")]
1530415304
pub 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")]
1531515315
pub 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")]
1532615326
pub 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")]
1533715337
pub 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")]
1534815348
pub 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

Comments
 (0)