Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
144 changes: 144 additions & 0 deletions crates/core_arch/src/loongarch64/lasx/generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,22 @@ unsafe extern "llvm-intrinsic" {
fn __lasx_xvsat_wu(a: __v8u32, b: u32) -> __v8u32;
#[link_name = "llvm.loongarch.lasx.xvsat.du"]
fn __lasx_xvsat_du(a: __v4u64, b: u32) -> __v4u64;
#[link_name = "llvm.loongarch.lasx.xvdiv.b"]
fn __lasx_xvdiv_b(a: __v32i8, b: __v32i8) -> __v32i8;
#[link_name = "llvm.loongarch.lasx.xvdiv.h"]
fn __lasx_xvdiv_h(a: __v16i16, b: __v16i16) -> __v16i16;
#[link_name = "llvm.loongarch.lasx.xvdiv.w"]
fn __lasx_xvdiv_w(a: __v8i32, b: __v8i32) -> __v8i32;
#[link_name = "llvm.loongarch.lasx.xvdiv.d"]
fn __lasx_xvdiv_d(a: __v4i64, b: __v4i64) -> __v4i64;
#[link_name = "llvm.loongarch.lasx.xvdiv.bu"]
fn __lasx_xvdiv_bu(a: __v32u8, b: __v32u8) -> __v32u8;
#[link_name = "llvm.loongarch.lasx.xvdiv.hu"]
fn __lasx_xvdiv_hu(a: __v16u16, b: __v16u16) -> __v16u16;
#[link_name = "llvm.loongarch.lasx.xvdiv.wu"]
fn __lasx_xvdiv_wu(a: __v8u32, b: __v8u32) -> __v8u32;
#[link_name = "llvm.loongarch.lasx.xvdiv.du"]
fn __lasx_xvdiv_du(a: __v4u64, b: __v4u64) -> __v4u64;
#[link_name = "llvm.loongarch.lasx.xvhaddw.h.b"]
fn __lasx_xvhaddw_h_b(a: __v32i8, b: __v32i8) -> __v16i16;
#[link_name = "llvm.loongarch.lasx.xvhaddw.w.h"]
Expand All @@ -115,6 +131,22 @@ unsafe extern "llvm-intrinsic" {
fn __lasx_xvhsubw_wu_hu(a: __v16u16, b: __v16u16) -> __v8i32;
#[link_name = "llvm.loongarch.lasx.xvhsubw.du.wu"]
fn __lasx_xvhsubw_du_wu(a: __v8u32, b: __v8u32) -> __v4i64;
#[link_name = "llvm.loongarch.lasx.xvmod.b"]
fn __lasx_xvmod_b(a: __v32i8, b: __v32i8) -> __v32i8;
#[link_name = "llvm.loongarch.lasx.xvmod.h"]
fn __lasx_xvmod_h(a: __v16i16, b: __v16i16) -> __v16i16;
#[link_name = "llvm.loongarch.lasx.xvmod.w"]
fn __lasx_xvmod_w(a: __v8i32, b: __v8i32) -> __v8i32;
#[link_name = "llvm.loongarch.lasx.xvmod.d"]
fn __lasx_xvmod_d(a: __v4i64, b: __v4i64) -> __v4i64;
#[link_name = "llvm.loongarch.lasx.xvmod.bu"]
fn __lasx_xvmod_bu(a: __v32u8, b: __v32u8) -> __v32u8;
#[link_name = "llvm.loongarch.lasx.xvmod.hu"]
fn __lasx_xvmod_hu(a: __v16u16, b: __v16u16) -> __v16u16;
#[link_name = "llvm.loongarch.lasx.xvmod.wu"]
fn __lasx_xvmod_wu(a: __v8u32, b: __v8u32) -> __v8u32;
#[link_name = "llvm.loongarch.lasx.xvmod.du"]
fn __lasx_xvmod_du(a: __v4u64, b: __v4u64) -> __v4u64;
#[link_name = "llvm.loongarch.lasx.xvshuf.b"]
fn __lasx_xvshuf_b(a: __v32i8, b: __v32i8, c: __v32i8) -> __v32i8;
#[link_name = "llvm.loongarch.lasx.xvshuf.h"]
Expand Down Expand Up @@ -1251,6 +1283,62 @@ pub fn lasx_xvsat_du<const IMM6: u32>(a: m256i) -> m256i {
unsafe { transmute(__lasx_xvsat_du(transmute(a), IMM6)) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvdiv_b(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvdiv_b(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvdiv_h(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvdiv_h(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvdiv_w(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvdiv_w(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvdiv_d(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvdiv_d(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvdiv_bu(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvdiv_bu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvdiv_hu(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvdiv_hu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvdiv_wu(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvdiv_wu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvdiv_du(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvdiv_du(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
Expand Down Expand Up @@ -1335,6 +1423,62 @@ pub fn lasx_xvhsubw_du_wu(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvhsubw_du_wu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvmod_b(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvmod_b(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvmod_h(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvmod_h(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvmod_w(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvmod_w(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvmod_d(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvmod_d(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvmod_bu(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvmod_bu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvmod_hu(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvmod_hu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvmod_wu(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvmod_wu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lasx_xvmod_du(a: m256i, b: m256i) -> m256i {
unsafe { transmute(__lasx_xvmod_du(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lasx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
Expand Down
16 changes: 0 additions & 16 deletions crates/core_arch/src/loongarch64/lasx/portable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -681,22 +681,6 @@ impl_vvv!("lasx", lasx_xvmul_b, simd_mul, m256i, i8x32);
impl_vvv!("lasx", lasx_xvmul_h, simd_mul, m256i, i16x16);
impl_vvv!("lasx", lasx_xvmul_w, simd_mul, m256i, i32x8);
impl_vvv!("lasx", lasx_xvmul_d, simd_mul, m256i, i64x4);
impl_vvv!("lasx", lasx_xvdiv_b, simd_div, m256i, i8x32);
impl_vvv!("lasx", lasx_xvdiv_h, simd_div, m256i, i16x16);
impl_vvv!("lasx", lasx_xvdiv_w, simd_div, m256i, i32x8);
impl_vvv!("lasx", lasx_xvdiv_d, simd_div, m256i, i64x4);
impl_vvv!("lasx", lasx_xvdiv_bu, simd_div, m256i, u8x32);
impl_vvv!("lasx", lasx_xvdiv_hu, simd_div, m256i, u16x16);
impl_vvv!("lasx", lasx_xvdiv_wu, simd_div, m256i, u32x8);
impl_vvv!("lasx", lasx_xvdiv_du, simd_div, m256i, u64x4);
impl_vvv!("lasx", lasx_xvmod_b, simd_rem, m256i, i8x32);
impl_vvv!("lasx", lasx_xvmod_h, simd_rem, m256i, i16x16);
impl_vvv!("lasx", lasx_xvmod_w, simd_rem, m256i, i32x8);
impl_vvv!("lasx", lasx_xvmod_d, simd_rem, m256i, i64x4);
impl_vvv!("lasx", lasx_xvmod_bu, simd_rem, m256i, u8x32);
impl_vvv!("lasx", lasx_xvmod_hu, simd_rem, m256i, u16x16);
impl_vvv!("lasx", lasx_xvmod_wu, simd_rem, m256i, u32x8);
impl_vvv!("lasx", lasx_xvmod_du, simd_rem, m256i, u64x4);
impl_vvv!("lasx", lasx_xvand_v, simd_and, m256i, u8x32);
impl_vvv!("lasx", lasx_xvandn_v, simd_ext_andn, m256i, u8x32);
impl_vvv!("lasx", lasx_xvor_v, simd_or, m256i, u8x32);
Expand Down
144 changes: 144 additions & 0 deletions crates/core_arch/src/loongarch64/lsx/generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,22 @@ unsafe extern "llvm-intrinsic" {
fn __lsx_vsat_wu(a: __v4u32, b: u32) -> __v4u32;
#[link_name = "llvm.loongarch.lsx.vsat.du"]
fn __lsx_vsat_du(a: __v2u64, b: u32) -> __v2u64;
#[link_name = "llvm.loongarch.lsx.vdiv.b"]
fn __lsx_vdiv_b(a: __v16i8, b: __v16i8) -> __v16i8;
#[link_name = "llvm.loongarch.lsx.vdiv.h"]
fn __lsx_vdiv_h(a: __v8i16, b: __v8i16) -> __v8i16;
#[link_name = "llvm.loongarch.lsx.vdiv.w"]
fn __lsx_vdiv_w(a: __v4i32, b: __v4i32) -> __v4i32;
#[link_name = "llvm.loongarch.lsx.vdiv.d"]
fn __lsx_vdiv_d(a: __v2i64, b: __v2i64) -> __v2i64;
#[link_name = "llvm.loongarch.lsx.vdiv.bu"]
fn __lsx_vdiv_bu(a: __v16u8, b: __v16u8) -> __v16u8;
#[link_name = "llvm.loongarch.lsx.vdiv.hu"]
fn __lsx_vdiv_hu(a: __v8u16, b: __v8u16) -> __v8u16;
#[link_name = "llvm.loongarch.lsx.vdiv.wu"]
fn __lsx_vdiv_wu(a: __v4u32, b: __v4u32) -> __v4u32;
#[link_name = "llvm.loongarch.lsx.vdiv.du"]
fn __lsx_vdiv_du(a: __v2u64, b: __v2u64) -> __v2u64;
#[link_name = "llvm.loongarch.lsx.vhaddw.h.b"]
fn __lsx_vhaddw_h_b(a: __v16i8, b: __v16i8) -> __v8i16;
#[link_name = "llvm.loongarch.lsx.vhaddw.w.h"]
Expand All @@ -115,6 +131,22 @@ unsafe extern "llvm-intrinsic" {
fn __lsx_vhsubw_wu_hu(a: __v8u16, b: __v8u16) -> __v4i32;
#[link_name = "llvm.loongarch.lsx.vhsubw.du.wu"]
fn __lsx_vhsubw_du_wu(a: __v4u32, b: __v4u32) -> __v2i64;
#[link_name = "llvm.loongarch.lsx.vmod.b"]
fn __lsx_vmod_b(a: __v16i8, b: __v16i8) -> __v16i8;
#[link_name = "llvm.loongarch.lsx.vmod.h"]
fn __lsx_vmod_h(a: __v8i16, b: __v8i16) -> __v8i16;
#[link_name = "llvm.loongarch.lsx.vmod.w"]
fn __lsx_vmod_w(a: __v4i32, b: __v4i32) -> __v4i32;
#[link_name = "llvm.loongarch.lsx.vmod.d"]
fn __lsx_vmod_d(a: __v2i64, b: __v2i64) -> __v2i64;
#[link_name = "llvm.loongarch.lsx.vmod.bu"]
fn __lsx_vmod_bu(a: __v16u8, b: __v16u8) -> __v16u8;
#[link_name = "llvm.loongarch.lsx.vmod.hu"]
fn __lsx_vmod_hu(a: __v8u16, b: __v8u16) -> __v8u16;
#[link_name = "llvm.loongarch.lsx.vmod.wu"]
fn __lsx_vmod_wu(a: __v4u32, b: __v4u32) -> __v4u32;
#[link_name = "llvm.loongarch.lsx.vmod.du"]
fn __lsx_vmod_du(a: __v2u64, b: __v2u64) -> __v2u64;
#[link_name = "llvm.loongarch.lsx.vreplve.b"]
fn __lsx_vreplve_b(a: __v16i8, b: i32) -> __v16i8;
#[link_name = "llvm.loongarch.lsx.vreplve.h"]
Expand Down Expand Up @@ -1171,6 +1203,62 @@ pub fn lsx_vsat_du<const IMM6: u32>(a: m128i) -> m128i {
unsafe { transmute(__lsx_vsat_du(transmute(a), IMM6)) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vdiv_b(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vdiv_b(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vdiv_h(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vdiv_h(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vdiv_w(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vdiv_w(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vdiv_d(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vdiv_d(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vdiv_bu(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vdiv_bu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vdiv_hu(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vdiv_hu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vdiv_wu(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vdiv_wu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vdiv_du(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vdiv_du(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
Expand Down Expand Up @@ -1255,6 +1343,62 @@ pub fn lsx_vhsubw_du_wu(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vhsubw_du_wu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vmod_b(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vmod_b(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vmod_h(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vmod_h(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vmod_w(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vmod_w(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vmod_d(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vmod_d(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vmod_bu(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vmod_bu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vmod_hu(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vmod_hu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vmod_wu(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vmod_wu(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
pub fn lsx_vmod_du(a: m128i, b: m128i) -> m128i {
unsafe { transmute(__lsx_vmod_du(transmute(a), transmute(b))) }
}

#[inline]
#[target_feature(enable = "lsx")]
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
Expand Down
16 changes: 0 additions & 16 deletions crates/core_arch/src/loongarch64/lsx/portable.rs
Original file line number Diff line number Diff line change
Expand Up @@ -351,22 +351,6 @@ impl_vvv!("lsx", lsx_vmul_b, simd_mul, m128i, i8x16);
impl_vvv!("lsx", lsx_vmul_h, simd_mul, m128i, i16x8);
impl_vvv!("lsx", lsx_vmul_w, simd_mul, m128i, i32x4);
impl_vvv!("lsx", lsx_vmul_d, simd_mul, m128i, i64x2);
impl_vvv!("lsx", lsx_vdiv_b, simd_div, m128i, i8x16);
impl_vvv!("lsx", lsx_vdiv_h, simd_div, m128i, i16x8);
impl_vvv!("lsx", lsx_vdiv_w, simd_div, m128i, i32x4);
impl_vvv!("lsx", lsx_vdiv_d, simd_div, m128i, i64x2);
impl_vvv!("lsx", lsx_vdiv_bu, simd_div, m128i, u8x16);
impl_vvv!("lsx", lsx_vdiv_hu, simd_div, m128i, u16x8);
impl_vvv!("lsx", lsx_vdiv_wu, simd_div, m128i, u32x4);
impl_vvv!("lsx", lsx_vdiv_du, simd_div, m128i, u64x2);
impl_vvv!("lsx", lsx_vmod_b, simd_rem, m128i, i8x16);
impl_vvv!("lsx", lsx_vmod_h, simd_rem, m128i, i16x8);
impl_vvv!("lsx", lsx_vmod_w, simd_rem, m128i, i32x4);
impl_vvv!("lsx", lsx_vmod_d, simd_rem, m128i, i64x2);
impl_vvv!("lsx", lsx_vmod_bu, simd_rem, m128i, u8x16);
impl_vvv!("lsx", lsx_vmod_hu, simd_rem, m128i, u16x8);
impl_vvv!("lsx", lsx_vmod_wu, simd_rem, m128i, u32x4);
impl_vvv!("lsx", lsx_vmod_du, simd_rem, m128i, u64x2);
impl_vvv!("lsx", lsx_vand_v, simd_and, m128i, u8x16);
impl_vvv!("lsx", lsx_vandn_v, simd_ext_andn, m128i, u8x16);
impl_vvv!("lsx", lsx_vor_v, simd_or, m128i, u8x16);
Expand Down
Loading
Loading