[PATCH] D106272: [AArch64][SME] Introduce feature for streaming mode

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 27 07:53:19 PDT 2021


sdesmalen added a comment.

Some things that are missing from this patch, but which can probably be followed up in separate patches:

- A small subset of the AdvSimd instructions can be used under Streaming SVE, so we'll need something like hasNeonOrStreamingSVE as well.
- We'll need to change calls to `Subtarget->hasSVE()` in e.g. AArch64ISelLowering.cpp or AArch64TargetTransformInfo.cpp to use `Subtarget->hasSVEOrStreamingSVE()` where appropriate.



================
Comment at: llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td:1584-1587
+  defm BFMMLA_B_ZZZ : sve_bfloat_matmul_longvecl<0b0, "bfmlalb", int_aarch64_sve_bfmlalb>;
+  defm BFMMLA_T_ZZZ : sve_bfloat_matmul_longvecl<0b1, "bfmlalt", int_aarch64_sve_bfmlalt>;
+  defm BFMMLA_B_ZZI : sve_bfloat_matmul_longvecl_idx<0b0, "bfmlalb", int_aarch64_sve_bfmlalb_lane>;
+  defm BFMMLA_T_ZZI : sve_bfloat_matmul_longvecl_idx<0b1, "bfmlalt", int_aarch64_sve_bfmlalt_lane>;
----------------
the BFMMLA instructions are illegal under streaming SVE mode.


================
Comment at: llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td:2180
   // 2-element contiguous non-faulting loads
   defm : ldnf1<LDNF1B_D_IMM,  nxv2i64,  AArch64ldnf1_z,  nxv2i1, nxv2i8>;
   defm : ldnf1<LDNF1SB_D_IMM, nxv2i64,  AArch64ldnf1s_z, nxv2i1, nxv2i8>;
----------------
Patterns must be similarly guarded by HasSVE. They're not valid under HasStreamingSVE because the instructions they target otherwise don't exist.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106272/new/

https://reviews.llvm.org/D106272



More information about the llvm-commits mailing list