[PATCH] D106352: [InstCombine] Fold (select C, (gep (gep Ptr, Idx0), Idx1), (gep Ptr, Idx0)) -> (gep Ptr, (select C, Idx0+Idx1, Idx0)) (PR51069)

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 20 10:20:57 PDT 2021


lebedev.ri added inline comments.


================
Comment at: llvm/test/Transforms/InstCombine/select-gep.ll:111-112
 ;
   %gep1 = getelementptr inbounds i32, i32* %p, i64 %x
   %gep2 = getelementptr inbounds i32, i32* %gep1, i64 6
   %icmp = icmp ugt i64 %x, %y
----------------
@reames if we look at this test, clearly we can't fold `%gep2` into `%p + (%x + 6)`,
because that results in two instructions, but `%gep1` sticks around since it's used in `select`,
so we can't actually do this in instcombine.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D106352/new/

https://reviews.llvm.org/D106352



More information about the llvm-commits mailing list