Skip to content

Commit 959b168

Browse files
JamesbarfordAmanieu
authored andcommitted
mark FEAT_FAMINMAX intrinsics as safe
1 parent 2f7ba21 commit 959b168

File tree

2 files changed

+14
-28
lines changed

2 files changed

+14
-28
lines changed

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

+12-24
Original file line numberDiff line numberDiff line change
@@ -823,111 +823,99 @@ pub fn vaddvq_u64(a: uint64x2_t) -> u64 {
823823
}
824824
#[doc = "Multi-vector floating-point absolute maximum"]
825825
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vamax_f32)"]
826-
#[doc = "## Safety"]
827-
#[doc = " * Neon instrinsic unsafe"]
828826
#[inline]
829827
#[target_feature(enable = "neon,faminmax")]
830828
#[cfg_attr(test, assert_instr(nop))]
831829
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
832-
pub unsafe fn vamax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
830+
pub fn vamax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
833831
unsafe extern "unadjusted" {
834832
#[cfg_attr(
835833
any(target_arch = "aarch64", target_arch = "arm64ec"),
836834
link_name = "llvm.aarch64.neon.famax.v2f32"
837835
)]
838836
fn _vamax_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
839837
}
840-
_vamax_f32(a, b)
838+
unsafe { _vamax_f32(a, b) }
841839
}
842840
#[doc = "Multi-vector floating-point absolute maximum"]
843841
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vamaxq_f32)"]
844-
#[doc = "## Safety"]
845-
#[doc = " * Neon instrinsic unsafe"]
846842
#[inline]
847843
#[target_feature(enable = "neon,faminmax")]
848844
#[cfg_attr(test, assert_instr(nop))]
849845
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
850-
pub unsafe fn vamaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
846+
pub fn vamaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
851847
unsafe extern "unadjusted" {
852848
#[cfg_attr(
853849
any(target_arch = "aarch64", target_arch = "arm64ec"),
854850
link_name = "llvm.aarch64.neon.famax.v4f32"
855851
)]
856852
fn _vamaxq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
857853
}
858-
_vamaxq_f32(a, b)
854+
unsafe { _vamaxq_f32(a, b) }
859855
}
860856
#[doc = "Multi-vector floating-point absolute maximum"]
861857
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vamaxq_f64)"]
862-
#[doc = "## Safety"]
863-
#[doc = " * Neon instrinsic unsafe"]
864858
#[inline]
865859
#[target_feature(enable = "neon,faminmax")]
866860
#[cfg_attr(test, assert_instr(nop))]
867861
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
868-
pub unsafe fn vamaxq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t {
862+
pub fn vamaxq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t {
869863
unsafe extern "unadjusted" {
870864
#[cfg_attr(
871865
any(target_arch = "aarch64", target_arch = "arm64ec"),
872866
link_name = "llvm.aarch64.neon.famax.v2f64"
873867
)]
874868
fn _vamaxq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t;
875869
}
876-
_vamaxq_f64(a, b)
870+
unsafe { _vamaxq_f64(a, b) }
877871
}
878872
#[doc = "Multi-vector floating-point absolute minimum"]
879873
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vamin_f32)"]
880-
#[doc = "## Safety"]
881-
#[doc = " * Neon instrinsic unsafe"]
882874
#[inline]
883875
#[target_feature(enable = "neon,faminmax")]
884876
#[cfg_attr(test, assert_instr(nop))]
885877
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
886-
pub unsafe fn vamin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
878+
pub fn vamin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t {
887879
unsafe extern "unadjusted" {
888880
#[cfg_attr(
889881
any(target_arch = "aarch64", target_arch = "arm64ec"),
890882
link_name = "llvm.aarch64.neon.famin.v2f32"
891883
)]
892884
fn _vamin_f32(a: float32x2_t, b: float32x2_t) -> float32x2_t;
893885
}
894-
_vamin_f32(a, b)
886+
unsafe { _vamin_f32(a, b) }
895887
}
896888
#[doc = "Multi-vector floating-point absolute minimum"]
897889
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaminq_f32)"]
898-
#[doc = "## Safety"]
899-
#[doc = " * Neon instrinsic unsafe"]
900890
#[inline]
901891
#[target_feature(enable = "neon,faminmax")]
902892
#[cfg_attr(test, assert_instr(nop))]
903893
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
904-
pub unsafe fn vaminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
894+
pub fn vaminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t {
905895
unsafe extern "unadjusted" {
906896
#[cfg_attr(
907897
any(target_arch = "aarch64", target_arch = "arm64ec"),
908898
link_name = "llvm.aarch64.neon.famin.v4f32"
909899
)]
910900
fn _vaminq_f32(a: float32x4_t, b: float32x4_t) -> float32x4_t;
911901
}
912-
_vaminq_f32(a, b)
902+
unsafe { _vaminq_f32(a, b) }
913903
}
914904
#[doc = "Multi-vector floating-point absolute minimum"]
915905
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vaminq_f64)"]
916-
#[doc = "## Safety"]
917-
#[doc = " * Neon instrinsic unsafe"]
918906
#[inline]
919907
#[target_feature(enable = "neon,faminmax")]
920908
#[cfg_attr(test, assert_instr(nop))]
921909
#[stable(feature = "neon_intrinsics", since = "1.59.0")]
922-
pub unsafe fn vaminq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t {
910+
pub fn vaminq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t {
923911
unsafe extern "unadjusted" {
924912
#[cfg_attr(
925913
any(target_arch = "aarch64", target_arch = "arm64ec"),
926914
link_name = "llvm.aarch64.neon.famin.v2f64"
927915
)]
928916
fn _vaminq_f64(a: float64x2_t, b: float64x2_t) -> float64x2_t;
929917
}
930-
_vaminq_f64(a, b)
918+
unsafe { _vaminq_f64(a, b) }
931919
}
932920
#[doc = "Bit clear and exclusive OR"]
933921
#[doc = "[Arm's documentation](https://developer.arm.com/architectures/instruction-sets/intrinsics/vbcaxq_s8)"]

crates/stdarch-gen-arm/spec/neon/aarch64.spec.yml

+2-4
Original file line numberDiff line numberDiff line change
@@ -13982,8 +13982,7 @@ intrinsics:
1398213982
- FnCall: [target_feature, ['enable = "neon,faminmax"']]
1398313983
- FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [nop]]}]]
1398413984
- FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']]
13985-
safety:
13986-
unsafe: [neon]
13985+
safety: safe
1398713986
types:
1398813987
- float32x2_t
1398913988
- float32x4_t
@@ -14003,8 +14002,7 @@ intrinsics:
1400314002
- FnCall: [target_feature, ['enable = "neon,faminmax"']]
1400414003
- FnCall: [cfg_attr, [test, {FnCall: [assert_instr, [nop]]}]]
1400514004
- FnCall: [stable, ['feature = "neon_intrinsics"', 'since = "1.59.0"']]
14006-
safety:
14007-
unsafe: [neon]
14005+
safety: safe
1400814006
types:
1400914007
- float32x2_t
1401014008
- float32x4_t

0 commit comments

Comments
 (0)