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

[AArch64] Add FEAT_SME_B16B16 and remove FEAT_B16B16 #102501

Merged
merged 2 commits into from
Aug 12, 2024

Commits on Aug 8, 2024

  1. Add FEAT_SME_B16B16 and remove FEAT_B16B16

    Implement FEAT_SME_B16B16 to enable ZA-targeting non-widening SME BFloat16
    instructions. Remove the now redundant FEAT_B16B16, which has been replaced
    by FEAT_SVE_B16B16 and FEAT_SME_B16B16 (this commit), see
    llvm#101480 for the details and
    reasoning of this change to LLVM.
    
    - Changes to Clang AArch64 frontend
    	- Change target guard of SME2 ZA-targeting non-widening BFloat16
    	  intrinsics to 'sme-b16b16'
    
    - Changes to LLVM AArch64 backend
      - llvm/lib/Target/AArch64/AArch64Features.td
    	- Create FeatureSMEB16B16, which implies FeatureSME2 and
    	  FeatureSVEB16B16
    	- Remove FeatureB16B16
    	- Fix description of FeatureSVEB16B16
      - llvm/lib/Target/AArch64/AArch64InstrInfo.td
    	- Create HasSMEB16B16 predicate
      - llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
    	- Change predictication of SME2 ZA-targeting non-widening BFloat16
    	  instructions to new HasSMEB16B16
      - llvm/lib/Target/AArch64/AArch64.td
    	- Add HasSMEB16B16 to SME2Unsupported (FEAT_SME_B16B16 implies FEAT_SME2)
      - llvm/lib/AArch64/AsmParser/AArch64AsmParser.cpp
    	- Remove flag 'b16b16' mapping to removed FeatureB16B16
    	- Add flag 'sme-b16b16' mapping to new FeatureSMEB16B16
    
    - Changes to LLVM unit tests
      - llvm/unittests/TargetParser/TargetParserTest.cpp
    	- Add new sme-b16b16 flag to existing target parser tests
    	- Add tests for the sme-b16b16 dependencies:
    		- 'sme-b16b16' should enable 'sme2', 'sve-b16b16'.
            - Remove 'b16b16' from bf16 dependency test
    
    - Added MC tests
        - llvm/test/MC/AArch64/SME2p1
    	- To ensure that ZA-targeting multi-vector non-widening BFloat16 instructions
    	are enabled by +sme-b16b16, and that this feature is removed by +nosme-b61b6.
    
    - Modidified tests
        - All CodeGen, Semantic, and MC tests that are effected by the removal of 'b16b16',
        have been modified to supply and/or expect 'sme-b16b16' where appropriate.
    SpencerAbson committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    25e0bec View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4009280 View commit details
    Browse the repository at this point in the history