[PATCH] D124183: [InstCombine] Add one use limitation for (X * C2) << C1 --> X * (C2 << C1)

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 21 09:44:42 PDT 2022


lebedev.ri added a comment.

This is not consistent with our general folding rules.
What does "may" mean? We'd trade sequential mul-shl for two independent mul.
Former would be sequential anyway, while two mul may or may not be sequential depending on how bad the microarchitecture is.
Is there an actual performance bugreport?

Does this regress e.g. the following case: https://godbolt.org/z/aWsvzW751 ?
What about the case where the backend isn't even meant to recover, like https://godbolt.org/z/4Tbb3YG3s ?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D124183



More information about the llvm-commits mailing list