[all-commits] [llvm/llvm-project] 07e8a7: [X86] Add pseudo instructions to use MULX with a s...

topperc via All-commits all-commits at lists.llvm.org
Sat May 30 16:01:54 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 07e8a780d81bb58a0c7bd4da6cc0b9beaec3c788
      https://github.com/llvm/llvm-project/commit/07e8a780d81bb58a0c7bd4da6cc0b9beaec3c788
  Author: Craig Topper <craig.topper at gmail.com>
  Date:   2020-05-30 (Sat, 30 May 2020)

  Changed paths:
    M llvm/lib/Target/X86/X86ISelDAGToDAG.cpp
    M llvm/lib/Target/X86/X86InstrArithmetic.td
    M llvm/lib/Target/X86/X86MCInstLower.cpp
    M llvm/test/CodeGen/X86/atomic-unordered.ll
    M llvm/test/CodeGen/X86/i128-mul.ll
    M llvm/test/CodeGen/X86/pr35636.ll

  Log Message:
  -----------
  [X86] Add pseudo instructions to use MULX with a single destination when the low result isn't used.

The instruction is defined to only produce high result if both
destinations are the same. We can exploit this to avoid
unnecessarily clobbering a register.

In order to hide this from register allocation we use a pseudo
instruction and expand the result during MCInst creation.

Differential Revision: https://reviews.llvm.org/D80500




More information about the All-commits mailing list