[llvm] 0c18415 - zz

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Sat Apr 10 09:31:52 PDT 2021


On Sat, Apr 10, 2021 at 6:10 PM Roman Lebedev via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

>
> Author: Roman Lebedev
> Date: 2021-04-10T19:09:17+03:00
> New Revision: 0c184154969c020db416bd7066af80ffd2a27ac4
>
> URL:
> https://github.com/llvm/llvm-project/commit/0c184154969c020db416bd7066af80ffd2a27ac4
> DIFF:
> https://github.com/llvm/llvm-project/commit/0c184154969c020db416bd7066af80ffd2a27ac4.diff
>
> LOG: zz
>
> Added:
>
>
> Modified:
>     llvm/include/llvm/IR/IntrinsicInst.h
>
> Removed:
>
>
>
>
> ################################################################################
> diff  --git a/llvm/include/llvm/IR/IntrinsicInst.h
> b/llvm/include/llvm/IR/IntrinsicInst.h
> index 6c825d380fc95..b688ece7067e2 100644
> --- a/llvm/include/llvm/IR/IntrinsicInst.h
> +++ b/llvm/include/llvm/IR/IntrinsicInst.h
> @@ -458,6 +458,47 @@ class ConstrainedFPCmpIntrinsic : public
> ConstrainedFPIntrinsic {
>    }
>  };
>
> +/// This class represents min/max intrinsics.
> +class LimitingIntrinsic : public IntrinsicInst {
>

Can you please make this MinMaxIntrinsic instead?

Nikita


> +public:
> +  static bool classof(const IntrinsicInst *I) {
> +    switch (I->getIntrinsicID()) {
> +    case Intrinsic::umin:
> +    case Intrinsic::umax:
> +    case Intrinsic::smin:
> +    case Intrinsic::smax:
> +      return true;
> +    default:
> +      return false;
> +    }
> +  }
> +  static bool classof(const Value *V) {
> +    return isa<IntrinsicInst>(V) && classof(cast<IntrinsicInst>(V));
> +  }
> +
> +  Value *getLHS() const { return const_cast<Value *>(getArgOperand(0)); }
> +  Value *getRHS() const { return const_cast<Value *>(getArgOperand(1)); }
> +
> +  /// Returns the comparison predicate underlying the intrinsic.
> +  ICmpInst::Predicate getPredicate() const {
> +    switch (getIntrinsicID()) {
> +    case Intrinsic::umin:
> +      return ICmpInst::Predicate::ICMP_ULT;
> +    case Intrinsic::umax:
> +      return ICmpInst::Predicate::ICMP_UGT;
> +    case Intrinsic::smin:
> +      return ICmpInst::Predicate::ICMP_SLT;
> +    case Intrinsic::smax:
> +      return ICmpInst::Predicate::ICMP_SGT;
> +    default:
> +      llvm_unreachable("Invalid intrinsic");
> +    }
> +  }
> +
> +  /// Whether the intrinsic is signed or unsigned.
> +  bool isSigned() const { return ICmpInst::isSigned(getPredicate()); };
> +};
> +
>  /// This class represents an intrinsic that is based on a binary
> operation.
>  /// This includes op.with.overflow and saturating add/sub intrinsics.
>  class BinaryOpIntrinsic : public IntrinsicInst {
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210410/3a1c384a/attachment.html>


More information about the llvm-commits mailing list