[X86] Split WriteIMul into 8/16/32/64 implementations (PR36931)

Split WriteIMul by size and also by IMUL multiply-by-imm and multiply-by-reg cases.

This removes all the scheduler overrides for gpr multiplies and stops WriteMULH being ignored for BMI2 MULX instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@342892 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed