Skip to content

Commit 6134823

Browse files
committed
Remove redundant revd class and revw multiclass
1 parent 1042444 commit 6134823

File tree

3 files changed

+16
-37
lines changed

3 files changed

+16
-37
lines changed

llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4312,8 +4312,8 @@ let Predicates = [HasSVE2p2orSME2p2] in {
43124312
defm RBIT_ZPzZ : sve_int_perm_rev_rbit_z<"rbit">;
43134313
defm REVB_ZPzZ : sve_int_perm_rev_revb_z<"revb">;
43144314
defm REVH_ZPzZ : sve_int_perm_rev_revh_z<"revh">;
4315-
defm REVW_ZPzZ : sve_int_perm_rev_revw_z<"revw">;
4316-
def REVD_ZPzZ : sve2_int_perm_revd_z<"revd">;
4315+
def REVW_ZPzZ : sve_int_perm_rev_z<0b11, 0b0110, "revw", ZPR64>;
4316+
def REVD_ZPzZ : sve_int_perm_rev_z<0b00, 0b1110, "revd", ZPR128>;
43174317
} // End HasSME2p2orSVE2p2
43184318

43194319
//===----------------------------------------------------------------------===//

llvm/lib/Target/AArch64/SMEInstrFormats.td

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,23 +1309,6 @@ multiclass sve2_int_perm_revd<string asm, SDPatternOperator op> {
13091309

13101310
}
13111311

1312-
class sve2_int_perm_revd_z<string asm>
1313-
: I<(outs ZPR128:$Zd), (ins PPR3bAny:$Pg, ZPR128:$Zn),
1314-
asm, "\t$Zd, $Pg/z, $Zn", "", []>,
1315-
Sched<[]> {
1316-
bits<5> Zd;
1317-
bits<3> Pg;
1318-
bits<5> Zn;
1319-
let Inst{31-24} = 0b00000101;
1320-
let Inst{23-22} = 0b00; // size
1321-
let Inst{21-13} = 0b101110101;
1322-
let Inst{12-10} = Pg;
1323-
let Inst{9-5} = Zn;
1324-
let Inst{4-0} = Zd;
1325-
1326-
let hasSideEffects = 0;
1327-
}
1328-
13291312
class sve2_clamp<string asm, bits<2> sz, bit U, ZPRRegOp zpr_ty>
13301313
: I<(outs zpr_ty:$Zd), (ins zpr_ty:$_Zd, zpr_ty:$Zn, zpr_ty:$Zm),
13311314
asm, "\t$Zd, $Zn, $Zm", "", []>,

llvm/lib/Target/AArch64/SVEInstrFormats.td

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7429,8 +7429,8 @@ multiclass sve_int_perm_rev_revw<string asm, SDPatternOperator op> {
74297429
def : SVE_1_Op_Passthru_Pat<nxv2i64, op, nxv2i1, nxv2i64, !cast<Instruction>(NAME # _D)>;
74307430
}
74317431

7432-
class sve_int_perm_rev_z<bits<2> sz8_64, bits<2> opc, string asm,
7433-
ZPRRegOp zprty>
7432+
class sve_int_perm_rev_z<bits<2> sz, bits<4> opc, string asm,
7433+
ZPRRegOp zprty>
74347434
: I<(outs zprty:$Zd), (ins PPR3bAny:$Pg, zprty:$Zn),
74357435
asm, "\t$Zd, $Pg/z, $Zn",
74367436
"",
@@ -7439,9 +7439,9 @@ class sve_int_perm_rev_z<bits<2> sz8_64, bits<2> opc, string asm,
74397439
bits<3> Pg;
74407440
bits<5> Zn;
74417441
let Inst{31-24} = 0b00000101;
7442-
let Inst{23-22} = sz8_64;
7443-
let Inst{21-18} = 0b1001;
7444-
let Inst{17-16} = opc;
7442+
let Inst{23-22} = sz;
7443+
let Inst{21-20} = 0b10;
7444+
let Inst{19-16} = opc;
74457445
let Inst{15-13} = 0b101;
74467446
let Inst{12-10} = Pg;
74477447
let Inst{9-5} = Zn;
@@ -7451,25 +7451,21 @@ class sve_int_perm_rev_z<bits<2> sz8_64, bits<2> opc, string asm,
74517451
}
74527452

74537453
multiclass sve_int_perm_rev_rbit_z<string asm> {
7454-
def _B : sve_int_perm_rev_z<0b00, 0b11, asm, ZPR8>;
7455-
def _H : sve_int_perm_rev_z<0b01, 0b11, asm, ZPR16>;
7456-
def _S : sve_int_perm_rev_z<0b10, 0b11, asm, ZPR32>;
7457-
def _D : sve_int_perm_rev_z<0b11, 0b11, asm, ZPR64>;
7454+
def _B : sve_int_perm_rev_z<0b00, 0b0111, asm, ZPR8>;
7455+
def _H : sve_int_perm_rev_z<0b01, 0b0111, asm, ZPR16>;
7456+
def _S : sve_int_perm_rev_z<0b10, 0b0111, asm, ZPR32>;
7457+
def _D : sve_int_perm_rev_z<0b11, 0b0111, asm, ZPR64>;
74587458
}
74597459

74607460
multiclass sve_int_perm_rev_revb_z<string asm> {
7461-
def _H : sve_int_perm_rev_z<0b01, 0b00, asm, ZPR16>;
7462-
def _S : sve_int_perm_rev_z<0b10, 0b00, asm, ZPR32>;
7463-
def _D : sve_int_perm_rev_z<0b11, 0b00, asm, ZPR64>;
7461+
def _H : sve_int_perm_rev_z<0b01, 0b0100, asm, ZPR16>;
7462+
def _S : sve_int_perm_rev_z<0b10, 0b0100, asm, ZPR32>;
7463+
def _D : sve_int_perm_rev_z<0b11, 0b0100, asm, ZPR64>;
74647464
}
74657465

74667466
multiclass sve_int_perm_rev_revh_z<string asm> {
7467-
def _S : sve_int_perm_rev_z<0b10, 0b01, asm, ZPR32>;
7468-
def _D : sve_int_perm_rev_z<0b11, 0b01, asm, ZPR64>;
7469-
}
7470-
7471-
multiclass sve_int_perm_rev_revw_z<string asm> {
7472-
def _D : sve_int_perm_rev_z<0b11, 0b10, asm, ZPR64>;
7467+
def _S : sve_int_perm_rev_z<0b10, 0b0101, asm, ZPR32>;
7468+
def _D : sve_int_perm_rev_z<0b11, 0b0101, asm, ZPR64>;
74737469
}
74747470

74757471
class sve_int_perm_cpy_r<bits<2> sz8_64, string asm, ZPRRegOp zprty,

0 commit comments

Comments
 (0)