Skip to content

Commit 581f358

Browse files
committed
fix ambiguous export issue with vec_add
1 parent 221954c commit 581f358

2 files changed

Lines changed: 10 additions & 26 deletions

File tree

crates/core_arch/src/powerpc/altivec.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ unsafe extern "unadjusted" {
411411
}
412412

413413
#[macro_use]
414-
mod sealed {
414+
pub(crate) mod sealed {
415415
use super::*;
416416

417417
#[unstable(feature = "stdarch_powerpc", issue = "111145")]

crates/core_arch/src/powerpc/vsx.rs

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,6 @@ mod sealed {
7171
unsafe fn vec_xxpermdi(self, b: Self, dm: u8) -> Self;
7272
}
7373

74-
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
75-
pub trait VectorAdd<Other> {
76-
type Result;
77-
unsafe fn vec_add(self, other: Other) -> Self::Result;
78-
}
79-
8074
// xxpermdi has an big-endian bias and extended mnemonics
8175
#[inline]
8276
#[target_feature(enable = "vsx")]
@@ -182,30 +176,20 @@ mod sealed {
182176
#[inline]
183177
#[target_feature(enable = "vsx")]
184178
#[cfg_attr(test, assert_instr(xvadddp))]
185-
unsafe fn vec_add_double_double(a: vector_double, b: vector_double) -> vector_double {
179+
pub(crate) unsafe fn vec_add_double_double(a: vector_double, b: vector_double) -> vector_double {
186180
simd_add(a, b)
187181
}
188-
189-
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
190-
impl sealed::VectorAdd<vector_double> for vector_double {
191-
type Result = vector_double;
192-
#[inline]
193-
#[target_feature(enable = "vsx")]
194-
unsafe fn vec_add(self, other: vector_double) -> Self::Result {
195-
vec_add_double_double(self, other)
196-
}
197-
}
198182
}
199183

200-
/// Vector add for double-precision floating-point vectors.
201-
#[inline]
202-
#[target_feature(enable = "vsx")]
184+
// Implement AltiVec's VectorAdd trait for vector_double to enable vec_add support
203185
#[unstable(feature = "stdarch_powerpc", issue = "111145")]
204-
pub unsafe fn vec_add<T, U>(a: T, b: U) -> <T as sealed::VectorAdd<U>>::Result
205-
where
206-
T: sealed::VectorAdd<U>,
207-
{
208-
a.vec_add(b)
186+
impl crate::core_arch::powerpc::altivec::sealed::VectorAdd<vector_double> for vector_double {
187+
type Result = vector_double;
188+
#[inline]
189+
#[target_feature(enable = "vsx")]
190+
unsafe fn vec_add(self, other: vector_double) -> Self::Result {
191+
sealed::vec_add_double_double(self, other)
192+
}
209193
}
210194

211195
/// Vector permute.

0 commit comments

Comments
 (0)