Skip to content

Commit 25ea6fa

Browse files
committed
[X86] Replace InstRW instregex single matches with instrs entries
This reduces diffs between znver1/znver2 and should marginally speed up tlbgen build time (Issue #35303) Found by adding a temp check inside InstRegexOp::apply inside single matches
1 parent 51d5fd4 commit 25ea6fa

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

llvm/lib/Target/X86/X86ScheduleZnver2.td

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -520,7 +520,7 @@ def : SchedAlias<WriteSTMXCSR, Zn2WriteMicrocoded>;
520520
//-- Move instructions --//
521521
// MOV.
522522
// r16,m.
523-
def : InstRW<[WriteALULd, ReadAfterLd], (instregex "MOV16rm")>;
523+
def : InstRW<[WriteALULd, ReadAfterLd], (instrs MOV16rm)>;
524524

525525
// XCHG.
526526
// r,r.
@@ -545,7 +545,7 @@ def Zn2WritePop16r : SchedWriteRes<[Zn2AGU]>{
545545
let Latency = 5;
546546
let NumMicroOps = 2;
547547
}
548-
def : InstRW<[Zn2WritePop16r], (instregex "POP16rmm")>;
548+
def : InstRW<[Zn2WritePop16r], (instrs POP16rmm)>;
549549
def : InstRW<[WriteMicrocoded], (instregex "POPF(16|32)")>;
550550
def : InstRW<[WriteMicrocoded], (instregex "POPA(16|32)")>;
551551

@@ -785,16 +785,16 @@ def Zn2WriteSTr: SchedWriteRes<[Zn2FPU23]> {
785785

786786
// LD_F.
787787
// r.
788-
def : InstRW<[Zn2WriteFLDr], (instregex "LD_Frr")>;
788+
def : InstRW<[Zn2WriteFLDr], (instrs LD_Frr)>;
789789

790790
// m.
791791
def Zn2WriteLD_F80m : SchedWriteRes<[Zn2AGU, Zn2FPU13]> {
792792
let NumMicroOps = 2;
793793
}
794-
def : InstRW<[Zn2WriteLD_F80m], (instregex "LD_F80m")>;
794+
def : InstRW<[Zn2WriteLD_F80m], (instrs LD_F80m)>;
795795

796796
// FBLD.
797-
def : InstRW<[WriteMicrocoded], (instregex "FBLDm")>;
797+
def : InstRW<[WriteMicrocoded], (instrs FBLDm)>;
798798

799799
// FST(P).
800800
// r.
@@ -804,11 +804,11 @@ def : InstRW<[Zn2WriteSTr], (instregex "ST_(F|FP)rr")>;
804804
def Zn2WriteST_FP80m : SchedWriteRes<[Zn2AGU, Zn2FPU23]> {
805805
let Latency = 5;
806806
}
807-
def : InstRW<[Zn2WriteST_FP80m], (instregex "ST_FP80m")>;
807+
def : InstRW<[Zn2WriteST_FP80m], (instrs ST_FP80m)>;
808808

809809
// FBSTP.
810810
// m80.
811-
def : InstRW<[WriteMicrocoded], (instregex "FBSTPm")>;
811+
def : InstRW<[WriteMicrocoded], (instrs FBSTPm)>;
812812

813813
def Zn2WriteFXCH : SchedWriteRes<[Zn2FPU]>;
814814

@@ -865,10 +865,10 @@ def : InstRW<[Zn2WriteFPU3], (instrs FINCSTP, FDECSTP)>;
865865
def : InstRW<[Zn2WriteFPU3], (instregex "FFREE")>;
866866

867867
// FNSAVE.
868-
def : InstRW<[WriteMicrocoded], (instregex "FSAVEm")>;
868+
def : InstRW<[WriteMicrocoded], (instrs FSAVEm)>;
869869

870870
// FRSTOR.
871-
def : InstRW<[WriteMicrocoded], (instregex "FRSTORm")>;
871+
def : InstRW<[WriteMicrocoded], (instrs FRSTORm)>;
872872

873873
//-- Arithmetic instructions --//
874874

@@ -1324,46 +1324,46 @@ def : InstRW<[Zn2WriteSHA1MSG1Ld], (instregex "SHA(1|256)MSG1rm")>;
13241324
// SHA1MSG2
13251325
// x,x.
13261326
def Zn2WriteSHA1MSG2r : SchedWriteRes<[Zn2FPU12]> ;
1327-
def : InstRW<[Zn2WriteSHA1MSG2r], (instregex "SHA1MSG2rr")>;
1327+
def : InstRW<[Zn2WriteSHA1MSG2r], (instrs SHA1MSG2rr)>;
13281328
// x,m.
13291329
def Zn2WriteSHA1MSG2Ld : SchedWriteRes<[Zn2AGU, Zn2FPU12]> {
13301330
let Latency = 8;
13311331
}
1332-
def : InstRW<[Zn2WriteSHA1MSG2Ld], (instregex "SHA1MSG2rm")>;
1332+
def : InstRW<[Zn2WriteSHA1MSG2Ld], (instrs SHA1MSG2rm)>;
13331333

13341334
// SHA1NEXTE
13351335
// x,x.
13361336
def Zn2WriteSHA1NEXTEr : SchedWriteRes<[Zn2FPU1]> ;
1337-
def : InstRW<[Zn2WriteSHA1NEXTEr], (instregex "SHA1NEXTErr")>;
1337+
def : InstRW<[Zn2WriteSHA1NEXTEr], (instrs SHA1NEXTErr)>;
13381338
// x,m.
13391339
def Zn2WriteSHA1NEXTELd : SchedWriteRes<[Zn2AGU, Zn2FPU1]> {
13401340
let Latency = 8;
13411341
}
1342-
def : InstRW<[Zn2WriteSHA1NEXTELd], (instregex "SHA1NEXTErm")>;
1342+
def : InstRW<[Zn2WriteSHA1NEXTELd], (instrs SHA1NEXTErm)>;
13431343

13441344
// SHA1RNDS4
13451345
// x,x.
13461346
def Zn2WriteSHA1RNDS4r : SchedWriteRes<[Zn2FPU1]> {
13471347
let Latency = 6;
13481348
}
1349-
def : InstRW<[Zn2WriteSHA1RNDS4r], (instregex "SHA1RNDS4rr")>;
1349+
def : InstRW<[Zn2WriteSHA1RNDS4r], (instrs SHA1RNDS4rri)>;
13501350
// x,m.
13511351
def Zn2WriteSHA1RNDS4Ld : SchedWriteRes<[Zn2AGU, Zn2FPU1]> {
13521352
let Latency = 13;
13531353
}
1354-
def : InstRW<[Zn2WriteSHA1RNDS4Ld], (instregex "SHA1RNDS4rm")>;
1354+
def : InstRW<[Zn2WriteSHA1RNDS4Ld], (instrs SHA1RNDS4rmi)>;
13551355

13561356
// SHA256RNDS2
13571357
// x,x.
13581358
def Zn2WriteSHA256RNDS2r : SchedWriteRes<[Zn2FPU1]> {
13591359
let Latency = 4;
13601360
}
1361-
def : InstRW<[Zn2WriteSHA256RNDS2r], (instregex "SHA256RNDS2rr")>;
1361+
def : InstRW<[Zn2WriteSHA256RNDS2r], (instrs SHA256RNDS2rr)>;
13621362
// x,m.
13631363
def Zn2WriteSHA256RNDS2Ld : SchedWriteRes<[Zn2AGU, Zn2FPU1]> {
13641364
let Latency = 11;
13651365
}
1366-
def : InstRW<[Zn2WriteSHA256RNDS2Ld], (instregex "SHA256RNDS2rm")>;
1366+
def : InstRW<[Zn2WriteSHA256RNDS2Ld], (instrs SHA256RNDS2rm)>;
13671367

13681368
//-- Arithmetic instructions --//
13691369

0 commit comments

Comments
 (0)