[PATCH] D23000: [X86] Improve 64-bit shifts on 32-bit targets (PR14593)

David Majnemer via llvm-commits llvm-commits at lists.llvm.org
Sun Jul 31 09:15:32 PDT 2016


majnemer added a subscriber: majnemer.

================
Comment at: lib/Target/X86/X86ISelLowering.cpp:28675
@@ +28674,3 @@
+          isa<ConstantSDNode>(Op1.getOperand(1)) &&
+          Op1.getConstantOperandVal(1) == 1) {
+        return DAG.getNode(Opc, DL, VT, Op0, Op1.getOperand(0),
----------------
eli.friedman wrote:
> Maybe it makes sense to split this into two separate if statements; one checking that the two outer shifts match, one checking that the inner shift is a shift by one.  I found it a bit tricky to pick through.  (I sort of wish we had an equivalent to IR pattern matching in SelectionDAG.)
I actually worked on such a thing: http://pastebin.com/raw/A7WfuVC0

Think it makes sense for me to return to it?


Repository:
  rL LLVM

https://reviews.llvm.org/D23000





More information about the llvm-commits mailing list