core_arch: Add LoongArch LASX intrinsics
Co-authored-by: ZHAI Xiang <zhaixiang@loongson.cn>
This commit is contained in:
parent
f74fe05f9e
commit
2b923a30e8
6 changed files with 16127 additions and 0 deletions
7027
library/stdarch/crates/core_arch/src/loongarch64/lasx/generated.rs
Normal file
7027
library/stdarch/crates/core_arch/src/loongarch64/lasx/generated.rs
Normal file
File diff suppressed because it is too large
Load diff
13
library/stdarch/crates/core_arch/src/loongarch64/lasx/mod.rs
Normal file
13
library/stdarch/crates/core_arch/src/loongarch64/lasx/mod.rs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
//! LoongArch64 LASX intrinsics
|
||||
|
||||
#![allow(non_camel_case_types)]
|
||||
|
||||
#[rustfmt::skip]
|
||||
mod types;
|
||||
|
||||
#[rustfmt::skip]
|
||||
mod generated;
|
||||
|
||||
#[rustfmt::skip]
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub use self::generated::*;
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
types! {
|
||||
/// LOONGARCH-specific 256-bit wide vector of 32 packed `i8`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v32i8(
|
||||
pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8,
|
||||
pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8,
|
||||
pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8,
|
||||
pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8, pub(crate) i8,
|
||||
);
|
||||
|
||||
/// LOONGARCH-specific 256-bit wide vector of 16 packed `i16`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v16i16(
|
||||
pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16,
|
||||
pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16, pub(crate) i16,
|
||||
);
|
||||
|
||||
/// LOONGARCH-specific 256-bit wide vector of 8 packed `i32`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v8i32(pub(crate) i32, pub(crate) i32, pub(crate) i32, pub(crate) i32, pub(crate) i32, pub(crate) i32, pub(crate) i32, pub(crate) i32);
|
||||
|
||||
/// LOONGARCH-specific 256-bit wide vector of 4 packed `i64`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v4i64(pub(crate) i64, pub(crate) i64, pub(crate) i64, pub(crate) i64);
|
||||
|
||||
/// LOONGARCH-specific 256-bit wide vector of 32 packed `u8`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v32u8(
|
||||
pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8,
|
||||
pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8,
|
||||
pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8,
|
||||
pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8, pub(crate) u8,
|
||||
);
|
||||
|
||||
/// LOONGARCH-specific 256-bit wide vector of 16 packed `u16`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v16u16(
|
||||
pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16,
|
||||
pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16, pub(crate) u16,
|
||||
);
|
||||
|
||||
/// LOONGARCH-specific 256-bit wide vector of 8 packed `u32`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v8u32(pub(crate) u32, pub(crate) u32, pub(crate) u32, pub(crate) u32, pub(crate) u32, pub(crate) u32, pub(crate) u32, pub(crate) u32);
|
||||
|
||||
/// LOONGARCH-specific 256-bit wide vector of 4 packed `u64`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v4u64(pub(crate) u64, pub(crate) u64, pub(crate) u64, pub(crate) u64);
|
||||
|
||||
/// LOONGARCH-specific 128-bit wide vector of 8 packed `f32`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v8f32(pub(crate) f32, pub(crate) f32, pub(crate) f32, pub(crate) f32, pub(crate) f32, pub(crate) f32, pub(crate) f32, pub(crate) f32);
|
||||
|
||||
/// LOONGARCH-specific 256-bit wide vector of 4 packed `f64`.
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub struct v4f64(pub(crate) f64, pub(crate) f64, pub(crate) f64, pub(crate) f64);
|
||||
}
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
//! `LoongArch` intrinsics
|
||||
|
||||
mod lasx;
|
||||
mod lsx;
|
||||
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub use self::lasx::*;
|
||||
#[unstable(feature = "stdarch_loongarch", issue = "117427")]
|
||||
pub use self::lsx::*;
|
||||
|
|
|
|||
3685
library/stdarch/crates/stdarch-gen-loongarch/lasx.spec
Normal file
3685
library/stdarch/crates/stdarch-gen-loongarch/lasx.spec
Normal file
File diff suppressed because it is too large
Load diff
5342
library/stdarch/crates/stdarch-gen-loongarch/lasxintrin.h
Normal file
5342
library/stdarch/crates/stdarch-gen-loongarch/lasxintrin.h
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue