Skip to content

Commit 8dcbc4c

Browse files
authored
Revert "[AArch64][SME] Add intrinsics for vector groups ZERO" (#93195)
Reverts #88114
1 parent 2401b61 commit 8dcbc4c

File tree

5 files changed

+9
-391
lines changed

5 files changed

+9
-391
lines changed

clang/include/clang/Basic/arm_sme.td

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -146,25 +146,6 @@ let TargetGuard = "sme" in {
146146
[IsOverloadNone, IsStreamingCompatible, IsOutZA]>;
147147
}
148148

149-
let TargetGuard = "sme2p1" in {
150-
def SVZERO_ZA64_VG1x2 : SInst<"svzero_za64_vg1x2", "vm", "", MergeNone, "aarch64_sme_zero_za64_vg1x2",
151-
[IsOverloadNone, IsStreaming, IsInOutZA]>;
152-
def SVZERO_ZA64_VG1x4 : SInst<"svzero_za64_vg1x4", "vm", "", MergeNone, "aarch64_sme_zero_za64_vg1x4",
153-
[IsOverloadNone, IsStreaming, IsInOutZA]>;
154-
def SVZERO_ZA64_VG2x1 : SInst<"svzero_za64_vg2x1", "vm", "", MergeNone, "aarch64_sme_zero_za64_vg2x1",
155-
[IsOverloadNone, IsStreaming, IsInOutZA]>;
156-
def SVZERO_ZA64_VG2x2 : SInst<"svzero_za64_vg2x2", "vm", "", MergeNone, "aarch64_sme_zero_za64_vg2x2",
157-
[IsOverloadNone, IsStreaming, IsInOutZA]>;
158-
def SVZERO_ZA64_VG2x4 : SInst<"svzero_za64_vg2x4", "vm", "", MergeNone, "aarch64_sme_zero_za64_vg2x4",
159-
[IsOverloadNone, IsStreaming, IsInOutZA]>;
160-
def SVZERO_ZA64_VG4x1 : SInst<"svzero_za64_vg4x1", "vm", "", MergeNone, "aarch64_sme_zero_za64_vg4x1",
161-
[IsOverloadNone, IsStreaming, IsInOutZA]>;
162-
def SVZERO_ZA64_VG4x2 : SInst<"svzero_za64_vg4x2", "vm", "", MergeNone, "aarch64_sme_zero_za64_vg4x2",
163-
[IsOverloadNone, IsStreaming, IsInOutZA]>;
164-
def SVZERO_ZA64_VG4x4 : SInst<"svzero_za64_vg4x4", "vm", "", MergeNone, "aarch64_sme_zero_za64_vg4x4",
165-
[IsOverloadNone, IsStreaming, IsInOutZA]>;
166-
}
167-
168149
////////////////////////////////////////////////////////////////////////////////
169150
// SME - Counting elements in a streaming vector
170151

clang/test/CodeGen/aarch64-sme2p1-intrinsics/acle_sme2p1_zero.c

Lines changed: 0 additions & 139 deletions
This file was deleted.

llvm/include/llvm/IR/IntrinsicsAArch64.td

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3361,12 +3361,6 @@ let TargetPrefix = "aarch64" in {
33613361
def int_aarch64_sve_bfmlslt : SME2_BFMLS_Intrinsic;
33623362
def int_aarch64_sve_bfmlslt_lane : SME2_BFMLS_Lane_Intrinsic;
33633363

3364-
// Multi-vector zeroing
3365-
3366-
foreach vg = ["vg1x2", "vg1x4", "vg2x1", "vg2x2", "vg2x4", "vg4x1", "vg4x2", "vg4x4"] in {
3367-
def int_aarch64_sme_zero_za64_ # vg : DefaultAttrsIntrinsic<[], [llvm_i32_ty], [IntrNoMem, IntrHasSideEffects]>;
3368-
}
3369-
33703364
// Multi-vector signed saturating doubling multiply high
33713365

33723366
def int_aarch64_sve_sqdmulh_single_vgx2 : SME2_VG2_Multi_Single_Intrinsic;

llvm/lib/Target/AArch64/SMEInstrFormats.td

Lines changed: 9 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,6 @@ class sme2_move_to_tile_pseudo<string name, Operand tile_imm, Operand imm_ty, Re
104104
let usesCustomInserter = 1;
105105
}
106106

107-
class sem2p1_zero_matrix_pseudo<string name, Operand index_ty, SMEMatrixTypeEnum za_flag>
108-
: SMEPseudo2Instr<name, 0>,
109-
Pseudo<(outs), (ins MatrixIndexGPR32Op8_11:$Rs, index_ty:$imm), []> {
110-
let SMEMatrixType = za_flag;
111-
let usesCustomInserter = 1;
112-
}
113-
114107
//===----------------------------------------------------------------------===//
115108
// SME pattern match helpers.
116109
//===----------------------------------------------------------------------===//
@@ -196,9 +189,6 @@ class SME2_Tile_VG4_Multi_Pat<string name, SDPatternOperator intrinsic, Operand
196189
: Pat<(intrinsic tile_imm:$tile, (i32 (tileslice MatrixIndexGPR32Op12_15:$base, index_ty:$offset)), vt:$Zn1, vt:$Zn2, vt:$Zn3, vt:$Zn4),
197190
(!cast<Instruction>(name # _PSEUDO) $tile, $base, $offset, (REG_SEQUENCE ZPR4Mul4, vt:$Zn1, zsub0, vt:$Zn2, zsub1, vt:$Zn3, zsub2, vt:$Zn4, zsub3))>;
198191

199-
class SME2_Zero_Matrix_Pat<string name, SDPatternOperator intrinsic, Operand offset_ty, ComplexPattern tileslice>
200-
: Pat<(intrinsic (i32 (tileslice MatrixIndexGPR32Op8_11:$base, offset_ty:$offset))),
201-
(!cast<Instruction>(name) $base, $offset)>;
202192
//===----------------------------------------------------------------------===//
203193
// SME pattern match helpers.
204194
//===----------------------------------------------------------------------===//
@@ -4825,57 +4815,39 @@ class sme2p1_zero_matrix<bits<6> opc, Operand index_ty, string mnemonic,
48254815
}
48264816

48274817
multiclass sme2p1_zero_matrix<string mnemonic> {
4828-
def _VG2_Z : sme2p1_zero_matrix<{0b000,?,?,?}, sme_elm_idx0_7, mnemonic, "vgx2">, SMEPseudo2Instr<NAME # _VG2_Z , 1> {
4818+
def _VG2_Z : sme2p1_zero_matrix<{0b000,?,?,?}, sme_elm_idx0_7, mnemonic, "vgx2"> {
48294819
bits<3> imm;
48304820
let Inst{2-0} = imm;
48314821
}
4832-
def _2Z : sme2p1_zero_matrix<{0b001,?,?,?}, uimm3s2range, mnemonic>, SMEPseudo2Instr<NAME # _2Z, 1> {
4822+
def _2Z : sme2p1_zero_matrix<{0b001,?,?,?}, uimm3s2range, mnemonic> {
48334823
bits<3> imm;
48344824
let Inst{2-0} = imm;
48354825
}
4836-
def _VG2_2Z : sme2p1_zero_matrix<{0b0100,?,?}, uimm2s2range, mnemonic, "vgx2">, SMEPseudo2Instr<NAME # _VG2_2Z, 1> {
4826+
def _VG2_2Z : sme2p1_zero_matrix<{0b0100,?,?}, uimm2s2range, mnemonic, "vgx2"> {
48374827
bits<2> imm;
48384828
let Inst{1-0} = imm;
48394829
}
4840-
def _VG4_2Z : sme2p1_zero_matrix<{0b0110,?,?}, uimm2s2range, mnemonic, "vgx4">, SMEPseudo2Instr<NAME # _VG4_2Z, 1> {
4830+
def _VG4_2Z : sme2p1_zero_matrix<{0b0110,?,?}, uimm2s2range, mnemonic, "vgx4"> {
48414831
bits<2> imm;
48424832
let Inst{1-0} = imm;
48434833
}
4844-
def _VG4_Z : sme2p1_zero_matrix<{0b100,?,?,?}, sme_elm_idx0_7, mnemonic, "vgx4">, SMEPseudo2Instr<NAME # _VG4_Z, 1> {
4834+
def _VG4_Z : sme2p1_zero_matrix<{0b100,?,?,?}, sme_elm_idx0_7, mnemonic, "vgx4"> {
48454835
bits<3> imm;
48464836
let Inst{2-0} = imm;
48474837
}
4848-
def _4Z : sme2p1_zero_matrix<{0b1010,?,?}, uimm2s4range, mnemonic>, SMEPseudo2Instr<NAME # _4Z, 1> {
4838+
def _4Z : sme2p1_zero_matrix<{0b1010,?,?}, uimm2s4range, mnemonic> {
48494839
bits<2> imm;
48504840
let Inst{1-0} = imm;
48514841
}
4852-
def _VG2_4Z : sme2p1_zero_matrix<{0b11000,?}, uimm1s4range, mnemonic, "vgx2">, SMEPseudo2Instr<NAME # _VG2_4Z, 1> {
4842+
def _VG2_4Z :sme2p1_zero_matrix<{0b11000,?}, uimm1s4range, mnemonic, "vgx2"> {
48534843
bits<1> imm;
48544844
let Inst{0} = imm;
48554845
}
4856-
def _VG4_4Z : sme2p1_zero_matrix<{0b11100,?}, uimm1s4range, mnemonic, "vgx4">, SMEPseudo2Instr<NAME # _VG4_4Z, 1> {
4846+
def _VG4_4Z :sme2p1_zero_matrix<{0b11100,?}, uimm1s4range, mnemonic, "vgx4"> {
48574847
bits<1> imm;
48584848
let Inst{0} = imm;
48594849
}
4860-
4861-
def NAME # _VG2_Z_PSEUDO : sem2p1_zero_matrix_pseudo<NAME # _VG2_Z, sme_elm_idx0_7, SMEMatrixArray>;
4862-
def NAME # _VG4_Z_PSEUDO : sem2p1_zero_matrix_pseudo<NAME # _VG4_Z, sme_elm_idx0_7, SMEMatrixArray>;
4863-
def NAME # _2Z_PSEUDO : sem2p1_zero_matrix_pseudo<NAME # _2Z, uimm2s2range, SMEMatrixArray>;
4864-
def NAME # _VG2_2Z_PSEUDO : sem2p1_zero_matrix_pseudo<NAME # _VG2_2Z, uimm1s2range, SMEMatrixArray>;
4865-
def NAME # _VG4_2Z_PSEUDO : sem2p1_zero_matrix_pseudo<NAME # _VG4_2Z, uimm1s2range, SMEMatrixArray>;
4866-
def NAME # _4Z_PSEUDO : sem2p1_zero_matrix_pseudo<NAME # _4Z, uimm1s4range, SMEMatrixArray>;
4867-
def NAME # _VG2_4Z_PSEUDO : sem2p1_zero_matrix_pseudo<NAME # _VG2_4Z, uimm0s4range, SMEMatrixArray>;
4868-
def NAME # _VG4_4Z_PSEUDO : sem2p1_zero_matrix_pseudo<NAME # _VG4_4Z, uimm0s4range, SMEMatrixArray>;
4869-
4870-
def : SME2_Zero_Matrix_Pat<NAME # _VG2_Z_PSEUDO, int_aarch64_sme_zero_za64_vg1x2, sme_elm_idx0_7, tileslice16>;
4871-
def : SME2_Zero_Matrix_Pat<NAME # _VG4_Z_PSEUDO, int_aarch64_sme_zero_za64_vg1x4, sme_elm_idx0_7, tileslice16>;
4872-
def : SME2_Zero_Matrix_Pat<NAME # _2Z_PSEUDO, int_aarch64_sme_zero_za64_vg2x1, uimm2s2range, tileslicerange2s2>;
4873-
def : SME2_Zero_Matrix_Pat<NAME # _VG2_2Z_PSEUDO, int_aarch64_sme_zero_za64_vg2x2, uimm1s2range, tileslicerange1s2>;
4874-
def : SME2_Zero_Matrix_Pat<NAME # _VG4_2Z_PSEUDO, int_aarch64_sme_zero_za64_vg2x4, uimm1s2range, tileslicerange1s2>;
4875-
def : SME2_Zero_Matrix_Pat<NAME # _4Z_PSEUDO, int_aarch64_sme_zero_za64_vg4x1, uimm1s4range, tileslicerange1s4>;
4876-
def : SME2_Zero_Matrix_Pat<NAME # _VG2_4Z_PSEUDO, int_aarch64_sme_zero_za64_vg4x2, uimm0s4range, tileslicerange0s4>;
4877-
def : SME2_Zero_Matrix_Pat<NAME # _VG4_4Z_PSEUDO, int_aarch64_sme_zero_za64_vg4x4, uimm0s4range, tileslicerange0s4>;
4878-
}
4850+
}
48794851

48804852
//===----------------------------------------------------------------------===//
48814853
// SME2.1 lookup table expand two non-contiguous registers

0 commit comments

Comments
 (0)