18 std::optional<exprt> vector2,
25 if(vector2.has_value())
26 op1() = std::move(*vector2);
78 for(
const auto &enum_value : enum_values)
byte_extract_exprt make_byte_extract(const exprt &_op, const exprt &_offset, const typet &_type)
Construct a byte_extract_exprt with endianness and byte width matching the current configuration.
API to expression classes that are internal to the C frontend.
bitvector_typet c_index_type()
const c_enum_tag_typet & to_c_enum_tag_type(const typet &type)
Cast a typet to a c_enum_tag_typet.
A base class for expressions that are predicates, i.e., Boolean-typed, and that take exactly two argu...
byte_extract_exprt lower() const
std::vector< c_enum_membert > memberst
A constant literal expression.
const irep_idt & get_value() const
exprt lower(const namespacet &ns) const
Base class for all expressions.
std::vector< exprt > operandst
typet & type()
Return the type of the expression.
The trinary if-then-else operator.
A base class for multi-ary expressions Associativity is not specified.
const union_typet & follow_tag(const union_tag_typet &) const
Follow type tag of union type.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
operandst & operands()=delete
remove all operand methods
const vector_typet & type() const
vector_exprt lower() const
shuffle_vector_exprt(exprt vector1, std::optional< exprt > vector2, exprt::operandst indices)
const exprt & vector2() const
const exprt & vector1() const
const exprt::operandst & indices() const
bool has_two_input_vectors() const
The type of an expression, extends irept.
Vector constructor from list of elements.
const constant_exprt & size() const
const typet & element_type() const
The type of the elements of the vector.
typet index_type() const
The type of any index expression into an instance of this type.
exprt simplify_expr(exprt src, const namespacet &ns)
#define CHECK_RETURN(CONDITION)
#define PRECONDITION(CONDITION)
exprt disjunction(const exprt::operandst &op)
1) generates a disjunction for two or more operands 2) for one operand, returns the operand 3) return...
const vector_typet & to_vector_type(const typet &type)
Cast a typet to a vector_typet.