diff options
| author | Craig Topper <craig.topper@intel.com> | 2018-03-20 03:02:03 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@intel.com> | 2018-03-20 03:02:03 +0000 |
| commit | 3e9462607e05b6a0b943d7bd4fb178ed5e44660a (patch) | |
| tree | 2d0168f37e6e97beee80092dee34274ffebb0b14 | |
| parent | 7c90e29cf8f46d4c4de772e1e64d2620b2bbaf23 (diff) | |
| download | bcm5719-llvm-3e9462607e05b6a0b943d7bd4fb178ed5e44660a.tar.gz bcm5719-llvm-3e9462607e05b6a0b943d7bd4fb178ed5e44660a.zip | |
[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
| -rwxr-xr-x | llvm/lib/Target/X86/X86SchedBroadwell.td | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86SchedHaswell.td | 2 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86SchedSandyBridge.td | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/X86/X86SchedSkylakeClient.td | 2 | ||||
| -rwxr-xr-x | llvm/lib/Target/X86/X86SchedSkylakeServer.td | 2 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/schedule-x86_64.ll | 56 |
6 files changed, 34 insertions, 34 deletions
diff --git a/llvm/lib/Target/X86/X86SchedBroadwell.td b/llvm/lib/Target/X86/X86SchedBroadwell.td index 795b6ae55c0..0e699da4fb6 100755 --- a/llvm/lib/Target/X86/X86SchedBroadwell.td +++ b/llvm/lib/Target/X86/X86SchedBroadwell.td @@ -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]> { diff --git a/llvm/lib/Target/X86/X86SchedHaswell.td b/llvm/lib/Target/X86/X86SchedHaswell.td index acac5293d4e..468bb97ebcf 100644 --- a/llvm/lib/Target/X86/X86SchedHaswell.td +++ b/llvm/lib/Target/X86/X86SchedHaswell.td @@ -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]> { diff --git a/llvm/lib/Target/X86/X86SchedSandyBridge.td b/llvm/lib/Target/X86/X86SchedSandyBridge.td index 4f535924c73..b7ad1f0a55a 100644 --- a/llvm/lib/Target/X86/X86SchedSandyBridge.td +++ b/llvm/lib/Target/X86/X86SchedSandyBridge.td @@ -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")>; diff --git a/llvm/lib/Target/X86/X86SchedSkylakeClient.td b/llvm/lib/Target/X86/X86SchedSkylakeClient.td index 55fe3892b41..b4d5f880434 100644 --- a/llvm/lib/Target/X86/X86SchedSkylakeClient.td +++ b/llvm/lib/Target/X86/X86SchedSkylakeClient.td @@ -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]> { diff --git a/llvm/lib/Target/X86/X86SchedSkylakeServer.td b/llvm/lib/Target/X86/X86SchedSkylakeServer.td index 3461dd1a289..695568194bf 100755 --- a/llvm/lib/Target/X86/X86SchedSkylakeServer.td +++ b/llvm/lib/Target/X86/X86SchedSkylakeServer.td @@ -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]> { diff --git a/llvm/test/CodeGen/X86/schedule-x86_64.ll b/llvm/test/CodeGen/X86/schedule-x86_64.ll index df8bc678992..e2c74715349 100644 --- a/llvm/test/CodeGen/X86/schedule-x86_64.ll +++ b/llvm/test/CodeGen/X86/schedule-x86_64.ll @@ -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 |

