[PATCH] D149814: [RISCV] Optimize i32 range checks

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 4 16:25:22 PDT 2023


craig.topper added a comment.

My suggested patch

  +  bool shouldTransformSignedTruncationCheck(EVT XVT,
  +                                            unsigned KeptBits) const override {
  +    // For vectors, we don't have a preference..
  +    if (XVT.isVector())
  +      return false;
  +
  +    auto VTIsOk = [](EVT VT) -> bool {
  +      return VT == MVT::i32 || VT == MVT::i64;
  +    };
  +
  +    // We are ok with KeptBitsVT being byte/word/dword, what sext.w supports.
  +    // XVT will be larger than KeptBitsVT.
  +    // FIXME: Support Zbb?
  +    MVT KeptBitsVT = MVT::getIntegerVT(KeptBits);
  +    return VTIsOk(XVT) && VTIsOk(KeptBitsVT);
  +  }
  +


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D149814



More information about the llvm-commits mailing list