[X86] Remove isCommutable flag from MULX instructions.
authorCraig Topper <craig.topper@gmail.com>
Sun, 24 May 2020 19:34:56 +0000 (12:34 -0700)
committerCraig Topper <craig.topper@gmail.com>
Sun, 24 May 2020 22:02:36 +0000 (15:02 -0700)
The fixed register constraint on EDX/RDX as an input
makes this not really commutable.

llvm/lib/Target/X86/X86InstrArithmetic.td

index 1e399a8..57ad893 100644 (file)
@@ -1306,7 +1306,6 @@ let Predicates = [HasBMI], AddedComplexity = -6 in {
 multiclass bmi_mulx<string mnemonic, RegisterClass RC, X86MemOperand x86memop,
                     X86FoldableSchedWrite sched> {
 let hasSideEffects = 0 in {
-  let isCommutable = 1 in
   def rr : I<0xF6, MRMSrcReg, (outs RC:$dst1, RC:$dst2), (ins RC:$src),
              !strconcat(mnemonic, "\t{$src, $dst2, $dst1|$dst1, $dst2, $src}"),
              []>, T8XD, VEX_4V, Sched<[sched, WriteIMulH]>;