use crate::synthesis::helpers::{PuzzleDestination, PuzzleInstructionType, PuzzleOperand};
use console::{
prelude::Zero,
program::{Field, Literal, LiteralType, Network},
types::{I8, I16, I32, I64, I128, U8, U16, U32, U64, U128},
};
type Instruction = PuzzleInstructionType;
type Operand<N> = PuzzleOperand<N>;
type Destination = PuzzleDestination;
pub type InstructionSet<N> = Vec<(Vec<(Instruction, Vec<Operand<N>>, Vec<Destination>)>, u16)>;
#[rustfmt::skip]
pub fn instruction_set<N: Network>() -> InstructionSet<N> {
const DEFAULT: u16 = 512;
const DEFAULT_BOOLEAN: u16 = 4;
const DEFAULT_U8: u16 = 4;
const DEFAULT_U16: u16 = 256;
const DEFAULT_U32: u16 = 512;
const DEFAULT_U64: u16 = 512;
const DEFAULT_U128: u16 = 512;
const DEFAULT_I8: u16 = 4;
const DEFAULT_I16: u16 = 256;
const DEFAULT_I32: u16 = 512;
const DEFAULT_I64: u16 = 512;
const DEFAULT_I128: u16 = 512;
const NUM_CAST: u16 = 200;
const NUM_POWER: u16 = 20;
const VERY_LOW: u16 = 4;
const LOW: u16 = 40;
const MEDIUM_LOW: u16 = 128;
const DIV_DIVIDER: u16 = 128;
const U128_DIVIDER: u16 = 512;
vec![
(vec![(Instruction::Abs, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::Abs, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::Abs, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::Abs, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::Abs, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::AbsWrapped, vec![Operand::Register(LiteralType::I8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::AbsWrapped, vec![Operand::Register(LiteralType::I16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], LOW),
(vec![(Instruction::AbsWrapped, vec![Operand::Register(LiteralType::I32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], LOW),
(vec![(Instruction::AbsWrapped, vec![Operand::Register(LiteralType::I64)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], LOW),
(vec![(Instruction::AbsWrapped, vec![Operand::Register(LiteralType::I128)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], LOW),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], DEFAULT),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::Add, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], DEFAULT_I8),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], DEFAULT_I16),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], DEFAULT_I32),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], DEFAULT_I64),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], DEFAULT_I128),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], DEFAULT_U8),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], DEFAULT_U16),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], DEFAULT_U32),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], DEFAULT_U64),
(vec![(Instruction::AddWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], DEFAULT_U128),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![Destination::Ephemeral(LiteralType::Boolean, 0)])], DEFAULT_BOOLEAN),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], LOW),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], LOW),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], LOW),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], LOW),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], LOW),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], LOW),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], LOW),
(vec![(Instruction::And, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], LOW),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![])], 0),
(vec![(Instruction::AssertEq, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![])], 0),
(vec![(Instruction::AssertNeq, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![])], 0),
(vec![(Instruction::Cast, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::Cast, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::Cast, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::Cast, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::Cast, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], NUM_CAST),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], NUM_CAST),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], NUM_CAST),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], NUM_CAST),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], NUM_CAST),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], NUM_CAST),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], NUM_CAST),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], NUM_CAST),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], NUM_CAST),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)]),
(Instruction::CastLossy, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], NUM_CAST),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::Field), Operand::Literal(Literal::Field(Field::zero()))], vec![Destination::Ephemeral(LiteralType::Boolean, 0)]),
(Instruction::Ternary, vec![Operand::Ephemeral(LiteralType::Boolean, 0), Operand::Input(LiteralType::Field, 0), Operand::Register(LiteralType::Field)], vec![Destination::Ephemeral(LiteralType::Field, 1)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::Field, 1), Operand::Ephemeral(LiteralType::Field, 1)], vec![Destination::Register(LiteralType::Field)])], VERY_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I8), Operand::Literal(Literal::I8(I8::new(1)))], vec![Destination::Ephemeral(LiteralType::I8, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::I8, 1), Operand::Ephemeral(LiteralType::I8, 0)], vec![Destination::Ephemeral(LiteralType::I8, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I16), Operand::Literal(Literal::I16(I16::new(1)))], vec![Destination::Ephemeral(LiteralType::I16, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::I16, 1), Operand::Ephemeral(LiteralType::I16, 0)], vec![Destination::Ephemeral(LiteralType::I16, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I32), Operand::Literal(Literal::I32(I32::new(1)))], vec![Destination::Ephemeral(LiteralType::I32, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::I32, 1), Operand::Ephemeral(LiteralType::I32, 0)], vec![Destination::Ephemeral(LiteralType::I32, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I64), Operand::Literal(Literal::I64(I64::new(1)))], vec![Destination::Ephemeral(LiteralType::I64, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::I64, 1), Operand::Ephemeral(LiteralType::I64, 0)], vec![Destination::Ephemeral(LiteralType::I64, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I128), Operand::Literal(Literal::I128(I128::new(1)))], vec![Destination::Ephemeral(LiteralType::I128, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::I128, 1), Operand::Ephemeral(LiteralType::I128, 0)], vec![Destination::Ephemeral(LiteralType::I128, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U8), Operand::Literal(Literal::U8(U8::new(1)))], vec![Destination::Ephemeral(LiteralType::U8, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::U8, 1), Operand::Ephemeral(LiteralType::U8, 0)], vec![Destination::Ephemeral(LiteralType::U8, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U16), Operand::Literal(Literal::U16(U16::new(1)))], vec![Destination::Ephemeral(LiteralType::U16, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::U16, 1), Operand::Ephemeral(LiteralType::U16, 0)], vec![Destination::Ephemeral(LiteralType::U16, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U32), Operand::Literal(Literal::U32(U32::new(1)))], vec![Destination::Ephemeral(LiteralType::U32, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::U32, 1), Operand::Ephemeral(LiteralType::U32, 0)], vec![Destination::Ephemeral(LiteralType::U32, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U64), Operand::Literal(Literal::U64(U64::new(1)))], vec![Destination::Ephemeral(LiteralType::U64, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::U64, 1), Operand::Ephemeral(LiteralType::U64, 0)], vec![Destination::Ephemeral(LiteralType::U64, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U128), Operand::Literal(Literal::U128(U128::new(1)))], vec![Destination::Ephemeral(LiteralType::U128, 0)]),
(Instruction::Div, vec![Operand::RegisterOffset(LiteralType::U128, 1), Operand::Ephemeral(LiteralType::U128, 0)], vec![Destination::Ephemeral(LiteralType::U128, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I8), Operand::Literal(Literal::I8(I8::new(1)))], vec![Destination::Ephemeral(LiteralType::I8, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::I8, 1), Operand::Ephemeral(LiteralType::I8, 0)], vec![Destination::Ephemeral(LiteralType::I8, 1)])], 1),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I16), Operand::Literal(Literal::I16(I16::new(1)))], vec![Destination::Ephemeral(LiteralType::I16, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::I16, 1), Operand::Ephemeral(LiteralType::I16, 0)], vec![Destination::Ephemeral(LiteralType::I16, 1)])], DEFAULT_I16 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I32), Operand::Literal(Literal::I32(I32::new(1)))], vec![Destination::Ephemeral(LiteralType::I32, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::I32, 1), Operand::Ephemeral(LiteralType::I32, 0)], vec![Destination::Ephemeral(LiteralType::I32, 1)])], DEFAULT_I32 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I64), Operand::Literal(Literal::I64(I64::new(1)))], vec![Destination::Ephemeral(LiteralType::I64, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::I64, 1), Operand::Ephemeral(LiteralType::I64, 0)], vec![Destination::Ephemeral(LiteralType::I64, 1)])], DEFAULT_I64 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I128), Operand::Literal(Literal::I128(I128::new(1)))], vec![Destination::Ephemeral(LiteralType::I128, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::I128, 1), Operand::Ephemeral(LiteralType::I128, 0)], vec![Destination::Ephemeral(LiteralType::I128, 1)])], DEFAULT_I128 / U128_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U8), Operand::Literal(Literal::U8(U8::new(1)))], vec![Destination::Ephemeral(LiteralType::U8, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::U8, 1), Operand::Ephemeral(LiteralType::U8, 0)], vec![Destination::Ephemeral(LiteralType::U8, 1)])], 1),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U16), Operand::Literal(Literal::U16(U16::new(1)))], vec![Destination::Ephemeral(LiteralType::U16, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::U16, 1), Operand::Ephemeral(LiteralType::U16, 0)], vec![Destination::Ephemeral(LiteralType::U16, 1)])], DEFAULT_U16 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U32), Operand::Literal(Literal::U32(U32::new(1)))], vec![Destination::Ephemeral(LiteralType::U32, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::U32, 1), Operand::Ephemeral(LiteralType::U32, 0)], vec![Destination::Ephemeral(LiteralType::U32, 1)])], DEFAULT_U32 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U64), Operand::Literal(Literal::U64(U64::new(1)))], vec![Destination::Ephemeral(LiteralType::U64, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::U64, 1), Operand::Ephemeral(LiteralType::U64, 0)], vec![Destination::Ephemeral(LiteralType::U64, 1)])], DEFAULT_U64 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U128), Operand::Literal(Literal::U128(U128::new(1)))], vec![Destination::Ephemeral(LiteralType::U128, 0)]),
(Instruction::DivWrapped, vec![Operand::RegisterOffset(LiteralType::U128, 1), Operand::Ephemeral(LiteralType::U128, 0)], vec![Destination::Ephemeral(LiteralType::U128, 1)])], DEFAULT_U128 / U128_DIVIDER),
(vec![(Instruction::Double, vec![Operand::Register(LiteralType::Field)], vec![Destination::Ephemeral(LiteralType::Field, 0)])], 0),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_I8),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_U8),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gt, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_I8),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_U8),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Gte, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 1),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 1),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 1),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 1),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 1),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 1),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 1),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 1),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 1),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 1),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp768, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashBhp1024, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashKeccak512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 1),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 1),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 1),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 1),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 1),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 1),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed64, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPed128, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd2, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd4, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashPsd8, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3256, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3384, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Field)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::HashSha3512, vec![Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::Field), Operand::Literal(Literal::Field(Field::zero()))], vec![Destination::Ephemeral(LiteralType::Boolean, 0)]),
(Instruction::Ternary, vec![Operand::Ephemeral(LiteralType::Boolean, 0), Operand::Input(LiteralType::Field, 0), Operand::Register(LiteralType::Field)], vec![Destination::Ephemeral(LiteralType::Field, 1)]),
(Instruction::Inv, vec![Operand::Ephemeral(LiteralType::Field, 1)], vec![Destination::Register(LiteralType::Field)])], VERY_LOW),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_BOOLEAN),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_I8),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_U8),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsEq, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::IsNeq, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], VERY_LOW),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_I8),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_U8),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lt, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_I8),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_U8),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Lte, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::Boolean)])], MEDIUM_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U8), Operand::Literal(Literal::U8(U8::new(1)))], vec![Destination::Ephemeral(LiteralType::U8, 0)]),
(Instruction::Mod, vec![Operand::RegisterOffset(LiteralType::U8, 1), Operand::Ephemeral(LiteralType::U8, 0)], vec![Destination::Ephemeral(LiteralType::U8, 1)])], 1),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U16), Operand::Literal(Literal::U16(U16::new(1)))], vec![Destination::Ephemeral(LiteralType::U16, 0)]),
(Instruction::Mod, vec![Operand::RegisterOffset(LiteralType::U16, 1), Operand::Ephemeral(LiteralType::U16, 0)], vec![Destination::Ephemeral(LiteralType::U16, 1)])], DEFAULT_U16 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U32), Operand::Literal(Literal::U32(U32::new(1)))], vec![Destination::Ephemeral(LiteralType::U32, 0)]),
(Instruction::Mod, vec![Operand::RegisterOffset(LiteralType::U32, 1), Operand::Ephemeral(LiteralType::U32, 0)], vec![Destination::Ephemeral(LiteralType::U32, 1)])], DEFAULT_U32 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U64), Operand::Literal(Literal::U64(U64::new(1)))], vec![Destination::Ephemeral(LiteralType::U64, 0)]),
(Instruction::Mod, vec![Operand::RegisterOffset(LiteralType::U64, 1), Operand::Ephemeral(LiteralType::U64, 0)], vec![Destination::Ephemeral(LiteralType::U64, 1)])], DEFAULT_U64 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U128), Operand::Literal(Literal::U128(U128::new(1)))], vec![Destination::Ephemeral(LiteralType::U128, 0)]),
(Instruction::Mod, vec![Operand::RegisterOffset(LiteralType::U128, 1), Operand::Ephemeral(LiteralType::U128, 0)], vec![Destination::Ephemeral(LiteralType::U128, 1)])], DEFAULT_U128 / U128_DIVIDER),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], DEFAULT),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::Mul, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], DEFAULT_I8),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], LOW),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], LOW),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], LOW),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], LOW),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], DEFAULT_U8),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], LOW),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], LOW),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], LOW),
(vec![(Instruction::MulWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], LOW),
(vec![(Instruction::Nand, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_BOOLEAN),
(vec![(Instruction::Neg, vec![Operand::Register(LiteralType::Field)], vec![Destination::Ephemeral(LiteralType::Field, 0)])], 0),
(vec![
(Instruction::IsEq, vec![Operand::Register(LiteralType::I8), Operand::Literal(Literal::I8(I8::new(-128)))], vec![Destination::Register(LiteralType::Boolean)]),
(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I8), Operand::Literal(Literal::I8(I8::new(1)))], vec![Destination::Ephemeral(LiteralType::I8, 0)]),
(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Ephemeral(LiteralType::I8, 0), Operand::Register(LiteralType::I8)], vec![Destination::Ephemeral(LiteralType::I8, 1)]),
(Instruction::Neg, vec![Operand::Ephemeral(LiteralType::I8, 1)], vec![Destination::Ephemeral(LiteralType::I8, 2)]),], DEFAULT_I8),
(vec![
(Instruction::IsEq, vec![Operand::Register(LiteralType::I16), Operand::Literal(Literal::I16(I16::new(-32768)))], vec![Destination::Register(LiteralType::Boolean)]),
(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I16), Operand::Literal(Literal::I16(I16::new(1)))], vec![Destination::Ephemeral(LiteralType::I16, 0)]),
(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Ephemeral(LiteralType::I16, 0), Operand::Register(LiteralType::I16)], vec![Destination::Ephemeral(LiteralType::I16, 1)]),
(Instruction::Neg, vec![Operand::Ephemeral(LiteralType::I16, 1)], vec![Destination::Ephemeral(LiteralType::I16, 2)]),], DEFAULT_I16 / 2),
(vec![
(Instruction::IsEq, vec![Operand::Register(LiteralType::I32), Operand::Literal(Literal::I32(I32::new(-2147483648)))], vec![Destination::Register(LiteralType::Boolean)]),
(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I32), Operand::Literal(Literal::I32(I32::new(1)))], vec![Destination::Ephemeral(LiteralType::I32, 0)]),
(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Ephemeral(LiteralType::I32, 0), Operand::Register(LiteralType::I32)], vec![Destination::Ephemeral(LiteralType::I32, 1)]),
(Instruction::Neg, vec![Operand::Ephemeral(LiteralType::I32, 1)], vec![Destination::Ephemeral(LiteralType::I32, 2)]),], DEFAULT_I32 / 2),
(vec![
(Instruction::IsEq, vec![Operand::Register(LiteralType::I64), Operand::Literal(Literal::I64(I64::new(-9223372036854775808)))], vec![Destination::Register(LiteralType::Boolean)]),
(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I64), Operand::Literal(Literal::I64(I64::new(1)))], vec![Destination::Ephemeral(LiteralType::I64, 0)]),
(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Ephemeral(LiteralType::I64, 0), Operand::Register(LiteralType::I64)], vec![Destination::Ephemeral(LiteralType::I64, 1)]),
(Instruction::Neg, vec![Operand::Ephemeral(LiteralType::I64, 1)], vec![Destination::Ephemeral(LiteralType::I64, 2)]),], DEFAULT_I64 / 2),
(vec![
(Instruction::IsEq, vec![Operand::Register(LiteralType::I128), Operand::Literal(Literal::I128(I128::new(-170141183460469231731687303715884105728)))], vec![Destination::Register(LiteralType::Boolean)]),
(Instruction::AddWrapped, vec![Operand::Register(LiteralType::I128), Operand::Literal(Literal::I128(I128::new(1)))], vec![Destination::Ephemeral(LiteralType::I128, 0)]),
(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Ephemeral(LiteralType::I128, 0), Operand::Register(LiteralType::I128)], vec![Destination::Ephemeral(LiteralType::I128, 1)]),
(Instruction::Neg, vec![Operand::Ephemeral(LiteralType::I128, 1)], vec![Destination::Ephemeral(LiteralType::I128, 2)]),], DEFAULT_I128 / 2),
(vec![(Instruction::Nor, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_BOOLEAN),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::Boolean)], vec![Destination::Ephemeral(LiteralType::Boolean, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::I8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::I16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::I32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::I64)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::I128)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::U64)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], VERY_LOW),
(vec![(Instruction::Not, vec![Operand::Register(LiteralType::U128)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], VERY_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![Destination::Ephemeral(LiteralType::Boolean, 0)])], DEFAULT_BOOLEAN),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], VERY_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], VERY_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], VERY_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], VERY_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], VERY_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], VERY_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], VERY_LOW),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], VERY_LOW),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Register(LiteralType::Field)])], VERY_LOW),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], 0),
(vec![(Instruction::Pow, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], 0),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], NUM_POWER),
(vec![(Instruction::PowWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], NUM_POWER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I8), Operand::Literal(Literal::I8(I8::new(1)))], vec![Destination::Ephemeral(LiteralType::I8, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::I8, 1), Operand::Ephemeral(LiteralType::I8, 0)], vec![Destination::Ephemeral(LiteralType::I8, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I16), Operand::Literal(Literal::I16(I16::new(1)))], vec![Destination::Ephemeral(LiteralType::I16, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::I16, 1), Operand::Ephemeral(LiteralType::I16, 0)], vec![Destination::Ephemeral(LiteralType::I16, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I32), Operand::Literal(Literal::I32(I32::new(1)))], vec![Destination::Ephemeral(LiteralType::I32, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::I32, 1), Operand::Ephemeral(LiteralType::I32, 0)], vec![Destination::Ephemeral(LiteralType::I32, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I64), Operand::Literal(Literal::I64(I64::new(1)))], vec![Destination::Ephemeral(LiteralType::I64, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::I64, 1), Operand::Ephemeral(LiteralType::I64, 0)], vec![Destination::Ephemeral(LiteralType::I64, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I128), Operand::Literal(Literal::I128(I128::new(1)))], vec![Destination::Ephemeral(LiteralType::I128, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::I128, 1), Operand::Ephemeral(LiteralType::I128, 0)], vec![Destination::Ephemeral(LiteralType::I128, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U8), Operand::Literal(Literal::U8(U8::new(1)))], vec![Destination::Ephemeral(LiteralType::U8, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::U8, 1), Operand::Ephemeral(LiteralType::U8, 0)], vec![Destination::Ephemeral(LiteralType::U8, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U16), Operand::Literal(Literal::U16(U16::new(1)))], vec![Destination::Ephemeral(LiteralType::U16, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::U16, 1), Operand::Ephemeral(LiteralType::U16, 0)], vec![Destination::Ephemeral(LiteralType::U16, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U32), Operand::Literal(Literal::U32(U32::new(1)))], vec![Destination::Ephemeral(LiteralType::U32, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::U32, 1), Operand::Ephemeral(LiteralType::U32, 0)], vec![Destination::Ephemeral(LiteralType::U32, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U64), Operand::Literal(Literal::U64(U64::new(1)))], vec![Destination::Ephemeral(LiteralType::U64, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::U64, 1), Operand::Ephemeral(LiteralType::U64, 0)], vec![Destination::Ephemeral(LiteralType::U64, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U128), Operand::Literal(Literal::U128(U128::new(1)))], vec![Destination::Ephemeral(LiteralType::U128, 0)]),
(Instruction::Rem, vec![Operand::RegisterOffset(LiteralType::U128, 1), Operand::Ephemeral(LiteralType::U128, 0)], vec![Destination::Ephemeral(LiteralType::U128, 1)])], 0),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I8), Operand::Literal(Literal::I8(I8::new(1)))], vec![Destination::Ephemeral(LiteralType::I8, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::I8, 1), Operand::Ephemeral(LiteralType::I8, 0)], vec![Destination::Ephemeral(LiteralType::I8, 1)])], 1),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I16), Operand::Literal(Literal::I16(I16::new(1)))], vec![Destination::Ephemeral(LiteralType::I16, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::I16, 1), Operand::Ephemeral(LiteralType::I16, 0)], vec![Destination::Ephemeral(LiteralType::I16, 1)])], DEFAULT_I16 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I32), Operand::Literal(Literal::I32(I32::new(1)))], vec![Destination::Ephemeral(LiteralType::I32, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::I32, 1), Operand::Ephemeral(LiteralType::I32, 0)], vec![Destination::Ephemeral(LiteralType::I32, 1)])], DEFAULT_I32 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I64), Operand::Literal(Literal::I64(I64::new(1)))], vec![Destination::Ephemeral(LiteralType::I64, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::I64, 1), Operand::Ephemeral(LiteralType::I64, 0)], vec![Destination::Ephemeral(LiteralType::I64, 1)])], DEFAULT_I64 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::I128), Operand::Literal(Literal::I128(I128::new(1)))], vec![Destination::Ephemeral(LiteralType::I128, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::I128, 1), Operand::Ephemeral(LiteralType::I128, 0)], vec![Destination::Ephemeral(LiteralType::I128, 1)])], DEFAULT_I128 / U128_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U8), Operand::Literal(Literal::U8(U8::new(1)))], vec![Destination::Ephemeral(LiteralType::U8, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::U8, 1), Operand::Ephemeral(LiteralType::U8, 0)], vec![Destination::Ephemeral(LiteralType::U8, 1)])], 1),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U16), Operand::Literal(Literal::U16(U16::new(1)))], vec![Destination::Ephemeral(LiteralType::U16, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::U16, 1), Operand::Ephemeral(LiteralType::U16, 0)], vec![Destination::Ephemeral(LiteralType::U16, 1)])], DEFAULT_U16 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U32), Operand::Literal(Literal::U32(U32::new(1)))], vec![Destination::Ephemeral(LiteralType::U32, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::U32, 1), Operand::Ephemeral(LiteralType::U32, 0)], vec![Destination::Ephemeral(LiteralType::U32, 1)])], DEFAULT_U32 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U64), Operand::Literal(Literal::U64(U64::new(1)))], vec![Destination::Ephemeral(LiteralType::U64, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::U64, 1), Operand::Ephemeral(LiteralType::U64, 0)], vec![Destination::Ephemeral(LiteralType::U64, 1)])], DEFAULT_U64 / DIV_DIVIDER),
(vec![(Instruction::Or, vec![Operand::Register(LiteralType::U128), Operand::Literal(Literal::U128(U128::new(1)))], vec![Destination::Ephemeral(LiteralType::U128, 0)]),
(Instruction::RemWrapped, vec![Operand::RegisterOffset(LiteralType::U128, 1), Operand::Ephemeral(LiteralType::U128, 0)], vec![Destination::Ephemeral(LiteralType::U128, 1)])], DEFAULT_U128 / U128_DIVIDER),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], 0),
(vec![(Instruction::Shl, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], 0),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], LOW),
(vec![(Instruction::ShlWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], LOW),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], 0),
(vec![(Instruction::Shr, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], 0),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], VERY_LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], VERY_LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], VERY_LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], VERY_LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], VERY_LOW),
(vec![(Instruction::ShrWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], VERY_LOW),
(vec![(Instruction::Sqrt, vec![Operand::Register(LiteralType::Field)], vec![Destination::Ephemeral(LiteralType::Field, 0)])], 0),
(vec![(Instruction::Square, vec![Operand::RegisterOffset(LiteralType::Field, 1)], vec![Destination::Register(LiteralType::Field)])], 4 * DEFAULT),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::Field), Operand::Register(LiteralType::Field)], vec![Destination::Ephemeral(LiteralType::Field, 0)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], 0),
(vec![(Instruction::Sub, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], 0),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], VERY_LOW),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], DEFAULT_I16/4),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], DEFAULT_I32/4),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], DEFAULT_I64/4),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], DEFAULT_I128/4),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], VERY_LOW),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], DEFAULT_U16/4),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], DEFAULT_U32/4),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], DEFAULT_U64/4),
(vec![(Instruction::SubWrapped, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], DEFAULT_U128/4),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![Destination::Ephemeral(LiteralType::Boolean, 0)])], 0),
(vec![(Instruction::IsEq, vec![Operand::RegisterOffset(LiteralType::Field, 1), Operand::Literal(Literal::Field(Field::zero()))], vec![Destination::Ephemeral(LiteralType::Boolean, 0)]),
(Instruction::Ternary, vec![Operand::Ephemeral(LiteralType::Boolean, 0), Operand::Input(LiteralType::Field, 0), Operand::RegisterOffset(LiteralType::Field, 1)], vec![Destination::Register(LiteralType::Field)])], DEFAULT),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Group), Operand::Register(LiteralType::Group)], vec![Destination::Ephemeral(LiteralType::Group, 0)])], 0),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Ephemeral(LiteralType::I8, 0)])], DEFAULT_I8),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Ephemeral(LiteralType::I16, 0)])], LOW),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Ephemeral(LiteralType::I32, 0)])], LOW),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Ephemeral(LiteralType::I64, 0)])], LOW),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Ephemeral(LiteralType::I128, 0)])], LOW),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Ephemeral(LiteralType::U8, 0)])], DEFAULT_U8),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Ephemeral(LiteralType::U16, 0)])], LOW),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Ephemeral(LiteralType::U32, 0)])], LOW),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Ephemeral(LiteralType::U64, 0)])], LOW),
(vec![(Instruction::Ternary, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Ephemeral(LiteralType::U128, 0)])], LOW),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::Boolean), Operand::Register(LiteralType::Boolean)], vec![Destination::Register(LiteralType::Boolean)])], DEFAULT_BOOLEAN),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::I8), Operand::Register(LiteralType::I8)], vec![Destination::Register(LiteralType::I8)])], DEFAULT_I8),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::I16), Operand::Register(LiteralType::I16)], vec![Destination::Register(LiteralType::I16)])], DEFAULT_I16),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::I32), Operand::Register(LiteralType::I32)], vec![Destination::Register(LiteralType::I32)])], DEFAULT_I32),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::I64), Operand::Register(LiteralType::I64)], vec![Destination::Register(LiteralType::I64)])], DEFAULT_I64),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::I128), Operand::Register(LiteralType::I128)], vec![Destination::Register(LiteralType::I128)])], DEFAULT_I128),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::U8), Operand::Register(LiteralType::U8)], vec![Destination::Register(LiteralType::U8)])], DEFAULT_U8),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::U16), Operand::Register(LiteralType::U16)], vec![Destination::Register(LiteralType::U16)])], DEFAULT_U16),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::U32), Operand::Register(LiteralType::U32)], vec![Destination::Register(LiteralType::U32)])], DEFAULT_U32),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::U64), Operand::Register(LiteralType::U64)], vec![Destination::Register(LiteralType::U64)])], DEFAULT_U64),
(vec![(Instruction::Xor, vec![Operand::Register(LiteralType::U128), Operand::Register(LiteralType::U128)], vec![Destination::Register(LiteralType::U128)])], DEFAULT_U128),
]
}
#[cfg(test)]
mod test {
use super::*;
use crate::synthesis::helpers::NUM_SEQUENCE_INSTRUCTIONS;
use std::collections::HashSet;
type CurrentNetwork = console::network::MainnetV0;
#[test]
fn check_weights_are_valid() {
let instruction_set = instruction_set::<CurrentNetwork>();
let mut sum = 0u16;
for (_, weight) in instruction_set {
let result = sum.checked_add(weight);
assert!(result.is_some());
sum = result.unwrap();
}
}
#[test]
fn check_ephemeral_registers_are_valid() {
let instruction_set = instruction_set::<CurrentNetwork>();
for (sequence, _) in instruction_set {
let mut next_expected_ephemeral_register = 0u16;
let mut ephemeral_registers = HashSet::new();
for (_, operands, destinations) in sequence {
for operand in operands {
if let PuzzleOperand::Ephemeral(_, index) = operand {
assert!(ephemeral_registers.contains(&index));
}
}
for destination in destinations {
if let PuzzleDestination::Ephemeral(_, index) = destination {
assert_eq!(index, next_expected_ephemeral_register);
next_expected_ephemeral_register += 1;
ephemeral_registers.insert(index);
}
}
}
}
}
#[test]
fn check_register_offsets_are_valid() {
let instruction_set = instruction_set::<CurrentNetwork>();
for (sequence, _) in instruction_set {
for (_, operands, _) in sequence {
for operand in operands {
if let PuzzleOperand::RegisterOffset(_, offset) = operand {
assert!(offset <= 1);
}
}
}
}
}
#[test]
fn check_that_instructions_are_valid() {
let instruction_set = instruction_set::<CurrentNetwork>();
for (sequence, _) in instruction_set {
assert!(sequence.len() <= NUM_SEQUENCE_INSTRUCTIONS);
for (instruction, _, _) in sequence {
assert!(!matches!(instruction, Instruction::BranchEq | Instruction::BranchNeq));
}
}
}
}