16 const auto operation =
dynamic_cast<const FloorOperation *
>(&other);
17 return operation && *operation->
getType() == *getType();
26std::unique_ptr<rvsdg::Operation>
29 return std::make_unique<FloorOperation>(*
this);
35 if (!is<const FloatingPointType>(type) && !isVectorOf<const FloatingPointType>(*type))
37 throw std::runtime_error(
"FloorOperation::checkType: Expected floating point type.");
46 const auto operation =
dynamic_cast<const CeilOperation *
>(&other);
47 return operation && *operation->
getType() == *getType();
56std::unique_ptr<rvsdg::Operation>
59 return std::make_unique<CeilOperation>(*
this);
65 if (!is<const FloatingPointType>(type) && !isVectorOf<const FloatingPointType>(*type))
67 throw std::runtime_error(
"CeilOperation::checkType: Expected floating point type.");
76 const auto operation =
dynamic_cast<const RoundOperation *
>(&other);
77 return operation && *operation->
getType() == *getType();
86std::unique_ptr<rvsdg::Operation>
89 return std::make_unique<RoundOperation>(*
this);
95 if (!is<const FloatingPointType>(type) && !isVectorOf<const FloatingPointType>(*type))
97 throw std::runtime_error(
"RoundOperation::checkType: Expected floating point type.");
107 return operation && *operation->
getType() == *getType();
116std::unique_ptr<rvsdg::Operation>
119 return std::make_unique<TruncIntrinsicOperation>(*
this);
125 if (!is<const FloatingPointType>(type) && !isVectorOf<const FloatingPointType>(*type))
127 throw std::runtime_error(
"TruncIntrinsicOperation::checkType: Expected floating point type.");
137 return operation && *operation->
getType() == *getType();
146std::unique_ptr<rvsdg::Operation>
149 return std::make_unique<CopysignOperation>(*
this);
155 if (!is<const FloatingPointType>(type) && !isVectorOf<const FloatingPointType>(*type))
157 throw std::runtime_error(
"CopysignOperation::checkType: Expected floating point type.");
166 const auto operation =
dynamic_cast<const RIntOperation *
>(&other);
167 return operation && *operation->
getType() == *getType();
176std::unique_ptr<rvsdg::Operation>
179 return std::make_unique<RIntOperation>(*
this);
185 if (!is<const FloatingPointType>(type) && !isVectorOf<const FloatingPointType>(*type))
187 throw std::runtime_error(
"RIntOperation::checkType: Expected floating point type.");
std::unique_ptr< Operation > copy() const override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::string debug_string() const override
~CeilOperation() noexcept override
std::string debug_string() const override
~CopysignOperation() noexcept override
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::unique_ptr< Operation > copy() const override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
std::shared_ptr< const rvsdg::Type > getType() const noexcept
std::string debug_string() const override
~FloorOperation() noexcept override
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::unique_ptr< Operation > copy() const override
~RIntOperation() noexcept override
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::string debug_string() const override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
std::unique_ptr< Operation > copy() const override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
std::unique_ptr< Operation > copy() const override
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::string debug_string() const override
~RoundOperation() noexcept override
~TruncIntrinsicOperation() noexcept override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
std::string debug_string() const override
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
std::unique_ptr< Operation > copy() const override
Global memory state passed between functions.
static std::string strfmt(Args... args)