Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rustc_target: Add various aarch64 features #128192

Merged
merged 5 commits into from
Aug 29, 2024

Commits on Aug 27, 2024

  1. rustc_target: Add various aarch64 features

    Add various aarch64 features already supported by LLVM and Linux.
    
    The features are marked as unstable using a newly added symbol, i.e.
    aarch64_unstable_target_feature.
    
    Additionally include some comment fixes to ensure consistency of
    feature names with the Arm ARM and support for architecture version
    target features up to v9.5a.
    
    This commit adds compiler support for the following features:
    
    - FEAT_CSSC
    - FEAT_ECV
    - FEAT_FAMINMAX
    - FEAT_FLAGM2
    - FEAT_FP8
    - FEAT_FP8DOT2
    - FEAT_FP8DOT4
    - FEAT_FP8FMA
    - FEAT_FPMR
    - FEAT_HBC
    - FEAT_LSE128
    - FEAT_LSE2
    - FEAT_LUT
    - FEAT_MOPS
    - FEAT_LRCPC3
    - FEAT_SVE_B16B16
    - FEAT_SVE2p1
    - FEAT_WFxT
    mrkajetanp committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    4f847bd View commit details
    Browse the repository at this point in the history
  2. rustc_target: Add SME aarch64 features

    Add SME aarch64 features already supported by LLVM and Linux.
    
    This commit adds compiler support for the following features:
    
    - FEAT_SME
    - FEAT_SME_F16F16
    - FEAT_SME_F64F64
    - FEAT_SME_F8F16
    - FEAT_SME_F8F32
    - FEAT_SME_FA64
    - FEAT_SME_I16I64
    - FEAT_SME_LUTv2
    - FEAT_SME2
    - FEAT_SME2p1
    - FEAT_SSVE_FP8DOT2
    - FEAT_SSVE_FP8DOT4
    - FEAT_SSVE_FP8FMA
    mrkajetanp committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    c351806 View commit details
    Browse the repository at this point in the history
  3. rustc_target: Remove fpmr target feature

    FEAT_FPMR has been removed from upstream LLVM as of LLVM 19.
    Remove the feature from the target features list and temporarily hack
    the LLVM codegen to always enable it until the minimum LLVM version is
    bumped to 19.
    mrkajetanp committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    4fc4019 View commit details
    Browse the repository at this point in the history
  4. rustc_codegen_llvm: Filter out unavailable LLVM features

    Convert to_llvm_features to return Option<LLVMFeature> so that it can
    return None if the requested feature is not available for the current
    LLVM version.
    
    Add match rules to filter out aarch64 features not available in LLVM 17.
    mrkajetanp committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    3a0fbb5 View commit details
    Browse the repository at this point in the history
  5. tests: Update with new aarch64 target features

    Additionally, remove optional matching for +v8a given that the minimum LLVM version is now past 14.
    mrkajetanp committed Aug 27, 2024
    Configuration menu
    Copy the full SHA
    0f871b5 View commit details
    Browse the repository at this point in the history