mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-03 02:40:40 +00:00
Add intrinsic code generator for LoongArch
Co-authored-by: WANG Rui <wangrui@loongson.cn>
This commit is contained in:
parent
6ecbc8ebfb
commit
a66ae3ec9e
4
library/stdarch/.gitignore
vendored
4
library/stdarch/.gitignore
vendored
@ -4,5 +4,7 @@ target
|
||||
tags
|
||||
crates/stdarch-gen-arm/aarch64.rs
|
||||
crates/stdarch-gen-arm/arm.rs
|
||||
crates/stdarch-gen-loongarch/lasx.c
|
||||
crates/stdarch-gen-loongarch/lsx.c
|
||||
c_programs/*
|
||||
rust_programs/*
|
||||
rust_programs/*
|
||||
|
@ -5,6 +5,7 @@ members = [
|
||||
"crates/core_arch",
|
||||
"crates/std_detect",
|
||||
"crates/stdarch-gen-arm",
|
||||
"crates/stdarch-gen-loongarch",
|
||||
"crates/intrinsic-test",
|
||||
"examples/"
|
||||
]
|
||||
|
10
library/stdarch/crates/stdarch-gen-loongarch/Cargo.toml
Normal file
10
library/stdarch/crates/stdarch-gen-loongarch/Cargo.toml
Normal file
@ -0,0 +1,10 @@
|
||||
[package]
|
||||
name = "stdarch-gen-loongarch"
|
||||
version = "0.1.0"
|
||||
authors = ["ZHAI Xiang <zhaixiang@loongson.cn>", "WANG Rui <wangrui@loongson.cn>"]
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
rand = "0.8.5"
|
33
library/stdarch/crates/stdarch-gen-loongarch/README.md
Normal file
33
library/stdarch/crates/stdarch-gen-loongarch/README.md
Normal file
@ -0,0 +1,33 @@
|
||||
# LoongArch LSX/LASX intrinsic code generator
|
||||
|
||||
A small tool that allows to quickly generate intrinsics for the LoongArch LSX/LASX architectures.
|
||||
|
||||
The specification for the intrinsics can be found in `lsx.spec` or `lasx.spec`.
|
||||
|
||||
To run and re-generate the code run the following from the root of the `stdarch` crate.
|
||||
|
||||
LSX:
|
||||
```
|
||||
# Generate bindings
|
||||
OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsxintrin.h
|
||||
OUT_DIR=`pwd`/crates/core_arch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsx.spec
|
||||
|
||||
# Generate tests
|
||||
OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lsx.spec test
|
||||
loongarch64-unknown-linux-gnu-gcc -static -o lsx crates/stdarch-gen-loongarch/lsx.c -mlasx
|
||||
qemu-loongarch64 ./lsx > crates/core_arch/src/loongarch64/lsx/tests.rs
|
||||
rustfmt crates/core_arch/src/loongarch64/lsx/tests.rs
|
||||
```
|
||||
|
||||
LASX:
|
||||
```
|
||||
# Generate bindings
|
||||
OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lasxintrin.h
|
||||
OUT_DIR=`pwd`/crates/core_arch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lasx.spec
|
||||
|
||||
# Generate tests
|
||||
OUT_DIR=`pwd`/crates/stdarch-gen-loongarch cargo run -p stdarch-gen-loongarch -- crates/stdarch-gen-loongarch/lasx.spec test
|
||||
loongarch64-unknown-linux-gnu-gcc -static -o lasx crates/stdarch-gen-loongarch/lasx.c -mlasx
|
||||
qemu-loongarch64 ./lasx > crates/core_arch/src/loongarch64/lasx/tests.rs
|
||||
rustfmt crates/core_arch/src/loongarch64/lasx/tests.rs
|
||||
```
|
1525
library/stdarch/crates/stdarch-gen-loongarch/src/main.rs
Normal file
1525
library/stdarch/crates/stdarch-gen-loongarch/src/main.rs
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user