[PATCH] D141946: [AArch64][SME2] Add multi-vector fused multiply-add/subtract intrinsics
Caroline via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 18 06:09:12 PST 2023
CarolineConcatto added a comment.
Hi Kerry,
I had a look and it looks all ok.
I just have a couple of questions if you don't mind.
Carol
================
Comment at: llvm/lib/Target/AArch64/SMEInstrFormats.td:2217
def NAME : sme2_multi_vec_array_vg2_index<0b1, {op{3},?,?,op{2-0}}, MatrixOp32, multi_vector_ty, vector_ty,
- VectorIndexS, mnemonic> {
+ VectorIndexS, mnemonic>, SMEPseudo2Instr<NAME, 1> {
bits<2> i;
----------------
Should we replace that as well:
s/VectorIndexS/VectorIndexS32b/
================
Comment at: llvm/lib/Target/AArch64/SMEInstrFormats.td:2228
(!cast<Instruction>(NAME) MatrixOp32:$ZAda, MatrixIndexGPR32Op8_11:$Rv, sme_elm_idx0_7:$imm3,
multi_vector_ty:$Zn, vector_ty:$Zm, VectorIndexS:$i), 0>;
}
----------------
And here too:
s/VectorIndexS/VectorIndexS32b/
I am not sure, if this should be replaces, but if so. We should have a look in the other classes here.
================
Comment at: llvm/test/CodeGen/AArch64/sme2-intrinsics-fmlas.ll:44
+
+; Test to ensure the correct register class is used (first register in the list should be a multiple of 2)
+define void @multi_vector_add_single_vg1x2_s_regclass(i32 %slice, <vscale x 4 x float> %zn0, <vscale x 4 x float> %zn1, <vscale x 4 x float> %zm) {
----------------
Which instructions should have the first register multiple of two?
Is the fmla? If so the first register in the list is z3.s, no? If so, is this comment correct?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141946/new/
https://reviews.llvm.org/D141946
More information about the llvm-commits
mailing list