[PATCH] D36663: [X86][Haswell] Updating HSW instruction scheduling information
Craig Topper via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 18 14:50:04 PDT 2017
craig.topper added a comment.
I think the following are missing from the HWWriteResGroups
IMUL32rmi 2 uops
IMUL32rmi8 2 uops
IMUL32rri 1 uop
IMUL32rri8 1 uop
IMUL64rmi32 2 uops
IMUL64rmi8 2 uops
IMUL64rri32 1 uop
IMUL64rri8 1 uop
================
Comment at: lib/Target/X86/X86SchedHaswell.td:2748
+def: InstRW<[HWWriteResGroup52], (instregex "IMUL(16|32|64)m")>;
+def: InstRW<[HWWriteResGroup52], (instregex "IMUL(16|32|64)rm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "IMUL8m")>;
----------------
I believe believe this
IMUL8m - 2 uops
IMUL16m - 5 uops
IMUL32m - 4 uops
IMUL64m - 3 uops
================
Comment at: lib/Target/X86/X86SchedHaswell.td:2762
+def: InstRW<[HWWriteResGroup52], (instregex "MMX_CVTTPS2PIirm")>;
+def: InstRW<[HWWriteResGroup52], (instregex "MUL(16|32|64)m")>;
+def: InstRW<[HWWriteResGroup52], (instregex "MUL8m")>;
----------------
I believe this
MUL8m - 2 uops
MUL16m - 5 uops
MUL32m - 4 uops
MUL64m - 3 uops
================
Comment at: lib/Target/X86/X86SchedHaswell.td:3156
+}
+def: InstRW<[HWWriteResGroup74], (instregex "IMUL(16|32|64)r")>;
+def: InstRW<[HWWriteResGroup74], (instregex "MUL(16|32|64)r")>;
----------------
Can you recheck this. I believe the following
MUL16r/IMUL16r - 4 uops
MUL32r/IMUL32r - 3 uops
IMUL64r/IMUL64r - 2 uops
MULX64rr - 2 uops
Repository:
rL LLVM
https://reviews.llvm.org/D36663
More information about the llvm-commits
mailing list