diff options
Diffstat (limited to 'library/stdarch')
6 files changed, 185 insertions, 2 deletions
diff --git a/library/stdarch/crates/core_arch/src/mod.rs b/library/stdarch/crates/core_arch/src/mod.rs index ad3ec863d48..3ef271811f6 100644 --- a/library/stdarch/crates/core_arch/src/mod.rs +++ b/library/stdarch/crates/core_arch/src/mod.rs @@ -238,7 +238,7 @@ pub mod arch { /// See the [module documentation](../index.html) for more details. #[cfg(any(target_arch = "powerpc", doc))] #[doc(cfg(target_arch = "powerpc"))] - #[unstable(feature = "stdsimd", issue = "27731")] + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub mod powerpc { pub use crate::core_arch::powerpc::*; } @@ -248,7 +248,7 @@ pub mod arch { /// See the [module documentation](../index.html) for more details. #[cfg(any(target_arch = "powerpc64", doc))] #[doc(cfg(target_arch = "powerpc64"))] - #[unstable(feature = "stdsimd", issue = "27731")] + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub mod powerpc64 { pub use crate::core_arch::powerpc64::*; } diff --git a/library/stdarch/crates/core_arch/src/powerpc/altivec.rs b/library/stdarch/crates/core_arch/src/powerpc/altivec.rs index e94afa77d0c..032ddcdf2f8 100644 --- a/library/stdarch/crates/core_arch/src/powerpc/altivec.rs +++ b/library/stdarch/crates/core_arch/src/powerpc/altivec.rs @@ -24,29 +24,39 @@ use stdarch_test::assert_instr; types! { /// PowerPC-specific 128-bit wide vector of sixteen packed `i8` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_signed_char(i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8); /// PowerPC-specific 128-bit wide vector of sixteen packed `u8` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_unsigned_char(u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8, u8); /// PowerPC-specific 128-bit wide vector mask of sixteen packed elements + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_bool_char(i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8); /// PowerPC-specific 128-bit wide vector of eight packed `i16` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_signed_short(i16, i16, i16, i16, i16, i16, i16, i16); /// PowerPC-specific 128-bit wide vector of eight packed `u16` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_unsigned_short(u16, u16, u16, u16, u16, u16, u16, u16); /// PowerPC-specific 128-bit wide vector mask of eight packed elements + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_bool_short(i16, i16, i16, i16, i16, i16, i16, i16); // pub struct vector_pixel(???); /// PowerPC-specific 128-bit wide vector of four packed `i32` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_signed_int(i32, i32, i32, i32); /// PowerPC-specific 128-bit wide vector of four packed `u32` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_unsigned_int(u32, u32, u32, u32); /// PowerPC-specific 128-bit wide vector mask of four packed elements + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_bool_int(i32, i32, i32, i32); /// PowerPC-specific 128-bit wide vector of four packed `f32` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_float(f32, f32, f32, f32); } @@ -381,6 +391,7 @@ macro_rules! t_t_l { macro_rules! impl_from { ($s: ident) => { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl From<$s> for s_t_l!($s) { fn from (v: $s) -> Self { unsafe { @@ -400,6 +411,7 @@ impl_from! { i8x16, u8x16, i16x8, u16x8, i32x4, u32x4, f32x4 } macro_rules! impl_neg { ($s: ident : $zero: expr) => { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl crate::ops::Neg for s_t_l!($s) { type Output = s_t_l!($s); fn neg(self) -> Self::Output { @@ -447,6 +459,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorLd { type Result; unsafe fn vec_ld(self, off: isize) -> Self::Result; @@ -471,6 +484,7 @@ mod sealed { transmute(lvxl(addr)) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorLd for *const $ty { type Result = t_t_l!($ty); #[inline] @@ -498,6 +512,7 @@ mod sealed { impl_vec_ld! { vec_ld_f32 vec_ldl_f32 f32 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorLde { type Result; unsafe fn vec_lde(self, a: isize) -> Self::Result; @@ -513,6 +528,7 @@ mod sealed { transmute($instr(addr)) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorLde for *const $ty { type Result = t_t_l!($ty); #[inline] @@ -601,6 +617,7 @@ mod sealed { test_impl! { vec_vcmpgtsh(a: vector_signed_short, b: vector_signed_short) -> vector_bool_short [ vcmpgtsh, vcmpgtsh ] } test_impl! { vec_vcmpgtsw(a: vector_signed_int, b: vector_signed_int) -> vector_bool_int [ vcmpgtsw, vcmpgtsw ] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorCmpGt<Other> { type Result; unsafe fn vec_cmpgt(self, b: Other) -> Self::Result; @@ -614,6 +631,7 @@ mod sealed { test_impl! { vec_vcmpequh(a: vector_unsigned_short, b: vector_unsigned_short) -> vector_bool_short [ vcmpequh, vcmpequh ] } test_impl! { vec_vcmpequw(a: vector_unsigned_int, b: vector_unsigned_int) -> vector_bool_int [ vcmpequw, vcmpequw ] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorCmpEq<Other> { type Result; unsafe fn vec_cmpeq(self, b: Other) -> Self::Result; @@ -665,6 +683,7 @@ mod sealed { vcmpequw_p(1, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAllEq<Other> { type Result; unsafe fn vec_all_eq(self, b: Other) -> Self::Result; @@ -680,6 +699,7 @@ mod sealed { vcmpeqfp_p(2, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAllEq<vector_float> for vector_float { type Result = bool; #[inline] @@ -688,6 +708,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAnyEq<Other> { type Result; unsafe fn vec_any_eq(self, b: Other) -> Self::Result; @@ -702,6 +723,7 @@ mod sealed { vcmpeqfp_p(1, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAnyEq<vector_float> for vector_float { type Result = bool; #[inline] @@ -796,6 +818,7 @@ mod sealed { vcmpgtuw_p(3, b, a) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAllGe<Other> { type Result; unsafe fn vec_all_ge(self, b: Other) -> Self::Result; @@ -815,6 +838,7 @@ mod sealed { vcmpgefp_p(2, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAllGe<vector_float> for vector_float { type Result = bool; #[inline] @@ -823,6 +847,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAnyGe<Other> { type Result; unsafe fn vec_any_ge(self, b: Other) -> Self::Result; @@ -841,6 +866,7 @@ mod sealed { vcmpgefp_p(1, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAnyGe<vector_float> for vector_float { type Result = bool; #[inline] @@ -935,6 +961,7 @@ mod sealed { vcmpgtuw_p(1, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAllGt<Other> { type Result; unsafe fn vec_all_gt(self, b: Other) -> Self::Result; @@ -954,6 +981,7 @@ mod sealed { vcmpgtfp_p(2, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAllGt<vector_float> for vector_float { type Result = bool; #[inline] @@ -962,6 +990,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAnyGt<Other> { type Result; unsafe fn vec_any_gt(self, b: Other) -> Self::Result; @@ -980,6 +1009,7 @@ mod sealed { vcmpgtfp_p(1, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAnyGt<vector_float> for vector_float { type Result = bool; #[inline] @@ -1032,6 +1062,7 @@ mod sealed { vcmpequw_p(3, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAllNe<Other> { type Result; unsafe fn vec_all_ne(self, b: Other) -> Self::Result; @@ -1047,6 +1078,7 @@ mod sealed { vcmpeqfp_p(0, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAllNe<vector_float> for vector_float { type Result = bool; #[inline] @@ -1055,6 +1087,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAnyNe<Other> { type Result; unsafe fn vec_any_ne(self, b: Other) -> Self::Result; @@ -1069,6 +1102,7 @@ mod sealed { vcmpeqfp_p(3, a, b) != 0 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAnyNe<vector_float> for vector_float { type Result = bool; #[inline] @@ -1086,6 +1120,7 @@ mod sealed { test_impl! { vec_vavguh(a: vector_unsigned_short, b: vector_unsigned_short) -> vector_unsigned_short [ vavguh, vavguh ] } test_impl! { vec_vavguw(a: vector_unsigned_int, b: vector_unsigned_int) -> vector_unsigned_int [ vavguw, vavguw ] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAvg<Other> { type Result; unsafe fn vec_avg(self, b: Other) -> Self::Result; @@ -1103,6 +1138,7 @@ mod sealed { transmute(simd_and(simd_xor(u8x16::splat(0xff), b), a)) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAndc<Other> { type Result; unsafe fn vec_andc(self, b: Other) -> Self::Result; @@ -1110,6 +1146,7 @@ mod sealed { macro_rules! impl_vec_andc { (($a:ty, $b:ty) -> $r:ty) => { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAndc<$b> for $a { type Result = $r; #[inline] @@ -1135,6 +1172,7 @@ mod sealed { test_impl! { vec_vand(a: vector_signed_char, b: vector_signed_char) -> vector_signed_char [ simd_and, vand / xxland ] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAnd<Other> { type Result; unsafe fn vec_and(self, b: Other) -> Self::Result; @@ -1149,6 +1187,7 @@ mod sealed { test_impl! { vec_vadduhs(a: vector_unsigned_short, b: vector_unsigned_short) -> vector_unsigned_short [ vadduhs, vadduhs ] } test_impl! { vec_vadduws(a: vector_unsigned_int, b: vector_unsigned_int) -> vector_unsigned_int [ vadduws, vadduws ] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAdds<Other> { type Result; unsafe fn vec_adds(self, b: Other) -> Self::Result; @@ -1165,6 +1204,7 @@ mod sealed { test_impl! { vec_vsubuhs(a: vector_unsigned_short, b: vector_unsigned_short) -> vector_unsigned_short [ vsubuhs, vsubuhs ] } test_impl! { vec_vsubuws(a: vector_unsigned_int, b: vector_unsigned_int) -> vector_unsigned_int [ vsubuws, vsubuws ] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorSubs<Other> { type Result; unsafe fn vec_subs(self, b: Other) -> Self::Result; @@ -1172,6 +1212,7 @@ mod sealed { impl_vec_trait! { [VectorSubs vec_subs] ~(vsububs, vsubsbs, vsubuhs, vsubshs, vsubuws, vsubsws) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAbs { unsafe fn vec_abs(self) -> Self; } @@ -1202,6 +1243,7 @@ mod sealed { impl_vec_trait! { [VectorAbs vec_abs] vec_abs_f32 (vector_float) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAbss { unsafe fn vec_abss(self) -> Self; } @@ -1326,6 +1368,7 @@ mod sealed { test_impl! { vec_splats_i32 (v: i32) -> vector_signed_int [splats_i32, vspltw / xxspltw] } test_impl! { vec_splats_f32 (v: f32) -> vector_float [splats_f32, vspltw / xxspltw] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorSplats { type Result; unsafe fn vec_splats(self) -> Self::Result; @@ -1353,6 +1396,7 @@ mod sealed { test_impl! { vec_vsubuhm (a: vector_unsigned_short, b: vector_unsigned_short) -> vector_unsigned_short [simd_sub, vsubuhm] } test_impl! { vec_vsubuwm (a: vector_unsigned_int, b: vector_unsigned_int) -> vector_unsigned_int [simd_sub, vsubuwm] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorSub<Other> { type Result; unsafe fn vec_sub(self, b: Other) -> Self::Result; @@ -1369,6 +1413,7 @@ mod sealed { test_impl! { vec_vminuh (a: vector_unsigned_short, b: vector_unsigned_short) -> vector_unsigned_short [vminuh, vminuh] } test_impl! { vec_vminuw (a: vector_unsigned_int, b: vector_unsigned_int) -> vector_unsigned_int [vminuw, vminuw] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorMin<Other> { type Result; unsafe fn vec_min(self, b: Other) -> Self::Result; @@ -1384,6 +1429,7 @@ mod sealed { test_impl! { vec_vmaxuh (a: vector_unsigned_short, b: vector_unsigned_short) -> vector_unsigned_short [vmaxuh, vmaxuh] } test_impl! { vec_vmaxuw (a: vector_unsigned_int, b: vector_unsigned_int) -> vector_unsigned_int [vmaxuw, vmaxuw] } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorMax<Other> { type Result; unsafe fn vec_max(self, b: Other) -> Self::Result; @@ -1422,10 +1468,12 @@ mod sealed { vmulesh(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorMule<Result> { unsafe fn vec_mule(self, b: Self) -> Result; } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMule<vector_unsigned_short> for vector_unsigned_char { #[inline] #[target_feature(enable = "altivec")] @@ -1433,6 +1481,7 @@ mod sealed { vmuleub(self, b) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMule<vector_signed_short> for vector_signed_char { #[inline] #[target_feature(enable = "altivec")] @@ -1440,6 +1489,7 @@ mod sealed { vmulesb(self, b) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMule<vector_unsigned_int> for vector_unsigned_short { #[inline] #[target_feature(enable = "altivec")] @@ -1447,6 +1497,7 @@ mod sealed { vmuleuh(self, b) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMule<vector_signed_int> for vector_signed_short { #[inline] #[target_feature(enable = "altivec")] @@ -1486,10 +1537,12 @@ mod sealed { vmulosh(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorMulo<Result> { unsafe fn vec_mulo(self, b: Self) -> Result; } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMulo<vector_unsigned_short> for vector_unsigned_char { #[inline] #[target_feature(enable = "altivec")] @@ -1497,6 +1550,7 @@ mod sealed { vmuloub(self, b) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMulo<vector_signed_short> for vector_signed_char { #[inline] #[target_feature(enable = "altivec")] @@ -1504,6 +1558,7 @@ mod sealed { vmulosb(self, b) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMulo<vector_unsigned_int> for vector_unsigned_short { #[inline] #[target_feature(enable = "altivec")] @@ -1511,6 +1566,7 @@ mod sealed { vmulouh(self, b) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMulo<vector_signed_int> for vector_signed_short { #[inline] #[target_feature(enable = "altivec")] @@ -1540,10 +1596,12 @@ mod sealed { vsum4shs(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorSum4s<Other> { unsafe fn vec_sum4s(self, b: Other) -> Other; } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorSum4s<vector_unsigned_int> for vector_unsigned_char { #[inline] #[target_feature(enable = "altivec")] @@ -1552,6 +1610,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorSum4s<vector_signed_int> for vector_signed_char { #[inline] #[target_feature(enable = "altivec")] @@ -1560,6 +1619,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorSum4s<vector_signed_int> for vector_signed_short { #[inline] #[target_feature(enable = "altivec")] @@ -1633,10 +1693,12 @@ mod sealed { vmsumshm(a, b, c) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorMsum<B, Other> { unsafe fn vec_msum(self, b: B, c: Other) -> Other; } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMsum<vector_unsigned_char, vector_unsigned_int> for vector_unsigned_char { #[inline] #[target_feature(enable = "altivec")] @@ -1649,6 +1711,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMsum<vector_unsigned_char, vector_signed_int> for vector_signed_char { #[inline] #[target_feature(enable = "altivec")] @@ -1661,6 +1724,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMsum<vector_unsigned_short, vector_unsigned_int> for vector_unsigned_short { #[inline] #[target_feature(enable = "altivec")] @@ -1673,6 +1737,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMsum<vector_signed_short, vector_signed_int> for vector_signed_short { #[inline] #[target_feature(enable = "altivec")] @@ -1707,10 +1772,12 @@ mod sealed { vmsumshs(a, b, c) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorMsums<Other> { unsafe fn vec_msums(self, b: Self, c: Other) -> Other; } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMsums<vector_unsigned_int> for vector_unsigned_short { #[inline] #[target_feature(enable = "altivec")] @@ -1719,6 +1786,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMsums<vector_signed_int> for vector_signed_short { #[inline] #[target_feature(enable = "altivec")] @@ -1738,12 +1806,14 @@ mod sealed { vperm(a, b, c) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorPerm { unsafe fn vec_vperm(self, b: Self, c: vector_unsigned_char) -> Self; } macro_rules! vector_perm { {$impl: ident} => { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorPerm for $impl { #[inline] #[target_feature(enable = "altivec")] @@ -1768,6 +1838,7 @@ mod sealed { vector_perm! { vector_float } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorAdd<Other> { type Result; unsafe fn vec_add(self, other: Other) -> Self::Result; @@ -1779,6 +1850,7 @@ mod sealed { pub unsafe fn vec_add_bc_sc(a: vector_bool_char, b: vector_signed_char) -> vector_signed_char { simd_add(transmute(a), b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_signed_char> for vector_bool_char { type Result = vector_signed_char; #[inline] @@ -1787,6 +1859,7 @@ mod sealed { vec_add_bc_sc(self, other) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_bool_char> for vector_signed_char { type Result = vector_signed_char; #[inline] @@ -1805,6 +1878,7 @@ mod sealed { ) -> vector_signed_char { simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_signed_char> for vector_signed_char { type Result = vector_signed_char; #[inline] @@ -1823,6 +1897,7 @@ mod sealed { ) -> vector_unsigned_char { simd_add(transmute(a), b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_unsigned_char> for vector_bool_char { type Result = vector_unsigned_char; #[inline] @@ -1831,6 +1906,7 @@ mod sealed { vec_add_bc_uc(self, other) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_bool_char> for vector_unsigned_char { type Result = vector_unsigned_char; #[inline] @@ -1849,6 +1925,7 @@ mod sealed { ) -> vector_unsigned_char { simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_unsigned_char> for vector_unsigned_char { type Result = vector_unsigned_char; #[inline] @@ -1870,6 +1947,7 @@ mod sealed { simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_signed_short> for vector_bool_short { type Result = vector_signed_short; #[inline] @@ -1878,6 +1956,7 @@ mod sealed { vec_add_bs_ss(self, other) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_bool_short> for vector_signed_short { type Result = vector_signed_short; #[inline] @@ -1896,6 +1975,7 @@ mod sealed { ) -> vector_signed_short { simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_signed_short> for vector_signed_short { type Result = vector_signed_short; #[inline] @@ -1916,6 +1996,7 @@ mod sealed { let a: vector_unsigned_short = simd_cast(a); simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_unsigned_short> for vector_bool_short { type Result = vector_unsigned_short; #[inline] @@ -1924,6 +2005,7 @@ mod sealed { vec_add_bs_us(self, other) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_bool_short> for vector_unsigned_short { type Result = vector_unsigned_short; #[inline] @@ -1943,6 +2025,7 @@ mod sealed { simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_unsigned_short> for vector_unsigned_short { type Result = vector_unsigned_short; #[inline] @@ -1960,6 +2043,7 @@ mod sealed { let a: vector_signed_int = simd_cast(a); simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_signed_int> for vector_bool_int { type Result = vector_signed_int; #[inline] @@ -1968,6 +2052,7 @@ mod sealed { vec_add_bi_si(self, other) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_bool_int> for vector_signed_int { type Result = vector_signed_int; #[inline] @@ -1983,6 +2068,7 @@ mod sealed { pub unsafe fn vec_add_si_si(a: vector_signed_int, b: vector_signed_int) -> vector_signed_int { simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_signed_int> for vector_signed_int { type Result = vector_signed_int; #[inline] @@ -2000,6 +2086,7 @@ mod sealed { let a: vector_unsigned_int = simd_cast(a); simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_unsigned_int> for vector_bool_int { type Result = vector_unsigned_int; #[inline] @@ -2008,6 +2095,7 @@ mod sealed { vec_add_bi_ui(self, other) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_bool_int> for vector_unsigned_int { type Result = vector_unsigned_int; #[inline] @@ -2026,6 +2114,7 @@ mod sealed { ) -> vector_unsigned_int { simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_unsigned_int> for vector_unsigned_int { type Result = vector_unsigned_int; #[inline] @@ -2042,6 +2131,7 @@ mod sealed { simd_add(a, b) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorAdd<vector_float> for vector_float { type Result = vector_float; #[inline] @@ -2051,6 +2141,7 @@ mod sealed { } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorMladd<Other> { type Result; unsafe fn vec_mladd(self, b: Other, c: Other) -> Self::Result; @@ -2072,6 +2163,7 @@ mod sealed { macro_rules! vector_mladd { ($a: ident, $bc: ident, $d: ident) => { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorMladd<$bc> for $a { type Result = $d; #[inline] @@ -2092,6 +2184,7 @@ mod sealed { vector_mladd! { vector_signed_short, vector_unsigned_short, vector_signed_short } vector_mladd! { vector_signed_short, vector_signed_short, vector_signed_short } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorOr<Other> { type Result; unsafe fn vec_or(self, b: Other) -> Self::Result; @@ -2099,6 +2192,7 @@ mod sealed { impl_vec_trait! { [VectorOr vec_or] ~(simd_or) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorXor<Other> { type Result; unsafe fn vec_xor(self, b: Other) -> Self::Result; @@ -2126,6 +2220,7 @@ mod sealed { vector_vnor! { vec_vnoruh u16 } vector_vnor! { vec_vnoruw u32 } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorNor<Other> { type Result; unsafe fn vec_nor(self, b: Other) -> Self::Result; @@ -2149,16 +2244,19 @@ mod sealed { vcfux(a, IMM5) } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorCtf { unsafe fn vec_ctf<const IMM5: i32>(self) -> vector_float; } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorCtf for vector_signed_int { unsafe fn vec_ctf<const IMM5: i32>(self) -> vector_float { vec_ctf_i32::<IMM5>(self) } } + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorCtf for vector_unsigned_int { unsafe fn vec_ctf<const IMM5: i32>(self) -> vector_float { vec_ctf_u32::<IMM5>(self) @@ -2535,6 +2633,7 @@ where /// Vector Load Indexed. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_ld<T>(off: isize, p: T) -> <T as sealed::VectorLd>::Result where T: sealed::VectorLd, @@ -2545,6 +2644,7 @@ where /// Vector Load Indexed Least Recently Used. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_ldl<T>(off: isize, p: T) -> <T as sealed::VectorLd>::Result where T: sealed::VectorLd, @@ -2555,6 +2655,7 @@ where /// Vector Load Element Indexed. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_lde<T>(off: isize, p: T) -> <T as sealed::VectorLde>::Result where T: sealed::VectorLde, @@ -2583,6 +2684,7 @@ pub unsafe fn vec_loge(a: vector_float) -> vector_float { /// Vector floor. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_floor(a: vector_float) -> vector_float { sealed::vec_floor(a) } @@ -2590,6 +2692,7 @@ pub unsafe fn vec_floor(a: vector_float) -> vector_float { /// Vector expte. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_expte(a: vector_float) -> vector_float { sealed::vec_vexptefp(a) } @@ -2597,6 +2700,7 @@ pub unsafe fn vec_expte(a: vector_float) -> vector_float { /// Vector cmplt. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_cmplt<T, U>(a: U, b: T) -> <T as sealed::VectorCmpGt<U>>::Result where T: sealed::VectorCmpGt<U>, @@ -2607,6 +2711,7 @@ where /// Vector cmple. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_cmple(a: vector_float, b: vector_float) -> vector_bool_int { vec_cmpge(b, a) } @@ -2614,6 +2719,7 @@ pub unsafe fn vec_cmple(a: vector_float, b: vector_float) -> vector_bool_int { /// Vector cmpgt. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_cmpgt<T, U>(a: T, b: U) -> <T as sealed::VectorCmpGt<U>>::Result where T: sealed::VectorCmpGt<U>, @@ -2624,6 +2730,7 @@ where /// Vector cmpge. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_cmpge(a: vector_float, b: vector_float) -> vector_bool_int { sealed::vec_vcmpgefp(a, b) } @@ -2631,6 +2738,7 @@ pub unsafe fn vec_cmpge(a: vector_float, b: vector_float) -> vector_bool_int { /// Vector cmpeq. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_cmpeq<T, U>(a: T, b: U) -> <T as sealed::VectorCmpEq<U>>::Result where T: sealed::VectorCmpEq<U>, @@ -2641,6 +2749,7 @@ where /// Vector cmpb. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_cmpb(a: vector_float, b: vector_float) -> vector_signed_int { sealed::vec_vcmpbfp(a, b) } @@ -2648,6 +2757,7 @@ pub unsafe fn vec_cmpb(a: vector_float, b: vector_float) -> vector_signed_int { /// Vector ceil. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_ceil(a: vector_float) -> vector_float { sealed::vec_vceil(a) } @@ -2655,6 +2765,7 @@ pub unsafe fn vec_ceil(a: vector_float) -> vector_float { /// Vector avg. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_avg<T, U>(a: T, b: U) -> <T as sealed::VectorAvg<U>>::Result where T: sealed::VectorAvg<U>, @@ -2665,6 +2776,7 @@ where /// Vector andc. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_andc<T, U>(a: T, b: U) -> <T as sealed::VectorAndc<U>>::Result where T: sealed::VectorAndc<U>, @@ -2675,6 +2787,7 @@ where /// Vector and. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_and<T, U>(a: T, b: U) -> <T as sealed::VectorAnd<U>>::Result where T: sealed::VectorAnd<U>, @@ -2685,6 +2798,7 @@ where /// Vector or. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_or<T, U>(a: T, b: U) -> <T as sealed::VectorOr<U>>::Result where T: sealed::VectorOr<U>, @@ -2695,6 +2809,7 @@ where /// Vector nor. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_nor<T, U>(a: T, b: U) -> <T as sealed::VectorNor<U>>::Result where T: sealed::VectorNor<U>, @@ -2705,6 +2820,7 @@ where /// Vector xor. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_xor<T, U>(a: T, b: U) -> <T as sealed::VectorXor<U>>::Result where T: sealed::VectorXor<U>, @@ -2715,6 +2831,7 @@ where /// Vector adds. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_adds<T, U>(a: T, b: U) -> <T as sealed::VectorAdds<U>>::Result where T: sealed::VectorAdds<U>, @@ -2725,6 +2842,7 @@ where /// Vector addc. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_addc(a: vector_unsigned_int, b: vector_unsigned_int) -> vector_unsigned_int { sealed::vec_vaddcuw(a, b) } @@ -2732,6 +2850,7 @@ pub unsafe fn vec_addc(a: vector_unsigned_int, b: vector_unsigned_int) -> vector /// Vector abs. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_abs<T>(a: T) -> T where T: sealed::VectorAbs, @@ -2742,6 +2861,7 @@ where /// Vector abss. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_abss<T>(a: T) -> T where T: sealed::VectorAbss, @@ -2769,6 +2889,7 @@ splat! { vec_splat_i32, i32, i32x4 [vspltisw, "Vector Splat to Signed Word"] } /// Vector splats. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_splats<T>(a: T) -> <T as sealed::VectorSplats>::Result where T: sealed::VectorSplats, @@ -2779,6 +2900,7 @@ where /// Vector sub. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_sub<T, U>(a: T, b: U) -> <T as sealed::VectorSub<U>>::Result where T: sealed::VectorSub<U>, @@ -2789,6 +2911,7 @@ where /// Vector subs. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_subs<T, U>(a: T, b: U) -> <T as sealed::VectorSubs<U>>::Result where T: sealed::VectorSubs<U>, @@ -2799,6 +2922,7 @@ where /// Vector min. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_min<T, U>(a: T, b: U) -> <T as sealed::VectorMin<U>>::Result where T: sealed::VectorMin<U>, @@ -2809,6 +2933,7 @@ where /// Vector max. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_max<T, U>(a: T, b: U) -> <T as sealed::VectorMax<U>>::Result where T: sealed::VectorMax<U>, @@ -2827,6 +2952,7 @@ pub unsafe fn vec_mfvscr() -> vector_unsigned_short { /// Vector add. #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_add<T, U>(a: T, b: U) -> <T as sealed::VectorAdd<U>>::Result where T: sealed::VectorAdd<U>, @@ -2837,6 +2963,7 @@ where /// Vector Convert to Floating-Point #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_ctf<const IMM5: i32, T>(a: T) -> vector_float where T: sealed::VectorCtf, @@ -2848,6 +2975,7 @@ where #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr(vctsxs, IMM5 = 1))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_cts<const IMM5: i32>(a: vector_float) -> vector_signed_int { static_assert_uimm_bits!(IMM5, 5); @@ -2858,6 +2986,7 @@ pub unsafe fn vec_cts<const IMM5: i32>(a: vector_float) -> vector_signed_int { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr(vctuxs, IMM5 = 1))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_ctu<const IMM5: i32>(a: vector_float) -> vector_unsigned_int { static_assert_uimm_bits!(IMM5, 5); @@ -2871,6 +3000,7 @@ mod endian { /// Vector permute. #[inline] #[target_feature(enable = "altivec")] + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_perm<T>(a: T, b: T, c: vector_unsigned_char) -> T where T: sealed::VectorPerm, @@ -2888,6 +3018,7 @@ mod endian { /// Vector Sum Across Partial (1/2) Saturated #[inline] + #[unstable(feature = "stdarch_powerpc", issue = "111145")] #[target_feature(enable = "altivec")] pub unsafe fn vec_sum2s(a: vector_signed_int, b: vector_signed_int) -> vector_signed_int { // vsum2sws has big-endian bias @@ -2906,6 +3037,7 @@ mod endian { /// Vector Multiply Even #[inline] #[target_feature(enable = "altivec")] + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_mule<T, U>(a: T, b: T) -> U where T: sealed::VectorMulo<U>, @@ -2915,6 +3047,7 @@ mod endian { /// Vector Multiply Odd #[inline] #[target_feature(enable = "altivec")] + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_mulo<T, U>(a: T, b: T) -> U where T: sealed::VectorMule<U>, @@ -2927,6 +3060,7 @@ mod endian { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr(vmhaddshs))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_madds( a: vector_signed_short, b: vector_signed_short, @@ -2938,6 +3072,7 @@ pub unsafe fn vec_madds( /// Vector Multiply Low and Add Unsigned Half Word #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_mladd<T, U>(a: T, b: U, c: U) -> <T as sealed::VectorMladd<U>>::Result where T: sealed::VectorMladd<U>, @@ -2949,6 +3084,7 @@ where #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr(vmhraddshs))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_mradds( a: vector_signed_short, b: vector_signed_short, @@ -2960,6 +3096,7 @@ pub unsafe fn vec_mradds( /// Vector Multiply Sum #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_msum<T, B, U>(a: T, b: B, c: U) -> U where T: sealed::VectorMsum<B, U>, @@ -2970,6 +3107,7 @@ where /// Vector Multiply Sum Saturated #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_msums<T, U>(a: T, b: T, c: U) -> U where T: sealed::VectorMsums<U>, @@ -2980,6 +3118,7 @@ where /// Vector Multiply Add #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_madd(a: vector_float, b: vector_float, c: vector_float) -> vector_float { vmaddfp(a, b, c) } @@ -2987,6 +3126,7 @@ pub unsafe fn vec_madd(a: vector_float, b: vector_float, c: vector_float) -> vec /// Vector Negative Multiply Subtract #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_nmsub(a: vector_float, b: vector_float, c: vector_float) -> vector_float { vnmsubfp(a, b, c) } @@ -2994,6 +3134,7 @@ pub unsafe fn vec_nmsub(a: vector_float, b: vector_float, c: vector_float) -> ve /// Vector Sum Across Partial (1/4) Saturated #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_sum4s<T, U>(a: T, b: U) -> U where T: sealed::VectorSum4s<U>, @@ -3004,6 +3145,7 @@ where /// Vector All Elements Equal #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_eq<T, U>(a: T, b: U) -> <T as sealed::VectorAllEq<U>>::Result where T: sealed::VectorAllEq<U>, @@ -3014,6 +3156,7 @@ where /// Vector All Elements Equal #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_eq<T, U>(a: T, b: U) -> <T as sealed::VectorAnyEq<U>>::Result where T: sealed::VectorAnyEq<U>, @@ -3024,6 +3167,7 @@ where /// Vector All Elements Greater or Equal #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_ge<T, U>(a: T, b: U) -> <T as sealed::VectorAllGe<U>>::Result where T: sealed::VectorAllGe<U>, @@ -3034,6 +3178,7 @@ where /// Vector Any Element Greater or Equal #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_ge<T, U>(a: T, b: U) -> <T as sealed::VectorAnyGe<U>>::Result where T: sealed::VectorAnyGe<U>, @@ -3044,6 +3189,7 @@ where /// Vector All Elements Greater Than #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_gt<T, U>(a: T, b: U) -> <T as sealed::VectorAllGt<U>>::Result where T: sealed::VectorAllGt<U>, @@ -3054,6 +3200,7 @@ where /// Vector Any Element Greater Than #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_gt<T, U>(a: T, b: U) -> <T as sealed::VectorAnyGt<U>>::Result where T: sealed::VectorAnyGt<U>, @@ -3065,6 +3212,7 @@ where #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpbfp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_in(a: vector_float, b: vector_float) -> bool { vcmpbfp_p(0, a, b) != 0 } @@ -3072,6 +3220,7 @@ pub unsafe fn vec_all_in(a: vector_float, b: vector_float) -> bool { /// Vector All Elements Less Than or Equal #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_le<T, U>(a: U, b: T) -> <T as sealed::VectorAllGe<U>>::Result where T: sealed::VectorAllGe<U>, @@ -3082,6 +3231,7 @@ where /// Vector Any Element Less Than or Equal #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_le<T, U>(a: U, b: T) -> <T as sealed::VectorAnyGe<U>>::Result where T: sealed::VectorAnyGe<U>, @@ -3092,6 +3242,7 @@ where /// Vector All Elements Less Than #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_lt<T, U>(a: U, b: T) -> <T as sealed::VectorAllGt<U>>::Result where T: sealed::VectorAllGt<U>, @@ -3102,6 +3253,7 @@ where /// Vector Any Element Less Than #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_lt<T, U>(a: U, b: T) -> <T as sealed::VectorAnyGt<U>>::Result where T: sealed::VectorAnyGt<U>, @@ -3113,6 +3265,7 @@ where #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpeqfp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_nan(a: vector_float) -> bool { vcmpeqfp_p(0, a, a) != 0 } @@ -3121,6 +3274,7 @@ pub unsafe fn vec_all_nan(a: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpeqfp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_nan(a: vector_float) -> bool { vcmpeqfp_p(3, a, a) != 0 } @@ -3128,6 +3282,7 @@ pub unsafe fn vec_any_nan(a: vector_float) -> bool { /// Vector All Elements Not Equal #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_ne<T, U>(a: T, b: U) -> <T as sealed::VectorAllNe<U>>::Result where T: sealed::VectorAllNe<U>, @@ -3138,6 +3293,7 @@ where /// Vector Any Elements Not Equal #[inline] #[target_feature(enable = "altivec")] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_ne<T, U>(a: T, b: U) -> <T as sealed::VectorAnyNe<U>>::Result where T: sealed::VectorAnyNe<U>, @@ -3149,6 +3305,7 @@ where #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgefp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_nge(a: vector_float, b: vector_float) -> bool { vcmpgefp_p(0, a, b) != 0 } @@ -3157,6 +3314,7 @@ pub unsafe fn vec_all_nge(a: vector_float, b: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgtfp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_ngt(a: vector_float, b: vector_float) -> bool { vcmpgtfp_p(0, a, b) != 0 } @@ -3165,6 +3323,7 @@ pub unsafe fn vec_all_ngt(a: vector_float, b: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgefp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_nle(a: vector_float, b: vector_float) -> bool { vcmpgefp_p(0, b, a) != 0 } @@ -3173,6 +3332,7 @@ pub unsafe fn vec_all_nle(a: vector_float, b: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgtfp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_nlt(a: vector_float, b: vector_float) -> bool { vcmpgtfp_p(0, b, a) != 0 } @@ -3181,6 +3341,7 @@ pub unsafe fn vec_all_nlt(a: vector_float, b: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgefp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_all_numeric(a: vector_float) -> bool { vcmpgefp_p(2, a, a) != 0 } @@ -3189,6 +3350,7 @@ pub unsafe fn vec_all_numeric(a: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgefp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_nge(a: vector_float, b: vector_float) -> bool { vcmpgefp_p(3, a, b) != 0 } @@ -3197,6 +3359,7 @@ pub unsafe fn vec_any_nge(a: vector_float, b: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgtfp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_ngt(a: vector_float, b: vector_float) -> bool { vcmpgtfp_p(3, a, b) != 0 } @@ -3205,6 +3368,7 @@ pub unsafe fn vec_any_ngt(a: vector_float, b: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgefp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_nle(a: vector_float, b: vector_float) -> bool { vcmpgefp_p(3, b, a) != 0 } @@ -3213,6 +3377,7 @@ pub unsafe fn vec_any_nle(a: vector_float, b: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgtfp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_nlt(a: vector_float, b: vector_float) -> bool { vcmpgtfp_p(3, b, a) != 0 } @@ -3221,6 +3386,7 @@ pub unsafe fn vec_any_nlt(a: vector_float, b: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpgefp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_numeric(a: vector_float) -> bool { vcmpgefp_p(1, a, a) != 0 } @@ -3229,6 +3395,7 @@ pub unsafe fn vec_any_numeric(a: vector_float) -> bool { #[inline] #[target_feature(enable = "altivec")] #[cfg_attr(test, assert_instr("vcmpeqfp."))] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_any_out(a: vector_float) -> bool { vcmpeqfp_p(1, a, a) != 0 } @@ -3273,6 +3440,7 @@ mod endian { } } +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub use self::endian::*; #[cfg(test)] diff --git a/library/stdarch/crates/core_arch/src/powerpc/macros.rs b/library/stdarch/crates/core_arch/src/powerpc/macros.rs index ba16689765a..6da05db2df6 100644 --- a/library/stdarch/crates/core_arch/src/powerpc/macros.rs +++ b/library/stdarch/crates/core_arch/src/powerpc/macros.rs @@ -21,6 +21,7 @@ macro_rules! test_impl { #[allow(unknown_lints, unused_macro_rules)] macro_rules! impl_vec_trait { ([$Trait:ident $m:ident] $fun:ident ($a:ty)) => { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl $Trait for $a { #[inline] #[target_feature(enable = "altivec")] @@ -30,6 +31,7 @@ macro_rules! impl_vec_trait { } }; ([$Trait:ident $m:ident] $fun:ident ($a:ty) -> $r:ty) => { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl $Trait for $a { type Result = $r; #[inline] @@ -59,6 +61,7 @@ macro_rules! impl_vec_trait { impl_vec_trait!{ [$Trait $m] $sf (vector_float) -> vector_float } }; ([$Trait:ident $m:ident] $fun:ident ($a:ty, $b:ty) -> $r:ty) => { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl $Trait<$b> for $a { type Result = $r; #[inline] diff --git a/library/stdarch/crates/core_arch/src/powerpc/mod.rs b/library/stdarch/crates/core_arch/src/powerpc/mod.rs index 753f84b0b96..2f6948c7491 100644 --- a/library/stdarch/crates/core_arch/src/powerpc/mod.rs +++ b/library/stdarch/crates/core_arch/src/powerpc/mod.rs @@ -4,9 +4,11 @@ mod macros; mod altivec; +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub use self::altivec::*; mod vsx; +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub use self::vsx::*; #[cfg(test)] @@ -15,6 +17,7 @@ use stdarch_test::assert_instr; /// Generates the trap instruction `TRAP` #[cfg_attr(test, assert_instr(trap))] #[inline] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn trap() -> ! { crate::intrinsics::abort() } diff --git a/library/stdarch/crates/core_arch/src/powerpc/vsx.rs b/library/stdarch/crates/core_arch/src/powerpc/vsx.rs index f2ebc23b21e..8faca3d87b7 100644 --- a/library/stdarch/crates/core_arch/src/powerpc/vsx.rs +++ b/library/stdarch/crates/core_arch/src/powerpc/vsx.rs @@ -18,12 +18,16 @@ use crate::mem::transmute; types! { // pub struct vector_Float16 = f16x8; /// PowerPC-specific 128-bit wide vector of two packed `i64` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_signed_long(i64, i64); /// PowerPC-specific 128-bit wide vector of two packed `u64` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_unsigned_long(u64, u64); /// PowerPC-specific 128-bit wide vector mask of two `i64` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_bool_long(i64, i64); /// PowerPC-specific 128-bit wide vector of two packed `f64` + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub struct vector_double(f64, f64); // pub struct vector_signed_long_long = vector_signed_long; // pub struct vector_unsigned_long_long = vector_unsigned_long; @@ -36,7 +40,9 @@ mod sealed { use super::*; use crate::core_arch::simd::*; + #[unstable(feature = "stdarch_powerpc", issue = "111145")] pub trait VectorPermDI { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] unsafe fn vec_xxpermdi(self, b: Self, dm: u8) -> Self; } @@ -59,6 +65,7 @@ mod sealed { macro_rules! vec_xxpermdi { {$impl: ident} => { + #[unstable(feature = "stdarch_powerpc", issue = "111145")] impl VectorPermDI for $impl { #[inline] #[target_feature(enable = "vsx")] @@ -79,6 +86,7 @@ mod sealed { #[inline] #[target_feature(enable = "vsx")] //#[rustc_legacy_const_generics(2)] +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub unsafe fn vec_xxpermdi<T, const DM: i32>(a: T, b: T) -> T where T: sealed::VectorPermDI, diff --git a/library/stdarch/crates/core_arch/src/powerpc64/mod.rs b/library/stdarch/crates/core_arch/src/powerpc64/mod.rs index 3990a0e8dbb..dac998df6b5 100644 --- a/library/stdarch/crates/core_arch/src/powerpc64/mod.rs +++ b/library/stdarch/crates/core_arch/src/powerpc64/mod.rs @@ -5,4 +5,5 @@ //! //! [64-Bit ELF V2 ABI Specification - Power Architecture]: http://openpowerfoundation.org/wp-content/uploads/resources/leabi/leabi-20170510.pdf +#[unstable(feature = "stdarch_powerpc", issue = "111145")] pub use crate::core_arch::powerpc::*; |
