[all-commits] [llvm/llvm-project] 1b936e: [AArch64] Add FEAT_SME_B16B16 and remove FEAT_B16B...

SpencerAbson via All-commits all-commits at lists.llvm.org
Mon Aug 12 06:33:35 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 1b936e4812ab395328203f65cacd4ffe02bb318e
      https://github.com/llvm/llvm-project/commit/1b936e4812ab395328203f65cacd4ffe02bb318e
  Author: SpencerAbson <Spencer.Abson at arm.com>
  Date:   2024-08-12 (Mon, 12 Aug 2024)

  Changed paths:
    M clang/include/clang/Basic/arm_sme.td
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_add_sub_za16.c
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_fmlas16.c
    M clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_mopa_nonwide.c
    M clang/test/Driver/print-supported-extensions-aarch64.c
    M clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_add_sub_za16.c
    M clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_fmlas16.c
    M clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_mopa_nonwide.c
    M llvm/lib/Target/AArch64/AArch64.td
    M llvm/lib/Target/AArch64/AArch64Features.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/test/CodeGen/AArch64/sme2-intrinsics-add-sub-za16.ll
    M llvm/test/CodeGen/AArch64/sme2-intrinsics-fmlas16.ll
    M llvm/test/CodeGen/AArch64/sme2-intrinsics-mopa.ll
    M llvm/test/MC/AArch64/SME2/bfadd-diagnostics.s
    M llvm/test/MC/AArch64/SME2/bfadd.s
    M llvm/test/MC/AArch64/SME2/bfmla-diagnostics.s
    M llvm/test/MC/AArch64/SME2/bfmla.s
    M llvm/test/MC/AArch64/SME2/bfmls-diagnostics.s
    M llvm/test/MC/AArch64/SME2/bfmls.s
    M llvm/test/MC/AArch64/SME2/bfmopa-diagnostics.s
    M llvm/test/MC/AArch64/SME2/bfmopa.s
    M llvm/test/MC/AArch64/SME2/bfmops-diagnostics.s
    M llvm/test/MC/AArch64/SME2/bfmops.s
    M llvm/test/MC/AArch64/SME2/bfsub-diagnostics.s
    M llvm/test/MC/AArch64/SME2/bfsub.s
    M llvm/test/MC/AArch64/SME2p1/directive-arch-negative.s
    M llvm/test/MC/AArch64/SME2p1/directive-arch_extension-negative.s
    M llvm/test/MC/AArch64/SME2p1/directive-arch_extension.s
    M llvm/unittests/TargetParser/TargetParserTest.cpp

  Log Message:
  -----------
  [AArch64] Add FEAT_SME_B16B16 and remove FEAT_B16B16 (#102501)

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
https://github.com/llvm/llvm-project/pull/101480/ for the details and
reasoning of this change to LLVM.

FEAT_SME_B16B16 is documented under the latest Armv9.4 feature
documentation:

https://developer.arm.com/documentation/109697/0100/Feature-descriptions/The-Armv9-4-architecture-extensio

- 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.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list