Skip to content

Commit 35681a9

Browse files
committed
Fix more missing/incorrect feature specifications
1 parent ff24118 commit 35681a9

File tree

12 files changed

+76
-12
lines changed

12 files changed

+76
-12
lines changed

crates/core_arch/src/arm_shared/barrier/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ mod cp15;
1616
target_feature = "v7",
1717
target_feature = "mclass"
1818
)))]
19+
#[unstable(feature = "stdarch_arm_barrier", issue = "117219")]
1920
pub use self::cp15::*;
2021

2122
// Dedicated instructions

crates/core_arch/src/arm_shared/neon/mod.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -8888,7 +8888,7 @@ pub unsafe fn vcombine_p16(low: poly16x4_t, high: poly16x4_t) -> poly16x8_t {
88888888
#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
88898889
#[cfg_attr(test, assert_instr(nop))]
88908890
#[cfg_attr(
8891-
target_arch = "aarch64",
8891+
not(target_arch = "arm"),
88928892
stable(feature = "neon_intrinsics", since = "1.59.0")
88938893
)]
88948894
#[cfg_attr(
@@ -8909,7 +8909,7 @@ pub unsafe fn vcombine_s8(low: int8x8_t, high: int8x8_t) -> int8x16_t {
89098909
#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
89108910
#[cfg_attr(test, assert_instr(nop))]
89118911
#[cfg_attr(
8912-
target_arch = "aarch64",
8912+
not(target_arch = "arm"),
89138913
stable(feature = "neon_intrinsics", since = "1.59.0")
89148914
)]
89158915
#[cfg_attr(
@@ -8926,7 +8926,7 @@ pub unsafe fn vcombine_s16(low: int16x4_t, high: int16x4_t) -> int16x8_t {
89268926
#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
89278927
#[cfg_attr(test, assert_instr(nop))]
89288928
#[cfg_attr(
8929-
target_arch = "aarch64",
8929+
not(target_arch = "arm"),
89308930
stable(feature = "neon_intrinsics", since = "1.59.0")
89318931
)]
89328932
#[cfg_attr(
@@ -8943,7 +8943,7 @@ pub unsafe fn vcombine_s32(low: int32x2_t, high: int32x2_t) -> int32x4_t {
89438943
#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
89448944
#[cfg_attr(test, assert_instr(nop))]
89458945
#[cfg_attr(
8946-
target_arch = "aarch64",
8946+
not(target_arch = "arm"),
89478947
stable(feature = "neon_intrinsics", since = "1.59.0")
89488948
)]
89498949
#[cfg_attr(
@@ -8960,7 +8960,7 @@ pub unsafe fn vcombine_s64(low: int64x1_t, high: int64x1_t) -> int64x2_t {
89608960
#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
89618961
#[cfg_attr(test, assert_instr(nop))]
89628962
#[cfg_attr(
8963-
target_arch = "aarch64",
8963+
not(target_arch = "arm"),
89648964
stable(feature = "neon_intrinsics", since = "1.59.0")
89658965
)]
89668966
#[cfg_attr(
@@ -8981,7 +8981,7 @@ pub unsafe fn vcombine_u8(low: uint8x8_t, high: uint8x8_t) -> uint8x16_t {
89818981
#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
89828982
#[cfg_attr(test, assert_instr(nop))]
89838983
#[cfg_attr(
8984-
target_arch = "aarch64",
8984+
not(target_arch = "arm"),
89858985
stable(feature = "neon_intrinsics", since = "1.59.0")
89868986
)]
89878987
#[cfg_attr(
@@ -8999,7 +8999,7 @@ pub unsafe fn vcombine_u16(low: uint16x4_t, high: uint16x4_t) -> uint16x8_t {
89998999
#[cfg_attr(all(test, target_arch = "arm"), assert_instr(nop))]
90009000
#[cfg_attr(all(test, target_arch = "aarch64"), assert_instr(mov))]
90019001
#[cfg_attr(
9002-
target_arch = "aarch64",
9002+
not(target_arch = "arm"),
90039003
stable(feature = "neon_intrinsics", since = "1.59.0")
90049004
)]
90059005
#[cfg_attr(
@@ -9016,7 +9016,7 @@ pub unsafe fn vcombine_u32(low: uint32x2_t, high: uint32x2_t) -> uint32x4_t {
90169016
#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
90179017
#[cfg_attr(test, assert_instr(nop))]
90189018
#[cfg_attr(
9019-
target_arch = "aarch64",
9019+
not(target_arch = "arm"),
90209020
stable(feature = "neon_intrinsics", since = "1.59.0")
90219021
)]
90229022
#[cfg_attr(
@@ -9033,7 +9033,7 @@ pub unsafe fn vcombine_u64(low: uint64x1_t, high: uint64x1_t) -> uint64x2_t {
90339033
#[cfg_attr(target_arch = "arm", target_feature(enable = "v7"))]
90349034
#[cfg_attr(test, assert_instr(nop))]
90359035
#[cfg_attr(
9036-
target_arch = "aarch64",
9036+
not(target_arch = "arm"),
90379037
stable(feature = "neon_intrinsics", since = "1.59.0")
90389038
)]
90399039
#[cfg_attr(

crates/core_arch/src/lib.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,10 @@
5757
test(attr(deny(warnings))),
5858
test(attr(allow(dead_code, deprecated, unused_variables, unused_mut)))
5959
)]
60-
#![cfg_attr(test, feature(stdarch_arm_feature_detection))]
60+
#![cfg_attr(
61+
test,
62+
feature(stdarch_arm_feature_detection, stdarch_powerpc_feature_detection)
63+
)]
6164

6265
#[cfg(test)]
6366
#[macro_use]

crates/core_arch/src/powerpc/altivec.rs

+27
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,7 @@ mod sealed {
551551

552552
impl_vec_lde! { vec_lde_f32 lvewx f32 }
553553

554+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
554555
pub trait VectorXl {
555556
type Result;
556557
unsafe fn vec_xl(self, a: isize) -> Self::Result;
@@ -586,6 +587,7 @@ mod sealed {
586587
r.assume_init()
587588
}
588589

590+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
589591
impl VectorXl for *const $ty {
590592
type Result = t_t_l!($ty);
591593
#[inline]
@@ -1303,12 +1305,14 @@ mod sealed {
13031305
vec_perm(a, a, transmute(b))
13041306
}
13051307

1308+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
13061309
pub trait VectorSplat {
13071310
unsafe fn vec_splat<const IMM: u32>(self) -> Self;
13081311
}
13091312

13101313
macro_rules! impl_vec_splat {
13111314
($ty:ty, $fun:ident) => {
1315+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
13121316
impl VectorSplat for $ty {
13131317
#[inline]
13141318
#[target_feature(enable = "altivec")]
@@ -1335,6 +1339,7 @@ mod sealed {
13351339
#[inline]
13361340
#[target_feature(enable = "altivec")]
13371341
#[cfg_attr(test, assert_instr($instr, IMM5 = 1))]
1342+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
13381343
pub unsafe fn $name<const IMM5: i8>() -> s_t_l!($r) {
13391344
static_assert_simm_bits!(IMM5, 5);
13401345
transmute($r::splat(IMM5 as $v))
@@ -2363,6 +2368,7 @@ mod sealed {
23632368
vec_perm(a, b, mergel_perm)
23642369
}
23652370

2371+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
23662372
pub trait VectorMergeh<Other> {
23672373
type Result;
23682374
unsafe fn vec_mergeh(self, b: Other) -> Self::Result;
@@ -2371,6 +2377,7 @@ mod sealed {
23712377
impl_vec_trait! { [VectorMergeh vec_mergeh]+ 2b (vec_vmrghb, vec_vmrghh, vec_vmrghw) }
23722378
impl_vec_trait! { [VectorMergeh vec_mergeh]+ vec_vmrghw (vector_float, vector_float) -> vector_float }
23732379

2380+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
23742381
pub trait VectorMergel<Other> {
23752382
type Result;
23762383
unsafe fn vec_mergel(self, b: Other) -> Self::Result;
@@ -2417,6 +2424,7 @@ mod sealed {
24172424
transmute(vec_perm(a, b, pack_perm))
24182425
}
24192426

2427+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
24202428
pub trait VectorPack<Other> {
24212429
type Result;
24222430
unsafe fn vec_pack(self, b: Other) -> Self::Result;
@@ -2498,6 +2506,7 @@ mod sealed {
24982506
}
24992507
}
25002508

2509+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
25012510
pub trait VectorPacks<Other> {
25022511
type Result;
25032512
unsafe fn vec_packs(self, b: Other) -> Self::Result;
@@ -2508,6 +2517,7 @@ mod sealed {
25082517
impl_vec_trait! { [VectorPacks vec_packs] vec_vpkswss (vector_signed_int, vector_signed_int) -> vector_signed_short }
25092518
impl_vec_trait! { [VectorPacks vec_packs] vec_vpkuwus (vector_unsigned_int, vector_unsigned_int) -> vector_unsigned_short }
25102519

2520+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
25112521
pub trait VectorPacksu<Other> {
25122522
type Result;
25132523
unsafe fn vec_packsu(self, b: Other) -> Self::Result;
@@ -2539,6 +2549,7 @@ mod sealed {
25392549
impl_vec_unpack! { vec_vupkhsh (vector_signed_short) -> vector_signed_int [vupklsh, vupkhsh] }
25402550
impl_vec_unpack! { vec_vupklsh (vector_signed_short) -> vector_signed_int [vupkhsh, vupklsh] }
25412551

2552+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
25422553
pub trait VectorUnpackh {
25432554
type Result;
25442555
unsafe fn vec_unpackh(self) -> Self::Result;
@@ -2549,6 +2560,7 @@ mod sealed {
25492560
impl_vec_trait! { [VectorUnpackh vec_unpackh] vec_vupkhsh (vector_signed_short) -> vector_signed_int }
25502561
impl_vec_trait! { [VectorUnpackh vec_unpackh]+ vec_vupkhsh (vector_bool_short) -> vector_bool_int }
25512562

2563+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
25522564
pub trait VectorUnpackl {
25532565
type Result;
25542566
unsafe fn vec_unpackl(self) -> Self::Result;
@@ -2563,6 +2575,7 @@ mod sealed {
25632575
/// Vector Merge Low
25642576
#[inline]
25652577
#[target_feature(enable = "altivec")]
2578+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
25662579
pub unsafe fn vec_mergel<T, U>(a: T, b: U) -> <T as sealed::VectorMergel<U>>::Result
25672580
where
25682581
T: sealed::VectorMergel<U>,
@@ -2573,6 +2586,7 @@ where
25732586
/// Vector Merge High
25742587
#[inline]
25752588
#[target_feature(enable = "altivec")]
2589+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
25762590
pub unsafe fn vec_mergeh<T, U>(a: T, b: U) -> <T as sealed::VectorMergeh<U>>::Result
25772591
where
25782592
T: sealed::VectorMergeh<U>,
@@ -2583,6 +2597,7 @@ where
25832597
/// Vector Pack
25842598
#[inline]
25852599
#[target_feature(enable = "altivec")]
2600+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
25862601
pub unsafe fn vec_pack<T, U>(a: T, b: U) -> <T as sealed::VectorPack<U>>::Result
25872602
where
25882603
T: sealed::VectorPack<U>,
@@ -2593,6 +2608,7 @@ where
25932608
/// Vector Pack Saturated
25942609
#[inline]
25952610
#[target_feature(enable = "altivec")]
2611+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
25962612
pub unsafe fn vec_packs<T, U>(a: T, b: U) -> <T as sealed::VectorPacks<U>>::Result
25972613
where
25982614
T: sealed::VectorPacks<U>,
@@ -2603,6 +2619,7 @@ where
26032619
/// Vector Pack Saturated Unsigned
26042620
#[inline]
26052621
#[target_feature(enable = "altivec")]
2622+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
26062623
pub unsafe fn vec_packsu<T, U>(a: T, b: U) -> <T as sealed::VectorPacksu<U>>::Result
26072624
where
26082625
T: sealed::VectorPacksu<U>,
@@ -2613,6 +2630,7 @@ where
26132630
/// Vector Unpack High
26142631
#[inline]
26152632
#[target_feature(enable = "altivec")]
2633+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
26162634
pub unsafe fn vec_unpackh<T>(a: T) -> <T as sealed::VectorUnpackh>::Result
26172635
where
26182636
T: sealed::VectorUnpackh,
@@ -2623,6 +2641,7 @@ where
26232641
/// Vector Unpack Low
26242642
#[inline]
26252643
#[target_feature(enable = "altivec")]
2644+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
26262645
pub unsafe fn vec_unpackl<T>(a: T) -> <T as sealed::VectorUnpackl>::Result
26272646
where
26282647
T: sealed::VectorUnpackl,
@@ -2666,6 +2685,7 @@ where
26662685
/// VSX Unaligned Load
26672686
#[inline]
26682687
#[target_feature(enable = "altivec")]
2688+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
26692689
pub unsafe fn vec_xl<T>(off: isize, p: T) -> <T as sealed::VectorXl>::Result
26702690
where
26712691
T: sealed::VectorXl,
@@ -2677,6 +2697,7 @@ where
26772697
#[inline]
26782698
#[target_feature(enable = "altivec")]
26792699
#[cfg_attr(test, assert_instr(vlogefp))]
2700+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
26802701
pub unsafe fn vec_loge(a: vector_float) -> vector_float {
26812702
vlogefp(a)
26822703
}
@@ -2872,6 +2893,7 @@ where
28722893
/// Vector Splat
28732894
#[inline]
28742895
#[target_feature(enable = "altivec")]
2896+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
28752897
pub unsafe fn vec_splat<T, const IMM: u32>(a: T) -> T
28762898
where
28772899
T: sealed::VectorSplat,
@@ -2945,6 +2967,7 @@ where
29452967
#[inline]
29462968
#[target_feature(enable = "altivec")]
29472969
#[cfg_attr(test, assert_instr(mfvscr))]
2970+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
29482971
pub unsafe fn vec_mfvscr() -> vector_unsigned_short {
29492972
mfvscr()
29502973
}
@@ -3406,6 +3429,7 @@ mod endian {
34063429
/// Vector permute.
34073430
#[inline]
34083431
#[target_feature(enable = "altivec")]
3432+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
34093433
pub unsafe fn vec_perm<T>(a: T, b: T, c: vector_unsigned_char) -> T
34103434
where
34113435
T: sealed::VectorPerm,
@@ -3416,13 +3440,15 @@ mod endian {
34163440
/// Vector Sum Across Partial (1/2) Saturated
34173441
#[inline]
34183442
#[target_feature(enable = "altivec")]
3443+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
34193444
pub unsafe fn vec_sum2s(a: vector_signed_int, b: vector_signed_int) -> vector_signed_int {
34203445
vsum2sws(a, b)
34213446
}
34223447

34233448
/// Vector Multiply Even
34243449
#[inline]
34253450
#[target_feature(enable = "altivec")]
3451+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
34263452
pub unsafe fn vec_mule<T, U>(a: T, b: T) -> U
34273453
where
34283454
T: sealed::VectorMule<U>,
@@ -3432,6 +3458,7 @@ mod endian {
34323458
/// Vector Multiply Odd
34333459
#[inline]
34343460
#[target_feature(enable = "altivec")]
3461+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
34353462
pub unsafe fn vec_mulo<T, U>(a: T, b: T) -> U
34363463
where
34373464
T: sealed::VectorMulo<U>,

crates/core_arch/src/powerpc/macros.rs

+2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ macro_rules! impl_vec_trait {
4242
}
4343
};
4444
([$Trait:ident $m:ident]+ $fun:ident ($a:ty) -> $r:ty) => {
45+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
4546
impl $Trait for $a {
4647
type Result = $r;
4748
#[inline]
@@ -72,6 +73,7 @@ macro_rules! impl_vec_trait {
7273
}
7374
};
7475
([$Trait:ident $m:ident]+ $fun:ident ($a:ty, $b:ty) -> $r:ty) => {
76+
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
7577
impl $Trait<$b> for $a {
7678
type Result = $r;
7779
#[inline]

crates/core_arch/src/riscv32/mod.rs

+1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22
33
mod zk;
44

5+
#[unstable(feature = "riscv_ext_intrinsics", issue = "114544")]
56
pub use zk::*;

0 commit comments

Comments
 (0)