6 #ifndef JLM_RVSDG_BITSTRING_COMPARISON_IMPL_HPP
7 #define JLM_RVSDG_BITSTRING_COMPARISON_IMPL_HPP
14 template<
typename reduction, const
char * name, enum BinaryOperation::flags opflags>
18 template<
typename reduction, const
char * name, enum BinaryOperation::flags opflags>
27 template<
typename reduction, const
char * name, enum BinaryOperation::flags opflags>
33 switch (reduction()(arg1, arg2))
44 template<
typename reduction, const
char * name, enum BinaryOperation::flags opflags>
51 template<
typename reduction, const
char * name, enum BinaryOperation::flags opflags>
58 template<
typename reduction, const
char * name, enum BinaryOperation::flags opflags>
59 std::unique_ptr<Operation>
62 return std::make_unique<MakeBitComparisonOperation>(*
this);
65 template<
typename reduction, const
char * name, enum BinaryOperation::flags opflags>
66 std::unique_ptr<BitCompareOperation>
69 return std::make_unique<MakeBitComparisonOperation>(nbits);
const BitType & type() const noexcept
enum BinaryOperation::flags flags() const noexcept override
std::string debug_string() const override
compare_result reduce_constants(const BitValueRepresentation &arg1, const BitValueRepresentation &arg2) const override
std::unique_ptr< BitCompareOperation > create(size_t nbits) const override
std::unique_ptr< Operation > copy() const override
~MakeBitComparisonOperation() noexcept override
bool operator==(const Operation &other) const noexcept override
static std::string type(const Node *n)
static std::string strfmt(Args... args)