LeftShiftNoOverflowNode

Bitwise left-shift with no-overflow semantics; shifts in zeros.

Shift amount must be no greater than the number of input bits, otherwise results in poison. Furthermore, this operation guarantees that no 1 bits will be shifted off the initial word size (so the operand can never be negative). In other words, the result is treated as multiplication by a power of two and it must fit within the given bit length, otherwise results in poison.

Members

Functions

opEquals
bool opEquals(const(LeftShiftNoOverflowNode) rhs)

Equivalence <=> structural equality.

opIndex
inout(InEdge)* opIndex(InEdge.ID slot)

See Node.opIndex.

toHash
hash_t toHash()

Semantic hash.

Properties

inEdges
InEdgeIterator!Callable inEdges [@property getter]

Provides an iterator over this node's in-edges.

outEdges
OutEdgeIterator!Callable outEdges [@property getter]

Provides an iterator over this node's out-edges.

Static functions

dispose
void dispose(LeftShiftNoOverflowNode* self)

Frees all resources allocated by this node and sets it to an uninitialized state.

initialize
err_t initialize(LeftShiftNoOverflowNode* self)

Initializes a shift node.

Variables

input
OutEdge input;

Initial bit pattern being shifted.

output
InEdge output;

Resulting bit pattern.

shift
OutEdge shift;

Number of times the shift is performed.

Mixed In Members

From mixin NodeInheritance

opPostMove
void opPostMove(const(This) old)

Post-move adjusts in-edge slots' owner pointer.

See Also