JRCXZ was already present, but not the others.
We never codegen this instruction so this doesn't affect much just trying to get them all into a single generated scheduler class in the output.
llvm-svn: 327881
def: InstRW<[BWWriteResGroup20], (instregex "ADC8ri")>;
def: InstRW<[BWWriteResGroup20], (instregex "CMOV(A|BE)(16|32|64)rr")>;
def: InstRW<[BWWriteResGroup20], (instrs CWD)>;
-def: InstRW<[BWWriteResGroup20], (instregex "JRCXZ")>;
+def: InstRW<[BWWriteResGroup20], (instrs JCXZ, JECXZ, JRCXZ)>;
def: InstRW<[BWWriteResGroup20], (instregex "SBB8i8")>;
def: InstRW<[BWWriteResGroup20], (instregex "SBB8ri")>;
def: InstRW<[BWWriteResGroup20], (instregex "SET(A|BE)r")>;
def: InstRW<[HWWriteResGroup35], (instregex "ADC(8|16|32|64)i")>;
def: InstRW<[HWWriteResGroup35], (instregex "CMOV(AE|B|E|G|GE|L|LE|NE|NO|NP|NS|O|P|S)(16|32|64)rr")>;
def: InstRW<[HWWriteResGroup35], (instrs CWD)>;
-def: InstRW<[HWWriteResGroup35], (instregex "JRCXZ")>;
+def: InstRW<[HWWriteResGroup35], (instrs JCXZ, JECXZ, JRCXZ)>;
def: InstRW<[HWWriteResGroup35], (instregex "SBB(8|16|32|64)ri")>;
def: InstRW<[HWWriteResGroup35], (instregex "SBB(8|16|32|64)rr")>;
def: InstRW<[HWWriteResGroup35], (instregex "SBB(8|16|32|64)i")>;
let NumMicroOps = 2;
let ResourceCycles = [1,1];
}
-def: InstRW<[SBWriteResGroup18], (instregex "JRCXZ")>;
+def: InstRW<[SBWriteResGroup18], (instrs JCXZ, JECXZ, JRCXZ)>;
def: InstRW<[SBWriteResGroup18], (instregex "MMX_MOVDQ2Qrr")>;
def SBWriteResGroup19 : SchedWriteRes<[SBPort05,SBPort015]> {
def: InstRW<[SKLWriteResGroup23], (instregex "ADC8i8")>;
def: InstRW<[SKLWriteResGroup23], (instregex "ADC8ri")>;
def: InstRW<[SKLWriteResGroup23], (instrs CWD)>;
-def: InstRW<[SKLWriteResGroup23], (instregex "JRCXZ")>;
+def: InstRW<[SKLWriteResGroup23], (instrs JCXZ, JECXZ, JRCXZ)>;
def: InstRW<[SKLWriteResGroup23], (instregex "SBB8i8")>;
def: InstRW<[SKLWriteResGroup23], (instregex "SBB8ri")>;
def: InstRW<[SKXWriteResGroup23], (instregex "ADC8i8")>;
def: InstRW<[SKXWriteResGroup23], (instregex "ADC8ri")>;
def: InstRW<[SKXWriteResGroup23], (instrs CWD)>;
-def: InstRW<[SKXWriteResGroup23], (instregex "JRCXZ")>;
+def: InstRW<[SKXWriteResGroup23], (instrs JCXZ, JECXZ, JRCXZ)>;
def: InstRW<[SKXWriteResGroup23], (instregex "SBB8i8")>;
def: InstRW<[SKXWriteResGroup23], (instregex "SBB8ri")>;
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
; SANDY-NEXT: JXTGT:
-; SANDY-NEXT: jcxz JXTGT # sched: [1:1.00]
-; SANDY-NEXT: jecxz JXTGT # sched: [1:1.00]
+; SANDY-NEXT: jcxz JXTGT # sched: [2:1.00]
+; SANDY-NEXT: jecxz JXTGT # sched: [2:1.00]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retl # sched: [5:1.00]
;
; HASWELL: # %bb.0:
; HASWELL-NEXT: #APP
; HASWELL-NEXT: JXTGT:
-; HASWELL-NEXT: jcxz JXTGT # sched: [1:0.50]
-; HASWELL-NEXT: jecxz JXTGT # sched: [1:0.50]
+; HASWELL-NEXT: jcxz JXTGT # sched: [2:0.50]
+; HASWELL-NEXT: jecxz JXTGT # sched: [2:0.50]
; HASWELL-NEXT: #NO_APP
; HASWELL-NEXT: retl # sched: [7:1.00]
;
; BROADWELL: # %bb.0:
; BROADWELL-NEXT: #APP
; BROADWELL-NEXT: JXTGT:
-; BROADWELL-NEXT: jcxz JXTGT # sched: [1:0.50]
-; BROADWELL-NEXT: jecxz JXTGT # sched: [1:0.50]
+; BROADWELL-NEXT: jcxz JXTGT # sched: [2:0.50]
+; BROADWELL-NEXT: jecxz JXTGT # sched: [2:0.50]
; BROADWELL-NEXT: #NO_APP
; BROADWELL-NEXT: retl # sched: [6:0.50]
;
; SKYLAKE: # %bb.0:
; SKYLAKE-NEXT: #APP
; SKYLAKE-NEXT: JXTGT:
-; SKYLAKE-NEXT: jcxz JXTGT # sched: [1:0.50]
-; SKYLAKE-NEXT: jecxz JXTGT # sched: [1:0.50]
+; SKYLAKE-NEXT: jcxz JXTGT # sched: [2:0.50]
+; SKYLAKE-NEXT: jecxz JXTGT # sched: [2:0.50]
; SKYLAKE-NEXT: #NO_APP
; SKYLAKE-NEXT: retl # sched: [6:0.50]
;
; SKX: # %bb.0:
; SKX-NEXT: #APP
; SKX-NEXT: JXTGT:
-; SKX-NEXT: jcxz JXTGT # sched: [1:0.50]
-; SKX-NEXT: jecxz JXTGT # sched: [1:0.50]
+; SKX-NEXT: jcxz JXTGT # sched: [2:0.50]
+; SKX-NEXT: jecxz JXTGT # sched: [2:0.50]
; SKX-NEXT: #NO_APP
; SKX-NEXT: retl # sched: [6:0.50]
;
; GENERIC: # %bb.0:
; GENERIC-NEXT: #APP
; GENERIC-NEXT: JXTGT:
-; GENERIC-NEXT: jecxz JXTGT # sched: [1:1.00]
+; GENERIC-NEXT: jecxz JXTGT # sched: [2:1.00]
; GENERIC-NEXT: jrcxz JXTGT # sched: [2:1.00]
; GENERIC-NEXT: #NO_APP
; GENERIC-NEXT: retq # sched: [1:1.00]
; SANDY: # %bb.0:
; SANDY-NEXT: #APP
; SANDY-NEXT: JXTGT:
-; SANDY-NEXT: jecxz JXTGT # sched: [1:1.00]
+; SANDY-NEXT: jecxz JXTGT # sched: [2:1.00]
; SANDY-NEXT: jrcxz JXTGT # sched: [2:1.00]
; SANDY-NEXT: #NO_APP
; SANDY-NEXT: retq # sched: [1:1.00]
; HASWELL: # %bb.0:
; HASWELL-NEXT: #APP
; HASWELL-NEXT: JXTGT:
-; HASWELL-NEXT: jecxz JXTGT # sched: [1:0.50]
+; HASWELL-NEXT: jecxz JXTGT # sched: [2:0.50]
; HASWELL-NEXT: jrcxz JXTGT # sched: [2:0.50]
; HASWELL-NEXT: #NO_APP
; HASWELL-NEXT: retq # sched: [7:1.00]
; BROADWELL: # %bb.0:
; BROADWELL-NEXT: #APP
; BROADWELL-NEXT: JXTGT:
-; BROADWELL-NEXT: jecxz JXTGT # sched: [1:0.50]
+; BROADWELL-NEXT: jecxz JXTGT # sched: [2:0.50]
; BROADWELL-NEXT: jrcxz JXTGT # sched: [2:0.50]
; BROADWELL-NEXT: #NO_APP
; BROADWELL-NEXT: retq # sched: [7:1.00]
; SKYLAKE: # %bb.0:
; SKYLAKE-NEXT: #APP
; SKYLAKE-NEXT: JXTGT:
-; SKYLAKE-NEXT: jecxz JXTGT # sched: [1:0.50]
+; SKYLAKE-NEXT: jecxz JXTGT # sched: [2:0.50]
; SKYLAKE-NEXT: jrcxz JXTGT # sched: [2:0.50]
; SKYLAKE-NEXT: #NO_APP
; SKYLAKE-NEXT: retq # sched: [7:1.00]
; SKX: # %bb.0:
; SKX-NEXT: #APP
; SKX-NEXT: JXTGT:
-; SKX-NEXT: jecxz JXTGT # sched: [1:0.50]
+; SKX-NEXT: jecxz JXTGT # sched: [2:0.50]
; SKX-NEXT: jrcxz JXTGT # sched: [2:0.50]
; SKX-NEXT: #NO_APP
; SKX-NEXT: retq # sched: [7:1.00]