[PATCH] D88492: [InstCombine] visitTrunc - remove dead trunc(lshr (zext A), C) combine

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 30 03:09:08 PDT 2020


RKSimon added a comment.

For the record - the tests from rG7a55989dc430 <https://reviews.llvm.org/rG7a55989dc4305e66734bdd84a9f9eefeb9fe64bd> are all being caught by a mixture of canEvaluateTruncated inside visitTrunc and the "lshr (zext iM X to iN), C --> zext (lshr X, C) to iN" fold in visitLShr - the bin diffs can probably be attributed to visitTrunc no longer catching it and having to wait for the inner visitLShr call.

BTW - All of these folds are still very weak on non-uniform vector support - the number of places where we're using m_ConstantInt or m_APInt instead of a more general m_Constant eval is really annoying.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88492



More information about the llvm-commits mailing list