[X86] Remove unnecessary FMA reg-mem InstRW scheduler overrides.
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 24 Apr 2018 14:47:11 +0000 (14:47 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 24 Apr 2018 14:47:11 +0000 (14:47 +0000)
llvm-svn: 330720

llvm/lib/Target/X86/X86SchedBroadwell.td
llvm/lib/Target/X86/X86SchedHaswell.td
llvm/lib/Target/X86/X86SchedSkylakeClient.td
llvm/lib/Target/X86/X86SchedSkylakeServer.td
llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-1.s
llvm/test/tools/llvm-mca/X86/fma3-read-after-ld-2.s

index 496a588..191403b 100755 (executable)
@@ -1547,15 +1547,6 @@ def BWWriteResGroup115 : SchedWriteRes<[BWPort0,BWPort23]> {
 }
 def: InstRW<[BWWriteResGroup115], (instregex "(V?)PCMPGTQrm")>;
 
-def BWWriteResGroup116 : SchedWriteRes<[BWPort01,BWPort23]> {
-  let Latency = 10;
-  let NumMicroOps = 2;
-  let ResourceCycles = [1,1];
-}
-def: InstRW<[BWWriteResGroup116],
-            (instregex "VF(N)?M(ADD|SUB|ADDSUB|SUBADD)(132|213|231)P(D|S)m",
-                       "VF(N)?M(ADD|SUB)(132|213|231)S(D|S)m")>;
-
 def BWWriteResGroup117 : SchedWriteRes<[BWPort1,BWPort23]> {
   let Latency = 10;
   let NumMicroOps = 3;
index 296eafa..cd7de24 100644 (file)
@@ -1946,8 +1946,7 @@ def HWWriteResGroup92_2 : SchedWriteRes<[HWPort01,HWPort23]> {
   let ResourceCycles = [1,1];
 }
 def: InstRW<[HWWriteResGroup92_2], (instregex "(V?)MULSDrm",
-                                              "(V?)MULSSrm",
-                                              "VF(N)?M(ADD|SUB)(132|213|231)S(D|S)m")>;
+                                              "(V?)MULSSrm")>;
 
 def HWWriteResGroup93 : SchedWriteRes<[HWPort1,HWPort5]> {
   let Latency = 5;
index 08edc43..3e170d5 100644 (file)
@@ -1758,8 +1758,6 @@ def: InstRW<[SKLWriteResGroup122], (instregex "(V?)ADDSDrm",
                                               "(V?)MULSSrm",
                                               "(V?)SUBSDrm",
                                               "(V?)SUBSSrm")>;
-def: InstRW<[SKLWriteResGroup122],
-            (instregex "VF(N)?M(ADD|SUB)(132|213|231)S(D|S)m")>;
 
 def SKLWriteResGroup123 : SchedWriteRes<[SKLPort23,SKLPort01]> {
   let Latency = 9;
index afe2556..e361029 100755 (executable)
@@ -3615,8 +3615,6 @@ def SKXWriteResGroup137 : SchedWriteRes<[SKXPort23,SKXPort015]> {
   let NumMicroOps = 2;
   let ResourceCycles = [1,1];
 }
-def: InstRW<[SKXWriteResGroup137],
-            (instregex "VF(N)?M(ADD|SUB)(132|213|231)S(D|S)m")>;
 def: InstRW<[SKXWriteResGroup137], (instregex "ADDSDrm",
                                               "ADDSSrm",
                                               "CMPSDrm",
index 6b54ee2..7e071e4 100644 (file)
@@ -12,8 +12,8 @@ vfmadd213ps (%rdi), %xmm1, %xmm2
 # HASWELL:      [0,0]  DeeeER    .    ..       vaddps  %xmm0, %xmm0, %xmm1
 # HASWELL-NEXT: [0,1]  D===eeeeeeeeeeeER       vfmadd213ps     (%rdi), %xmm1, %xmm2
 
-# BDWELL:       [0,0]  DeeeER    .    .        vaddps  %xmm0, %xmm0, %xmm1
-# BDWELL-NEXT:  [0,1]  D===eeeeeeeeeeER        vfmadd213ps     (%rdi), %xmm1, %xmm2
+# BDWELL:       [0,0]  DeeeER    . .   vaddps  %xmm0, %xmm0, %xmm1
+# BDWELL-NEXT:  [0,1]  DeeeeeeeeeeER   vfmadd213ps     (%rdi), %xmm1, %xmm2
 
 # SKYLAKE:      [0,0]  DeeeeER   .    ..       vaddps  %xmm0, %xmm0, %xmm1
 # SKYLAKE-NEXT: [0,1]  D====eeeeeeeeeeER       vfmadd213ps     (%rdi), %xmm1, %xmm2
index 6b6e068..d4d1d20 100644 (file)
@@ -12,8 +12,8 @@ vfmadd213ps (%rdi), %xmm1, %xmm2
 # HASWELL:      [0,0]  DeeeER    .    ..       vaddps  %xmm0, %xmm0, %xmm2
 # HASWELL-NEXT: [0,1]  D===eeeeeeeeeeeER       vfmadd213ps     (%rdi), %xmm1, %xmm2
 
-# BDWELL:       [0,0]  DeeeER    .    .        vaddps  %xmm0, %xmm0, %xmm2
-# BDWELL-NEXT:  [0,1]  D===eeeeeeeeeeER        vfmadd213ps     (%rdi), %xmm1, %xmm2
+# BDWELL:       [0,0]  DeeeER    . .   vaddps  %xmm0, %xmm0, %xmm2
+# BDWELL-NEXT:  [0,1]  DeeeeeeeeeeER   vfmadd213ps     (%rdi), %xmm1, %xmm2
 
 # SKYLAKE:      [0,0]  DeeeeER   .    ..       vaddps  %xmm0, %xmm0, %xmm2
 # SKYLAKE-NEXT: [0,1]  D====eeeeeeeeeeER       vfmadd213ps     (%rdi), %xmm1, %xmm2