7 #ifndef JLM_RVSDG_BITSTRING_SLICE_HPP
8 #define JLM_RVSDG_BITSTRING_SLICE_HPP
33 [[nodiscard]] std::string
51 return low_ + std::static_pointer_cast<const BitType>(
result(0))->nbits();
54 [[nodiscard]] std::unique_ptr<Operation>
55 copy()
const override;
60 return *std::static_pointer_cast<const BitType>(
argument(0));
unop_reduction_path_t can_reduce_operand(const jlm::rvsdg::Output *arg) const noexcept override
bool operator==(const Operation &other) const noexcept override
std::unique_ptr< Operation > copy() const override
~BitSliceOperation() noexcept override
jlm::rvsdg::Output * reduce_operand(unop_reduction_path_t path, jlm::rvsdg::Output *arg) const override
std::string debug_string() const override
const Type & argument_type() const noexcept
size_t high() const noexcept
size_t low() const noexcept
const std::shared_ptr< const rvsdg::Type > & argument(size_t index) const noexcept
const std::shared_ptr< const rvsdg::Type > & result(size_t index) const noexcept
size_t unop_reduction_path_t
jlm::rvsdg::Output * bitslice(jlm::rvsdg::Output *argument, size_t low, size_t high)
Create bitslice.