#[cfg(any(feature = "doc", target_feature = "sse4.1"))]
macro_rules! blend_shuffle4 {
($a: expr, $b: expr, $imm8: expr) => {
unsafe {
match $imm8 & 0xF {
0x0 => simd_shuffle4($a, $b, [0, 1, 2, 3]),
0x1 => simd_shuffle4($a, $b, [4, 1, 2, 3]),
0x2 => simd_shuffle4($a, $b, [0, 5, 2, 3]),
0x3 => simd_shuffle4($a, $b, [4, 5, 2, 3]),
0x4 => simd_shuffle4($a, $b, [0, 1, 6, 3]),
0x5 => simd_shuffle4($a, $b, [4, 1, 6, 3]),
0x6 => simd_shuffle4($a, $b, [0, 5, 6, 3]),
0x7 => simd_shuffle4($a, $b, [4, 5, 6, 3]),
0x8 => simd_shuffle4($a, $b, [0, 1, 2, 7]),
0x9 => simd_shuffle4($a, $b, [4, 1, 2, 7]),
0xA => simd_shuffle4($a, $b, [0, 5, 2, 7]),
0xB => simd_shuffle4($a, $b, [4, 5, 2, 7]),
0xC => simd_shuffle4($a, $b, [0, 1, 6, 7]),
0xD => simd_shuffle4($a, $b, [4, 1, 6, 7]),
0xE => simd_shuffle4($a, $b, [0, 5, 6, 7]),
0xF => simd_shuffle4($a, $b, [4, 5, 6, 7]),
_ => unreachable!()
}
}
}
}
#[cfg(any(feature = "doc", target_feature = "sse4.1"))]
macro_rules! blend_shuffle8 {
($a: expr, $b: expr, $imm8: expr) => {
unsafe {
match $imm8 & 0xFF {
0x0 => simd_shuffle8($a, $b, [0, 1, 2, 3, 4, 5, 6, 7]),
0x1 => simd_shuffle8($a, $b, [8, 1, 2, 3, 4, 5, 6, 7]),
0x2 => simd_shuffle8($a, $b, [0, 9, 2, 3, 4, 5, 6, 7]),
0x3 => simd_shuffle8($a, $b, [8, 9, 2, 3, 4, 5, 6, 7]),
0x4 => simd_shuffle8($a, $b, [0, 1, 10, 3, 4, 5, 6, 7]),
0x5 => simd_shuffle8($a, $b, [8, 1, 10, 3, 4, 5, 6, 7]),
0x6 => simd_shuffle8($a, $b, [0, 9, 10, 3, 4, 5, 6, 7]),
0x7 => simd_shuffle8($a, $b, [8, 9, 10, 3, 4, 5, 6, 7]),
0x8 => simd_shuffle8($a, $b, [0, 1, 2, 11, 4, 5, 6, 7]),
0x9 => simd_shuffle8($a, $b, [8, 1, 2, 11, 4, 5, 6, 7]),
0xA => simd_shuffle8($a, $b, [0, 9, 2, 11, 4, 5, 6, 7]),
0xB => simd_shuffle8($a, $b, [8, 9, 2, 11, 4, 5, 6, 7]),
0xC => simd_shuffle8($a, $b, [0, 1, 10, 11, 4, 5, 6, 7]),
0xD => simd_shuffle8($a, $b, [8, 1, 10, 11, 4, 5, 6, 7]),
0xE => simd_shuffle8($a, $b, [0, 9, 10, 11, 4, 5, 6, 7]),
0xF => simd_shuffle8($a, $b, [8, 9, 10, 11, 4, 5, 6, 7]),
0x10 => simd_shuffle8($a, $b, [0, 1, 2, 3, 12, 5, 6, 7]),
0x11 => simd_shuffle8($a, $b, [8, 1, 2, 3, 12, 5, 6, 7]),
0x12 => simd_shuffle8($a, $b, [0, 9, 2, 3, 12, 5, 6, 7]),
0x13 => simd_shuffle8($a, $b, [8, 9, 2, 3, 12, 5, 6, 7]),
0x14 => simd_shuffle8($a, $b, [0, 1, 10, 3, 12, 5, 6, 7]),
0x15 => simd_shuffle8($a, $b, [8, 1, 10, 3, 12, 5, 6, 7]),
0x16 => simd_shuffle8($a, $b, [0, 9, 10, 3, 12, 5, 6, 7]),
0x17 => simd_shuffle8($a, $b, [8, 9, 10, 3, 12, 5, 6, 7]),
0x18 => simd_shuffle8($a, $b, [0, 1, 2, 11, 12, 5, 6, 7]),
0x19 => simd_shuffle8($a, $b, [8, 1, 2, 11, 12, 5, 6, 7]),
0x1A => simd_shuffle8($a, $b, [0, 9, 2, 11, 12, 5, 6, 7]),
0x1B => simd_shuffle8($a, $b, [8, 9, 2, 11, 12, 5, 6, 7]),
0x1C => simd_shuffle8($a, $b, [0, 1, 10, 11, 12, 5, 6, 7]),
0x1D => simd_shuffle8($a, $b, [8, 1, 10, 11, 12, 5, 6, 7]),
0x1E => simd_shuffle8($a, $b, [0, 9, 10, 11, 12, 5, 6, 7]),
0x1F => simd_shuffle8($a, $b, [8, 9, 10, 11, 12, 5, 6, 7]),
0x20 => simd_shuffle8($a, $b, [0, 1, 2, 3, 4, 13, 6, 7]),
0x21 => simd_shuffle8($a, $b, [8, 1, 2, 3, 4, 13, 6, 7]),
0x22 => simd_shuffle8($a, $b, [0, 9, 2, 3, 4, 13, 6, 7]),
0x23 => simd_shuffle8($a, $b, [8, 9, 2, 3, 4, 13, 6, 7]),
0x24 => simd_shuffle8($a, $b, [0, 1, 10, 3, 4, 13, 6, 7]),
0x25 => simd_shuffle8($a, $b, [8, 1, 10, 3, 4, 13, 6, 7]),
0x26 => simd_shuffle8($a, $b, [0, 9, 10, 3, 4, 13, 6, 7]),
0x27 => simd_shuffle8($a, $b, [8, 9, 10, 3, 4, 13, 6, 7]),
0x28 => simd_shuffle8($a, $b, [0, 1, 2, 11, 4, 13, 6, 7]),
0x29 => simd_shuffle8($a, $b, [8, 1, 2, 11, 4, 13, 6, 7]),
0x2A => simd_shuffle8($a, $b, [0, 9, 2, 11, 4, 13, 6, 7]),
0x2B => simd_shuffle8($a, $b, [8, 9, 2, 11, 4, 13, 6, 7]),
0x2C => simd_shuffle8($a, $b, [0, 1, 10, 11, 4, 13, 6, 7]),
0x2D => simd_shuffle8($a, $b, [8, 1, 10, 11, 4, 13, 6, 7]),
0x2E => simd_shuffle8($a, $b, [0, 9, 10, 11, 4, 13, 6, 7]),
0x2F => simd_shuffle8($a, $b, [8, 9, 10, 11, 4, 13, 6, 7]),
0x30 => simd_shuffle8($a, $b, [0, 1, 2, 3, 12, 13, 6, 7]),
0x31 => simd_shuffle8($a, $b, [8, 1, 2, 3, 12, 13, 6, 7]),
0x32 => simd_shuffle8($a, $b, [0, 9, 2, 3, 12, 13, 6, 7]),
0x33 => simd_shuffle8($a, $b, [8, 9, 2, 3, 12, 13, 6, 7]),
0x34 => simd_shuffle8($a, $b, [0, 1, 10, 3, 12, 13, 6, 7]),
0x35 => simd_shuffle8($a, $b, [8, 1, 10, 3, 12, 13, 6, 7]),
0x36 => simd_shuffle8($a, $b, [0, 9, 10, 3, 12, 13, 6, 7]),
0x37 => simd_shuffle8($a, $b, [8, 9, 10, 3, 12, 13, 6, 7]),
0x38 => simd_shuffle8($a, $b, [0, 1, 2, 11, 12, 13, 6, 7]),
0x39 => simd_shuffle8($a, $b, [8, 1, 2, 11, 12, 13, 6, 7]),
0x3A => simd_shuffle8($a, $b, [0, 9, 2, 11, 12, 13, 6, 7]),
0x3B => simd_shuffle8($a, $b, [8, 9, 2, 11, 12, 13, 6, 7]),
0x3C => simd_shuffle8($a, $b, [0, 1, 10, 11, 12, 13, 6, 7]),
0x3D => simd_shuffle8($a, $b, [8, 1, 10, 11, 12, 13, 6, 7]),
0x3E => simd_shuffle8($a, $b, [0, 9, 10, 11, 12, 13, 6, 7]),
0x3F => simd_shuffle8($a, $b, [8, 9, 10, 11, 12, 13, 6, 7]),
0x40 => simd_shuffle8($a, $b, [0, 1, 2, 3, 4, 5, 14, 7]),
0x41 => simd_shuffle8($a, $b, [8, 1, 2, 3, 4, 5, 14, 7]),
0x42 => simd_shuffle8($a, $b, [0, 9, 2, 3, 4, 5, 14, 7]),
0x43 => simd_shuffle8($a, $b, [8, 9, 2, 3, 4, 5, 14, 7]),
0x44 => simd_shuffle8($a, $b, [0, 1, 10, 3, 4, 5, 14, 7]),
0x45 => simd_shuffle8($a, $b, [8, 1, 10, 3, 4, 5, 14, 7]),
0x46 => simd_shuffle8($a, $b, [0, 9, 10, 3, 4, 5, 14, 7]),
0x47 => simd_shuffle8($a, $b, [8, 9, 10, 3, 4, 5, 14, 7]),
0x48 => simd_shuffle8($a, $b, [0, 1, 2, 11, 4, 5, 14, 7]),
0x49 => simd_shuffle8($a, $b, [8, 1, 2, 11, 4, 5, 14, 7]),
0x4A => simd_shuffle8($a, $b, [0, 9, 2, 11, 4, 5, 14, 7]),
0x4B => simd_shuffle8($a, $b, [8, 9, 2, 11, 4, 5, 14, 7]),
0x4C => simd_shuffle8($a, $b, [0, 1, 10, 11, 4, 5, 14, 7]),
0x4D => simd_shuffle8($a, $b, [8, 1, 10, 11, 4, 5, 14, 7]),
0x4E => simd_shuffle8($a, $b, [0, 9, 10, 11, 4, 5, 14, 7]),
0x4F => simd_shuffle8($a, $b, [8, 9, 10, 11, 4, 5, 14, 7]),
0x50 => simd_shuffle8($a, $b, [0, 1, 2, 3, 12, 5, 14, 7]),
0x51 => simd_shuffle8($a, $b, [8, 1, 2, 3, 12, 5, 14, 7]),
0x52 => simd_shuffle8($a, $b, [0, 9, 2, 3, 12, 5, 14, 7]),
0x53 => simd_shuffle8($a, $b, [8, 9, 2, 3, 12, 5, 14, 7]),
0x54 => simd_shuffle8($a, $b, [0, 1, 10, 3, 12, 5, 14, 7]),
0x55 => simd_shuffle8($a, $b, [8, 1, 10, 3, 12, 5, 14, 7]),
0x56 => simd_shuffle8($a, $b, [0, 9, 10, 3, 12, 5, 14, 7]),
0x57 => simd_shuffle8($a, $b, [8, 9, 10, 3, 12, 5, 14, 7]),
0x58 => simd_shuffle8($a, $b, [0, 1, 2, 11, 12, 5, 14, 7]),
0x59 => simd_shuffle8($a, $b, [8, 1, 2, 11, 12, 5, 14, 7]),
0x5A => simd_shuffle8($a, $b, [0, 9, 2, 11, 12, 5, 14, 7]),
0x5B => simd_shuffle8($a, $b, [8, 9, 2, 11, 12, 5, 14, 7]),
0x5C => simd_shuffle8($a, $b, [0, 1, 10, 11, 12, 5, 14, 7]),
0x5D => simd_shuffle8($a, $b, [8, 1, 10, 11, 12, 5, 14, 7]),
0x5E => simd_shuffle8($a, $b, [0, 9, 10, 11, 12, 5, 14, 7]),
0x5F => simd_shuffle8($a, $b, [8, 9, 10, 11, 12, 5, 14, 7]),
0x60 => simd_shuffle8($a, $b, [0, 1, 2, 3, 4, 13, 14, 7]),
0x61 => simd_shuffle8($a, $b, [8, 1, 2, 3, 4, 13, 14, 7]),
0x62 => simd_shuffle8($a, $b, [0, 9, 2, 3, 4, 13, 14, 7]),
0x63 => simd_shuffle8($a, $b, [8, 9, 2, 3, 4, 13, 14, 7]),
0x64 => simd_shuffle8($a, $b, [0, 1, 10, 3, 4, 13, 14, 7]),
0x65 => simd_shuffle8($a, $b, [8, 1, 10, 3, 4, 13, 14, 7]),
0x66 => simd_shuffle8($a, $b, [0, 9, 10, 3, 4, 13, 14, 7]),
0x67 => simd_shuffle8($a, $b, [8, 9, 10, 3, 4, 13, 14, 7]),
0x68 => simd_shuffle8($a, $b, [0, 1, 2, 11, 4, 13, 14, 7]),
0x69 => simd_shuffle8($a, $b, [8, 1, 2, 11, 4, 13, 14, 7]),
0x6A => simd_shuffle8($a, $b, [0, 9, 2, 11, 4, 13, 14, 7]),
0x6B => simd_shuffle8($a, $b, [8, 9, 2, 11, 4, 13, 14, 7]),
0x6C => simd_shuffle8($a, $b, [0, 1, 10, 11, 4, 13, 14, 7]),
0x6D => simd_shuffle8($a, $b, [8, 1, 10, 11, 4, 13, 14, 7]),
0x6E => simd_shuffle8($a, $b, [0, 9, 10, 11, 4, 13, 14, 7]),
0x6F => simd_shuffle8($a, $b, [8, 9, 10, 11, 4, 13, 14, 7]),
0x70 => simd_shuffle8($a, $b, [0, 1, 2, 3, 12, 13, 14, 7]),
0x71 => simd_shuffle8($a, $b, [8, 1, 2, 3, 12, 13, 14, 7]),
0x72 => simd_shuffle8($a, $b, [0, 9, 2, 3, 12, 13, 14, 7]),
0x73 => simd_shuffle8($a, $b, [8, 9, 2, 3, 12, 13, 14, 7]),
0x74 => simd_shuffle8($a, $b, [0, 1, 10, 3, 12, 13, 14, 7]),
0x75 => simd_shuffle8($a, $b, [8, 1, 10, 3, 12, 13, 14, 7]),
0x76 => simd_shuffle8($a, $b, [0, 9, 10, 3, 12, 13, 14, 7]),
0x77 => simd_shuffle8($a, $b, [8, 9, 10, 3, 12, 13, 14, 7]),
0x78 => simd_shuffle8($a, $b, [0, 1, 2, 11, 12, 13, 14, 7]),
0x79 => simd_shuffle8($a, $b, [8, 1, 2, 11, 12, 13, 14, 7]),
0x7A => simd_shuffle8($a, $b, [0, 9, 2, 11, 12, 13, 14, 7]),
0x7B => simd_shuffle8($a, $b, [8, 9, 2, 11, 12, 13, 14, 7]),
0x7C => simd_shuffle8($a, $b, [0, 1, 10, 11, 12, 13, 14, 7]),
0x7D => simd_shuffle8($a, $b, [8, 1, 10, 11, 12, 13, 14, 7]),
0x7E => simd_shuffle8($a, $b, [0, 9, 10, 11, 12, 13, 14, 7]),
0x7F => simd_shuffle8($a, $b, [8, 9, 10, 11, 12, 13, 14, 7]),
0x80 => simd_shuffle8($a, $b, [0, 1, 2, 3, 4, 5, 6, 15]),
0x81 => simd_shuffle8($a, $b, [8, 1, 2, 3, 4, 5, 6, 15]),
0x82 => simd_shuffle8($a, $b, [0, 9, 2, 3, 4, 5, 6, 15]),
0x83 => simd_shuffle8($a, $b, [8, 9, 2, 3, 4, 5, 6, 15]),
0x84 => simd_shuffle8($a, $b, [0, 1, 10, 3, 4, 5, 6, 15]),
0x85 => simd_shuffle8($a, $b, [8, 1, 10, 3, 4, 5, 6, 15]),
0x86 => simd_shuffle8($a, $b, [0, 9, 10, 3, 4, 5, 6, 15]),
0x87 => simd_shuffle8($a, $b, [8, 9, 10, 3, 4, 5, 6, 15]),
0x88 => simd_shuffle8($a, $b, [0, 1, 2, 11, 4, 5, 6, 15]),
0x89 => simd_shuffle8($a, $b, [8, 1, 2, 11, 4, 5, 6, 15]),
0x8A => simd_shuffle8($a, $b, [0, 9, 2, 11, 4, 5, 6, 15]),
0x8B => simd_shuffle8($a, $b, [8, 9, 2, 11, 4, 5, 6, 15]),
0x8C => simd_shuffle8($a, $b, [0, 1, 10, 11, 4, 5, 6, 15]),
0x8D => simd_shuffle8($a, $b, [8, 1, 10, 11, 4, 5, 6, 15]),
0x8E => simd_shuffle8($a, $b, [0, 9, 10, 11, 4, 5, 6, 15]),
0x8F => simd_shuffle8($a, $b, [8, 9, 10, 11, 4, 5, 6, 15]),
0x90 => simd_shuffle8($a, $b, [0, 1, 2, 3, 12, 5, 6, 15]),
0x91 => simd_shuffle8($a, $b, [8, 1, 2, 3, 12, 5, 6, 15]),
0x92 => simd_shuffle8($a, $b, [0, 9, 2, 3, 12, 5, 6, 15]),
0x93 => simd_shuffle8($a, $b, [8, 9, 2, 3, 12, 5, 6, 15]),
0x94 => simd_shuffle8($a, $b, [0, 1, 10, 3, 12, 5, 6, 15]),
0x95 => simd_shuffle8($a, $b, [8, 1, 10, 3, 12, 5, 6, 15]),
0x96 => simd_shuffle8($a, $b, [0, 9, 10, 3, 12, 5, 6, 15]),
0x97 => simd_shuffle8($a, $b, [8, 9, 10, 3, 12, 5, 6, 15]),
0x98 => simd_shuffle8($a, $b, [0, 1, 2, 11, 12, 5, 6, 15]),
0x99 => simd_shuffle8($a, $b, [8, 1, 2, 11, 12, 5, 6, 15]),
0x9A => simd_shuffle8($a, $b, [0, 9, 2, 11, 12, 5, 6, 15]),
0x9B => simd_shuffle8($a, $b, [8, 9, 2, 11, 12, 5, 6, 15]),
0x9C => simd_shuffle8($a, $b, [0, 1, 10, 11, 12, 5, 6, 15]),
0x9D => simd_shuffle8($a, $b, [8, 1, 10, 11, 12, 5, 6, 15]),
0x9E => simd_shuffle8($a, $b, [0, 9, 10, 11, 12, 5, 6, 15]),
0x9F => simd_shuffle8($a, $b, [8, 9, 10, 11, 12, 5, 6, 15]),
0xA0 => simd_shuffle8($a, $b, [0, 1, 2, 3, 4, 13, 6, 15]),
0xA1 => simd_shuffle8($a, $b, [8, 1, 2, 3, 4, 13, 6, 15]),
0xA2 => simd_shuffle8($a, $b, [0, 9, 2, 3, 4, 13, 6, 15]),
0xA3 => simd_shuffle8($a, $b, [8, 9, 2, 3, 4, 13, 6, 15]),
0xA4 => simd_shuffle8($a, $b, [0, 1, 10, 3, 4, 13, 6, 15]),
0xA5 => simd_shuffle8($a, $b, [8, 1, 10, 3, 4, 13, 6, 15]),
0xA6 => simd_shuffle8($a, $b, [0, 9, 10, 3, 4, 13, 6, 15]),
0xA7 => simd_shuffle8($a, $b, [8, 9, 10, 3, 4, 13, 6, 15]),
0xA8 => simd_shuffle8($a, $b, [0, 1, 2, 11, 4, 13, 6, 15]),
0xA9 => simd_shuffle8($a, $b, [8, 1, 2, 11, 4, 13, 6, 15]),
0xAA => simd_shuffle8($a, $b, [0, 9, 2, 11, 4, 13, 6, 15]),
0xAB => simd_shuffle8($a, $b, [8, 9, 2, 11, 4, 13, 6, 15]),
0xAC => simd_shuffle8($a, $b, [0, 1, 10, 11, 4, 13, 6, 15]),
0xAD => simd_shuffle8($a, $b, [8, 1, 10, 11, 4, 13, 6, 15]),
0xAE => simd_shuffle8($a, $b, [0, 9, 10, 11, 4, 13, 6, 15]),
0xAF => simd_shuffle8($a, $b, [8, 9, 10, 11, 4, 13, 6, 15]),
0xB0 => simd_shuffle8($a, $b, [0, 1, 2, 3, 12, 13, 6, 15]),
0xB1 => simd_shuffle8($a, $b, [8, 1, 2, 3, 12, 13, 6, 15]),
0xB2 => simd_shuffle8($a, $b, [0, 9, 2, 3, 12, 13, 6, 15]),
0xB3 => simd_shuffle8($a, $b, [8, 9, 2, 3, 12, 13, 6, 15]),
0xB4 => simd_shuffle8($a, $b, [0, 1, 10, 3, 12, 13, 6, 15]),
0xB5 => simd_shuffle8($a, $b, [8, 1, 10, 3, 12, 13, 6, 15]),
0xB6 => simd_shuffle8($a, $b, [0, 9, 10, 3, 12, 13, 6, 15]),
0xB7 => simd_shuffle8($a, $b, [8, 9, 10, 3, 12, 13, 6, 15]),
0xB8 => simd_shuffle8($a, $b, [0, 1, 2, 11, 12, 13, 6, 15]),
0xB9 => simd_shuffle8($a, $b, [8, 1, 2, 11, 12, 13, 6, 15]),
0xBA => simd_shuffle8($a, $b, [0, 9, 2, 11, 12, 13, 6, 15]),
0xBB => simd_shuffle8($a, $b, [8, 9, 2, 11, 12, 13, 6, 15]),
0xBC => simd_shuffle8($a, $b, [0, 1, 10, 11, 12, 13, 6, 15]),
0xBD => simd_shuffle8($a, $b, [8, 1, 10, 11, 12, 13, 6, 15]),
0xBE => simd_shuffle8($a, $b, [0, 9, 10, 11, 12, 13, 6, 15]),
0xBF => simd_shuffle8($a, $b, [8, 9, 10, 11, 12, 13, 6, 15]),
0xC0 => simd_shuffle8($a, $b, [0, 1, 2, 3, 4, 5, 14, 15]),
0xC1 => simd_shuffle8($a, $b, [8, 1, 2, 3, 4, 5, 14, 15]),
0xC2 => simd_shuffle8($a, $b, [0, 9, 2, 3, 4, 5, 14, 15]),
0xC3 => simd_shuffle8($a, $b, [8, 9, 2, 3, 4, 5, 14, 15]),
0xC4 => simd_shuffle8($a, $b, [0, 1, 10, 3, 4, 5, 14, 15]),
0xC5 => simd_shuffle8($a, $b, [8, 1, 10, 3, 4, 5, 14, 15]),
0xC6 => simd_shuffle8($a, $b, [0, 9, 10, 3, 4, 5, 14, 15]),
0xC7 => simd_shuffle8($a, $b, [8, 9, 10, 3, 4, 5, 14, 15]),
0xC8 => simd_shuffle8($a, $b, [0, 1, 2, 11, 4, 5, 14, 15]),
0xC9 => simd_shuffle8($a, $b, [8, 1, 2, 11, 4, 5, 14, 15]),
0xCA => simd_shuffle8($a, $b, [0, 9, 2, 11, 4, 5, 14, 15]),
0xCB => simd_shuffle8($a, $b, [8, 9, 2, 11, 4, 5, 14, 15]),
0xCC => simd_shuffle8($a, $b, [0, 1, 10, 11, 4, 5, 14, 15]),
0xCD => simd_shuffle8($a, $b, [8, 1, 10, 11, 4, 5, 14, 15]),
0xCE => simd_shuffle8($a, $b, [0, 9, 10, 11, 4, 5, 14, 15]),
0xCF => simd_shuffle8($a, $b, [8, 9, 10, 11, 4, 5, 14, 15]),
0xD0 => simd_shuffle8($a, $b, [0, 1, 2, 3, 12, 5, 14, 15]),
0xD1 => simd_shuffle8($a, $b, [8, 1, 2, 3, 12, 5, 14, 15]),
0xD2 => simd_shuffle8($a, $b, [0, 9, 2, 3, 12, 5, 14, 15]),
0xD3 => simd_shuffle8($a, $b, [8, 9, 2, 3, 12, 5, 14, 15]),
0xD4 => simd_shuffle8($a, $b, [0, 1, 10, 3, 12, 5, 14, 15]),
0xD5 => simd_shuffle8($a, $b, [8, 1, 10, 3, 12, 5, 14, 15]),
0xD6 => simd_shuffle8($a, $b, [0, 9, 10, 3, 12, 5, 14, 15]),
0xD7 => simd_shuffle8($a, $b, [8, 9, 10, 3, 12, 5, 14, 15]),
0xD8 => simd_shuffle8($a, $b, [0, 1, 2, 11, 12, 5, 14, 15]),
0xD9 => simd_shuffle8($a, $b, [8, 1, 2, 11, 12, 5, 14, 15]),
0xDA => simd_shuffle8($a, $b, [0, 9, 2, 11, 12, 5, 14, 15]),
0xDB => simd_shuffle8($a, $b, [8, 9, 2, 11, 12, 5, 14, 15]),
0xDC => simd_shuffle8($a, $b, [0, 1, 10, 11, 12, 5, 14, 15]),
0xDD => simd_shuffle8($a, $b, [8, 1, 10, 11, 12, 5, 14, 15]),
0xDE => simd_shuffle8($a, $b, [0, 9, 10, 11, 12, 5, 14, 15]),
0xDF => simd_shuffle8($a, $b, [8, 9, 10, 11, 12, 5, 14, 15]),
0xE0 => simd_shuffle8($a, $b, [0, 1, 2, 3, 4, 13, 14, 15]),
0xE1 => simd_shuffle8($a, $b, [8, 1, 2, 3, 4, 13, 14, 15]),
0xE2 => simd_shuffle8($a, $b, [0, 9, 2, 3, 4, 13, 14, 15]),
0xE3 => simd_shuffle8($a, $b, [8, 9, 2, 3, 4, 13, 14, 15]),
0xE4 => simd_shuffle8($a, $b, [0, 1, 10, 3, 4, 13, 14, 15]),
0xE5 => simd_shuffle8($a, $b, [8, 1, 10, 3, 4, 13, 14, 15]),
0xE6 => simd_shuffle8($a, $b, [0, 9, 10, 3, 4, 13, 14, 15]),
0xE7 => simd_shuffle8($a, $b, [8, 9, 10, 3, 4, 13, 14, 15]),
0xE8 => simd_shuffle8($a, $b, [0, 1, 2, 11, 4, 13, 14, 15]),
0xE9 => simd_shuffle8($a, $b, [8, 1, 2, 11, 4, 13, 14, 15]),
0xEA => simd_shuffle8($a, $b, [0, 9, 2, 11, 4, 13, 14, 15]),
0xEB => simd_shuffle8($a, $b, [8, 9, 2, 11, 4, 13, 14, 15]),
0xEC => simd_shuffle8($a, $b, [0, 1, 10, 11, 4, 13, 14, 15]),
0xED => simd_shuffle8($a, $b, [8, 1, 10, 11, 4, 13, 14, 15]),
0xEE => simd_shuffle8($a, $b, [0, 9, 10, 11, 4, 13, 14, 15]),
0xEF => simd_shuffle8($a, $b, [8, 9, 10, 11, 4, 13, 14, 15]),
0xF0 => simd_shuffle8($a, $b, [0, 1, 2, 3, 12, 13, 14, 15]),
0xF1 => simd_shuffle8($a, $b, [8, 1, 2, 3, 12, 13, 14, 15]),
0xF2 => simd_shuffle8($a, $b, [0, 9, 2, 3, 12, 13, 14, 15]),
0xF3 => simd_shuffle8($a, $b, [8, 9, 2, 3, 12, 13, 14, 15]),
0xF4 => simd_shuffle8($a, $b, [0, 1, 10, 3, 12, 13, 14, 15]),
0xF5 => simd_shuffle8($a, $b, [8, 1, 10, 3, 12, 13, 14, 15]),
0xF6 => simd_shuffle8($a, $b, [0, 9, 10, 3, 12, 13, 14, 15]),
0xF7 => simd_shuffle8($a, $b, [8, 9, 10, 3, 12, 13, 14, 15]),
0xF8 => simd_shuffle8($a, $b, [0, 1, 2, 11, 12, 13, 14, 15]),
0xF9 => simd_shuffle8($a, $b, [8, 1, 2, 11, 12, 13, 14, 15]),
0xFA => simd_shuffle8($a, $b, [0, 9, 2, 11, 12, 13, 14, 15]),
0xFB => simd_shuffle8($a, $b, [8, 9, 2, 11, 12, 13, 14, 15]),
0xFC => simd_shuffle8($a, $b, [0, 1, 10, 11, 12, 13, 14, 15]),
0xFD => simd_shuffle8($a, $b, [8, 1, 10, 11, 12, 13, 14, 15]),
0xFE => simd_shuffle8($a, $b, [0, 9, 10, 11, 12, 13, 14, 15]),
0xFF => simd_shuffle8($a, $b, [8, 9, 10, 11, 12, 13, 14, 15]),
_ => unreachable!()
}
}
}
}
#[cfg(any(feature = "doc", target_feature = "avx2"))]
macro_rules! blend_shuffle16 {
($a: expr, $b: expr, $imm8: expr) => {
unsafe {
match $imm8 & 0xFF {
0x00 => simd_shuffle16($a, $b, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
0x01 => simd_shuffle16($a, $b, [16, 1, 2, 3, 4, 5, 6, 7, 24, 9, 10, 11, 12, 13, 14, 15]),
0x02 => simd_shuffle16($a, $b, [0, 17, 2, 3, 4, 5, 6, 7, 8, 25, 10, 11, 12, 13, 14, 15]),
0x03 => simd_shuffle16($a, $b, [16, 17, 2, 3, 4, 5, 6, 7, 24, 25, 10, 11, 12, 13, 14, 15]),
0x04 => simd_shuffle16($a, $b, [0, 1, 18, 3, 4, 5, 6, 7, 8, 9, 26, 11, 12, 13, 14, 15]),
0x05 => simd_shuffle16($a, $b, [16, 1, 18, 3, 4, 5, 6, 7, 24, 9, 26, 11, 12, 13, 14, 15]),
0x06 => simd_shuffle16($a, $b, [0, 17, 18, 3, 4, 5, 6, 7, 8, 25, 26, 11, 12, 13, 14, 15]),
0x07 => simd_shuffle16($a, $b, [16, 17, 18, 3, 4, 5, 6, 7, 24, 25, 26, 11, 12, 13, 14, 15]),
0x08 => simd_shuffle16($a, $b, [0, 1, 2, 19, 4, 5, 6, 7, 8, 9, 10, 27, 12, 13, 14, 15]),
0x09 => simd_shuffle16($a, $b, [16, 1, 2, 19, 4, 5, 6, 7, 24, 9, 10, 27, 12, 13, 14, 15]),
0x0A => simd_shuffle16($a, $b, [0, 17, 2, 19, 4, 5, 6, 7, 8, 25, 10, 27, 12, 13, 14, 15]),
0x0B => simd_shuffle16($a, $b, [16, 17, 2, 19, 4, 5, 6, 7, 24, 25, 10, 27, 12, 13, 14, 15]),
0x0C => simd_shuffle16($a, $b, [0, 1, 18, 19, 4, 5, 6, 7, 8, 9, 26, 27, 12, 13, 14, 15]),
0x0D => simd_shuffle16($a, $b, [16, 1, 18, 19, 4, 5, 6, 7, 24, 9, 26, 27, 12, 13, 14, 15]),
0x0E => simd_shuffle16($a, $b, [0, 17, 18, 19, 4, 5, 6, 7, 8, 25, 26, 27, 12, 13, 14, 15]),
0x0F => simd_shuffle16($a, $b, [16, 17, 18, 19, 4, 5, 6, 7, 24, 25, 26, 27, 12, 13, 14, 15]),
0x10 => simd_shuffle16($a, $b, [0, 1, 2, 3, 20, 5, 6, 7, 8, 9, 10, 11, 28, 13, 14, 15]),
0x11 => simd_shuffle16($a, $b, [16, 1, 2, 3, 20, 5, 6, 7, 24, 9, 10, 11, 28, 13, 14, 15]),
0x12 => simd_shuffle16($a, $b, [0, 17, 2, 3, 20, 5, 6, 7, 8, 25, 10, 11, 28, 13, 14, 15]),
0x13 => simd_shuffle16($a, $b, [16, 17, 2, 3, 20, 5, 6, 7, 24, 25, 10, 11, 28, 13, 14, 15]),
0x14 => simd_shuffle16($a, $b, [0, 1, 18, 3, 20, 5, 6, 7, 8, 9, 26, 11, 28, 13, 14, 15]),
0x15 => simd_shuffle16($a, $b, [16, 1, 18, 3, 20, 5, 6, 7, 24, 9, 26, 11, 28, 13, 14, 15]),
0x16 => simd_shuffle16($a, $b, [0, 17, 18, 3, 20, 5, 6, 7, 8, 25, 26, 11, 28, 13, 14, 15]),
0x17 => simd_shuffle16($a, $b, [16, 17, 18, 3, 20, 5, 6, 7, 24, 25, 26, 11, 28, 13, 14, 15]),
0x18 => simd_shuffle16($a, $b, [0, 1, 2, 19, 20, 5, 6, 7, 8, 9, 10, 27, 28, 13, 14, 15]),
0x19 => simd_shuffle16($a, $b, [16, 1, 2, 19, 20, 5, 6, 7, 24, 9, 10, 27, 28, 13, 14, 15]),
0x1A => simd_shuffle16($a, $b, [0, 17, 2, 19, 20, 5, 6, 7, 8, 25, 10, 27, 28, 13, 14, 15]),
0x1B => simd_shuffle16($a, $b, [16, 17, 2, 19, 20, 5, 6, 7, 24, 25, 10, 27, 28, 13, 14, 15]),
0x1C => simd_shuffle16($a, $b, [0, 1, 18, 19, 20, 5, 6, 7, 8, 9, 26, 27, 28, 13, 14, 15]),
0x1D => simd_shuffle16($a, $b, [16, 1, 18, 19, 20, 5, 6, 7, 24, 9, 26, 27, 28, 13, 14, 15]),
0x1E => simd_shuffle16($a, $b, [0, 17, 18, 19, 20, 5, 6, 7, 8, 25, 26, 27, 28, 13, 14, 15]),
0x1F => simd_shuffle16($a, $b, [16, 17, 18, 19, 20, 5, 6, 7, 24, 25, 26, 27, 28, 13, 14, 15]),
0x20 => simd_shuffle16($a, $b, [0, 1, 2, 3, 4, 21, 6, 7, 8, 9, 10, 11, 12, 29, 14, 15]),
0x21 => simd_shuffle16($a, $b, [16, 1, 2, 3, 4, 21, 6, 7, 24, 9, 10, 11, 12, 29, 14, 15]),
0x22 => simd_shuffle16($a, $b, [0, 17, 2, 3, 4, 21, 6, 7, 8, 25, 10, 11, 12, 29, 14, 15]),
0x23 => simd_shuffle16($a, $b, [16, 17, 2, 3, 4, 21, 6, 7, 24, 25, 10, 11, 12, 29, 14, 15]),
0x24 => simd_shuffle16($a, $b, [0, 1, 18, 3, 4, 21, 6, 7, 8, 9, 26, 11, 12, 29, 14, 15]),
0x25 => simd_shuffle16($a, $b, [16, 1, 18, 3, 4, 21, 6, 7, 24, 9, 26, 11, 12, 29, 14, 15]),
0x26 => simd_shuffle16($a, $b, [0, 17, 18, 3, 4, 21, 6, 7, 8, 25, 26, 11, 12, 29, 14, 15]),
0x27 => simd_shuffle16($a, $b, [16, 17, 18, 3, 4, 21, 6, 7, 24, 25, 26, 11, 12, 29, 14, 15]),
0x28 => simd_shuffle16($a, $b, [0, 1, 2, 19, 4, 21, 6, 7, 8, 9, 10, 27, 12, 29, 14, 15]),
0x29 => simd_shuffle16($a, $b, [16, 1, 2, 19, 4, 21, 6, 7, 24, 9, 10, 27, 12, 29, 14, 15]),
0x2A => simd_shuffle16($a, $b, [0, 17, 2, 19, 4, 21, 6, 7, 8, 25, 10, 27, 12, 29, 14, 15]),
0x2B => simd_shuffle16($a, $b, [16, 17, 2, 19, 4, 21, 6, 7, 24, 25, 10, 27, 12, 29, 14, 15]),
0x2C => simd_shuffle16($a, $b, [0, 1, 18, 19, 4, 21, 6, 7, 8, 9, 26, 27, 12, 29, 14, 15]),
0x2D => simd_shuffle16($a, $b, [16, 1, 18, 19, 4, 21, 6, 7, 24, 9, 26, 27, 12, 29, 14, 15]),
0x2E => simd_shuffle16($a, $b, [0, 17, 18, 19, 4, 21, 6, 7, 8, 25, 26, 27, 12, 29, 14, 15]),
0x2F => simd_shuffle16($a, $b, [16, 17, 18, 19, 4, 21, 6, 7, 24, 25, 26, 27, 12, 29, 14, 15]),
0x30 => simd_shuffle16($a, $b, [0, 1, 2, 3, 20, 21, 6, 7, 8, 9, 10, 11, 28, 29, 14, 15]),
0x31 => simd_shuffle16($a, $b, [16, 1, 2, 3, 20, 21, 6, 7, 24, 9, 10, 11, 28, 29, 14, 15]),
0x32 => simd_shuffle16($a, $b, [0, 17, 2, 3, 20, 21, 6, 7, 8, 25, 10, 11, 28, 29, 14, 15]),
0x33 => simd_shuffle16($a, $b, [16, 17, 2, 3, 20, 21, 6, 7, 24, 25, 10, 11, 28, 29, 14, 15]),
0x34 => simd_shuffle16($a, $b, [0, 1, 18, 3, 20, 21, 6, 7, 8, 9, 26, 11, 28, 29, 14, 15]),
0x35 => simd_shuffle16($a, $b, [16, 1, 18, 3, 20, 21, 6, 7, 24, 9, 26, 11, 28, 29, 14, 15]),
0x36 => simd_shuffle16($a, $b, [0, 17, 18, 3, 20, 21, 6, 7, 8, 25, 26, 11, 28, 29, 14, 15]),
0x37 => simd_shuffle16($a, $b, [16, 17, 18, 3, 20, 21, 6, 7, 24, 25, 26, 11, 28, 29, 14, 15]),
0x38 => simd_shuffle16($a, $b, [0, 1, 2, 19, 20, 21, 6, 7, 8, 9, 10, 27, 28, 29, 14, 15]),
0x39 => simd_shuffle16($a, $b, [16, 1, 2, 19, 20, 21, 6, 7, 24, 9, 10, 27, 28, 29, 14, 15]),
0x3A => simd_shuffle16($a, $b, [0, 17, 2, 19, 20, 21, 6, 7, 8, 25, 10, 27, 28, 29, 14, 15]),
0x3B => simd_shuffle16($a, $b, [16, 17, 2, 19, 20, 21, 6, 7, 24, 25, 10, 27, 28, 29, 14, 15]),
0x3C => simd_shuffle16($a, $b, [0, 1, 18, 19, 20, 21, 6, 7, 8, 9, 26, 27, 28, 29, 14, 15]),
0x3D => simd_shuffle16($a, $b, [16, 1, 18, 19, 20, 21, 6, 7, 24, 9, 26, 27, 28, 29, 14, 15]),
0x3E => simd_shuffle16($a, $b, [0, 17, 18, 19, 20, 21, 6, 7, 8, 25, 26, 27, 28, 29, 14, 15]),
0x3F => simd_shuffle16($a, $b, [16, 17, 18, 19, 20, 21, 6, 7, 24, 25, 26, 27, 28, 29, 14, 15]),
0x40 => simd_shuffle16($a, $b, [0, 1, 2, 3, 4, 5, 22, 7, 8, 9, 10, 11, 12, 13, 30, 15]),
0x41 => simd_shuffle16($a, $b, [16, 1, 2, 3, 4, 5, 22, 7, 24, 9, 10, 11, 12, 13, 30, 15]),
0x42 => simd_shuffle16($a, $b, [0, 17, 2, 3, 4, 5, 22, 7, 8, 25, 10, 11, 12, 13, 30, 15]),
0x43 => simd_shuffle16($a, $b, [16, 17, 2, 3, 4, 5, 22, 7, 24, 25, 10, 11, 12, 13, 30, 15]),
0x44 => simd_shuffle16($a, $b, [0, 1, 18, 3, 4, 5, 22, 7, 8, 9, 26, 11, 12, 13, 30, 15]),
0x45 => simd_shuffle16($a, $b, [16, 1, 18, 3, 4, 5, 22, 7, 24, 9, 26, 11, 12, 13, 30, 15]),
0x46 => simd_shuffle16($a, $b, [0, 17, 18, 3, 4, 5, 22, 7, 8, 25, 26, 11, 12, 13, 30, 15]),
0x47 => simd_shuffle16($a, $b, [16, 17, 18, 3, 4, 5, 22, 7, 24, 25, 26, 11, 12, 13, 30, 15]),
0x48 => simd_shuffle16($a, $b, [0, 1, 2, 19, 4, 5, 22, 7, 8, 9, 10, 27, 12, 13, 30, 15]),
0x49 => simd_shuffle16($a, $b, [16, 1, 2, 19, 4, 5, 22, 7, 24, 9, 10, 27, 12, 13, 30, 15]),
0x4A => simd_shuffle16($a, $b, [0, 17, 2, 19, 4, 5, 22, 7, 8, 25, 10, 27, 12, 13, 30, 15]),
0x4B => simd_shuffle16($a, $b, [16, 17, 2, 19, 4, 5, 22, 7, 24, 25, 10, 27, 12, 13, 30, 15]),
0x4C => simd_shuffle16($a, $b, [0, 1, 18, 19, 4, 5, 22, 7, 8, 9, 26, 27, 12, 13, 30, 15]),
0x4D => simd_shuffle16($a, $b, [16, 1, 18, 19, 4, 5, 22, 7, 24, 9, 26, 27, 12, 13, 30, 15]),
0x4E => simd_shuffle16($a, $b, [0, 17, 18, 19, 4, 5, 22, 7, 8, 25, 26, 27, 12, 13, 30, 15]),
0x4F => simd_shuffle16($a, $b, [16, 17, 18, 19, 4, 5, 22, 7, 24, 25, 26, 27, 12, 13, 30, 15]),
0x50 => simd_shuffle16($a, $b, [0, 1, 2, 3, 20, 5, 22, 7, 8, 9, 10, 11, 28, 13, 30, 15]),
0x51 => simd_shuffle16($a, $b, [16, 1, 2, 3, 20, 5, 22, 7, 24, 9, 10, 11, 28, 13, 30, 15]),
0x52 => simd_shuffle16($a, $b, [0, 17, 2, 3, 20, 5, 22, 7, 8, 25, 10, 11, 28, 13, 30, 15]),
0x53 => simd_shuffle16($a, $b, [16, 17, 2, 3, 20, 5, 22, 7, 24, 25, 10, 11, 28, 13, 30, 15]),
0x54 => simd_shuffle16($a, $b, [0, 1, 18, 3, 20, 5, 22, 7, 8, 9, 26, 11, 28, 13, 30, 15]),
0x55 => simd_shuffle16($a, $b, [16, 1, 18, 3, 20, 5, 22, 7, 24, 9, 26, 11, 28, 13, 30, 15]),
0x56 => simd_shuffle16($a, $b, [0, 17, 18, 3, 20, 5, 22, 7, 8, 25, 26, 11, 28, 13, 30, 15]),
0x57 => simd_shuffle16($a, $b, [16, 17, 18, 3, 20, 5, 22, 7, 24, 25, 26, 11, 28, 13, 30, 15]),
0x58 => simd_shuffle16($a, $b, [0, 1, 2, 19, 20, 5, 22, 7, 8, 9, 10, 27, 28, 13, 30, 15]),
0x59 => simd_shuffle16($a, $b, [16, 1, 2, 19, 20, 5, 22, 7, 24, 9, 10, 27, 28, 13, 30, 15]),
0x5A => simd_shuffle16($a, $b, [0, 17, 2, 19, 20, 5, 22, 7, 8, 25, 10, 27, 28, 13, 30, 15]),
0x5B => simd_shuffle16($a, $b, [16, 17, 2, 19, 20, 5, 22, 7, 24, 25, 10, 27, 28, 13, 30, 15]),
0x5C => simd_shuffle16($a, $b, [0, 1, 18, 19, 20, 5, 22, 7, 8, 9, 26, 27, 28, 13, 30, 15]),
0x5D => simd_shuffle16($a, $b, [16, 1, 18, 19, 20, 5, 22, 7, 24, 9, 26, 27, 28, 13, 30, 15]),
0x5E => simd_shuffle16($a, $b, [0, 17, 18, 19, 20, 5, 22, 7, 8, 25, 26, 27, 28, 13, 30, 15]),
0x5F => simd_shuffle16($a, $b, [16, 17, 18, 19, 20, 5, 22, 7, 24, 25, 26, 27, 28, 13, 30, 15]),
0x60 => simd_shuffle16($a, $b, [0, 1, 2, 3, 4, 21, 22, 7, 8, 9, 10, 11, 12, 29, 30, 15]),
0x61 => simd_shuffle16($a, $b, [16, 1, 2, 3, 4, 21, 22, 7, 24, 9, 10, 11, 12, 29, 30, 15]),
0x62 => simd_shuffle16($a, $b, [0, 17, 2, 3, 4, 21, 22, 7, 8, 25, 10, 11, 12, 29, 30, 15]),
0x63 => simd_shuffle16($a, $b, [16, 17, 2, 3, 4, 21, 22, 7, 24, 25, 10, 11, 12, 29, 30, 15]),
0x64 => simd_shuffle16($a, $b, [0, 1, 18, 3, 4, 21, 22, 7, 8, 9, 26, 11, 12, 29, 30, 15]),
0x65 => simd_shuffle16($a, $b, [16, 1, 18, 3, 4, 21, 22, 7, 24, 9, 26, 11, 12, 29, 30, 15]),
0x66 => simd_shuffle16($a, $b, [0, 17, 18, 3, 4, 21, 22, 7, 8, 25, 26, 11, 12, 29, 30, 15]),
0x67 => simd_shuffle16($a, $b, [16, 17, 18, 3, 4, 21, 22, 7, 24, 25, 26, 11, 12, 29, 30, 15]),
0x68 => simd_shuffle16($a, $b, [0, 1, 2, 19, 4, 21, 22, 7, 8, 9, 10, 27, 12, 29, 30, 15]),
0x69 => simd_shuffle16($a, $b, [16, 1, 2, 19, 4, 21, 22, 7, 24, 9, 10, 27, 12, 29, 30, 15]),
0x6A => simd_shuffle16($a, $b, [0, 17, 2, 19, 4, 21, 22, 7, 8, 25, 10, 27, 12, 29, 30, 15]),
0x6B => simd_shuffle16($a, $b, [16, 17, 2, 19, 4, 21, 22, 7, 24, 25, 10, 27, 12, 29, 30, 15]),
0x6C => simd_shuffle16($a, $b, [0, 1, 18, 19, 4, 21, 22, 7, 8, 9, 26, 27, 12, 29, 30, 15]),
0x6D => simd_shuffle16($a, $b, [16, 1, 18, 19, 4, 21, 22, 7, 24, 9, 26, 27, 12, 29, 30, 15]),
0x6E => simd_shuffle16($a, $b, [0, 17, 18, 19, 4, 21, 22, 7, 8, 25, 26, 27, 12, 29, 30, 15]),
0x6F => simd_shuffle16($a, $b, [16, 17, 18, 19, 4, 21, 22, 7, 24, 25, 26, 27, 12, 29, 30, 15]),
0x70 => simd_shuffle16($a, $b, [0, 1, 2, 3, 20, 21, 22, 7, 8, 9, 10, 11, 28, 29, 30, 15]),
0x71 => simd_shuffle16($a, $b, [16, 1, 2, 3, 20, 21, 22, 7, 24, 9, 10, 11, 28, 29, 30, 15]),
0x72 => simd_shuffle16($a, $b, [0, 17, 2, 3, 20, 21, 22, 7, 8, 25, 10, 11, 28, 29, 30, 15]),
0x73 => simd_shuffle16($a, $b, [16, 17, 2, 3, 20, 21, 22, 7, 24, 25, 10, 11, 28, 29, 30, 15]),
0x74 => simd_shuffle16($a, $b, [0, 1, 18, 3, 20, 21, 22, 7, 8, 9, 26, 11, 28, 29, 30, 15]),
0x75 => simd_shuffle16($a, $b, [16, 1, 18, 3, 20, 21, 22, 7, 24, 9, 26, 11, 28, 29, 30, 15]),
0x76 => simd_shuffle16($a, $b, [0, 17, 18, 3, 20, 21, 22, 7, 8, 25, 26, 11, 28, 29, 30, 15]),
0x77 => simd_shuffle16($a, $b, [16, 17, 18, 3, 20, 21, 22, 7, 24, 25, 26, 11, 28, 29, 30, 15]),
0x78 => simd_shuffle16($a, $b, [0, 1, 2, 19, 20, 21, 22, 7, 8, 9, 10, 27, 28, 29, 30, 15]),
0x79 => simd_shuffle16($a, $b, [16, 1, 2, 19, 20, 21, 22, 7, 24, 9, 10, 27, 28, 29, 30, 15]),
0x7A => simd_shuffle16($a, $b, [0, 17, 2, 19, 20, 21, 22, 7, 8, 25, 10, 27, 28, 29, 30, 15]),
0x7B => simd_shuffle16($a, $b, [16, 17, 2, 19, 20, 21, 22, 7, 24, 25, 10, 27, 28, 29, 30, 15]),
0x7C => simd_shuffle16($a, $b, [0, 1, 18, 19, 20, 21, 22, 7, 8, 9, 26, 27, 28, 29, 30, 15]),
0x7D => simd_shuffle16($a, $b, [16, 1, 18, 19, 20, 21, 22, 7, 24, 9, 26, 27, 28, 29, 30, 15]),
0x7E => simd_shuffle16($a, $b, [0, 17, 18, 19, 20, 21, 22, 7, 8, 25, 26, 27, 28, 29, 30, 15]),
0x7F => simd_shuffle16($a, $b, [16, 17, 18, 19, 20, 21, 22, 7, 24, 25, 26, 27, 28, 29, 30, 15]),
0x80 => simd_shuffle16($a, $b, [0, 1, 2, 3, 4, 5, 6, 23, 8, 9, 10, 11, 12, 13, 14, 31]),
0x81 => simd_shuffle16($a, $b, [16, 1, 2, 3, 4, 5, 6, 23, 24, 9, 10, 11, 12, 13, 14, 31]),
0x82 => simd_shuffle16($a, $b, [0, 17, 2, 3, 4, 5, 6, 23, 8, 25, 10, 11, 12, 13, 14, 31]),
0x83 => simd_shuffle16($a, $b, [16, 17, 2, 3, 4, 5, 6, 23, 24, 25, 10, 11, 12, 13, 14, 31]),
0x84 => simd_shuffle16($a, $b, [0, 1, 18, 3, 4, 5, 6, 23, 8, 9, 26, 11, 12, 13, 14, 31]),
0x85 => simd_shuffle16($a, $b, [16, 1, 18, 3, 4, 5, 6, 23, 24, 9, 26, 11, 12, 13, 14, 31]),
0x86 => simd_shuffle16($a, $b, [0, 17, 18, 3, 4, 5, 6, 23, 8, 25, 26, 11, 12, 13, 14, 31]),
0x87 => simd_shuffle16($a, $b, [16, 17, 18, 3, 4, 5, 6, 23, 24, 25, 26, 11, 12, 13, 14, 31]),
0x88 => simd_shuffle16($a, $b, [0, 1, 2, 19, 4, 5, 6, 23, 8, 9, 10, 27, 12, 13, 14, 31]),
0x89 => simd_shuffle16($a, $b, [16, 1, 2, 19, 4, 5, 6, 23, 24, 9, 10, 27, 12, 13, 14, 31]),
0x8A => simd_shuffle16($a, $b, [0, 17, 2, 19, 4, 5, 6, 23, 8, 25, 10, 27, 12, 13, 14, 31]),
0x8B => simd_shuffle16($a, $b, [16, 17, 2, 19, 4, 5, 6, 23, 24, 25, 10, 27, 12, 13, 14, 31]),
0x8C => simd_shuffle16($a, $b, [0, 1, 18, 19, 4, 5, 6, 23, 8, 9, 26, 27, 12, 13, 14, 31]),
0x8D => simd_shuffle16($a, $b, [16, 1, 18, 19, 4, 5, 6, 23, 24, 9, 26, 27, 12, 13, 14, 31]),
0x8E => simd_shuffle16($a, $b, [0, 17, 18, 19, 4, 5, 6, 23, 8, 25, 26, 27, 12, 13, 14, 31]),
0x8F => simd_shuffle16($a, $b, [16, 17, 18, 19, 4, 5, 6, 23, 24, 25, 26, 27, 12, 13, 14, 31]),
0x90 => simd_shuffle16($a, $b, [0, 1, 2, 3, 20, 5, 6, 23, 8, 9, 10, 11, 28, 13, 14, 31]),
0x91 => simd_shuffle16($a, $b, [16, 1, 2, 3, 20, 5, 6, 23, 24, 9, 10, 11, 28, 13, 14, 31]),
0x92 => simd_shuffle16($a, $b, [0, 17, 2, 3, 20, 5, 6, 23, 8, 25, 10, 11, 28, 13, 14, 31]),
0x93 => simd_shuffle16($a, $b, [16, 17, 2, 3, 20, 5, 6, 23, 24, 25, 10, 11, 28, 13, 14, 31]),
0x94 => simd_shuffle16($a, $b, [0, 1, 18, 3, 20, 5, 6, 23, 8, 9, 26, 11, 28, 13, 14, 31]),
0x95 => simd_shuffle16($a, $b, [16, 1, 18, 3, 20, 5, 6, 23, 24, 9, 26, 11, 28, 13, 14, 31]),
0x96 => simd_shuffle16($a, $b, [0, 17, 18, 3, 20, 5, 6, 23, 8, 25, 26, 11, 28, 13, 14, 31]),
0x97 => simd_shuffle16($a, $b, [16, 17, 18, 3, 20, 5, 6, 23, 24, 25, 26, 11, 28, 13, 14, 31]),
0x98 => simd_shuffle16($a, $b, [0, 1, 2, 19, 20, 5, 6, 23, 8, 9, 10, 27, 28, 13, 14, 31]),
0x99 => simd_shuffle16($a, $b, [16, 1, 2, 19, 20, 5, 6, 23, 24, 9, 10, 27, 28, 13, 14, 31]),
0x9A => simd_shuffle16($a, $b, [0, 17, 2, 19, 20, 5, 6, 23, 8, 25, 10, 27, 28, 13, 14, 31]),
0x9B => simd_shuffle16($a, $b, [16, 17, 2, 19, 20, 5, 6, 23, 24, 25, 10, 27, 28, 13, 14, 31]),
0x9C => simd_shuffle16($a, $b, [0, 1, 18, 19, 20, 5, 6, 23, 8, 9, 26, 27, 28, 13, 14, 31]),
0x9D => simd_shuffle16($a, $b, [16, 1, 18, 19, 20, 5, 6, 23, 24, 9, 26, 27, 28, 13, 14, 31]),
0x9E => simd_shuffle16($a, $b, [0, 17, 18, 19, 20, 5, 6, 23, 8, 25, 26, 27, 28, 13, 14, 31]),
0x9F => simd_shuffle16($a, $b, [16, 17, 18, 19, 20, 5, 6, 23, 24, 25, 26, 27, 28, 13, 14, 31]),
0xA0 => simd_shuffle16($a, $b, [0, 1, 2, 3, 4, 21, 6, 23, 8, 9, 10, 11, 12, 29, 14, 31]),
0xA1 => simd_shuffle16($a, $b, [16, 1, 2, 3, 4, 21, 6, 23, 24, 9, 10, 11, 12, 29, 14, 31]),
0xA2 => simd_shuffle16($a, $b, [0, 17, 2, 3, 4, 21, 6, 23, 8, 25, 10, 11, 12, 29, 14, 31]),
0xA3 => simd_shuffle16($a, $b, [16, 17, 2, 3, 4, 21, 6, 23, 24, 25, 10, 11, 12, 29, 14, 31]),
0xA4 => simd_shuffle16($a, $b, [0, 1, 18, 3, 4, 21, 6, 23, 8, 9, 26, 11, 12, 29, 14, 31]),
0xA5 => simd_shuffle16($a, $b, [16, 1, 18, 3, 4, 21, 6, 23, 24, 9, 26, 11, 12, 29, 14, 31]),
0xA6 => simd_shuffle16($a, $b, [0, 17, 18, 3, 4, 21, 6, 23, 8, 25, 26, 11, 12, 29, 14, 31]),
0xA7 => simd_shuffle16($a, $b, [16, 17, 18, 3, 4, 21, 6, 23, 24, 25, 26, 11, 12, 29, 14, 31]),
0xA8 => simd_shuffle16($a, $b, [0, 1, 2, 19, 4, 21, 6, 23, 8, 9, 10, 27, 12, 29, 14, 31]),
0xA9 => simd_shuffle16($a, $b, [16, 1, 2, 19, 4, 21, 6, 23, 24, 9, 10, 27, 12, 29, 14, 31]),
0xAA => simd_shuffle16($a, $b, [0, 17, 2, 19, 4, 21, 6, 23, 8, 25, 10, 27, 12, 29, 14, 31]),
0xAB => simd_shuffle16($a, $b, [16, 17, 2, 19, 4, 21, 6, 23, 24, 25, 10, 27, 12, 29, 14, 31]),
0xAC => simd_shuffle16($a, $b, [0, 1, 18, 19, 4, 21, 6, 23, 8, 9, 26, 27, 12, 29, 14, 31]),
0xAD => simd_shuffle16($a, $b, [16, 1, 18, 19, 4, 21, 6, 23, 24, 9, 26, 27, 12, 29, 14, 31]),
0xAE => simd_shuffle16($a, $b, [0, 17, 18, 19, 4, 21, 6, 23, 8, 25, 26, 27, 12, 29, 14, 31]),
0xAF => simd_shuffle16($a, $b, [16, 17, 18, 19, 4, 21, 6, 23, 24, 25, 26, 27, 12, 29, 14, 31]),
0xB0 => simd_shuffle16($a, $b, [0, 1, 2, 3, 20, 21, 6, 23, 8, 9, 10, 11, 28, 29, 14, 31]),
0xB1 => simd_shuffle16($a, $b, [16, 1, 2, 3, 20, 21, 6, 23, 24, 9, 10, 11, 28, 29, 14, 31]),
0xB2 => simd_shuffle16($a, $b, [0, 17, 2, 3, 20, 21, 6, 23, 8, 25, 10, 11, 28, 29, 14, 31]),
0xB3 => simd_shuffle16($a, $b, [16, 17, 2, 3, 20, 21, 6, 23, 24, 25, 10, 11, 28, 29, 14, 31]),
0xB4 => simd_shuffle16($a, $b, [0, 1, 18, 3, 20, 21, 6, 23, 8, 9, 26, 11, 28, 29, 14, 31]),
0xB5 => simd_shuffle16($a, $b, [16, 1, 18, 3, 20, 21, 6, 23, 24, 9, 26, 11, 28, 29, 14, 31]),
0xB6 => simd_shuffle16($a, $b, [0, 17, 18, 3, 20, 21, 6, 23, 8, 25, 26, 11, 28, 29, 14, 31]),
0xB7 => simd_shuffle16($a, $b, [16, 17, 18, 3, 20, 21, 6, 23, 24, 25, 26, 11, 28, 29, 14, 31]),
0xB8 => simd_shuffle16($a, $b, [0, 1, 2, 19, 20, 21, 6, 23, 8, 9, 10, 27, 28, 29, 14, 31]),
0xB9 => simd_shuffle16($a, $b, [16, 1, 2, 19, 20, 21, 6, 23, 24, 9, 10, 27, 28, 29, 14, 31]),
0xBA => simd_shuffle16($a, $b, [0, 17, 2, 19, 20, 21, 6, 23, 8, 25, 10, 27, 28, 29, 14, 31]),
0xBB => simd_shuffle16($a, $b, [16, 17, 2, 19, 20, 21, 6, 23, 24, 25, 10, 27, 28, 29, 14, 31]),
0xBC => simd_shuffle16($a, $b, [0, 1, 18, 19, 20, 21, 6, 23, 8, 9, 26, 27, 28, 29, 14, 31]),
0xBD => simd_shuffle16($a, $b, [16, 1, 18, 19, 20, 21, 6, 23, 24, 9, 26, 27, 28, 29, 14, 31]),
0xBE => simd_shuffle16($a, $b, [0, 17, 18, 19, 20, 21, 6, 23, 8, 25, 26, 27, 28, 29, 14, 31]),
0xBF => simd_shuffle16($a, $b, [16, 17, 18, 19, 20, 21, 6, 23, 24, 25, 26, 27, 28, 29, 14, 31]),
0xC0 => simd_shuffle16($a, $b, [0, 1, 2, 3, 4, 5, 22, 23, 8, 9, 10, 11, 12, 13, 30, 31]),
0xC1 => simd_shuffle16($a, $b, [16, 1, 2, 3, 4, 5, 22, 23, 24, 9, 10, 11, 12, 13, 30, 31]),
0xC2 => simd_shuffle16($a, $b, [0, 17, 2, 3, 4, 5, 22, 23, 8, 25, 10, 11, 12, 13, 30, 31]),
0xC3 => simd_shuffle16($a, $b, [16, 17, 2, 3, 4, 5, 22, 23, 24, 25, 10, 11, 12, 13, 30, 31]),
0xC4 => simd_shuffle16($a, $b, [0, 1, 18, 3, 4, 5, 22, 23, 8, 9, 26, 11, 12, 13, 30, 31]),
0xC5 => simd_shuffle16($a, $b, [16, 1, 18, 3, 4, 5, 22, 23, 24, 9, 26, 11, 12, 13, 30, 31]),
0xC6 => simd_shuffle16($a, $b, [0, 17, 18, 3, 4, 5, 22, 23, 8, 25, 26, 11, 12, 13, 30, 31]),
0xC7 => simd_shuffle16($a, $b, [16, 17, 18, 3, 4, 5, 22, 23, 24, 25, 26, 11, 12, 13, 30, 31]),
0xC8 => simd_shuffle16($a, $b, [0, 1, 2, 19, 4, 5, 22, 23, 8, 9, 10, 27, 12, 13, 30, 31]),
0xC9 => simd_shuffle16($a, $b, [16, 1, 2, 19, 4, 5, 22, 23, 24, 9, 10, 27, 12, 13, 30, 31]),
0xCA => simd_shuffle16($a, $b, [0, 17, 2, 19, 4, 5, 22, 23, 8, 25, 10, 27, 12, 13, 30, 31]),
0xCB => simd_shuffle16($a, $b, [16, 17, 2, 19, 4, 5, 22, 23, 24, 25, 10, 27, 12, 13, 30, 31]),
0xCC => simd_shuffle16($a, $b, [0, 1, 18, 19, 4, 5, 22, 23, 8, 9, 26, 27, 12, 13, 30, 31]),
0xCD => simd_shuffle16($a, $b, [16, 1, 18, 19, 4, 5, 22, 23, 24, 9, 26, 27, 12, 13, 30, 31]),
0xCE => simd_shuffle16($a, $b, [0, 17, 18, 19, 4, 5, 22, 23, 8, 25, 26, 27, 12, 13, 30, 31]),
0xCF => simd_shuffle16($a, $b, [16, 17, 18, 19, 4, 5, 22, 23, 24, 25, 26, 27, 12, 13, 30, 31]),
0xD0 => simd_shuffle16($a, $b, [0, 1, 2, 3, 20, 5, 22, 23, 8, 9, 10, 11, 28, 13, 30, 31]),
0xD1 => simd_shuffle16($a, $b, [16, 1, 2, 3, 20, 5, 22, 23, 24, 9, 10, 11, 28, 13, 30, 31]),
0xD2 => simd_shuffle16($a, $b, [0, 17, 2, 3, 20, 5, 22, 23, 8, 25, 10, 11, 28, 13, 30, 31]),
0xD3 => simd_shuffle16($a, $b, [16, 17, 2, 3, 20, 5, 22, 23, 24, 25, 10, 11, 28, 13, 30, 31]),
0xD4 => simd_shuffle16($a, $b, [0, 1, 18, 3, 20, 5, 22, 23, 8, 9, 26, 11, 28, 13, 30, 31]),
0xD5 => simd_shuffle16($a, $b, [16, 1, 18, 3, 20, 5, 22, 23, 24, 9, 26, 11, 28, 13, 30, 31]),
0xD6 => simd_shuffle16($a, $b, [0, 17, 18, 3, 20, 5, 22, 23, 8, 25, 26, 11, 28, 13, 30, 31]),
0xD7 => simd_shuffle16($a, $b, [16, 17, 18, 3, 20, 5, 22, 23, 24, 25, 26, 11, 28, 13, 30, 31]),
0xD8 => simd_shuffle16($a, $b, [0, 1, 2, 19, 20, 5, 22, 23, 8, 9, 10, 27, 28, 13, 30, 31]),
0xD9 => simd_shuffle16($a, $b, [16, 1, 2, 19, 20, 5, 22, 23, 24, 9, 10, 27, 28, 13, 30, 31]),
0xDA => simd_shuffle16($a, $b, [0, 17, 2, 19, 20, 5, 22, 23, 8, 25, 10, 27, 28, 13, 30, 31]),
0xDB => simd_shuffle16($a, $b, [16, 17, 2, 19, 20, 5, 22, 23, 24, 25, 10, 27, 28, 13, 30, 31]),
0xDC => simd_shuffle16($a, $b, [0, 1, 18, 19, 20, 5, 22, 23, 8, 9, 26, 27, 28, 13, 30, 31]),
0xDD => simd_shuffle16($a, $b, [16, 1, 18, 19, 20, 5, 22, 23, 24, 9, 26, 27, 28, 13, 30, 31]),
0xDE => simd_shuffle16($a, $b, [0, 17, 18, 19, 20, 5, 22, 23, 8, 25, 26, 27, 28, 13, 30, 31]),
0xDF => simd_shuffle16($a, $b, [16, 17, 18, 19, 20, 5, 22, 23, 24, 25, 26, 27, 28, 13, 30, 31]),
0xE0 => simd_shuffle16($a, $b, [0, 1, 2, 3, 4, 21, 22, 23, 8, 9, 10, 11, 12, 29, 30, 31]),
0xE1 => simd_shuffle16($a, $b, [16, 1, 2, 3, 4, 21, 22, 23, 24, 9, 10, 11, 12, 29, 30, 31]),
0xE2 => simd_shuffle16($a, $b, [0, 17, 2, 3, 4, 21, 22, 23, 8, 25, 10, 11, 12, 29, 30, 31]),
0xE3 => simd_shuffle16($a, $b, [16, 17, 2, 3, 4, 21, 22, 23, 24, 25, 10, 11, 12, 29, 30, 31]),
0xE4 => simd_shuffle16($a, $b, [0, 1, 18, 3, 4, 21, 22, 23, 8, 9, 26, 11, 12, 29, 30, 31]),
0xE5 => simd_shuffle16($a, $b, [16, 1, 18, 3, 4, 21, 22, 23, 24, 9, 26, 11, 12, 29, 30, 31]),
0xE6 => simd_shuffle16($a, $b, [0, 17, 18, 3, 4, 21, 22, 23, 8, 25, 26, 11, 12, 29, 30, 31]),
0xE7 => simd_shuffle16($a, $b, [16, 17, 18, 3, 4, 21, 22, 23, 24, 25, 26, 11, 12, 29, 30, 31]),
0xE8 => simd_shuffle16($a, $b, [0, 1, 2, 19, 4, 21, 22, 23, 8, 9, 10, 27, 12, 29, 30, 31]),
0xE9 => simd_shuffle16($a, $b, [16, 1, 2, 19, 4, 21, 22, 23, 24, 9, 10, 27, 12, 29, 30, 31]),
0xEA => simd_shuffle16($a, $b, [0, 17, 2, 19, 4, 21, 22, 23, 8, 25, 10, 27, 12, 29, 30, 31]),
0xEB => simd_shuffle16($a, $b, [16, 17, 2, 19, 4, 21, 22, 23, 24, 25, 10, 27, 12, 29, 30, 31]),
0xEC => simd_shuffle16($a, $b, [0, 1, 18, 19, 4, 21, 22, 23, 8, 9, 26, 27, 12, 29, 30, 31]),
0xED => simd_shuffle16($a, $b, [16, 1, 18, 19, 4, 21, 22, 23, 24, 9, 26, 27, 12, 29, 30, 31]),
0xEE => simd_shuffle16($a, $b, [0, 17, 18, 19, 4, 21, 22, 23, 8, 25, 26, 27, 12, 29, 30, 31]),
0xEF => simd_shuffle16($a, $b, [16, 17, 18, 19, 4, 21, 22, 23, 24, 25, 26, 27, 12, 29, 30, 31]),
0xF0 => simd_shuffle16($a, $b, [0, 1, 2, 3, 20, 21, 22, 23, 8, 9, 10, 11, 28, 29, 30, 31]),
0xF1 => simd_shuffle16($a, $b, [16, 1, 2, 3, 20, 21, 22, 23, 24, 9, 10, 11, 28, 29, 30, 31]),
0xF2 => simd_shuffle16($a, $b, [0, 17, 2, 3, 20, 21, 22, 23, 8, 25, 10, 11, 28, 29, 30, 31]),
0xF3 => simd_shuffle16($a, $b, [16, 17, 2, 3, 20, 21, 22, 23, 24, 25, 10, 11, 28, 29, 30, 31]),
0xF4 => simd_shuffle16($a, $b, [0, 1, 18, 3, 20, 21, 22, 23, 8, 9, 26, 11, 28, 29, 30, 31]),
0xF5 => simd_shuffle16($a, $b, [16, 1, 18, 3, 20, 21, 22, 23, 24, 9, 26, 11, 28, 29, 30, 31]),
0xF6 => simd_shuffle16($a, $b, [0, 17, 18, 3, 20, 21, 22, 23, 8, 25, 26, 11, 28, 29, 30, 31]),
0xF7 => simd_shuffle16($a, $b, [16, 17, 18, 3, 20, 21, 22, 23, 24, 25, 26, 11, 28, 29, 30, 31]),
0xF8 => simd_shuffle16($a, $b, [0, 1, 2, 19, 20, 21, 22, 23, 8, 9, 10, 27, 28, 29, 30, 31]),
0xF9 => simd_shuffle16($a, $b, [16, 1, 2, 19, 20, 21, 22, 23, 24, 9, 10, 27, 28, 29, 30, 31]),
0xFA => simd_shuffle16($a, $b, [0, 17, 2, 19, 20, 21, 22, 23, 8, 25, 10, 27, 28, 29, 30, 31]),
0xFB => simd_shuffle16($a, $b, [16, 17, 2, 19, 20, 21, 22, 23, 24, 25, 10, 27, 28, 29, 30, 31]),
0xFC => simd_shuffle16($a, $b, [0, 1, 18, 19, 20, 21, 22, 23, 8, 9, 26, 27, 28, 29, 30, 31]),
0xFD => simd_shuffle16($a, $b, [16, 1, 18, 19, 20, 21, 22, 23, 24, 9, 26, 27, 28, 29, 30, 31]),
0xFE => simd_shuffle16($a, $b, [0, 17, 18, 19, 20, 21, 22, 23, 8, 25, 26, 27, 28, 29, 30, 31]),
0xFF => simd_shuffle16($a, $b, [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]),
_ => unreachable!()
}
}
}
}
#[cfg(any(feature = "doc", target_feature = "avx"))]
macro_rules! permute_shuffle4 {
($a: expr, $b: expr, $imm8: expr) => {
unsafe {
match $imm8 & 0xFF {
0x00 => simd_shuffle4($a, $b, [0, 0, 0, 0]),
0x01 => simd_shuffle4($a, $b, [1, 0, 0, 0]),
0x02 => simd_shuffle4($a, $b, [2, 0, 0, 0]),
0x03 => simd_shuffle4($a, $b, [3, 0, 0, 0]),
0x04 => simd_shuffle4($a, $b, [0, 1, 0, 0]),
0x05 => simd_shuffle4($a, $b, [1, 1, 0, 0]),
0x06 => simd_shuffle4($a, $b, [2, 1, 0, 0]),
0x07 => simd_shuffle4($a, $b, [3, 1, 0, 0]),
0x08 => simd_shuffle4($a, $b, [0, 2, 0, 0]),
0x09 => simd_shuffle4($a, $b, [1, 2, 0, 0]),
0x0A => simd_shuffle4($a, $b, [2, 2, 0, 0]),
0x0B => simd_shuffle4($a, $b, [3, 2, 0, 0]),
0x0C => simd_shuffle4($a, $b, [0, 3, 0, 0]),
0x0D => simd_shuffle4($a, $b, [1, 3, 0, 0]),
0x0E => simd_shuffle4($a, $b, [2, 3, 0, 0]),
0x0F => simd_shuffle4($a, $b, [3, 3, 0, 0]),
0x10 => simd_shuffle4($a, $b, [0, 0, 1, 0]),
0x11 => simd_shuffle4($a, $b, [1, 0, 1, 0]),
0x12 => simd_shuffle4($a, $b, [2, 0, 1, 0]),
0x13 => simd_shuffle4($a, $b, [3, 0, 1, 0]),
0x14 => simd_shuffle4($a, $b, [0, 1, 1, 0]),
0x15 => simd_shuffle4($a, $b, [1, 1, 1, 0]),
0x16 => simd_shuffle4($a, $b, [2, 1, 1, 0]),
0x17 => simd_shuffle4($a, $b, [3, 1, 1, 0]),
0x18 => simd_shuffle4($a, $b, [0, 2, 1, 0]),
0x19 => simd_shuffle4($a, $b, [1, 2, 1, 0]),
0x1A => simd_shuffle4($a, $b, [2, 2, 1, 0]),
0x1B => simd_shuffle4($a, $b, [3, 2, 1, 0]),
0x1C => simd_shuffle4($a, $b, [0, 3, 1, 0]),
0x1D => simd_shuffle4($a, $b, [1, 3, 1, 0]),
0x1E => simd_shuffle4($a, $b, [2, 3, 1, 0]),
0x1F => simd_shuffle4($a, $b, [3, 3, 1, 0]),
0x20 => simd_shuffle4($a, $b, [0, 0, 2, 0]),
0x21 => simd_shuffle4($a, $b, [1, 0, 2, 0]),
0x22 => simd_shuffle4($a, $b, [2, 0, 2, 0]),
0x23 => simd_shuffle4($a, $b, [3, 0, 2, 0]),
0x24 => simd_shuffle4($a, $b, [0, 1, 2, 0]),
0x25 => simd_shuffle4($a, $b, [1, 1, 2, 0]),
0x26 => simd_shuffle4($a, $b, [2, 1, 2, 0]),
0x27 => simd_shuffle4($a, $b, [3, 1, 2, 0]),
0x28 => simd_shuffle4($a, $b, [0, 2, 2, 0]),
0x29 => simd_shuffle4($a, $b, [1, 2, 2, 0]),
0x2A => simd_shuffle4($a, $b, [2, 2, 2, 0]),
0x2B => simd_shuffle4($a, $b, [3, 2, 2, 0]),
0x2C => simd_shuffle4($a, $b, [0, 3, 2, 0]),
0x2D => simd_shuffle4($a, $b, [1, 3, 2, 0]),
0x2E => simd_shuffle4($a, $b, [2, 3, 2, 0]),
0x2F => simd_shuffle4($a, $b, [3, 3, 2, 0]),
0x30 => simd_shuffle4($a, $b, [0, 0, 3, 0]),
0x31 => simd_shuffle4($a, $b, [1, 0, 3, 0]),
0x32 => simd_shuffle4($a, $b, [2, 0, 3, 0]),
0x33 => simd_shuffle4($a, $b, [3, 0, 3, 0]),
0x34 => simd_shuffle4($a, $b, [0, 1, 3, 0]),
0x35 => simd_shuffle4($a, $b, [1, 1, 3, 0]),
0x36 => simd_shuffle4($a, $b, [2, 1, 3, 0]),
0x37 => simd_shuffle4($a, $b, [3, 1, 3, 0]),
0x38 => simd_shuffle4($a, $b, [0, 2, 3, 0]),
0x39 => simd_shuffle4($a, $b, [1, 2, 3, 0]),
0x3A => simd_shuffle4($a, $b, [2, 2, 3, 0]),
0x3B => simd_shuffle4($a, $b, [3, 2, 3, 0]),
0x3C => simd_shuffle4($a, $b, [0, 3, 3, 0]),
0x3D => simd_shuffle4($a, $b, [1, 3, 3, 0]),
0x3E => simd_shuffle4($a, $b, [2, 3, 3, 0]),
0x3F => simd_shuffle4($a, $b, [3, 3, 3, 0]),
0x40 => simd_shuffle4($a, $b, [0, 0, 0, 1]),
0x41 => simd_shuffle4($a, $b, [1, 0, 0, 1]),
0x42 => simd_shuffle4($a, $b, [2, 0, 0, 1]),
0x43 => simd_shuffle4($a, $b, [3, 0, 0, 1]),
0x44 => simd_shuffle4($a, $b, [0, 1, 0, 1]),
0x45 => simd_shuffle4($a, $b, [1, 1, 0, 1]),
0x46 => simd_shuffle4($a, $b, [2, 1, 0, 1]),
0x47 => simd_shuffle4($a, $b, [3, 1, 0, 1]),
0x48 => simd_shuffle4($a, $b, [0, 2, 0, 1]),
0x49 => simd_shuffle4($a, $b, [1, 2, 0, 1]),
0x4A => simd_shuffle4($a, $b, [2, 2, 0, 1]),
0x4B => simd_shuffle4($a, $b, [3, 2, 0, 1]),
0x4C => simd_shuffle4($a, $b, [0, 3, 0, 1]),
0x4D => simd_shuffle4($a, $b, [1, 3, 0, 1]),
0x4E => simd_shuffle4($a, $b, [2, 3, 0, 1]),
0x4F => simd_shuffle4($a, $b, [3, 3, 0, 1]),
0x50 => simd_shuffle4($a, $b, [0, 0, 1, 1]),
0x51 => simd_shuffle4($a, $b, [1, 0, 1, 1]),
0x52 => simd_shuffle4($a, $b, [2, 0, 1, 1]),
0x53 => simd_shuffle4($a, $b, [3, 0, 1, 1]),
0x54 => simd_shuffle4($a, $b, [0, 1, 1, 1]),
0x55 => simd_shuffle4($a, $b, [1, 1, 1, 1]),
0x56 => simd_shuffle4($a, $b, [2, 1, 1, 1]),
0x57 => simd_shuffle4($a, $b, [3, 1, 1, 1]),
0x58 => simd_shuffle4($a, $b, [0, 2, 1, 1]),
0x59 => simd_shuffle4($a, $b, [1, 2, 1, 1]),
0x5A => simd_shuffle4($a, $b, [2, 2, 1, 1]),
0x5B => simd_shuffle4($a, $b, [3, 2, 1, 1]),
0x5C => simd_shuffle4($a, $b, [0, 3, 1, 1]),
0x5D => simd_shuffle4($a, $b, [1, 3, 1, 1]),
0x5E => simd_shuffle4($a, $b, [2, 3, 1, 1]),
0x5F => simd_shuffle4($a, $b, [3, 3, 1, 1]),
0x60 => simd_shuffle4($a, $b, [0, 0, 2, 1]),
0x61 => simd_shuffle4($a, $b, [1, 0, 2, 1]),
0x62 => simd_shuffle4($a, $b, [2, 0, 2, 1]),
0x63 => simd_shuffle4($a, $b, [3, 0, 2, 1]),
0x64 => simd_shuffle4($a, $b, [0, 1, 2, 1]),
0x65 => simd_shuffle4($a, $b, [1, 1, 2, 1]),
0x66 => simd_shuffle4($a, $b, [2, 1, 2, 1]),
0x67 => simd_shuffle4($a, $b, [3, 1, 2, 1]),
0x68 => simd_shuffle4($a, $b, [0, 2, 2, 1]),
0x69 => simd_shuffle4($a, $b, [1, 2, 2, 1]),
0x6A => simd_shuffle4($a, $b, [2, 2, 2, 1]),
0x6B => simd_shuffle4($a, $b, [3, 2, 2, 1]),
0x6C => simd_shuffle4($a, $b, [0, 3, 2, 1]),
0x6D => simd_shuffle4($a, $b, [1, 3, 2, 1]),
0x6E => simd_shuffle4($a, $b, [2, 3, 2, 1]),
0x6F => simd_shuffle4($a, $b, [3, 3, 2, 1]),
0x70 => simd_shuffle4($a, $b, [0, 0, 3, 1]),
0x71 => simd_shuffle4($a, $b, [1, 0, 3, 1]),
0x72 => simd_shuffle4($a, $b, [2, 0, 3, 1]),
0x73 => simd_shuffle4($a, $b, [3, 0, 3, 1]),
0x74 => simd_shuffle4($a, $b, [0, 1, 3, 1]),
0x75 => simd_shuffle4($a, $b, [1, 1, 3, 1]),
0x76 => simd_shuffle4($a, $b, [2, 1, 3, 1]),
0x77 => simd_shuffle4($a, $b, [3, 1, 3, 1]),
0x78 => simd_shuffle4($a, $b, [0, 2, 3, 1]),
0x79 => simd_shuffle4($a, $b, [1, 2, 3, 1]),
0x7A => simd_shuffle4($a, $b, [2, 2, 3, 1]),
0x7B => simd_shuffle4($a, $b, [3, 2, 3, 1]),
0x7C => simd_shuffle4($a, $b, [0, 3, 3, 1]),
0x7D => simd_shuffle4($a, $b, [1, 3, 3, 1]),
0x7E => simd_shuffle4($a, $b, [2, 3, 3, 1]),
0x7F => simd_shuffle4($a, $b, [3, 3, 3, 1]),
0x80 => simd_shuffle4($a, $b, [0, 0, 0, 2]),
0x81 => simd_shuffle4($a, $b, [1, 0, 0, 2]),
0x82 => simd_shuffle4($a, $b, [2, 0, 0, 2]),
0x83 => simd_shuffle4($a, $b, [3, 0, 0, 2]),
0x84 => simd_shuffle4($a, $b, [0, 1, 0, 2]),
0x85 => simd_shuffle4($a, $b, [1, 1, 0, 2]),
0x86 => simd_shuffle4($a, $b, [2, 1, 0, 2]),
0x87 => simd_shuffle4($a, $b, [3, 1, 0, 2]),
0x88 => simd_shuffle4($a, $b, [0, 2, 0, 2]),
0x89 => simd_shuffle4($a, $b, [1, 2, 0, 2]),
0x8A => simd_shuffle4($a, $b, [2, 2, 0, 2]),
0x8B => simd_shuffle4($a, $b, [3, 2, 0, 2]),
0x8C => simd_shuffle4($a, $b, [0, 3, 0, 2]),
0x8D => simd_shuffle4($a, $b, [1, 3, 0, 2]),
0x8E => simd_shuffle4($a, $b, [2, 3, 0, 2]),
0x8F => simd_shuffle4($a, $b, [3, 3, 0, 2]),
0x90 => simd_shuffle4($a, $b, [0, 0, 1, 2]),
0x91 => simd_shuffle4($a, $b, [1, 0, 1, 2]),
0x92 => simd_shuffle4($a, $b, [2, 0, 1, 2]),
0x93 => simd_shuffle4($a, $b, [3, 0, 1, 2]),
0x94 => simd_shuffle4($a, $b, [0, 1, 1, 2]),
0x95 => simd_shuffle4($a, $b, [1, 1, 1, 2]),
0x96 => simd_shuffle4($a, $b, [2, 1, 1, 2]),
0x97 => simd_shuffle4($a, $b, [3, 1, 1, 2]),
0x98 => simd_shuffle4($a, $b, [0, 2, 1, 2]),
0x99 => simd_shuffle4($a, $b, [1, 2, 1, 2]),
0x9A => simd_shuffle4($a, $b, [2, 2, 1, 2]),
0x9B => simd_shuffle4($a, $b, [3, 2, 1, 2]),
0x9C => simd_shuffle4($a, $b, [0, 3, 1, 2]),
0x9D => simd_shuffle4($a, $b, [1, 3, 1, 2]),
0x9E => simd_shuffle4($a, $b, [2, 3, 1, 2]),
0x9F => simd_shuffle4($a, $b, [3, 3, 1, 2]),
0xA0 => simd_shuffle4($a, $b, [0, 0, 2, 2]),
0xA1 => simd_shuffle4($a, $b, [1, 0, 2, 2]),
0xA2 => simd_shuffle4($a, $b, [2, 0, 2, 2]),
0xA3 => simd_shuffle4($a, $b, [3, 0, 2, 2]),
0xA4 => simd_shuffle4($a, $b, [0, 1, 2, 2]),
0xA5 => simd_shuffle4($a, $b, [1, 1, 2, 2]),
0xA6 => simd_shuffle4($a, $b, [2, 1, 2, 2]),
0xA7 => simd_shuffle4($a, $b, [3, 1, 2, 2]),
0xA8 => simd_shuffle4($a, $b, [0, 2, 2, 2]),
0xA9 => simd_shuffle4($a, $b, [1, 2, 2, 2]),
0xAA => simd_shuffle4($a, $b, [2, 2, 2, 2]),
0xAB => simd_shuffle4($a, $b, [3, 2, 2, 2]),
0xAC => simd_shuffle4($a, $b, [0, 3, 2, 2]),
0xAD => simd_shuffle4($a, $b, [1, 3, 2, 2]),
0xAE => simd_shuffle4($a, $b, [2, 3, 2, 2]),
0xAF => simd_shuffle4($a, $b, [3, 3, 2, 2]),
0xB0 => simd_shuffle4($a, $b, [0, 0, 3, 2]),
0xB1 => simd_shuffle4($a, $b, [1, 0, 3, 2]),
0xB2 => simd_shuffle4($a, $b, [2, 0, 3, 2]),
0xB3 => simd_shuffle4($a, $b, [3, 0, 3, 2]),
0xB4 => simd_shuffle4($a, $b, [0, 1, 3, 2]),
0xB5 => simd_shuffle4($a, $b, [1, 1, 3, 2]),
0xB6 => simd_shuffle4($a, $b, [2, 1, 3, 2]),
0xB7 => simd_shuffle4($a, $b, [3, 1, 3, 2]),
0xB8 => simd_shuffle4($a, $b, [0, 2, 3, 2]),
0xB9 => simd_shuffle4($a, $b, [1, 2, 3, 2]),
0xBA => simd_shuffle4($a, $b, [2, 2, 3, 2]),
0xBB => simd_shuffle4($a, $b, [3, 2, 3, 2]),
0xBC => simd_shuffle4($a, $b, [0, 3, 3, 2]),
0xBD => simd_shuffle4($a, $b, [1, 3, 3, 2]),
0xBE => simd_shuffle4($a, $b, [2, 3, 3, 2]),
0xBF => simd_shuffle4($a, $b, [3, 3, 3, 2]),
0xC0 => simd_shuffle4($a, $b, [0, 0, 0, 3]),
0xC1 => simd_shuffle4($a, $b, [1, 0, 0, 3]),
0xC2 => simd_shuffle4($a, $b, [2, 0, 0, 3]),
0xC3 => simd_shuffle4($a, $b, [3, 0, 0, 3]),
0xC4 => simd_shuffle4($a, $b, [0, 1, 0, 3]),
0xC5 => simd_shuffle4($a, $b, [1, 1, 0, 3]),
0xC6 => simd_shuffle4($a, $b, [2, 1, 0, 3]),
0xC7 => simd_shuffle4($a, $b, [3, 1, 0, 3]),
0xC8 => simd_shuffle4($a, $b, [0, 2, 0, 3]),
0xC9 => simd_shuffle4($a, $b, [1, 2, 0, 3]),
0xCA => simd_shuffle4($a, $b, [2, 2, 0, 3]),
0xCB => simd_shuffle4($a, $b, [3, 2, 0, 3]),
0xCC => simd_shuffle4($a, $b, [0, 3, 0, 3]),
0xCD => simd_shuffle4($a, $b, [1, 3, 0, 3]),
0xCE => simd_shuffle4($a, $b, [2, 3, 0, 3]),
0xCF => simd_shuffle4($a, $b, [3, 3, 0, 3]),
0xD0 => simd_shuffle4($a, $b, [0, 0, 1, 3]),
0xD1 => simd_shuffle4($a, $b, [1, 0, 1, 3]),
0xD2 => simd_shuffle4($a, $b, [2, 0, 1, 3]),
0xD3 => simd_shuffle4($a, $b, [3, 0, 1, 3]),
0xD4 => simd_shuffle4($a, $b, [0, 1, 1, 3]),
0xD5 => simd_shuffle4($a, $b, [1, 1, 1, 3]),
0xD6 => simd_shuffle4($a, $b, [2, 1, 1, 3]),
0xD7 => simd_shuffle4($a, $b, [3, 1, 1, 3]),
0xD8 => simd_shuffle4($a, $b, [0, 2, 1, 3]),
0xD9 => simd_shuffle4($a, $b, [1, 2, 1, 3]),
0xDA => simd_shuffle4($a, $b, [2, 2, 1, 3]),
0xDB => simd_shuffle4($a, $b, [3, 2, 1, 3]),
0xDC => simd_shuffle4($a, $b, [0, 3, 1, 3]),
0xDD => simd_shuffle4($a, $b, [1, 3, 1, 3]),
0xDE => simd_shuffle4($a, $b, [2, 3, 1, 3]),
0xDF => simd_shuffle4($a, $b, [3, 3, 1, 3]),
0xE0 => simd_shuffle4($a, $b, [0, 0, 2, 3]),
0xE1 => simd_shuffle4($a, $b, [1, 0, 2, 3]),
0xE2 => simd_shuffle4($a, $b, [2, 0, 2, 3]),
0xE3 => simd_shuffle4($a, $b, [3, 0, 2, 3]),
0xE4 => simd_shuffle4($a, $b, [0, 1, 2, 3]),
0xE5 => simd_shuffle4($a, $b, [1, 1, 2, 3]),
0xE6 => simd_shuffle4($a, $b, [2, 1, 2, 3]),
0xE7 => simd_shuffle4($a, $b, [3, 1, 2, 3]),
0xE8 => simd_shuffle4($a, $b, [0, 2, 2, 3]),
0xE9 => simd_shuffle4($a, $b, [1, 2, 2, 3]),
0xEA => simd_shuffle4($a, $b, [2, 2, 2, 3]),
0xEB => simd_shuffle4($a, $b, [3, 2, 2, 3]),
0xEC => simd_shuffle4($a, $b, [0, 3, 2, 3]),
0xED => simd_shuffle4($a, $b, [1, 3, 2, 3]),
0xEE => simd_shuffle4($a, $b, [2, 3, 2, 3]),
0xEF => simd_shuffle4($a, $b, [3, 3, 2, 3]),
0xF0 => simd_shuffle4($a, $b, [0, 0, 3, 3]),
0xF1 => simd_shuffle4($a, $b, [1, 0, 3, 3]),
0xF2 => simd_shuffle4($a, $b, [2, 0, 3, 3]),
0xF3 => simd_shuffle4($a, $b, [3, 0, 3, 3]),
0xF4 => simd_shuffle4($a, $b, [0, 1, 3, 3]),
0xF5 => simd_shuffle4($a, $b, [1, 1, 3, 3]),
0xF6 => simd_shuffle4($a, $b, [2, 1, 3, 3]),
0xF7 => simd_shuffle4($a, $b, [3, 1, 3, 3]),
0xF8 => simd_shuffle4($a, $b, [0, 2, 3, 3]),
0xF9 => simd_shuffle4($a, $b, [1, 2, 3, 3]),
0xFA => simd_shuffle4($a, $b, [2, 2, 3, 3]),
0xFB => simd_shuffle4($a, $b, [3, 2, 3, 3]),
0xFC => simd_shuffle4($a, $b, [0, 3, 3, 3]),
0xFD => simd_shuffle4($a, $b, [1, 3, 3, 3]),
0xFE => simd_shuffle4($a, $b, [2, 3, 3, 3]),
0xFF => simd_shuffle4($a, $b, [3, 3, 3, 3]),
_ => unreachable!()
}
}
}
}
#[cfg(any(feature = "doc", target_feature = "sse4.1"))]
macro_rules! fn_imm8_arg1 {
($fn_name: expr, $a: expr, $imm8: expr) => {
unsafe {
match $imm8 & 0xFF {
0x00 => $fn_name($a, 0x00),
0x01 => $fn_name($a, 0x01),
0x02 => $fn_name($a, 0x02),
0x03 => $fn_name($a, 0x03),
0x04 => $fn_name($a, 0x04),
0x05 => $fn_name($a, 0x05),
0x06 => $fn_name($a, 0x06),
0x07 => $fn_name($a, 0x07),
0x08 => $fn_name($a, 0x08),
0x09 => $fn_name($a, 0x09),
0x0A => $fn_name($a, 0x0A),
0x0B => $fn_name($a, 0x0B),
0x0C => $fn_name($a, 0x0C),
0x0D => $fn_name($a, 0x0D),
0x0E => $fn_name($a, 0x0E),
0x0F => $fn_name($a, 0x0F),
0x10 => $fn_name($a, 0x10),
0x11 => $fn_name($a, 0x11),
0x12 => $fn_name($a, 0x12),
0x13 => $fn_name($a, 0x13),
0x14 => $fn_name($a, 0x14),
0x15 => $fn_name($a, 0x15),
0x16 => $fn_name($a, 0x16),
0x17 => $fn_name($a, 0x17),
0x18 => $fn_name($a, 0x18),
0x19 => $fn_name($a, 0x19),
0x1A => $fn_name($a, 0x1A),
0x1B => $fn_name($a, 0x1B),
0x1C => $fn_name($a, 0x1C),
0x1D => $fn_name($a, 0x1D),
0x1E => $fn_name($a, 0x1E),
0x1F => $fn_name($a, 0x1F),
0x20 => $fn_name($a, 0x20),
0x21 => $fn_name($a, 0x21),
0x22 => $fn_name($a, 0x22),
0x23 => $fn_name($a, 0x23),
0x24 => $fn_name($a, 0x24),
0x25 => $fn_name($a, 0x25),
0x26 => $fn_name($a, 0x26),
0x27 => $fn_name($a, 0x27),
0x28 => $fn_name($a, 0x28),
0x29 => $fn_name($a, 0x29),
0x2A => $fn_name($a, 0x2A),
0x2B => $fn_name($a, 0x2B),
0x2C => $fn_name($a, 0x2C),
0x2D => $fn_name($a, 0x2D),
0x2E => $fn_name($a, 0x2E),
0x2F => $fn_name($a, 0x2F),
0x30 => $fn_name($a, 0x30),
0x31 => $fn_name($a, 0x31),
0x32 => $fn_name($a, 0x32),
0x33 => $fn_name($a, 0x33),
0x34 => $fn_name($a, 0x34),
0x35 => $fn_name($a, 0x35),
0x36 => $fn_name($a, 0x36),
0x37 => $fn_name($a, 0x37),
0x38 => $fn_name($a, 0x38),
0x39 => $fn_name($a, 0x39),
0x3A => $fn_name($a, 0x3A),
0x3B => $fn_name($a, 0x3B),
0x3C => $fn_name($a, 0x3C),
0x3D => $fn_name($a, 0x3D),
0x3E => $fn_name($a, 0x3E),
0x3F => $fn_name($a, 0x3F),
0x40 => $fn_name($a, 0x40),
0x41 => $fn_name($a, 0x41),
0x42 => $fn_name($a, 0x42),
0x43 => $fn_name($a, 0x43),
0x44 => $fn_name($a, 0x44),
0x45 => $fn_name($a, 0x45),
0x46 => $fn_name($a, 0x46),
0x47 => $fn_name($a, 0x47),
0x48 => $fn_name($a, 0x48),
0x49 => $fn_name($a, 0x49),
0x4A => $fn_name($a, 0x4A),
0x4B => $fn_name($a, 0x4B),
0x4C => $fn_name($a, 0x4C),
0x4D => $fn_name($a, 0x4D),
0x4E => $fn_name($a, 0x4E),
0x4F => $fn_name($a, 0x4F),
0x50 => $fn_name($a, 0x50),
0x51 => $fn_name($a, 0x51),
0x52 => $fn_name($a, 0x52),
0x53 => $fn_name($a, 0x53),
0x54 => $fn_name($a, 0x54),
0x55 => $fn_name($a, 0x55),
0x56 => $fn_name($a, 0x56),
0x57 => $fn_name($a, 0x57),
0x58 => $fn_name($a, 0x58),
0x59 => $fn_name($a, 0x59),
0x5A => $fn_name($a, 0x5A),
0x5B => $fn_name($a, 0x5B),
0x5C => $fn_name($a, 0x5C),
0x5D => $fn_name($a, 0x5D),
0x5E => $fn_name($a, 0x5E),
0x5F => $fn_name($a, 0x5F),
0x60 => $fn_name($a, 0x60),
0x61 => $fn_name($a, 0x61),
0x62 => $fn_name($a, 0x62),
0x63 => $fn_name($a, 0x63),
0x64 => $fn_name($a, 0x64),
0x65 => $fn_name($a, 0x65),
0x66 => $fn_name($a, 0x66),
0x67 => $fn_name($a, 0x67),
0x68 => $fn_name($a, 0x68),
0x69 => $fn_name($a, 0x69),
0x6A => $fn_name($a, 0x6A),
0x6B => $fn_name($a, 0x6B),
0x6C => $fn_name($a, 0x6C),
0x6D => $fn_name($a, 0x6D),
0x6E => $fn_name($a, 0x6E),
0x6F => $fn_name($a, 0x6F),
0x70 => $fn_name($a, 0x70),
0x71 => $fn_name($a, 0x71),
0x72 => $fn_name($a, 0x72),
0x73 => $fn_name($a, 0x73),
0x74 => $fn_name($a, 0x74),
0x75 => $fn_name($a, 0x75),
0x76 => $fn_name($a, 0x76),
0x77 => $fn_name($a, 0x77),
0x78 => $fn_name($a, 0x78),
0x79 => $fn_name($a, 0x79),
0x7A => $fn_name($a, 0x7A),
0x7B => $fn_name($a, 0x7B),
0x7C => $fn_name($a, 0x7C),
0x7D => $fn_name($a, 0x7D),
0x7E => $fn_name($a, 0x7E),
0x7F => $fn_name($a, 0x7F),
0x80 => $fn_name($a, 0x80),
0x81 => $fn_name($a, 0x81),
0x82 => $fn_name($a, 0x82),
0x83 => $fn_name($a, 0x83),
0x84 => $fn_name($a, 0x84),
0x85 => $fn_name($a, 0x85),
0x86 => $fn_name($a, 0x86),
0x87 => $fn_name($a, 0x87),
0x88 => $fn_name($a, 0x88),
0x89 => $fn_name($a, 0x89),
0x8A => $fn_name($a, 0x8A),
0x8B => $fn_name($a, 0x8B),
0x8C => $fn_name($a, 0x8C),
0x8D => $fn_name($a, 0x8D),
0x8E => $fn_name($a, 0x8E),
0x8F => $fn_name($a, 0x8F),
0x90 => $fn_name($a, 0x90),
0x91 => $fn_name($a, 0x91),
0x92 => $fn_name($a, 0x92),
0x93 => $fn_name($a, 0x93),
0x94 => $fn_name($a, 0x94),
0x95 => $fn_name($a, 0x95),
0x96 => $fn_name($a, 0x96),
0x97 => $fn_name($a, 0x97),
0x98 => $fn_name($a, 0x98),
0x99 => $fn_name($a, 0x99),
0x9A => $fn_name($a, 0x9A),
0x9B => $fn_name($a, 0x9B),
0x9C => $fn_name($a, 0x9C),
0x9D => $fn_name($a, 0x9D),
0x9E => $fn_name($a, 0x9E),
0x9F => $fn_name($a, 0x9F),
0xA0 => $fn_name($a, 0xA0),
0xA1 => $fn_name($a, 0xA1),
0xA2 => $fn_name($a, 0xA2),
0xA3 => $fn_name($a, 0xA3),
0xA4 => $fn_name($a, 0xA4),
0xA5 => $fn_name($a, 0xA5),
0xA6 => $fn_name($a, 0xA6),
0xA7 => $fn_name($a, 0xA7),
0xA8 => $fn_name($a, 0xA8),
0xA9 => $fn_name($a, 0xA9),
0xAA => $fn_name($a, 0xAA),
0xAB => $fn_name($a, 0xAB),
0xAC => $fn_name($a, 0xAC),
0xAD => $fn_name($a, 0xAD),
0xAE => $fn_name($a, 0xAE),
0xAF => $fn_name($a, 0xAF),
0xB0 => $fn_name($a, 0xB0),
0xB1 => $fn_name($a, 0xB1),
0xB2 => $fn_name($a, 0xB2),
0xB3 => $fn_name($a, 0xB3),
0xB4 => $fn_name($a, 0xB4),
0xB5 => $fn_name($a, 0xB5),
0xB6 => $fn_name($a, 0xB6),
0xB7 => $fn_name($a, 0xB7),
0xB8 => $fn_name($a, 0xB8),
0xB9 => $fn_name($a, 0xB9),
0xBA => $fn_name($a, 0xBA),
0xBB => $fn_name($a, 0xBB),
0xBC => $fn_name($a, 0xBC),
0xBD => $fn_name($a, 0xBD),
0xBE => $fn_name($a, 0xBE),
0xBF => $fn_name($a, 0xBF),
0xC0 => $fn_name($a, 0xC0),
0xC1 => $fn_name($a, 0xC1),
0xC2 => $fn_name($a, 0xC2),
0xC3 => $fn_name($a, 0xC3),
0xC4 => $fn_name($a, 0xC4),
0xC5 => $fn_name($a, 0xC5),
0xC6 => $fn_name($a, 0xC6),
0xC7 => $fn_name($a, 0xC7),
0xC8 => $fn_name($a, 0xC8),
0xC9 => $fn_name($a, 0xC9),
0xCA => $fn_name($a, 0xCA),
0xCB => $fn_name($a, 0xCB),
0xCC => $fn_name($a, 0xCC),
0xCD => $fn_name($a, 0xCD),
0xCE => $fn_name($a, 0xCE),
0xCF => $fn_name($a, 0xCF),
0xD0 => $fn_name($a, 0xD0),
0xD1 => $fn_name($a, 0xD1),
0xD2 => $fn_name($a, 0xD2),
0xD3 => $fn_name($a, 0xD3),
0xD4 => $fn_name($a, 0xD4),
0xD5 => $fn_name($a, 0xD5),
0xD6 => $fn_name($a, 0xD6),
0xD7 => $fn_name($a, 0xD7),
0xD8 => $fn_name($a, 0xD8),
0xD9 => $fn_name($a, 0xD9),
0xDA => $fn_name($a, 0xDA),
0xDB => $fn_name($a, 0xDB),
0xDC => $fn_name($a, 0xDC),
0xDD => $fn_name($a, 0xDD),
0xDE => $fn_name($a, 0xDE),
0xDF => $fn_name($a, 0xDF),
0xE0 => $fn_name($a, 0xE0),
0xE1 => $fn_name($a, 0xE1),
0xE2 => $fn_name($a, 0xE2),
0xE3 => $fn_name($a, 0xE3),
0xE4 => $fn_name($a, 0xE4),
0xE5 => $fn_name($a, 0xE5),
0xE6 => $fn_name($a, 0xE6),
0xE7 => $fn_name($a, 0xE7),
0xE8 => $fn_name($a, 0xE8),
0xE9 => $fn_name($a, 0xE9),
0xEA => $fn_name($a, 0xEA),
0xEB => $fn_name($a, 0xEB),
0xEC => $fn_name($a, 0xEC),
0xED => $fn_name($a, 0xED),
0xEE => $fn_name($a, 0xEE),
0xEF => $fn_name($a, 0xEF),
0xF0 => $fn_name($a, 0xF0),
0xF1 => $fn_name($a, 0xF1),
0xF2 => $fn_name($a, 0xF2),
0xF3 => $fn_name($a, 0xF3),
0xF4 => $fn_name($a, 0xF4),
0xF5 => $fn_name($a, 0xF5),
0xF6 => $fn_name($a, 0xF6),
0xF7 => $fn_name($a, 0xF7),
0xF8 => $fn_name($a, 0xF8),
0xF9 => $fn_name($a, 0xF9),
0xFA => $fn_name($a, 0xFA),
0xFB => $fn_name($a, 0xFB),
0xFC => $fn_name($a, 0xFC),
0xFD => $fn_name($a, 0xFD),
0xFE => $fn_name($a, 0xFE),
0xFF => $fn_name($a, 0xFF),
_ => unreachable!()
}
}
}
}
#[cfg(any(feature = "doc", target_feature = "avx"))]
macro_rules! fn_imm6_arg2 {
($fn_name: expr, $a: expr, $b: expr, $imm8: expr) => {
unsafe {
match $imm8 & 0x1F {
0x00 => $fn_name($a, $b, 0x00),
0x01 => $fn_name($a, $b, 0x01),
0x02 => $fn_name($a, $b, 0x02),
0x03 => $fn_name($a, $b, 0x03),
0x04 => $fn_name($a, $b, 0x04),
0x05 => $fn_name($a, $b, 0x05),
0x06 => $fn_name($a, $b, 0x06),
0x07 => $fn_name($a, $b, 0x07),
0x08 => $fn_name($a, $b, 0x08),
0x09 => $fn_name($a, $b, 0x09),
0x0A => $fn_name($a, $b, 0x0A),
0x0B => $fn_name($a, $b, 0x0B),
0x0C => $fn_name($a, $b, 0x0C),
0x0D => $fn_name($a, $b, 0x0D),
0x0E => $fn_name($a, $b, 0x0E),
0x0F => $fn_name($a, $b, 0x0F),
0x10 => $fn_name($a, $b, 0x10),
0x11 => $fn_name($a, $b, 0x11),
0x12 => $fn_name($a, $b, 0x12),
0x13 => $fn_name($a, $b, 0x13),
0x14 => $fn_name($a, $b, 0x14),
0x15 => $fn_name($a, $b, 0x15),
0x16 => $fn_name($a, $b, 0x16),
0x17 => $fn_name($a, $b, 0x17),
0x18 => $fn_name($a, $b, 0x18),
0x19 => $fn_name($a, $b, 0x19),
0x1A => $fn_name($a, $b, 0x1A),
0x1B => $fn_name($a, $b, 0x1B),
0x1C => $fn_name($a, $b, 0x1C),
0x1D => $fn_name($a, $b, 0x1D),
0x1E => $fn_name($a, $b, 0x1E),
0x1F => $fn_name($a, $b, 0x1F),
_ => unreachable!()
}
}
}
}
#[cfg(any(feature = "doc", target_feature = "sse4.1"))]
macro_rules! fn_imm8_arg2 {
($fn_name: expr, $a: expr, $b: expr, $imm8: expr) => {
unsafe {
match $imm8 & 0xFF {
0x00 => $fn_name($a, $b, 0x00),
0x01 => $fn_name($a, $b, 0x01),
0x02 => $fn_name($a, $b, 0x02),
0x03 => $fn_name($a, $b, 0x03),
0x04 => $fn_name($a, $b, 0x04),
0x05 => $fn_name($a, $b, 0x05),
0x06 => $fn_name($a, $b, 0x06),
0x07 => $fn_name($a, $b, 0x07),
0x08 => $fn_name($a, $b, 0x08),
0x09 => $fn_name($a, $b, 0x09),
0x0A => $fn_name($a, $b, 0x0A),
0x0B => $fn_name($a, $b, 0x0B),
0x0C => $fn_name($a, $b, 0x0C),
0x0D => $fn_name($a, $b, 0x0D),
0x0E => $fn_name($a, $b, 0x0E),
0x0F => $fn_name($a, $b, 0x0F),
0x10 => $fn_name($a, $b, 0x10),
0x11 => $fn_name($a, $b, 0x11),
0x12 => $fn_name($a, $b, 0x12),
0x13 => $fn_name($a, $b, 0x13),
0x14 => $fn_name($a, $b, 0x14),
0x15 => $fn_name($a, $b, 0x15),
0x16 => $fn_name($a, $b, 0x16),
0x17 => $fn_name($a, $b, 0x17),
0x18 => $fn_name($a, $b, 0x18),
0x19 => $fn_name($a, $b, 0x19),
0x1A => $fn_name($a, $b, 0x1A),
0x1B => $fn_name($a, $b, 0x1B),
0x1C => $fn_name($a, $b, 0x1C),
0x1D => $fn_name($a, $b, 0x1D),
0x1E => $fn_name($a, $b, 0x1E),
0x1F => $fn_name($a, $b, 0x1F),
0x20 => $fn_name($a, $b, 0x20),
0x21 => $fn_name($a, $b, 0x21),
0x22 => $fn_name($a, $b, 0x22),
0x23 => $fn_name($a, $b, 0x23),
0x24 => $fn_name($a, $b, 0x24),
0x25 => $fn_name($a, $b, 0x25),
0x26 => $fn_name($a, $b, 0x26),
0x27 => $fn_name($a, $b, 0x27),
0x28 => $fn_name($a, $b, 0x28),
0x29 => $fn_name($a, $b, 0x29),
0x2A => $fn_name($a, $b, 0x2A),
0x2B => $fn_name($a, $b, 0x2B),
0x2C => $fn_name($a, $b, 0x2C),
0x2D => $fn_name($a, $b, 0x2D),
0x2E => $fn_name($a, $b, 0x2E),
0x2F => $fn_name($a, $b, 0x2F),
0x30 => $fn_name($a, $b, 0x30),
0x31 => $fn_name($a, $b, 0x31),
0x32 => $fn_name($a, $b, 0x32),
0x33 => $fn_name($a, $b, 0x33),
0x34 => $fn_name($a, $b, 0x34),
0x35 => $fn_name($a, $b, 0x35),
0x36 => $fn_name($a, $b, 0x36),
0x37 => $fn_name($a, $b, 0x37),
0x38 => $fn_name($a, $b, 0x38),
0x39 => $fn_name($a, $b, 0x39),
0x3A => $fn_name($a, $b, 0x3A),
0x3B => $fn_name($a, $b, 0x3B),
0x3C => $fn_name($a, $b, 0x3C),
0x3D => $fn_name($a, $b, 0x3D),
0x3E => $fn_name($a, $b, 0x3E),
0x3F => $fn_name($a, $b, 0x3F),
0x40 => $fn_name($a, $b, 0x40),
0x41 => $fn_name($a, $b, 0x41),
0x42 => $fn_name($a, $b, 0x42),
0x43 => $fn_name($a, $b, 0x43),
0x44 => $fn_name($a, $b, 0x44),
0x45 => $fn_name($a, $b, 0x45),
0x46 => $fn_name($a, $b, 0x46),
0x47 => $fn_name($a, $b, 0x47),
0x48 => $fn_name($a, $b, 0x48),
0x49 => $fn_name($a, $b, 0x49),
0x4A => $fn_name($a, $b, 0x4A),
0x4B => $fn_name($a, $b, 0x4B),
0x4C => $fn_name($a, $b, 0x4C),
0x4D => $fn_name($a, $b, 0x4D),
0x4E => $fn_name($a, $b, 0x4E),
0x4F => $fn_name($a, $b, 0x4F),
0x50 => $fn_name($a, $b, 0x50),
0x51 => $fn_name($a, $b, 0x51),
0x52 => $fn_name($a, $b, 0x52),
0x53 => $fn_name($a, $b, 0x53),
0x54 => $fn_name($a, $b, 0x54),
0x55 => $fn_name($a, $b, 0x55),
0x56 => $fn_name($a, $b, 0x56),
0x57 => $fn_name($a, $b, 0x57),
0x58 => $fn_name($a, $b, 0x58),
0x59 => $fn_name($a, $b, 0x59),
0x5A => $fn_name($a, $b, 0x5A),
0x5B => $fn_name($a, $b, 0x5B),
0x5C => $fn_name($a, $b, 0x5C),
0x5D => $fn_name($a, $b, 0x5D),
0x5E => $fn_name($a, $b, 0x5E),
0x5F => $fn_name($a, $b, 0x5F),
0x60 => $fn_name($a, $b, 0x60),
0x61 => $fn_name($a, $b, 0x61),
0x62 => $fn_name($a, $b, 0x62),
0x63 => $fn_name($a, $b, 0x63),
0x64 => $fn_name($a, $b, 0x64),
0x65 => $fn_name($a, $b, 0x65),
0x66 => $fn_name($a, $b, 0x66),
0x67 => $fn_name($a, $b, 0x67),
0x68 => $fn_name($a, $b, 0x68),
0x69 => $fn_name($a, $b, 0x69),
0x6A => $fn_name($a, $b, 0x6A),
0x6B => $fn_name($a, $b, 0x6B),
0x6C => $fn_name($a, $b, 0x6C),
0x6D => $fn_name($a, $b, 0x6D),
0x6E => $fn_name($a, $b, 0x6E),
0x6F => $fn_name($a, $b, 0x6F),
0x70 => $fn_name($a, $b, 0x70),
0x71 => $fn_name($a, $b, 0x71),
0x72 => $fn_name($a, $b, 0x72),
0x73 => $fn_name($a, $b, 0x73),
0x74 => $fn_name($a, $b, 0x74),
0x75 => $fn_name($a, $b, 0x75),
0x76 => $fn_name($a, $b, 0x76),
0x77 => $fn_name($a, $b, 0x77),
0x78 => $fn_name($a, $b, 0x78),
0x79 => $fn_name($a, $b, 0x79),
0x7A => $fn_name($a, $b, 0x7A),
0x7B => $fn_name($a, $b, 0x7B),
0x7C => $fn_name($a, $b, 0x7C),
0x7D => $fn_name($a, $b, 0x7D),
0x7E => $fn_name($a, $b, 0x7E),
0x7F => $fn_name($a, $b, 0x7F),
0x80 => $fn_name($a, $b, 0x80),
0x81 => $fn_name($a, $b, 0x81),
0x82 => $fn_name($a, $b, 0x82),
0x83 => $fn_name($a, $b, 0x83),
0x84 => $fn_name($a, $b, 0x84),
0x85 => $fn_name($a, $b, 0x85),
0x86 => $fn_name($a, $b, 0x86),
0x87 => $fn_name($a, $b, 0x87),
0x88 => $fn_name($a, $b, 0x88),
0x89 => $fn_name($a, $b, 0x89),
0x8A => $fn_name($a, $b, 0x8A),
0x8B => $fn_name($a, $b, 0x8B),
0x8C => $fn_name($a, $b, 0x8C),
0x8D => $fn_name($a, $b, 0x8D),
0x8E => $fn_name($a, $b, 0x8E),
0x8F => $fn_name($a, $b, 0x8F),
0x90 => $fn_name($a, $b, 0x90),
0x91 => $fn_name($a, $b, 0x91),
0x92 => $fn_name($a, $b, 0x92),
0x93 => $fn_name($a, $b, 0x93),
0x94 => $fn_name($a, $b, 0x94),
0x95 => $fn_name($a, $b, 0x95),
0x96 => $fn_name($a, $b, 0x96),
0x97 => $fn_name($a, $b, 0x97),
0x98 => $fn_name($a, $b, 0x98),
0x99 => $fn_name($a, $b, 0x99),
0x9A => $fn_name($a, $b, 0x9A),
0x9B => $fn_name($a, $b, 0x9B),
0x9C => $fn_name($a, $b, 0x9C),
0x9D => $fn_name($a, $b, 0x9D),
0x9E => $fn_name($a, $b, 0x9E),
0x9F => $fn_name($a, $b, 0x9F),
0xA0 => $fn_name($a, $b, 0xA0),
0xA1 => $fn_name($a, $b, 0xA1),
0xA2 => $fn_name($a, $b, 0xA2),
0xA3 => $fn_name($a, $b, 0xA3),
0xA4 => $fn_name($a, $b, 0xA4),
0xA5 => $fn_name($a, $b, 0xA5),
0xA6 => $fn_name($a, $b, 0xA6),
0xA7 => $fn_name($a, $b, 0xA7),
0xA8 => $fn_name($a, $b, 0xA8),
0xA9 => $fn_name($a, $b, 0xA9),
0xAA => $fn_name($a, $b, 0xAA),
0xAB => $fn_name($a, $b, 0xAB),
0xAC => $fn_name($a, $b, 0xAC),
0xAD => $fn_name($a, $b, 0xAD),
0xAE => $fn_name($a, $b, 0xAE),
0xAF => $fn_name($a, $b, 0xAF),
0xB0 => $fn_name($a, $b, 0xB0),
0xB1 => $fn_name($a, $b, 0xB1),
0xB2 => $fn_name($a, $b, 0xB2),
0xB3 => $fn_name($a, $b, 0xB3),
0xB4 => $fn_name($a, $b, 0xB4),
0xB5 => $fn_name($a, $b, 0xB5),
0xB6 => $fn_name($a, $b, 0xB6),
0xB7 => $fn_name($a, $b, 0xB7),
0xB8 => $fn_name($a, $b, 0xB8),
0xB9 => $fn_name($a, $b, 0xB9),
0xBA => $fn_name($a, $b, 0xBA),
0xBB => $fn_name($a, $b, 0xBB),
0xBC => $fn_name($a, $b, 0xBC),
0xBD => $fn_name($a, $b, 0xBD),
0xBE => $fn_name($a, $b, 0xBE),
0xBF => $fn_name($a, $b, 0xBF),
0xC0 => $fn_name($a, $b, 0xC0),
0xC1 => $fn_name($a, $b, 0xC1),
0xC2 => $fn_name($a, $b, 0xC2),
0xC3 => $fn_name($a, $b, 0xC3),
0xC4 => $fn_name($a, $b, 0xC4),
0xC5 => $fn_name($a, $b, 0xC5),
0xC6 => $fn_name($a, $b, 0xC6),
0xC7 => $fn_name($a, $b, 0xC7),
0xC8 => $fn_name($a, $b, 0xC8),
0xC9 => $fn_name($a, $b, 0xC9),
0xCA => $fn_name($a, $b, 0xCA),
0xCB => $fn_name($a, $b, 0xCB),
0xCC => $fn_name($a, $b, 0xCC),
0xCD => $fn_name($a, $b, 0xCD),
0xCE => $fn_name($a, $b, 0xCE),
0xCF => $fn_name($a, $b, 0xCF),
0xD0 => $fn_name($a, $b, 0xD0),
0xD1 => $fn_name($a, $b, 0xD1),
0xD2 => $fn_name($a, $b, 0xD2),
0xD3 => $fn_name($a, $b, 0xD3),
0xD4 => $fn_name($a, $b, 0xD4),
0xD5 => $fn_name($a, $b, 0xD5),
0xD6 => $fn_name($a, $b, 0xD6),
0xD7 => $fn_name($a, $b, 0xD7),
0xD8 => $fn_name($a, $b, 0xD8),
0xD9 => $fn_name($a, $b, 0xD9),
0xDA => $fn_name($a, $b, 0xDA),
0xDB => $fn_name($a, $b, 0xDB),
0xDC => $fn_name($a, $b, 0xDC),
0xDD => $fn_name($a, $b, 0xDD),
0xDE => $fn_name($a, $b, 0xDE),
0xDF => $fn_name($a, $b, 0xDF),
0xE0 => $fn_name($a, $b, 0xE0),
0xE1 => $fn_name($a, $b, 0xE1),
0xE2 => $fn_name($a, $b, 0xE2),
0xE3 => $fn_name($a, $b, 0xE3),
0xE4 => $fn_name($a, $b, 0xE4),
0xE5 => $fn_name($a, $b, 0xE5),
0xE6 => $fn_name($a, $b, 0xE6),
0xE7 => $fn_name($a, $b, 0xE7),
0xE8 => $fn_name($a, $b, 0xE8),
0xE9 => $fn_name($a, $b, 0xE9),
0xEA => $fn_name($a, $b, 0xEA),
0xEB => $fn_name($a, $b, 0xEB),
0xEC => $fn_name($a, $b, 0xEC),
0xED => $fn_name($a, $b, 0xED),
0xEE => $fn_name($a, $b, 0xEE),
0xEF => $fn_name($a, $b, 0xEF),
0xF0 => $fn_name($a, $b, 0xF0),
0xF1 => $fn_name($a, $b, 0xF1),
0xF2 => $fn_name($a, $b, 0xF2),
0xF3 => $fn_name($a, $b, 0xF3),
0xF4 => $fn_name($a, $b, 0xF4),
0xF5 => $fn_name($a, $b, 0xF5),
0xF6 => $fn_name($a, $b, 0xF6),
0xF7 => $fn_name($a, $b, 0xF7),
0xF8 => $fn_name($a, $b, 0xF8),
0xF9 => $fn_name($a, $b, 0xF9),
0xFA => $fn_name($a, $b, 0xFA),
0xFB => $fn_name($a, $b, 0xFB),
0xFC => $fn_name($a, $b, 0xFC),
0xFD => $fn_name($a, $b, 0xFD),
0xFE => $fn_name($a, $b, 0xFE),
0xFF => $fn_name($a, $b, 0xFF),
_ => unreachable!()
}
}
}
}
#[cfg(any(feature = "doc", target_feature = "sse4.2"))]
macro_rules! fn_imm8_arg4 {
($fn_name: expr, $a: expr, $b: expr, $c: expr, $d: expr, $imm8: expr) => {
unsafe {
match $imm8 & 0xFF {
0x00 => $fn_name($a, $b, $c, $d, 0x00),
0x01 => $fn_name($a, $b, $c, $d, 0x01),
0x02 => $fn_name($a, $b, $c, $d, 0x02),
0x03 => $fn_name($a, $b, $c, $d, 0x03),
0x04 => $fn_name($a, $b, $c, $d, 0x04),
0x05 => $fn_name($a, $b, $c, $d, 0x05),
0x06 => $fn_name($a, $b, $c, $d, 0x06),
0x07 => $fn_name($a, $b, $c, $d, 0x07),
0x08 => $fn_name($a, $b, $c, $d, 0x08),
0x09 => $fn_name($a, $b, $c, $d, 0x09),
0x0A => $fn_name($a, $b, $c, $d, 0x0A),
0x0B => $fn_name($a, $b, $c, $d, 0x0B),
0x0C => $fn_name($a, $b, $c, $d, 0x0C),
0x0D => $fn_name($a, $b, $c, $d, 0x0D),
0x0E => $fn_name($a, $b, $c, $d, 0x0E),
0x0F => $fn_name($a, $b, $c, $d, 0x0F),
0x10 => $fn_name($a, $b, $c, $d, 0x10),
0x11 => $fn_name($a, $b, $c, $d, 0x11),
0x12 => $fn_name($a, $b, $c, $d, 0x12),
0x13 => $fn_name($a, $b, $c, $d, 0x13),
0x14 => $fn_name($a, $b, $c, $d, 0x14),
0x15 => $fn_name($a, $b, $c, $d, 0x15),
0x16 => $fn_name($a, $b, $c, $d, 0x16),
0x17 => $fn_name($a, $b, $c, $d, 0x17),
0x18 => $fn_name($a, $b, $c, $d, 0x18),
0x19 => $fn_name($a, $b, $c, $d, 0x19),
0x1A => $fn_name($a, $b, $c, $d, 0x1A),
0x1B => $fn_name($a, $b, $c, $d, 0x1B),
0x1C => $fn_name($a, $b, $c, $d, 0x1C),
0x1D => $fn_name($a, $b, $c, $d, 0x1D),
0x1E => $fn_name($a, $b, $c, $d, 0x1E),
0x1F => $fn_name($a, $b, $c, $d, 0x1F),
0x20 => $fn_name($a, $b, $c, $d, 0x20),
0x21 => $fn_name($a, $b, $c, $d, 0x21),
0x22 => $fn_name($a, $b, $c, $d, 0x22),
0x23 => $fn_name($a, $b, $c, $d, 0x23),
0x24 => $fn_name($a, $b, $c, $d, 0x24),
0x25 => $fn_name($a, $b, $c, $d, 0x25),
0x26 => $fn_name($a, $b, $c, $d, 0x26),
0x27 => $fn_name($a, $b, $c, $d, 0x27),
0x28 => $fn_name($a, $b, $c, $d, 0x28),
0x29 => $fn_name($a, $b, $c, $d, 0x29),
0x2A => $fn_name($a, $b, $c, $d, 0x2A),
0x2B => $fn_name($a, $b, $c, $d, 0x2B),
0x2C => $fn_name($a, $b, $c, $d, 0x2C),
0x2D => $fn_name($a, $b, $c, $d, 0x2D),
0x2E => $fn_name($a, $b, $c, $d, 0x2E),
0x2F => $fn_name($a, $b, $c, $d, 0x2F),
0x30 => $fn_name($a, $b, $c, $d, 0x30),
0x31 => $fn_name($a, $b, $c, $d, 0x31),
0x32 => $fn_name($a, $b, $c, $d, 0x32),
0x33 => $fn_name($a, $b, $c, $d, 0x33),
0x34 => $fn_name($a, $b, $c, $d, 0x34),
0x35 => $fn_name($a, $b, $c, $d, 0x35),
0x36 => $fn_name($a, $b, $c, $d, 0x36),
0x37 => $fn_name($a, $b, $c, $d, 0x37),
0x38 => $fn_name($a, $b, $c, $d, 0x38),
0x39 => $fn_name($a, $b, $c, $d, 0x39),
0x3A => $fn_name($a, $b, $c, $d, 0x3A),
0x3B => $fn_name($a, $b, $c, $d, 0x3B),
0x3C => $fn_name($a, $b, $c, $d, 0x3C),
0x3D => $fn_name($a, $b, $c, $d, 0x3D),
0x3E => $fn_name($a, $b, $c, $d, 0x3E),
0x3F => $fn_name($a, $b, $c, $d, 0x3F),
0x40 => $fn_name($a, $b, $c, $d, 0x40),
0x41 => $fn_name($a, $b, $c, $d, 0x41),
0x42 => $fn_name($a, $b, $c, $d, 0x42),
0x43 => $fn_name($a, $b, $c, $d, 0x43),
0x44 => $fn_name($a, $b, $c, $d, 0x44),
0x45 => $fn_name($a, $b, $c, $d, 0x45),
0x46 => $fn_name($a, $b, $c, $d, 0x46),
0x47 => $fn_name($a, $b, $c, $d, 0x47),
0x48 => $fn_name($a, $b, $c, $d, 0x48),
0x49 => $fn_name($a, $b, $c, $d, 0x49),
0x4A => $fn_name($a, $b, $c, $d, 0x4A),
0x4B => $fn_name($a, $b, $c, $d, 0x4B),
0x4C => $fn_name($a, $b, $c, $d, 0x4C),
0x4D => $fn_name($a, $b, $c, $d, 0x4D),
0x4E => $fn_name($a, $b, $c, $d, 0x4E),
0x4F => $fn_name($a, $b, $c, $d, 0x4F),
0x50 => $fn_name($a, $b, $c, $d, 0x50),
0x51 => $fn_name($a, $b, $c, $d, 0x51),
0x52 => $fn_name($a, $b, $c, $d, 0x52),
0x53 => $fn_name($a, $b, $c, $d, 0x53),
0x54 => $fn_name($a, $b, $c, $d, 0x54),
0x55 => $fn_name($a, $b, $c, $d, 0x55),
0x56 => $fn_name($a, $b, $c, $d, 0x56),
0x57 => $fn_name($a, $b, $c, $d, 0x57),
0x58 => $fn_name($a, $b, $c, $d, 0x58),
0x59 => $fn_name($a, $b, $c, $d, 0x59),
0x5A => $fn_name($a, $b, $c, $d, 0x5A),
0x5B => $fn_name($a, $b, $c, $d, 0x5B),
0x5C => $fn_name($a, $b, $c, $d, 0x5C),
0x5D => $fn_name($a, $b, $c, $d, 0x5D),
0x5E => $fn_name($a, $b, $c, $d, 0x5E),
0x5F => $fn_name($a, $b, $c, $d, 0x5F),
0x60 => $fn_name($a, $b, $c, $d, 0x60),
0x61 => $fn_name($a, $b, $c, $d, 0x61),
0x62 => $fn_name($a, $b, $c, $d, 0x62),
0x63 => $fn_name($a, $b, $c, $d, 0x63),
0x64 => $fn_name($a, $b, $c, $d, 0x64),
0x65 => $fn_name($a, $b, $c, $d, 0x65),
0x66 => $fn_name($a, $b, $c, $d, 0x66),
0x67 => $fn_name($a, $b, $c, $d, 0x67),
0x68 => $fn_name($a, $b, $c, $d, 0x68),
0x69 => $fn_name($a, $b, $c, $d, 0x69),
0x6A => $fn_name($a, $b, $c, $d, 0x6A),
0x6B => $fn_name($a, $b, $c, $d, 0x6B),
0x6C => $fn_name($a, $b, $c, $d, 0x6C),
0x6D => $fn_name($a, $b, $c, $d, 0x6D),
0x6E => $fn_name($a, $b, $c, $d, 0x6E),
0x6F => $fn_name($a, $b, $c, $d, 0x6F),
0x70 => $fn_name($a, $b, $c, $d, 0x70),
0x71 => $fn_name($a, $b, $c, $d, 0x71),
0x72 => $fn_name($a, $b, $c, $d, 0x72),
0x73 => $fn_name($a, $b, $c, $d, 0x73),
0x74 => $fn_name($a, $b, $c, $d, 0x74),
0x75 => $fn_name($a, $b, $c, $d, 0x75),
0x76 => $fn_name($a, $b, $c, $d, 0x76),
0x77 => $fn_name($a, $b, $c, $d, 0x77),
0x78 => $fn_name($a, $b, $c, $d, 0x78),
0x79 => $fn_name($a, $b, $c, $d, 0x79),
0x7A => $fn_name($a, $b, $c, $d, 0x7A),
0x7B => $fn_name($a, $b, $c, $d, 0x7B),
0x7C => $fn_name($a, $b, $c, $d, 0x7C),
0x7D => $fn_name($a, $b, $c, $d, 0x7D),
0x7E => $fn_name($a, $b, $c, $d, 0x7E),
0x7F => $fn_name($a, $b, $c, $d, 0x7F),
0x80 => $fn_name($a, $b, $c, $d, 0x80),
0x81 => $fn_name($a, $b, $c, $d, 0x81),
0x82 => $fn_name($a, $b, $c, $d, 0x82),
0x83 => $fn_name($a, $b, $c, $d, 0x83),
0x84 => $fn_name($a, $b, $c, $d, 0x84),
0x85 => $fn_name($a, $b, $c, $d, 0x85),
0x86 => $fn_name($a, $b, $c, $d, 0x86),
0x87 => $fn_name($a, $b, $c, $d, 0x87),
0x88 => $fn_name($a, $b, $c, $d, 0x88),
0x89 => $fn_name($a, $b, $c, $d, 0x89),
0x8A => $fn_name($a, $b, $c, $d, 0x8A),
0x8B => $fn_name($a, $b, $c, $d, 0x8B),
0x8C => $fn_name($a, $b, $c, $d, 0x8C),
0x8D => $fn_name($a, $b, $c, $d, 0x8D),
0x8E => $fn_name($a, $b, $c, $d, 0x8E),
0x8F => $fn_name($a, $b, $c, $d, 0x8F),
0x90 => $fn_name($a, $b, $c, $d, 0x90),
0x91 => $fn_name($a, $b, $c, $d, 0x91),
0x92 => $fn_name($a, $b, $c, $d, 0x92),
0x93 => $fn_name($a, $b, $c, $d, 0x93),
0x94 => $fn_name($a, $b, $c, $d, 0x94),
0x95 => $fn_name($a, $b, $c, $d, 0x95),
0x96 => $fn_name($a, $b, $c, $d, 0x96),
0x97 => $fn_name($a, $b, $c, $d, 0x97),
0x98 => $fn_name($a, $b, $c, $d, 0x98),
0x99 => $fn_name($a, $b, $c, $d, 0x99),
0x9A => $fn_name($a, $b, $c, $d, 0x9A),
0x9B => $fn_name($a, $b, $c, $d, 0x9B),
0x9C => $fn_name($a, $b, $c, $d, 0x9C),
0x9D => $fn_name($a, $b, $c, $d, 0x9D),
0x9E => $fn_name($a, $b, $c, $d, 0x9E),
0x9F => $fn_name($a, $b, $c, $d, 0x9F),
0xA0 => $fn_name($a, $b, $c, $d, 0xA0),
0xA1 => $fn_name($a, $b, $c, $d, 0xA1),
0xA2 => $fn_name($a, $b, $c, $d, 0xA2),
0xA3 => $fn_name($a, $b, $c, $d, 0xA3),
0xA4 => $fn_name($a, $b, $c, $d, 0xA4),
0xA5 => $fn_name($a, $b, $c, $d, 0xA5),
0xA6 => $fn_name($a, $b, $c, $d, 0xA6),
0xA7 => $fn_name($a, $b, $c, $d, 0xA7),
0xA8 => $fn_name($a, $b, $c, $d, 0xA8),
0xA9 => $fn_name($a, $b, $c, $d, 0xA9),
0xAA => $fn_name($a, $b, $c, $d, 0xAA),
0xAB => $fn_name($a, $b, $c, $d, 0xAB),
0xAC => $fn_name($a, $b, $c, $d, 0xAC),
0xAD => $fn_name($a, $b, $c, $d, 0xAD),
0xAE => $fn_name($a, $b, $c, $d, 0xAE),
0xAF => $fn_name($a, $b, $c, $d, 0xAF),
0xB0 => $fn_name($a, $b, $c, $d, 0xB0),
0xB1 => $fn_name($a, $b, $c, $d, 0xB1),
0xB2 => $fn_name($a, $b, $c, $d, 0xB2),
0xB3 => $fn_name($a, $b, $c, $d, 0xB3),
0xB4 => $fn_name($a, $b, $c, $d, 0xB4),
0xB5 => $fn_name($a, $b, $c, $d, 0xB5),
0xB6 => $fn_name($a, $b, $c, $d, 0xB6),
0xB7 => $fn_name($a, $b, $c, $d, 0xB7),
0xB8 => $fn_name($a, $b, $c, $d, 0xB8),
0xB9 => $fn_name($a, $b, $c, $d, 0xB9),
0xBA => $fn_name($a, $b, $c, $d, 0xBA),
0xBB => $fn_name($a, $b, $c, $d, 0xBB),
0xBC => $fn_name($a, $b, $c, $d, 0xBC),
0xBD => $fn_name($a, $b, $c, $d, 0xBD),
0xBE => $fn_name($a, $b, $c, $d, 0xBE),
0xBF => $fn_name($a, $b, $c, $d, 0xBF),
0xC0 => $fn_name($a, $b, $c, $d, 0xC0),
0xC1 => $fn_name($a, $b, $c, $d, 0xC1),
0xC2 => $fn_name($a, $b, $c, $d, 0xC2),
0xC3 => $fn_name($a, $b, $c, $d, 0xC3),
0xC4 => $fn_name($a, $b, $c, $d, 0xC4),
0xC5 => $fn_name($a, $b, $c, $d, 0xC5),
0xC6 => $fn_name($a, $b, $c, $d, 0xC6),
0xC7 => $fn_name($a, $b, $c, $d, 0xC7),
0xC8 => $fn_name($a, $b, $c, $d, 0xC8),
0xC9 => $fn_name($a, $b, $c, $d, 0xC9),
0xCA => $fn_name($a, $b, $c, $d, 0xCA),
0xCB => $fn_name($a, $b, $c, $d, 0xCB),
0xCC => $fn_name($a, $b, $c, $d, 0xCC),
0xCD => $fn_name($a, $b, $c, $d, 0xCD),
0xCE => $fn_name($a, $b, $c, $d, 0xCE),
0xCF => $fn_name($a, $b, $c, $d, 0xCF),
0xD0 => $fn_name($a, $b, $c, $d, 0xD0),
0xD1 => $fn_name($a, $b, $c, $d, 0xD1),
0xD2 => $fn_name($a, $b, $c, $d, 0xD2),
0xD3 => $fn_name($a, $b, $c, $d, 0xD3),
0xD4 => $fn_name($a, $b, $c, $d, 0xD4),
0xD5 => $fn_name($a, $b, $c, $d, 0xD5),
0xD6 => $fn_name($a, $b, $c, $d, 0xD6),
0xD7 => $fn_name($a, $b, $c, $d, 0xD7),
0xD8 => $fn_name($a, $b, $c, $d, 0xD8),
0xD9 => $fn_name($a, $b, $c, $d, 0xD9),
0xDA => $fn_name($a, $b, $c, $d, 0xDA),
0xDB => $fn_name($a, $b, $c, $d, 0xDB),
0xDC => $fn_name($a, $b, $c, $d, 0xDC),
0xDD => $fn_name($a, $b, $c, $d, 0xDD),
0xDE => $fn_name($a, $b, $c, $d, 0xDE),
0xDF => $fn_name($a, $b, $c, $d, 0xDF),
0xE0 => $fn_name($a, $b, $c, $d, 0xE0),
0xE1 => $fn_name($a, $b, $c, $d, 0xE1),
0xE2 => $fn_name($a, $b, $c, $d, 0xE2),
0xE3 => $fn_name($a, $b, $c, $d, 0xE3),
0xE4 => $fn_name($a, $b, $c, $d, 0xE4),
0xE5 => $fn_name($a, $b, $c, $d, 0xE5),
0xE6 => $fn_name($a, $b, $c, $d, 0xE6),
0xE7 => $fn_name($a, $b, $c, $d, 0xE7),
0xE8 => $fn_name($a, $b, $c, $d, 0xE8),
0xE9 => $fn_name($a, $b, $c, $d, 0xE9),
0xEA => $fn_name($a, $b, $c, $d, 0xEA),
0xEB => $fn_name($a, $b, $c, $d, 0xEB),
0xEC => $fn_name($a, $b, $c, $d, 0xEC),
0xED => $fn_name($a, $b, $c, $d, 0xED),
0xEE => $fn_name($a, $b, $c, $d, 0xEE),
0xEF => $fn_name($a, $b, $c, $d, 0xEF),
0xF0 => $fn_name($a, $b, $c, $d, 0xF0),
0xF1 => $fn_name($a, $b, $c, $d, 0xF1),
0xF2 => $fn_name($a, $b, $c, $d, 0xF2),
0xF3 => $fn_name($a, $b, $c, $d, 0xF3),
0xF4 => $fn_name($a, $b, $c, $d, 0xF4),
0xF5 => $fn_name($a, $b, $c, $d, 0xF5),
0xF6 => $fn_name($a, $b, $c, $d, 0xF6),
0xF7 => $fn_name($a, $b, $c, $d, 0xF7),
0xF8 => $fn_name($a, $b, $c, $d, 0xF8),
0xF9 => $fn_name($a, $b, $c, $d, 0xF9),
0xFA => $fn_name($a, $b, $c, $d, 0xFA),
0xFB => $fn_name($a, $b, $c, $d, 0xFB),
0xFC => $fn_name($a, $b, $c, $d, 0xFC),
0xFD => $fn_name($a, $b, $c, $d, 0xFD),
0xFE => $fn_name($a, $b, $c, $d, 0xFE),
0xFF => $fn_name($a, $b, $c, $d, 0xFF),
_ => unreachable!()
}
}
}
}