6#ifndef JLM_LLVM_IR_OPERATORS_FLOATINGPOINTTESTINTRINSICOPERATIONS_HPP
7#define JLM_LLVM_IR_OPERATORS_FLOATINGPOINTTESTINTRINSICOPERATIONS_HPP
35 operator==(
const Operation & other)
const noexcept override;
40 [[nodiscard]] std::unique_ptr<Operation>
41 copy()
const override;
43 [[nodiscard]] std::shared_ptr<const rvsdg::Type>
49 static std::unique_ptr<ThreeAddressCode>
52 auto operation = std::make_unique<IsFPClassOperation>(operand1.
Type());
64 checkType(
const std::shared_ptr<const rvsdg::Type> & type);
66 static std::shared_ptr<const rvsdg::Type>
bool operator==(const Operation &other) const noexcept override
~IsFPClassOperation() noexcept override
std::unique_ptr< Operation > copy() const override
static void checkType(const std::shared_ptr< const rvsdg::Type > &type)
static std::unique_ptr< ThreeAddressCode > createTac(const Variable &operand1, const Variable &operand2)
static std::shared_ptr< const rvsdg::Type > createResultType(const std::shared_ptr< const rvsdg::Type > &type)
static rvsdg::SimpleNode & createNode(rvsdg::Output &operand1, rvsdg::Output &operand2)
std::string debug_string() const override
std::shared_ptr< const rvsdg::Type > getType() const noexcept
static std::unique_ptr< llvm::ThreeAddressCode > create(std::unique_ptr< rvsdg::SimpleOperation > operation, const std::vector< const Variable * > &operands)
const std::shared_ptr< const jlm::rvsdg::Type > Type() const noexcept
static std::shared_ptr< const BitType > Create(std::size_t nbits)
Creates bit type of specified width.
const std::shared_ptr< const rvsdg::Type > & Type() const noexcept
const std::shared_ptr< const rvsdg::Type > & result(size_t index) const noexcept
SimpleOperation(std::vector< std::shared_ptr< const jlm::rvsdg::Type > > operands, std::vector< std::shared_ptr< const jlm::rvsdg::Type > > results)
Global memory state passed between functions.
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.