stabilize s390x vector registers tracking issue: https://github.com/rust-lang/rust/issues/133416 reference PR: https://github.com/rust-lang/reference/pull/2215 Stabilizes s390x vector registers, e.g. ```rust unsafe fn vreg_128(x: i128) -> i128 { let y; asm!("vlr {}, {}", out(vreg) y, in(vreg) x); y } ``` The types that are accepted for vreg registers are - all float types `f16`, `f32`, `f64`, `f128` - integer types `i32`, `i64` and `i128` and their unsigned counterparts - integer vector types `i8x16`, `i16x8`, `i32x4`, `i64x2` and their unsigned counterparts - float vector types `f16x8`, `f32x4` and `f64x2` Support for all of these is tested in https://github.com/rust-lang/rust/blob/main/tests/assembly-llvm/asm/s390x-types.rs, and the types correspond with the LLVM definition in https://github.com/llvm/llvm-project/blob/df9eb79970c012990e829d174d181d575d414efe/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td#L312-L339 The `f16`, `f16x8` and `f128` types are unstable, and so can't be used on stable in practice. They do show up in some error messages though. `vreg` was previously only accepted as a clobber. --- Currently the vector types in `core::arch::s390x` are still unstable. Separately stabilizing `vreg` is still useful because scalar types can also be put into `vreg`s. ## Implementation history - https://github.com/rust-lang/rust/pull/131664 - https://github.com/rust-lang/rust/pull/150826 cc @uweigand @taiki-e r? @Amanieu
This is the main source code repository for Rust. It contains the compiler, standard library, and documentation.
Why Rust?
-
Performance: Fast and memory-efficient, suitable for critical services, embedded devices, and easily integrated with other languages.
-
Reliability: Our rich type system and ownership model ensure memory and thread safety, reducing bugs at compile-time.
-
Productivity: Comprehensive documentation, a compiler committed to providing great diagnostics, and advanced tooling including package manager and build tool (Cargo), auto-formatter (rustfmt), linter (Clippy) and editor support (rust-analyzer).
Quick Start
Read "Installation" from The Book.
Installing from Source
If you really want to install from source (though this is not recommended), see INSTALL.md.
Getting Help
See https://www.rust-lang.org/community for a list of chat platforms and forums.
Contributing
See CONTRIBUTING.md.
For a detailed explanation of the compiler's architecture and how to begin contributing, see the rustc-dev-guide.
License
Rust is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.
See LICENSE-APACHE, LICENSE-MIT, and COPYRIGHT for details.
Trademark
The Rust Foundation owns and protects the Rust and Cargo trademarks and logos (the "Rust Trademarks").
If you want to use these names or brands, please read the Rust language trademark policy.
Third-party logos may be subject to third-party copyrights and trademarks. See Licenses for details.