[PATCH] D103180: [InstSimplify] Add constant fold for extractelement + splat for scalable vectors
Dave Green via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 3 01:58:39 PDT 2021
dmgreen added inline comments.
================
Comment at: llvm/lib/IR/ConstantFold.cpp:913
if (auto *ValSVTy = dyn_cast<ScalableVectorType>(Val->getType())) {
if (!CIdx->uge(ValSVTy->getMinNumElements())) {
+ if (Constant *SplatVal = Val->getSplatValue())
----------------
sdesmalen wrote:
> CarolineConcatto wrote:
> > sdesmalen wrote:
> > > nit: `s/!CIdx->uge/CIdx->ult/`
> > Hey @sdesmalen
> > I may be completely wrong, but I believe your suggestion is not possible
> > https://llvm.org/doxygen/classllvm_1_1ConstantInt.html
> > If I looked the documentation correctly llvm::constant only has UGE
> Ah I hadn't realised that. In that case, could you write it more explicitly as
> CIdx->getZExtValue() < ValSVTy->getMinNumElements()
Do we know the type of CIdx is always less that 64bits?
uge() is just a convenience wrapper around APInt::uge(). You can use CIdx->getValue().ult(..) if you feel the ult is better than the !uge
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D103180/new/
https://reviews.llvm.org/D103180
More information about the llvm-commits
mailing list