-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Open
Labels
A-ABIArea: Concerning the application binary interface (ABI)Area: Concerning the application binary interface (ABI)A-SIMDArea: SIMD (Single Instruction Multiple Data)Area: SIMD (Single Instruction Multiple Data)A-inline-assemblyArea: Inline assembly (`asm!(…)`)Area: Inline assembly (`asm!(…)`)O-SystemZTarget: SystemZ processors (s390x)Target: SystemZ processors (s390x)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.Relevant to the library team, which will review and decide on the PR/issue.
Description
This tracks the status of s390x vector facilities support in rustc and standard libraries.
- ABI support
- support z13 vector ABI: done in Support s390x z13 vector ABI #131586
rust/compiler/rustc_target/src/abi/call/s390x.rs
Lines 1 to 2 in 58420a0
// FIXME: The assumes we're using the non-vector ABI, i.e., compiling // for a pre-z13 machine or using -mno-vx. - remove explicit disabling of the vector feature (blocked on the above FIXME): done in Support s390x z13 vector ABI #131586
// FIXME: The ABI implementation in abi/call/s390x.rs is for now hard-coded to assume the no-vector // ABI. Pass the -vector feature string to LLVM to respect this assumption. base.features = "-vector".into();
- support z13 vector ABI: done in Support s390x z13 vector ABI #131586
- target_feature support
- support nightly-only
cfg(target_feature = "vector")
and unstabletarget_feature(enable = "vector")
(underfeature(s390x_target_feature)
): done in rustc_target: add known safe s390x target features #127506 - support other vector facility-related target features: vector-enhancements-1, vector-enhancements-2, etc. (see also Missing support for target features on s390x #88937); done in add more
s390x
target features #135630 - stabilize
target_feature = "vector"
(and other vector-related target features if available)
At least blocked until ABI support doneUPDATE: ABI support done
And may be more things are needed given the precedent of postponed stabilization of vector features in RISC-V.
- support nightly-only
- asm support
- support clobber-only vector registers: done in Support clobber_abi and vector/access registers (clobber-only) in s390x inline assembly #130630
- stabilize
feature(asm_experimental_arch)
on s390x: done in Stabilize s390x inline assembly #131258 - support
#[repr(simd)]
types in input/output of asm (i.e., fully support vector registers) underfeature(asm_experimental_reg)
: pending in Support input/output in vector registers of s390x inline assembly (under asm_experimental_reg feature) #131664
Both LLVM and GCC do not documentv
constraint, but actually seem to be supported.
Blocked until ABI support done.UPDATE: ABI support done - stabilize
feature(asm_experimental_reg)
for s390x vector registers (Tracking Issue for asm_experimental_reg #133416)
- core_arch support (tracking issue: Tracking Issue for
stdarch_s390x
#135681)- add unstable vector intrinsics to core::arch::s390x: mostly done s390x vector facilities support #130869 (comment)
Blocked until ABI support done.UPDATE: ABI support done
- add unstable vector intrinsics to core::arch::s390x: mostly done s390x vector facilities support #130869 (comment)
- std_detect support (tracking issue: Tracking Issue for
stdarch_s390x_feature_detection
#135413)- support unstable
is_s390x_feature_detected!("vector")
: done in addis_s390x_feature_detected
stdarch#1699
- support unstable
@rustbot label +O-SystemZ
Metadata
Metadata
Assignees
Labels
A-ABIArea: Concerning the application binary interface (ABI)Area: Concerning the application binary interface (ABI)A-SIMDArea: SIMD (Single Instruction Multiple Data)Area: SIMD (Single Instruction Multiple Data)A-inline-assemblyArea: Inline assembly (`asm!(…)`)Area: Inline assembly (`asm!(…)`)O-SystemZTarget: SystemZ processors (s390x)Target: SystemZ processors (s390x)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.Relevant to the library team, which will review and decide on the PR/issue.