[PATCH] D127414: [AArch64][SME] Add SME read/write intrinsics that map to the mova instruction
Cullen Rhodes via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 14 03:20:44 PDT 2022
c-rhodes added inline comments.
================
Comment at: llvm/lib/Target/AArch64/SMEInstrFormats.td:704-705
+ nxv16i8, nxv16i1, sme_elm_idx0_0, imm0_15,
+ !if(is_col, int_aarch64_sme_write_vert,
+ int_aarch64_sme_write_horiz),
+ tileslice8>;
----------------
this is repeated a bunch how about doing:
``` defvar op = !if(is_col, int_aarch64_sme_write_vert,
int_aarch64_sme_write_horiz);```
above and replacing uses with op to clean it up a bit?
================
Comment at: llvm/lib/Target/AArch64/SMEInstrFormats.td:743-747
+ nxv16i8, nxv16i1, sme_elm_idx0_15,
+ sme_elm_idx0_0,
+ !if(is_col, int_aarch64_sme_writeq_vert,
+ int_aarch64_sme_writeq_horiz),
+ tileslice128>;
----------------
nit: alignment, but it looks like this q_patterns class can be removed as Amara noticed.
================
Comment at: llvm/lib/Target/AArch64/SMEInstrFormats.td:778-789
+ defm : sme_vector_to_tile_q_patterns<!cast<Instruction>(NAME # _PSEUDO_Q),
+ nxv2i64, nxv2i1, sme_elm_idx0_15,
+ sme_elm_idx0_0,
+ !if(is_col, int_aarch64_sme_writeq_vert,
+ int_aarch64_sme_writeq_horiz),
+ tileslice128>;
+ defm : sme_vector_to_tile_q_patterns<!cast<Instruction>(NAME # _PSEUDO_Q),
----------------
these two are the same?
================
Comment at: llvm/lib/Target/AArch64/SMEInstrFormats.td:993-1002
+ defm : sme_tile_to_vector_q_patterns<!cast<Instruction>(NAME # _Q),
+ nxv2f64, nxv2i1, sme_elm_idx0_0,
+ imm_to_tile128, tileslice128,
+ !if(is_col, int_aarch64_sme_readq_vert,
+ int_aarch64_sme_readq_horiz)>;
+ defm : sme_tile_to_vector_q_patterns<!cast<Instruction>(NAME # _Q),
+ nxv2f64, nxv2i1, sme_elm_idx0_0,
----------------
also the same
================
Comment at: llvm/test/CodeGen/AArch64/SME/sme-intrinsics-mova-extract.ll:298
+
+define <vscale x 16 x i8> @extract_row_q_16i18(<vscale x 16 x i8> %zd, <vscale x 16 x i1> %pg) {
+; CHECK-LABEL: extract_row_q_16i18:
----------------
16i8
the insert tests also prefix this with 'v'
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D127414/new/
https://reviews.llvm.org/D127414
More information about the llvm-commits
mailing list