Witness-generating implementation of bitwise AND/OR/XOR operations.
std::pair< MemoryValue, MemoryValue > simd_xor_op_64(const MemoryValue &a1, const MemoryValue &b1, const MemoryValue &a2, const MemoryValue &b2) override
Two independent U64 XORs packed into one U128 sub-trace row (SIMD-64). See simd_and_op_64.
MemoryValue and_op(const MemoryValue &a, const MemoryValue &b) override
Perform bitwise AND on two tagged memory values.
std::pair< MemoryValue, MemoryValue > simd_and_op_64(const MemoryValue &a1, const MemoryValue &b1, const MemoryValue &a2, const MemoryValue &b2) override
Two independent U64 ANDs packed into one U128 sub-trace row (SIMD-64).
Bitwise(EventEmitterInterface< BitwiseEvent > &event_emitter)
EventEmitterInterface< BitwiseEvent > & events
MemoryValue or_op(const MemoryValue &a, const MemoryValue &b) override
Perform bitwise OR on two tagged memory values.
MemoryValue xor_op(const MemoryValue &a, const MemoryValue &b) override
Perform bitwise XOR on two tagged memory values.
EventEmitter< DataCopyEvent > event_emitter
AVM range check gadget for witness generation.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept