byteswap_const:
        .octa 0x000102030405060708090A0B0C0D0E0F
+ddq_low_msk:
+       .octa 0x0000000000000000FFFFFFFFFFFFFFFF
+ddq_high_add_1:
+       .octa 0x00000000000000010000000000000000
 ddq_add_1:
        .octa 0x00000000000000000000000000000001
 ddq_add_2:
        .rept (by - 1)
                club DDQ_DATA, i
                club XDATA, i
-               vpaddd  var_ddq_add(%rip), xcounter, var_xdata
+               vpaddq  var_ddq_add(%rip), xcounter, var_xdata
+               vptest  ddq_low_msk(%rip), var_xdata
+               jnz 1f
+               vpaddq  ddq_high_add_1(%rip), var_xdata, var_xdata
+               vpaddq  ddq_high_add_1(%rip), xcounter, xcounter
+               1:
                vpshufb xbyteswap, var_xdata, var_xdata
                .set i, (i +1)
        .endr
 
        vpxor   xkey0, xdata0, xdata0
        club DDQ_DATA, by
-       vpaddd  var_ddq_add(%rip), xcounter, xcounter
+       vpaddq  var_ddq_add(%rip), xcounter, xcounter
+       vptest  ddq_low_msk(%rip), xcounter
+       jnz     1f
+       vpaddq  ddq_high_add_1(%rip), xcounter, xcounter
+       1:
 
        .set i, 1
        .rept (by - 1)