forked from OSchip/llvm-project
[X86] Add TEST16mi/TEST32mi/TEST64mi32 to the Sandybridge/Haswell/Broadwell/Skylake scheduler models.
Move it from a load+store group on SNB to a load only group, the same group as CMP. llvm-svn: 327944
This commit is contained in:
parent
7c90e29cf8
commit
3e9462607e
|
@ -2091,7 +2091,7 @@ def: InstRW<[BWWriteResGroup66], (instrs POP16r, POP32r, POP64r)>;
|
|||
def: InstRW<[BWWriteResGroup66], (instregex "POP(16|32|64)rmr")>;
|
||||
def: InstRW<[BWWriteResGroup66], (instregex "SUB(8|16|32|64)rm")>;
|
||||
def: InstRW<[BWWriteResGroup66], (instregex "TEST(8|16|32|64)mr")>;
|
||||
def: InstRW<[BWWriteResGroup66], (instregex "TEST8mi")>;
|
||||
def: InstRW<[BWWriteResGroup66], (instregex "TEST(8|16|32|64)mi")>;
|
||||
def: InstRW<[BWWriteResGroup66], (instregex "XOR(8|16|32|64)rm")>;
|
||||
|
||||
def BWWriteResGroup67 : SchedWriteRes<[BWPort1,BWPort06,BWPort0156]> {
|
||||
|
|
|
@ -1806,7 +1806,7 @@ def: InstRW<[HWWriteResGroup18], (instrs POP16r, POP32r, POP64r)>;
|
|||
def: InstRW<[HWWriteResGroup18], (instregex "POP(16|32|64)rmr")>;
|
||||
def: InstRW<[HWWriteResGroup18], (instregex "SUB(8|16|32|64)rm")>;
|
||||
def: InstRW<[HWWriteResGroup18], (instregex "TEST(8|16|32|64)mr")>;
|
||||
def: InstRW<[HWWriteResGroup18], (instregex "TEST8mi")>;
|
||||
def: InstRW<[HWWriteResGroup18], (instregex "TEST(8|16|32|64)mi")>;
|
||||
def: InstRW<[HWWriteResGroup18], (instregex "XOR(8|16|32|64)rm")>;
|
||||
|
||||
def HWWriteResGroup19 : SchedWriteRes<[HWPort237,HWPort0156]> {
|
||||
|
|
|
@ -1457,6 +1457,8 @@ def: InstRW<[SBWriteResGroup52], (instregex "LODSL")>;
|
|||
def: InstRW<[SBWriteResGroup52], (instregex "LODSQ")>;
|
||||
def: InstRW<[SBWriteResGroup52], (instregex "OR(8|16|32|64)rm")>;
|
||||
def: InstRW<[SBWriteResGroup52], (instregex "SUB(8|16|32|64)rm")>;
|
||||
def: InstRW<[SBWriteResGroup52], (instregex "TEST(8|16|32|64)mr")>;
|
||||
def: InstRW<[SBWriteResGroup52], (instregex "TEST(8|16|32|64)mi")>;
|
||||
def: InstRW<[SBWriteResGroup52], (instregex "XOR(8|16|32|64)rm")>;
|
||||
|
||||
def SBWriteResGroup53 : SchedWriteRes<[SBPort4,SBPort23]> {
|
||||
|
@ -1844,8 +1846,6 @@ def: InstRW<[SBWriteResGroup70], (instregex "OR(8|16|32|64)mi")>;
|
|||
def: InstRW<[SBWriteResGroup70], (instregex "OR(8|16|32|64)mr")>;
|
||||
def: InstRW<[SBWriteResGroup70], (instregex "SUB(8|16|32|64)mi")>;
|
||||
def: InstRW<[SBWriteResGroup70], (instregex "SUB(8|16|32|64)mr")>;
|
||||
def: InstRW<[SBWriteResGroup70], (instregex "TEST(8|16|32|64)mr")>;
|
||||
def: InstRW<[SBWriteResGroup70], (instregex "TEST8mi")>;
|
||||
def: InstRW<[SBWriteResGroup70], (instregex "XOR(8|16|32|64)mi")>;
|
||||
def: InstRW<[SBWriteResGroup70], (instregex "XOR(8|16|32|64)mr")>;
|
||||
|
||||
|
|
|
@ -1934,7 +1934,7 @@ def: InstRW<[SKLWriteResGroup76], (instrs POP16r, POP32r, POP64r)>;
|
|||
def: InstRW<[SKLWriteResGroup76], (instregex "POP(16|32|64)rmr")>;
|
||||
def: InstRW<[SKLWriteResGroup76], (instregex "SUB(8|16|32|64)rm")>;
|
||||
def: InstRW<[SKLWriteResGroup76], (instregex "TEST(8|16|32|64)mr")>;
|
||||
def: InstRW<[SKLWriteResGroup76], (instregex "TEST8mi")>;
|
||||
def: InstRW<[SKLWriteResGroup76], (instregex "TEST(8|16|32|64)mi")>;
|
||||
def: InstRW<[SKLWriteResGroup76], (instregex "XOR(8|16|32|64)rm")>;
|
||||
|
||||
def SKLWriteResGroup77 : SchedWriteRes<[SKLPort5,SKLPort01]> {
|
||||
|
|
|
@ -3128,7 +3128,7 @@ def: InstRW<[SKXWriteResGroup81], (instrs POP16r, POP32r, POP64r)>;
|
|||
def: InstRW<[SKXWriteResGroup81], (instregex "POP(16|32|64)rmr")>;
|
||||
def: InstRW<[SKXWriteResGroup81], (instregex "SUB(8|16|32|64)rm")>;
|
||||
def: InstRW<[SKXWriteResGroup81], (instregex "TEST(8|16|32|64)mr")>;
|
||||
def: InstRW<[SKXWriteResGroup81], (instregex "TEST8mi")>;
|
||||
def: InstRW<[SKXWriteResGroup81], (instregex "TEST(8|16|32|64)mi")>;
|
||||
def: InstRW<[SKXWriteResGroup81], (instregex "XOR(8|16|32|64)rm")>;
|
||||
|
||||
def SKXWriteResGroup82 : SchedWriteRes<[SKXPort5,SKXPort015]> {
|
||||
|
|
|
@ -15171,9 +15171,9 @@ define void @test_test_8(i8 %a0, i8* %a1) optsize {
|
|||
; GENERIC-NEXT: #APP
|
||||
; GENERIC-NEXT: testb $7, %al # sched: [1:0.33]
|
||||
; GENERIC-NEXT: testb $7, %dil # sched: [1:0.33]
|
||||
; GENERIC-NEXT: testb $7, (%rsi) # sched: [7:1.00]
|
||||
; GENERIC-NEXT: testb $7, (%rsi) # sched: [6:0.50]
|
||||
; GENERIC-NEXT: testb %dil, %dil # sched: [1:0.33]
|
||||
; GENERIC-NEXT: testb %dil, (%rsi) # sched: [7:1.00]
|
||||
; GENERIC-NEXT: testb %dil, (%rsi) # sched: [6:0.50]
|
||||
; GENERIC-NEXT: #NO_APP
|
||||
; GENERIC-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
|
@ -15204,9 +15204,9 @@ define void @test_test_8(i8 %a0, i8* %a1) optsize {
|
|||
; SANDY-NEXT: #APP
|
||||
; SANDY-NEXT: testb $7, %al # sched: [1:0.33]
|
||||
; SANDY-NEXT: testb $7, %dil # sched: [1:0.33]
|
||||
; SANDY-NEXT: testb $7, (%rsi) # sched: [7:1.00]
|
||||
; SANDY-NEXT: testb $7, (%rsi) # sched: [6:0.50]
|
||||
; SANDY-NEXT: testb %dil, %dil # sched: [1:0.33]
|
||||
; SANDY-NEXT: testb %dil, (%rsi) # sched: [7:1.00]
|
||||
; SANDY-NEXT: testb %dil, (%rsi) # sched: [6:0.50]
|
||||
; SANDY-NEXT: #NO_APP
|
||||
; SANDY-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
|
@ -15287,9 +15287,9 @@ define void @test_test_16(i16 %a0, i16* %a1) optsize {
|
|||
; GENERIC-NEXT: testw $511, %di # imm = 0x1FF
|
||||
; GENERIC-NEXT: # sched: [1:0.33]
|
||||
; GENERIC-NEXT: testw $511, (%rsi) # imm = 0x1FF
|
||||
; GENERIC-NEXT: # sched: [5:1.00]
|
||||
; GENERIC-NEXT: # sched: [6:0.50]
|
||||
; GENERIC-NEXT: testw %di, %di # sched: [1:0.33]
|
||||
; GENERIC-NEXT: testw %di, (%rsi) # sched: [7:1.00]
|
||||
; GENERIC-NEXT: testw %di, (%rsi) # sched: [6:0.50]
|
||||
; GENERIC-NEXT: #NO_APP
|
||||
; GENERIC-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
|
@ -15329,9 +15329,9 @@ define void @test_test_16(i16 %a0, i16* %a1) optsize {
|
|||
; SANDY-NEXT: testw $511, %di # imm = 0x1FF
|
||||
; SANDY-NEXT: # sched: [1:0.33]
|
||||
; SANDY-NEXT: testw $511, (%rsi) # imm = 0x1FF
|
||||
; SANDY-NEXT: # sched: [5:1.00]
|
||||
; SANDY-NEXT: # sched: [6:0.50]
|
||||
; SANDY-NEXT: testw %di, %di # sched: [1:0.33]
|
||||
; SANDY-NEXT: testw %di, (%rsi) # sched: [7:1.00]
|
||||
; SANDY-NEXT: testw %di, (%rsi) # sched: [6:0.50]
|
||||
; SANDY-NEXT: #NO_APP
|
||||
; SANDY-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
|
@ -15343,7 +15343,7 @@ define void @test_test_16(i16 %a0, i16* %a1) optsize {
|
|||
; HASWELL-NEXT: testw $511, %di # imm = 0x1FF
|
||||
; HASWELL-NEXT: # sched: [1:0.25]
|
||||
; HASWELL-NEXT: testw $511, (%rsi) # imm = 0x1FF
|
||||
; HASWELL-NEXT: # sched: [6:1.00]
|
||||
; HASWELL-NEXT: # sched: [6:0.50]
|
||||
; HASWELL-NEXT: testw %di, %di # sched: [1:0.25]
|
||||
; HASWELL-NEXT: testw %di, (%rsi) # sched: [6:0.50]
|
||||
; HASWELL-NEXT: #NO_APP
|
||||
|
@ -15357,7 +15357,7 @@ define void @test_test_16(i16 %a0, i16* %a1) optsize {
|
|||
; BROADWELL-NEXT: testw $511, %di # imm = 0x1FF
|
||||
; BROADWELL-NEXT: # sched: [1:0.25]
|
||||
; BROADWELL-NEXT: testw $511, (%rsi) # imm = 0x1FF
|
||||
; BROADWELL-NEXT: # sched: [6:1.00]
|
||||
; BROADWELL-NEXT: # sched: [6:0.50]
|
||||
; BROADWELL-NEXT: testw %di, %di # sched: [1:0.25]
|
||||
; BROADWELL-NEXT: testw %di, (%rsi) # sched: [6:0.50]
|
||||
; BROADWELL-NEXT: #NO_APP
|
||||
|
@ -15371,7 +15371,7 @@ define void @test_test_16(i16 %a0, i16* %a1) optsize {
|
|||
; SKYLAKE-NEXT: testw $511, %di # imm = 0x1FF
|
||||
; SKYLAKE-NEXT: # sched: [1:0.25]
|
||||
; SKYLAKE-NEXT: testw $511, (%rsi) # imm = 0x1FF
|
||||
; SKYLAKE-NEXT: # sched: [6:1.00]
|
||||
; SKYLAKE-NEXT: # sched: [6:0.50]
|
||||
; SKYLAKE-NEXT: testw %di, %di # sched: [1:0.25]
|
||||
; SKYLAKE-NEXT: testw %di, (%rsi) # sched: [6:0.50]
|
||||
; SKYLAKE-NEXT: #NO_APP
|
||||
|
@ -15385,7 +15385,7 @@ define void @test_test_16(i16 %a0, i16* %a1) optsize {
|
|||
; SKX-NEXT: testw $511, %di # imm = 0x1FF
|
||||
; SKX-NEXT: # sched: [1:0.25]
|
||||
; SKX-NEXT: testw $511, (%rsi) # imm = 0x1FF
|
||||
; SKX-NEXT: # sched: [6:1.00]
|
||||
; SKX-NEXT: # sched: [6:0.50]
|
||||
; SKX-NEXT: testw %di, %di # sched: [1:0.25]
|
||||
; SKX-NEXT: testw %di, (%rsi) # sched: [6:0.50]
|
||||
; SKX-NEXT: #NO_APP
|
||||
|
@ -15430,9 +15430,9 @@ define void @test_test_32(i32 %a0, i32* %a1) optsize {
|
|||
; GENERIC-NEXT: testl $665536, %edi # imm = 0xA27C0
|
||||
; GENERIC-NEXT: # sched: [1:0.33]
|
||||
; GENERIC-NEXT: testl $665536, (%rsi) # imm = 0xA27C0
|
||||
; GENERIC-NEXT: # sched: [5:1.00]
|
||||
; GENERIC-NEXT: # sched: [6:0.50]
|
||||
; GENERIC-NEXT: testl %edi, %edi # sched: [1:0.33]
|
||||
; GENERIC-NEXT: testl %edi, (%rsi) # sched: [7:1.00]
|
||||
; GENERIC-NEXT: testl %edi, (%rsi) # sched: [6:0.50]
|
||||
; GENERIC-NEXT: #NO_APP
|
||||
; GENERIC-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
|
@ -15472,9 +15472,9 @@ define void @test_test_32(i32 %a0, i32* %a1) optsize {
|
|||
; SANDY-NEXT: testl $665536, %edi # imm = 0xA27C0
|
||||
; SANDY-NEXT: # sched: [1:0.33]
|
||||
; SANDY-NEXT: testl $665536, (%rsi) # imm = 0xA27C0
|
||||
; SANDY-NEXT: # sched: [5:1.00]
|
||||
; SANDY-NEXT: # sched: [6:0.50]
|
||||
; SANDY-NEXT: testl %edi, %edi # sched: [1:0.33]
|
||||
; SANDY-NEXT: testl %edi, (%rsi) # sched: [7:1.00]
|
||||
; SANDY-NEXT: testl %edi, (%rsi) # sched: [6:0.50]
|
||||
; SANDY-NEXT: #NO_APP
|
||||
; SANDY-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
|
@ -15486,7 +15486,7 @@ define void @test_test_32(i32 %a0, i32* %a1) optsize {
|
|||
; HASWELL-NEXT: testl $665536, %edi # imm = 0xA27C0
|
||||
; HASWELL-NEXT: # sched: [1:0.25]
|
||||
; HASWELL-NEXT: testl $665536, (%rsi) # imm = 0xA27C0
|
||||
; HASWELL-NEXT: # sched: [6:1.00]
|
||||
; HASWELL-NEXT: # sched: [6:0.50]
|
||||
; HASWELL-NEXT: testl %edi, %edi # sched: [1:0.25]
|
||||
; HASWELL-NEXT: testl %edi, (%rsi) # sched: [6:0.50]
|
||||
; HASWELL-NEXT: #NO_APP
|
||||
|
@ -15500,7 +15500,7 @@ define void @test_test_32(i32 %a0, i32* %a1) optsize {
|
|||
; BROADWELL-NEXT: testl $665536, %edi # imm = 0xA27C0
|
||||
; BROADWELL-NEXT: # sched: [1:0.25]
|
||||
; BROADWELL-NEXT: testl $665536, (%rsi) # imm = 0xA27C0
|
||||
; BROADWELL-NEXT: # sched: [6:1.00]
|
||||
; BROADWELL-NEXT: # sched: [6:0.50]
|
||||
; BROADWELL-NEXT: testl %edi, %edi # sched: [1:0.25]
|
||||
; BROADWELL-NEXT: testl %edi, (%rsi) # sched: [6:0.50]
|
||||
; BROADWELL-NEXT: #NO_APP
|
||||
|
@ -15514,7 +15514,7 @@ define void @test_test_32(i32 %a0, i32* %a1) optsize {
|
|||
; SKYLAKE-NEXT: testl $665536, %edi # imm = 0xA27C0
|
||||
; SKYLAKE-NEXT: # sched: [1:0.25]
|
||||
; SKYLAKE-NEXT: testl $665536, (%rsi) # imm = 0xA27C0
|
||||
; SKYLAKE-NEXT: # sched: [6:1.00]
|
||||
; SKYLAKE-NEXT: # sched: [6:0.50]
|
||||
; SKYLAKE-NEXT: testl %edi, %edi # sched: [1:0.25]
|
||||
; SKYLAKE-NEXT: testl %edi, (%rsi) # sched: [6:0.50]
|
||||
; SKYLAKE-NEXT: #NO_APP
|
||||
|
@ -15528,7 +15528,7 @@ define void @test_test_32(i32 %a0, i32* %a1) optsize {
|
|||
; SKX-NEXT: testl $665536, %edi # imm = 0xA27C0
|
||||
; SKX-NEXT: # sched: [1:0.25]
|
||||
; SKX-NEXT: testl $665536, (%rsi) # imm = 0xA27C0
|
||||
; SKX-NEXT: # sched: [6:1.00]
|
||||
; SKX-NEXT: # sched: [6:0.50]
|
||||
; SKX-NEXT: testl %edi, %edi # sched: [1:0.25]
|
||||
; SKX-NEXT: testl %edi, (%rsi) # sched: [6:0.50]
|
||||
; SKX-NEXT: #NO_APP
|
||||
|
@ -15573,9 +15573,9 @@ define void @test_test_64(i64 %a0, i64* %a1) optsize {
|
|||
; GENERIC-NEXT: testq $665536, %rdi # imm = 0xA27C0
|
||||
; GENERIC-NEXT: # sched: [1:0.33]
|
||||
; GENERIC-NEXT: testq $665536, (%rsi) # imm = 0xA27C0
|
||||
; GENERIC-NEXT: # sched: [5:1.00]
|
||||
; GENERIC-NEXT: # sched: [6:0.50]
|
||||
; GENERIC-NEXT: testq %rdi, %rdi # sched: [1:0.33]
|
||||
; GENERIC-NEXT: testq %rdi, (%rsi) # sched: [7:1.00]
|
||||
; GENERIC-NEXT: testq %rdi, (%rsi) # sched: [6:0.50]
|
||||
; GENERIC-NEXT: #NO_APP
|
||||
; GENERIC-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
|
@ -15615,9 +15615,9 @@ define void @test_test_64(i64 %a0, i64* %a1) optsize {
|
|||
; SANDY-NEXT: testq $665536, %rdi # imm = 0xA27C0
|
||||
; SANDY-NEXT: # sched: [1:0.33]
|
||||
; SANDY-NEXT: testq $665536, (%rsi) # imm = 0xA27C0
|
||||
; SANDY-NEXT: # sched: [5:1.00]
|
||||
; SANDY-NEXT: # sched: [6:0.50]
|
||||
; SANDY-NEXT: testq %rdi, %rdi # sched: [1:0.33]
|
||||
; SANDY-NEXT: testq %rdi, (%rsi) # sched: [7:1.00]
|
||||
; SANDY-NEXT: testq %rdi, (%rsi) # sched: [6:0.50]
|
||||
; SANDY-NEXT: #NO_APP
|
||||
; SANDY-NEXT: retq # sched: [1:1.00]
|
||||
;
|
||||
|
@ -15629,7 +15629,7 @@ define void @test_test_64(i64 %a0, i64* %a1) optsize {
|
|||
; HASWELL-NEXT: testq $665536, %rdi # imm = 0xA27C0
|
||||
; HASWELL-NEXT: # sched: [1:0.25]
|
||||
; HASWELL-NEXT: testq $665536, (%rsi) # imm = 0xA27C0
|
||||
; HASWELL-NEXT: # sched: [6:1.00]
|
||||
; HASWELL-NEXT: # sched: [6:0.50]
|
||||
; HASWELL-NEXT: testq %rdi, %rdi # sched: [1:0.25]
|
||||
; HASWELL-NEXT: testq %rdi, (%rsi) # sched: [6:0.50]
|
||||
; HASWELL-NEXT: #NO_APP
|
||||
|
@ -15643,7 +15643,7 @@ define void @test_test_64(i64 %a0, i64* %a1) optsize {
|
|||
; BROADWELL-NEXT: testq $665536, %rdi # imm = 0xA27C0
|
||||
; BROADWELL-NEXT: # sched: [1:0.25]
|
||||
; BROADWELL-NEXT: testq $665536, (%rsi) # imm = 0xA27C0
|
||||
; BROADWELL-NEXT: # sched: [6:1.00]
|
||||
; BROADWELL-NEXT: # sched: [6:0.50]
|
||||
; BROADWELL-NEXT: testq %rdi, %rdi # sched: [1:0.25]
|
||||
; BROADWELL-NEXT: testq %rdi, (%rsi) # sched: [6:0.50]
|
||||
; BROADWELL-NEXT: #NO_APP
|
||||
|
@ -15657,7 +15657,7 @@ define void @test_test_64(i64 %a0, i64* %a1) optsize {
|
|||
; SKYLAKE-NEXT: testq $665536, %rdi # imm = 0xA27C0
|
||||
; SKYLAKE-NEXT: # sched: [1:0.25]
|
||||
; SKYLAKE-NEXT: testq $665536, (%rsi) # imm = 0xA27C0
|
||||
; SKYLAKE-NEXT: # sched: [6:1.00]
|
||||
; SKYLAKE-NEXT: # sched: [6:0.50]
|
||||
; SKYLAKE-NEXT: testq %rdi, %rdi # sched: [1:0.25]
|
||||
; SKYLAKE-NEXT: testq %rdi, (%rsi) # sched: [6:0.50]
|
||||
; SKYLAKE-NEXT: #NO_APP
|
||||
|
@ -15671,7 +15671,7 @@ define void @test_test_64(i64 %a0, i64* %a1) optsize {
|
|||
; SKX-NEXT: testq $665536, %rdi # imm = 0xA27C0
|
||||
; SKX-NEXT: # sched: [1:0.25]
|
||||
; SKX-NEXT: testq $665536, (%rsi) # imm = 0xA27C0
|
||||
; SKX-NEXT: # sched: [6:1.00]
|
||||
; SKX-NEXT: # sched: [6:0.50]
|
||||
; SKX-NEXT: testq %rdi, %rdi # sched: [1:0.25]
|
||||
; SKX-NEXT: testq %rdi, (%rsi) # sched: [6:0.50]
|
||||
; SKX-NEXT: #NO_APP
|
||||
|
|
Loading…
Reference in New Issue