// File: /workspace/github_c_makefile_star2_O1/mjosaarinen[P]brutus/crypto_aead/minalpherv11/avx2/MinalpherCore.cpp
// Function: minalpher_core_double_block(long long vector[4] const&, long long vector[4] const&, long long vector[4]*)
void minalpher_core_double_block(
  const __m256i           &DATA1,  /* I    HI                      */
  const __m256i           &DATA2,  /* I    LOW                     */
  __m256i                 ymm[4]   /* O    ymm                     */
  )
{
  /*==== FORMAT CHANGE ====*/
  //BLEND
  __m256i DATA_A = _mm256_permute2x128_si256(DATA2, DATA1, 0x02);
  __m256i DATA_B = _mm256_permute2x128_si256(DATA2, DATA1, 0x13);

  //Constant Load
  const __m256i ymmMask = _mm256_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);

  //AND
  __m256i tmp0 = _mm256_and_si256(ymmMask, DATA_A);
  __m256i tmp1 = _mm256_andnot_si256(ymmMask, DATA_A);
  __m256i tmp2 = _mm256_and_si256(ymmMask, DATA_B);
  __m256i tmp3 = _mm256_andnot_si256(ymmMask, DATA_B);

  //SHIFT
  tmp1 = _mm256_srli_epi16(tmp1, 4);
  tmp3 = _mm256_srli_epi16(tmp3, 4);

  //UNPACK
  __m256i ymm0, ymm1, ymm2, ymm3;
  ymm0 = _mm256_unpacklo_epi8(tmp0, tmp1);
  ymm1 = _mm256_unpackhi_epi8(tmp0, tmp1);
  ymm2 = _mm256_unpacklo_epi8(tmp2, tmp3);
  ymm3 = _mm256_unpackhi_epi8(tmp2, tmp3);
  /*==== END FORMAT CHANGE ====*/


  /*==== Minalpher-P ====*/
  //Constant Load
  const __m256i ymmSbox = _mm256_set_epi8(0x07, 0x0A, 0x09, 0x06, 0x00, 0x0E, 0x0D, 0x05, 0x0F, 0x0C, 0x08, 0x02, 0x01, 0x04, 0x03, 0x0B,
    0x07, 0x0A, 0x09, 0x06, 0x00, 0x0E, 0x0D, 0x05, 0x0F, 0x0C, 0x08, 0x02, 0x01, 0x04, 0x03, 0x0B);

  #define doubleRoundFunction(i, ymm0, ymm1, ymm2, ymm3 ) {\
    ymm0 = _mm256_shuffle_epi8( ymmSbox, ymm0 );\
    ymm2 = _mm256_shuffle_epi8( ymmSbox, ymm2 );\
    ymm0 = _mm256_shuffle_epi8( ymm0, ShuffleDoubleBlock0 );\
    ymm2 = _mm256_shuffle_epi8( ymm2, ShuffleDoubleBlock2 );\
    __m256i tmp02 = _mm256_xor_si256(ymm0, ymm2);\
    ymm1 = _mm256_shuffle_epi8( ymmSbox, ymm1 );\
    ymm3 = _mm256_shuffle_epi8( ymmSbox, ymm3 );\
    ymm1 = _mm256_shuffle_epi8( ymm1, ShuffleDoubleBlock1 );\
    ymm3 = _mm256_shuffle_epi8( ymm3, ShuffleDoubleBlock3 );\
    __m256i tmp13 = _mm256_xor_si256(ymm1, ymm3);\
    ymm0 = _mm256_xor_si256(tmp13, ymm0);\
    ymm1 = _mm256_xor_si256(tmp02, ymm1);\
    ymm2 = _mm256_xor_si256(tmp13, ymm2);\
    ymm3 = _mm256_xor_si256(tmp02, ymm3);\
    tmp0 = _mm256_slli_si256( ymm0, 8 );\
    tmp1 = _mm256_slli_si256( ymm1, 8 );\
    tmp2 = _mm256_slli_si256( ymm2, 8 );\
    tmp3 = _mm256_slli_si256( ymm3, 8 );\
    ymm0 = _mm256_xor_si256( tmp0, ymm0 );\
    ymm1 = _mm256_xor_si256( tmp1, ymm1 );\
    ymm2 = _mm256_xor_si256( tmp2, ymm2 );\
    ymm3 = _mm256_xor_si256( tmp3, ymm3 );\
    ymm0 = _mm256_xor_si256( ymm0, RoundConstDoubleBlock[i][0] );\
    ymm1 = _mm256_xor_si256( ymm1, RoundConstDoubleBlock[i][1] );\
    ymm2 = _mm256_xor_si256( ymm2, RoundConstDoubleBlock[i][2] );\
    ymm3 = _mm256_xor_si256( ymm3, RoundConstDoubleBlock[i][3] );\
  }

  doubleRoundFunction(0, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(1, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(2, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(3, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(4, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(5, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(6, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(7, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(8, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(9, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(10, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(11, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(12, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(13, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(14, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(15, ymm0, ymm1, ymm2, ymm3);
  doubleRoundFunction(0, ymm0, ymm1, ymm2, ymm3);


  ymm0   = _mm256_shuffle_epi8(ymmSbox, ymm0);
  ymm1   = _mm256_shuffle_epi8(ymmSbox, ymm1);
  ymm[0] = _mm256_shuffle_epi8(ymm0, ShuffleDoubleBlock0);
  ymm[1] = _mm256_shuffle_epi8(ymm1, ShuffleDoubleBlock1);

  ymm2   = _mm256_shuffle_epi8(ymmSbox, ymm2);
  ymm3   = _mm256_shuffle_epi8(ymmSbox, ymm3);
  ymm[2] = _mm256_shuffle_epi8(ymm2, ShuffleDoubleBlock2);
  ymm[3] = _mm256_shuffle_epi8(ymm3, ShuffleDoubleBlock3);
  /*==== END Minalpher-P ====*/
}

// Assembly:
vmovdqa (%rsi), %ymm0
vmovdqa (%rdi), %ymm1
vperm2i128 $0x20, %ymm0, %ymm1, %ymm2 # ymm2 = ymm1[0,1],ymm0[0,1]
vperm2i128 $0x31, %ymm0, %ymm1, %ymm0 # ymm0 = ymm1[2,3],ymm0[2,3]
vpsrlw $0x4, %ymm2, %ymm1
vpsrlw $0x4, %ymm0, %ymm3
vpbroadcastb 0x8a58(%rip), %ymm4 # 0xc008
vpand %ymm4, %ymm2, %ymm2
vpand %ymm4, %ymm1, %ymm1
vpunpcklbw %ymm1, %ymm2, %ymm5 # ymm5 = ymm2[0],ymm1[0],ymm2[1],ymm1[1],ymm2[2],ymm1[2],ymm2[3],ymm1[3],ymm2[4],ymm1[4],ymm2[5],ymm1[5],ymm2[6],ymm1[6],ymm2[7],ymm1[7],ymm2[16],ymm1[16],ymm2[17],ymm1[17],ymm2[18],ymm1[18],ymm2[19],ymm1[19],ymm2[20],ymm1[20],ymm2[21],ymm1[21],ymm2[22],ymm1[22],ymm2[23],ymm1[23]
vpunpckhbw %ymm1, %ymm2, %ymm6 # ymm6 = ymm2[8],ymm1[8],ymm2[9],ymm1[9],ymm2[10],ymm1[10],ymm2[11],ymm1[11],ymm2[12],ymm1[12],ymm2[13],ymm1[13],ymm2[14],ymm1[14],ymm2[15],ymm1[15],ymm2[24],ymm1[24],ymm2[25],ymm1[25],ymm2[26],ymm1[26],ymm2[27],ymm1[27],ymm2[28],ymm1[28],ymm2[29],ymm1[29],ymm2[30],ymm1[30],ymm2[31],ymm1[31]
vpand %ymm4, %ymm0, %ymm0
vpand %ymm4, %ymm3, %ymm1
vpunpcklbw %ymm1, %ymm0, %ymm2 # ymm2 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[4],ymm1[4],ymm0[5],ymm1[5],ymm0[6],ymm1[6],ymm0[7],ymm1[7],ymm0[16],ymm1[16],ymm0[17],ymm1[17],ymm0[18],ymm1[18],ymm0[19],ymm1[19],ymm0[20],ymm1[20],ymm0[21],ymm1[21],ymm0[22],ymm1[22],ymm0[23],ymm1[23]
vpunpckhbw %ymm1, %ymm0, %ymm3 # ymm3 = ymm0[8],ymm1[8],ymm0[9],ymm1[9],ymm0[10],ymm1[10],ymm0[11],ymm1[11],ymm0[12],ymm1[12],ymm0[13],ymm1[13],ymm0[14],ymm1[14],ymm0[15],ymm1[15],ymm0[24],ymm1[24],ymm0[25],ymm1[25],ymm0[26],ymm1[26],ymm0[27],ymm1[27],ymm0[28],ymm1[28],ymm0[29],ymm1[29],ymm0[30],ymm1[30],ymm0[31],ymm1[31]
vbroadcasti128 0x8da7(%rip), %ymm0 # ymm0 = mem[0,1,0,1]
vpshufb %ymm5, %ymm0, %ymm4
vpshufb %ymm2, %ymm0, %ymm5
movq 0xaa0e(%rip), %rax      # 0xdff8
vmovdqa (%rax), %ymm1
vpshufb %ymm1, %ymm4, %ymm7
movq 0xa9e6(%rip), %rax      # 0xdfe0
vmovdqa (%rax), %ymm2
vpshufb %ymm2, %ymm5, %ymm5
vpxor %ymm7, %ymm5, %ymm8
vpshufb %ymm6, %ymm0, %ymm4
vpshufb %ymm3, %ymm0, %ymm6
movq 0xa9d8(%rip), %rsi      # 0xdff0
vmovdqa (%rsi), %ymm3
vpshufb %ymm3, %ymm4, %ymm9
movq 0xa998(%rip), %rcx      # 0xdfc0
vmovdqa (%rcx), %ymm4
vpshufb %ymm4, %ymm6, %ymm6
vpxor %ymm6, %ymm9, %ymm10
vpxor %ymm7, %ymm10, %ymm7
vpxor %ymm9, %ymm8, %ymm9
vpxor %ymm5, %ymm10, %ymm10
vpxor %ymm6, %ymm8, %ymm11
vpslldq $0x8, %ymm7, %ymm12     # ymm12 = zero,zero,zero,zero,zero,zero,zero,zero,ymm7[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm7[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vmovdqa 0xaf1b(%rip), %ymm5     # 0xe580
vpternlogq $0x96, %ymm7, %ymm5, %ymm12
vmovdqa 0xaf2c(%rip), %ymm6     # 0xe5a0
vpternlogq $0x96, %ymm9, %ymm6, %ymm13
vmovdqa 0xaf3d(%rip), %ymm7     # 0xe5c0
vpternlogq $0x96, %ymm10, %ymm7, %ymm14
vmovdqa 0xaf4e(%rip), %ymm8     # 0xe5e0
vpternlogq $0x96, %ymm11, %ymm8, %ymm15
vpshufb %ymm12, %ymm0, %ymm9
vpshufb %ymm14, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm13, %ymm0, %ymm12
vpshufb %ymm15, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xaefd(%rip), %ymm9, %ymm13 # 0xe600
vpternlogq $0x96, 0xaf12(%rip), %ymm12, %ymm14 # 0xe620
vpternlogq $0x96, 0xaf27(%rip), %ymm10, %ymm15 # 0xe640
vpternlogq $0x96, 0xaf3c(%rip), %ymm11, %ymm16 # 0xe660
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xaef1(%rip), %ymm9, %ymm13 # 0xe680
vpternlogq $0x96, 0xaf06(%rip), %ymm12, %ymm14 # 0xe6a0
vpternlogq $0x96, 0xaf1b(%rip), %ymm10, %ymm15 # 0xe6c0
vpternlogq $0x96, 0xaf30(%rip), %ymm11, %ymm16 # 0xe6e0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xaee5(%rip), %ymm9, %ymm13 # 0xe700
vpternlogq $0x96, 0xaefa(%rip), %ymm12, %ymm14 # 0xe720
vpternlogq $0x96, 0xaf0f(%rip), %ymm10, %ymm15 # 0xe740
vpternlogq $0x96, 0xaf24(%rip), %ymm11, %ymm16 # 0xe760
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xaed9(%rip), %ymm9, %ymm13 # 0xe780
vpternlogq $0x96, 0xaeee(%rip), %ymm12, %ymm14 # 0xe7a0
vpternlogq $0x96, 0xaf03(%rip), %ymm10, %ymm15 # 0xe7c0
vpternlogq $0x96, 0xaf18(%rip), %ymm11, %ymm16 # 0xe7e0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xaecd(%rip), %ymm9, %ymm13 # 0xe800
vpternlogq $0x96, 0xaee2(%rip), %ymm12, %ymm14 # 0xe820
vpternlogq $0x96, 0xaef7(%rip), %ymm10, %ymm15 # 0xe840
vpternlogq $0x96, 0xaf0c(%rip), %ymm11, %ymm16 # 0xe860
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xaec1(%rip), %ymm9, %ymm13 # 0xe880
vpternlogq $0x96, 0xaed6(%rip), %ymm12, %ymm14 # 0xe8a0
vpternlogq $0x96, 0xaeeb(%rip), %ymm10, %ymm15 # 0xe8c0
vpternlogq $0x96, 0xaf00(%rip), %ymm11, %ymm16 # 0xe8e0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xaeb5(%rip), %ymm9, %ymm13 # 0xe900
vpternlogq $0x96, 0xaeca(%rip), %ymm12, %ymm14 # 0xe920
vpternlogq $0x96, 0xaedf(%rip), %ymm10, %ymm15 # 0xe940
vpternlogq $0x96, 0xaef4(%rip), %ymm11, %ymm16 # 0xe960
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xaea9(%rip), %ymm9, %ymm13 # 0xe980
vpternlogq $0x96, 0xaebe(%rip), %ymm12, %ymm14 # 0xe9a0
vpternlogq $0x96, 0xaed3(%rip), %ymm10, %ymm15 # 0xe9c0
vpternlogq $0x96, 0xaee8(%rip), %ymm11, %ymm16 # 0xe9e0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xae9d(%rip), %ymm9, %ymm13 # 0xea00
vpternlogq $0x96, 0xaeb2(%rip), %ymm12, %ymm14 # 0xea20
vpternlogq $0x96, 0xaec7(%rip), %ymm10, %ymm15 # 0xea40
vpternlogq $0x96, 0xaedc(%rip), %ymm11, %ymm16 # 0xea60
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xae91(%rip), %ymm9, %ymm13 # 0xea80
vpternlogq $0x96, 0xaea6(%rip), %ymm12, %ymm14 # 0xeaa0
vpternlogq $0x96, 0xaebb(%rip), %ymm10, %ymm15 # 0xeac0
vpternlogq $0x96, 0xaed0(%rip), %ymm11, %ymm16 # 0xeae0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xae85(%rip), %ymm9, %ymm13 # 0xeb00
vpternlogq $0x96, 0xae9a(%rip), %ymm12, %ymm14 # 0xeb20
vpternlogq $0x96, 0xaeaf(%rip), %ymm10, %ymm15 # 0xeb40
vpternlogq $0x96, 0xaec4(%rip), %ymm11, %ymm16 # 0xeb60
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xae79(%rip), %ymm9, %ymm13 # 0xeb80
vpternlogq $0x96, 0xae8e(%rip), %ymm12, %ymm14 # 0xeba0
vpternlogq $0x96, 0xaea3(%rip), %ymm10, %ymm15 # 0xebc0
vpternlogq $0x96, 0xaeb8(%rip), %ymm11, %ymm16 # 0xebe0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xae6d(%rip), %ymm9, %ymm13 # 0xec00
vpternlogq $0x96, 0xae82(%rip), %ymm12, %ymm14 # 0xec20
vpternlogq $0x96, 0xae97(%rip), %ymm10, %ymm15 # 0xec40
vpternlogq $0x96, 0xaeac(%rip), %ymm11, %ymm16 # 0xec60
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xae61(%rip), %ymm9, %ymm13 # 0xec80
vpternlogq $0x96, 0xae76(%rip), %ymm12, %ymm14 # 0xeca0
vpternlogq $0x96, 0xae8b(%rip), %ymm10, %ymm15 # 0xecc0
vpternlogq $0x96, 0xaea0(%rip), %ymm11, %ymm16 # 0xece0
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm10
vpxor %ymm9, %ymm10, %ymm11
vpshufb %ymm14, %ymm0, %ymm12
vpshufb %ymm16, %ymm0, %ymm13
vpshufb %ymm3, %ymm12, %ymm12
vpshufb %ymm4, %ymm13, %ymm13
vpxor %ymm12, %ymm13, %ymm14
vpxor %ymm9, %ymm14, %ymm9
vpxor %ymm12, %ymm11, %ymm12
vpxor %ymm10, %ymm14, %ymm10
vpxor %ymm13, %ymm11, %ymm11
vpslldq $0x8, %ymm9, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm12, %ymm14    # ymm14 = zero,zero,zero,zero,zero,zero,zero,zero,ymm12[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm12[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm10, %ymm15    # ymm15 = zero,zero,zero,zero,zero,zero,zero,zero,ymm10[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm10[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm11, %ymm16    # ymm16 = zero,zero,zero,zero,zero,zero,zero,zero,ymm11[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm11[16,17,18,19,20,21,22,23]
vpternlogq $0x96, 0xae55(%rip), %ymm9, %ymm13 # 0xed00
vpternlogq $0x96, 0xae6a(%rip), %ymm12, %ymm14 # 0xed20
vpternlogq $0x96, 0xae7f(%rip), %ymm10, %ymm15 # 0xed40
vpternlogq $0x96, 0xae94(%rip), %ymm11, %ymm16 # 0xed60
vpshufb %ymm13, %ymm0, %ymm9
vpshufb %ymm15, %ymm0, %ymm10
vpshufb %ymm1, %ymm9, %ymm9
vpshufb %ymm2, %ymm10, %ymm2
vpxor %ymm2, %ymm9, %ymm10
vpshufb %ymm14, %ymm0, %ymm11
vpshufb %ymm16, %ymm0, %ymm12
vpshufb %ymm3, %ymm11, %ymm3
vpshufb %ymm4, %ymm12, %ymm4
vpxor %ymm3, %ymm4, %ymm11
vpxor %ymm9, %ymm11, %ymm9
vpxor %ymm3, %ymm10, %ymm3
vpxor %ymm2, %ymm11, %ymm2
vpxor %ymm4, %ymm10, %ymm4
vpslldq $0x8, %ymm9, %ymm10     # ymm10 = zero,zero,zero,zero,zero,zero,zero,zero,ymm9[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm9[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm3, %ymm11     # ymm11 = zero,zero,zero,zero,zero,zero,zero,zero,ymm3[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm3[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm2, %ymm12     # ymm12 = zero,zero,zero,zero,zero,zero,zero,zero,ymm2[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm2[16,17,18,19,20,21,22,23]
vpslldq $0x8, %ymm4, %ymm13     # ymm13 = zero,zero,zero,zero,zero,zero,zero,zero,ymm4[0,1,2,3,4,5,6,7],zero,zero,zero,zero,zero,zero,zero,zero,ymm4[16,17,18,19,20,21,22,23]
vpternlogq $0x96, %ymm9, %ymm5, %ymm10
vpternlogq $0x96, %ymm3, %ymm6, %ymm11
vpternlogq $0x96, %ymm2, %ymm7, %ymm12
vpternlogq $0x96, %ymm4, %ymm8, %ymm13
vpshufb %ymm10, %ymm0, %ymm2
vpshufb %ymm11, %ymm0, %ymm3
vpshufb %ymm1, %ymm2, %ymm1
vmovdqa %ymm1, (%rdx)
vpshufb (%rsi), %ymm3, %ymm1
vmovdqa %ymm1, 0x20(%rdx)
vpshufb %ymm12, %ymm0, %ymm1
vpshufb %ymm13, %ymm0, %ymm0
vpshufb (%rax), %ymm1, %ymm1
vmovdqa %ymm1, 0x40(%rdx)
vpshufb (%rcx), %ymm0, %ymm0
vmovdqa %ymm0, 0x60(%rdx)
vzeroupper
retq