[PATCH] D44402: [DAGCombiner] Fold (zext (and/or/xor (shl/shr (load x), cst), cst))

Guozhi Wei via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 12 14:30:18 PDT 2018


Carrot created this revision.

In our real world application, we found the following optimization is missed in DAGCombiner

(zext (and/or/xor (shl/shr (load x), cst), cst)) -> (and/or/xor (shl/shr (zextload x), (zext cst)), (zext cst))

If the user of original zext is an add, it may enable further lea optimization on x86.

This patch add a new function CombineZExtLogicopShiftLoad to do this optimization.


Repository:
  rL LLVM

https://reviews.llvm.org/D44402

Files:
  lib/CodeGen/SelectionDAG/DAGCombiner.cpp
  test/CodeGen/X86/zext-logicop-shift-load.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44402.138092.patch
Type: text/x-patch
Size: 5693 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180312/307ea561/attachment.bin>


More information about the llvm-commits mailing list