Performance regression of x86-64-specific SIMD intrinsics #138725
Labels
A-SIMD
Area: SIMD (Single Instruction Multiple Data)
C-optimization
Category: An issue highlighting optimization opportunities or PRs implementing such
I-heavy
Issue: Problems and improvements with respect to binary size of generated code.
I-slow
Issue: Problems and improvements with respect to performance of generated code.
O-x86_64
Target: x86-64 processors (like x86_64-*) (also known as amd64 and x64)
regression-from-stable-to-stable
Performance or correctness regression from one stable version to another.
T-libs
Relevant to the library team, which will review and decide on the PR/issue.
This should compile to, and Clang does compile this to:
But due to rust-lang/stdarch#1477, these intrinsics are mapped to portable SIMD operations, which are then compiled to this mess:
This is a regression in 1.75.0. IMO the corresponding parts of the stdarch PR should just be reverted, because I (and most people these days, I think) use specialized non-portable intrinsics precisely when LLVM can't optimize generic code correctly, and the PR explicitly breaks this use case. But I'd like to track this and hear other people's opinion.
@rustbot label +C-optimization +I-heavy +I-slow +A-SIMD +O-x86_64 +T-libs +regression-from-stable-to-stable
The text was updated successfully, but these errors were encountered: